First NIT release and new clean mercurial repository v0.1
authorJean Privat <jean@pryen.org>
Wed, 9 Jul 2008 19:55:44 +0000 (15:55 -0400)
committerJean Privat <jean@pryen.org>
Wed, 9 Jul 2008 19:55:44 +0000 (15:55 -0400)
726 files changed:
.hgignore [new file with mode: 0644]
BUGS [new file with mode: 0644]
Changelog [new file with mode: 0644]
LICENSE [new file with mode: 0644]
Makefile [new file with mode: 0644]
NOTICE [new file with mode: 0644]
README [new file with mode: 0644]
TODO [new file with mode: 0644]
bin/gccx [new file with mode: 0755]
c_src/Makefile [new file with mode: 0644]
c_src/README [new file with mode: 0644]
c_src/abstract_collection._sep.c [new file with mode: 0644]
c_src/abstract_collection._sep.h [new file with mode: 0644]
c_src/abstractmetamodel._sep.c [new file with mode: 0644]
c_src/abstractmetamodel._sep.h [new file with mode: 0644]
c_src/abstracttool._sep.c [new file with mode: 0644]
c_src/abstracttool._sep.h [new file with mode: 0644]
c_src/array._sep.c [new file with mode: 0644]
c_src/array._sep.h [new file with mode: 0644]
c_src/compiling._sep.c [new file with mode: 0644]
c_src/compiling._sep.h [new file with mode: 0644]
c_src/compiling_base._sep.c [new file with mode: 0644]
c_src/compiling_base._sep.h [new file with mode: 0644]
c_src/compiling_global._sep.c [new file with mode: 0644]
c_src/compiling_global._sep.h [new file with mode: 0644]
c_src/compiling_methods._sep.c [new file with mode: 0644]
c_src/compiling_methods._sep.h [new file with mode: 0644]
c_src/control_flow._sep.c [new file with mode: 0644]
c_src/control_flow._sep.h [new file with mode: 0644]
c_src/environ._sep.c [new file with mode: 0644]
c_src/environ._sep.h [new file with mode: 0644]
c_src/exec._sep.c [new file with mode: 0644]
c_src/exec._sep.h [new file with mode: 0644]
c_src/file._sep.c [new file with mode: 0644]
c_src/file._sep.h [new file with mode: 0644]
c_src/genericity._sep.c [new file with mode: 0644]
c_src/genericity._sep.h [new file with mode: 0644]
c_src/hash._sep.c [new file with mode: 0644]
c_src/hash._sep.h [new file with mode: 0644]
c_src/inheritance._sep.c [new file with mode: 0644]
c_src/inheritance._sep.h [new file with mode: 0644]
c_src/kernel._sep.c [new file with mode: 0644]
c_src/kernel._sep.h [new file with mode: 0644]
c_src/lexer._sep.c [new file with mode: 0644]
c_src/lexer._sep.h [new file with mode: 0644]
c_src/list._sep.c [new file with mode: 0644]
c_src/list._sep.h [new file with mode: 0644]
c_src/math._sep.c [new file with mode: 0644]
c_src/math._sep.h [new file with mode: 0644]
c_src/metamodel._sep.c [new file with mode: 0644]
c_src/metamodel._sep.h [new file with mode: 0644]
c_src/mmbuilder._sep.c [new file with mode: 0644]
c_src/mmbuilder._sep.h [new file with mode: 0644]
c_src/mmloader._sep.c [new file with mode: 0644]
c_src/mmloader._sep.h [new file with mode: 0644]
c_src/nitc._build.sh [new file with mode: 0644]
c_src/nitc._sep.c [new file with mode: 0644]
c_src/nitc._sep.h [new file with mode: 0644]
c_src/nitc._tables.c [new file with mode: 0644]
c_src/opts._sep.c [new file with mode: 0644]
c_src/opts._sep.h [new file with mode: 0644]
c_src/parser._sep.c [new file with mode: 0644]
c_src/parser._sep.h [new file with mode: 0644]
c_src/parser_nodes._sep.c [new file with mode: 0644]
c_src/parser_nodes._sep.h [new file with mode: 0644]
c_src/parser_prod._sep.c [new file with mode: 0644]
c_src/parser_prod._sep.h [new file with mode: 0644]
c_src/parser_tables._sep.c [new file with mode: 0644]
c_src/parser_tables._sep.h [new file with mode: 0644]
c_src/partial_order._sep.c [new file with mode: 0644]
c_src/partial_order._sep.h [new file with mode: 0644]
c_src/range._sep.c [new file with mode: 0644]
c_src/range._sep.h [new file with mode: 0644]
c_src/sorter._sep.c [new file with mode: 0644]
c_src/sorter._sep.h [new file with mode: 0644]
c_src/standard._sep.c [new file with mode: 0644]
c_src/standard._sep.h [new file with mode: 0644]
c_src/static_type._sep.c [new file with mode: 0644]
c_src/static_type._sep.h [new file with mode: 0644]
c_src/stream._sep.c [new file with mode: 0644]
c_src/stream._sep.h [new file with mode: 0644]
c_src/string._sep.c [new file with mode: 0644]
c_src/string._sep.h [new file with mode: 0644]
c_src/string_search._sep.c [new file with mode: 0644]
c_src/string_search._sep.h [new file with mode: 0644]
c_src/symbol._sep.c [new file with mode: 0644]
c_src/symbol._sep.h [new file with mode: 0644]
c_src/syntax._sep.c [new file with mode: 0644]
c_src/syntax._sep.h [new file with mode: 0644]
c_src/syntax_base._sep.c [new file with mode: 0644]
c_src/syntax_base._sep.h [new file with mode: 0644]
c_src/time._sep.c [new file with mode: 0644]
c_src/time._sep.h [new file with mode: 0644]
c_src/type_formal._sep.c [new file with mode: 0644]
c_src/type_formal._sep.h [new file with mode: 0644]
c_src/typing._sep.c [new file with mode: 0644]
c_src/typing._sep.h [new file with mode: 0644]
c_src/utils._sep.c [new file with mode: 0644]
c_src/utils._sep.h [new file with mode: 0644]
c_src/vararg._sep.c [new file with mode: 0644]
c_src/vararg._sep.h [new file with mode: 0644]
c_src/virtualtype._sep.c [new file with mode: 0644]
c_src/virtualtype._sep.h [new file with mode: 0644]
examples/fibonacci.nit [new file with mode: 0644]
examples/hello_world.nit [new file with mode: 0644]
examples/print_arguments.nit [new file with mode: 0644]
examples/procedural_array.nit [new file with mode: 0644]
examples/various/glob.nit [new file with mode: 0644]
lib/dummy_array.nit [new file with mode: 0644]
lib/filter_stream.nit [new file with mode: 0644]
lib/game.nit [new file with mode: 0644]
lib/nit_common.h [new file with mode: 0644]
lib/nit_main.c [new file with mode: 0644]
lib/opts.nit [new file with mode: 0644]
lib/sdl.nit [new file with mode: 0644]
lib/sdl_nit.c [new file with mode: 0644]
lib/sdl_nit.h [new file with mode: 0644]
lib/standard/abstract_collection.nit [new file with mode: 0644]
lib/standard/array.nit [new file with mode: 0644]
lib/standard/environ.nit [new file with mode: 0644]
lib/standard/environ_nit.h [new file with mode: 0644]
lib/standard/environ_prm.h [new file with mode: 0644]
lib/standard/exec.nit [new file with mode: 0644]
lib/standard/exec_nit.c [new file with mode: 0644]
lib/standard/exec_nit.h [new file with mode: 0644]
lib/standard/file.nit [new file with mode: 0644]
lib/standard/file_nit.c [new file with mode: 0644]
lib/standard/file_nit.h [new file with mode: 0644]
lib/standard/hash.nit [new file with mode: 0644]
lib/standard/kernel.nit [new file with mode: 0644]
lib/standard/list.nit [new file with mode: 0644]
lib/standard/math.nit [new file with mode: 0644]
lib/standard/math_nit.h [new file with mode: 0644]
lib/standard/math_prm.h [new file with mode: 0644]
lib/standard/range.nit [new file with mode: 0644]
lib/standard/sorter.nit [new file with mode: 0644]
lib/standard/standard.nit [new file with mode: 0644]
lib/standard/stream.nit [new file with mode: 0644]
lib/standard/stream_nit.c [new file with mode: 0644]
lib/standard/stream_nit.h [new file with mode: 0644]
lib/standard/string.nit [new file with mode: 0644]
lib/standard/string_nit.h [new file with mode: 0644]
lib/standard/string_search.nit [new file with mode: 0644]
lib/standard/symbol.nit [new file with mode: 0644]
lib/standard/time.nit [new file with mode: 0644]
lib/standard/time_nit.h [new file with mode: 0644]
src/abstracttool.nit [new file with mode: 0644]
src/compiling/compiling.nit [new file with mode: 0644]
src/compiling/compiling_base.nit [new file with mode: 0644]
src/compiling/compiling_global.nit [new file with mode: 0644]
src/compiling/compiling_methods.nit [new file with mode: 0644]
src/metamodel/abstractmetamodel.nit [new file with mode: 0644]
src/metamodel/genericity.nit [new file with mode: 0644]
src/metamodel/inheritance.nit [new file with mode: 0644]
src/metamodel/metamodel.nit [new file with mode: 0644]
src/metamodel/partial_order.nit [new file with mode: 0644]
src/metamodel/static_type.nit [new file with mode: 0644]
src/metamodel/type_formal.nit [new file with mode: 0644]
src/metamodel/vararg.nit [new file with mode: 0644]
src/metamodel/virtualtype.nit [new file with mode: 0644]
src/mmloader.nit [new file with mode: 0644]
src/nc [new file with mode: 0755]
src/nc2 [new symlink]
src/nc3 [new symlink]
src/nc4 [new symlink]
src/nitc.nit [new file with mode: 0644]
src/nitdoc.nit [new file with mode: 0644]
src/parser/Makefile [new file with mode: 0644]
src/parser/README [new file with mode: 0644]
src/parser/lexer.nit [new file with mode: 0644]
src/parser/nit.sablecc3xx [new file with mode: 0644]
src/parser/parser.nit [new file with mode: 0644]
src/parser/parser_abs.nit [new file with mode: 0644]
src/parser/parser_nodes.nit [new file with mode: 0644]
src/parser/parser_prod.nit [new file with mode: 0644]
src/parser/parser_tables.nit [new file with mode: 0644]
src/parser/test_parser.nit [new file with mode: 0644]
src/parser/xss/lexer.xss [new file with mode: 0644]
src/parser/xss/main.xss [new file with mode: 0644]
src/parser/xss/nodes.xss [new file with mode: 0644]
src/parser/xss/parser.xss [new file with mode: 0644]
src/parser/xss/prods.xss [new file with mode: 0644]
src/parser/xss/tokens.xss [new file with mode: 0644]
src/syntax/control_flow.nit [new file with mode: 0644]
src/syntax/mmbuilder.nit [new file with mode: 0644]
src/syntax/syntax.nit [new file with mode: 0644]
src/syntax/syntax_base.nit [new file with mode: 0644]
src/syntax/typing.nit [new file with mode: 0644]
src/utils.nit [new file with mode: 0644]
tests/Makefile [new file with mode: 0644]
tests/README [new file with mode: 0644]
tests/base_abort.nit [new file with mode: 0644]
tests/base_abort.sav [new file with mode: 0644]
tests/base_array.nit [new file with mode: 0644]
tests/base_array.sav [new file with mode: 0644]
tests/base_array_alt1.sav [new file with mode: 0644]
tests/base_attr.nit [new file with mode: 0644]
tests/base_attr.sav [new file with mode: 0644]
tests/base_attr_def.nit [new file with mode: 0644]
tests/base_attr_def.sav [new file with mode: 0644]
tests/base_attr_init_val1.nit [new file with mode: 0644]
tests/base_attr_init_val1.sav [new file with mode: 0644]
tests/base_attr_init_val2.nit [new file with mode: 0644]
tests/base_attr_init_val2.sav [new file with mode: 0644]
tests/base_classid.nit [new file with mode: 0644]
tests/base_classid.sav [new file with mode: 0644]
tests/base_combined_assignment.nit [new file with mode: 0644]
tests/base_combined_assignment.sav [new file with mode: 0644]
tests/base_combined_assignment_alt1.sav [new file with mode: 0644]
tests/base_compile.nit [new file with mode: 0644]
tests/base_compile.sav [new file with mode: 0644]
tests/base_control_flow.nit [new file with mode: 0644]
tests/base_control_flow.sav [new file with mode: 0644]
tests/base_control_flow2.nit [new file with mode: 0644]
tests/base_control_flow2.sav [new file with mode: 0644]
tests/base_empty.nit [new file with mode: 0644]
tests/base_empty.sav [new file with mode: 0644]
tests/base_empty_comments.nit [new file with mode: 0644]
tests/base_empty_comments.sav [new file with mode: 0644]
tests/base_empty_module.nit [new file with mode: 0644]
tests/base_empty_module.sav [new file with mode: 0644]
tests/base_eq.nit [new file with mode: 0644]
tests/base_eq.sav [new file with mode: 0644]
tests/base_eq_int.nit [new file with mode: 0644]
tests/base_eq_int.sav [new file with mode: 0644]
tests/base_eq_int2.nit [new file with mode: 0644]
tests/base_eq_int2.sav [new file with mode: 0644]
tests/base_gen.nit [new file with mode: 0644]
tests/base_gen.sav [new file with mode: 0644]
tests/base_gen_alt1.sav [new file with mode: 0644]
tests/base_gen_f.nit [new file with mode: 0644]
tests/base_gen_f.sav [new file with mode: 0644]
tests/base_gen_int.nit [new file with mode: 0644]
tests/base_gen_int.sav [new file with mode: 0644]
tests/base_gen_int_alt1.sav [new file with mode: 0644]
tests/base_if_expr.nit [new file with mode: 0644]
tests/base_if_expr.sav [new file with mode: 0644]
tests/base_if_expr_alt1.sav [new file with mode: 0644]
tests/base_init_inh.nit [new file with mode: 0644]
tests/base_init_inh.sav [new file with mode: 0644]
tests/base_init_linext.nit [new file with mode: 0644]
tests/base_init_linext.sav [new file with mode: 0644]
tests/base_init_linext2.nit [new file with mode: 0644]
tests/base_init_linext2.sav [new file with mode: 0644]
tests/base_init_linext2_alt1.sav [new file with mode: 0644]
tests/base_init_linext2_alt2.sav [new file with mode: 0644]
tests/base_init_linext2_alt3.sav [new file with mode: 0644]
tests/base_init_linext2_alt4.sav [new file with mode: 0644]
tests/base_init_linext2_alt5.sav [new file with mode: 0644]
tests/base_init_linext_alt0.sav [new file with mode: 0644]
tests/base_init_linext_alt1.sav [new file with mode: 0644]
tests/base_init_linext_alt10.sav [new file with mode: 0644]
tests/base_init_linext_alt11.sav [new file with mode: 0644]
tests/base_init_linext_alt12.sav [new file with mode: 0644]
tests/base_init_linext_alt13.sav [new file with mode: 0644]
tests/base_init_linext_alt14.sav [new file with mode: 0644]
tests/base_init_linext_alt15.sav [new file with mode: 0644]
tests/base_init_linext_alt2.sav [new file with mode: 0644]
tests/base_init_linext_alt3.sav [new file with mode: 0644]
tests/base_init_linext_alt4.sav [new file with mode: 0644]
tests/base_init_linext_alt5.sav [new file with mode: 0644]
tests/base_init_linext_alt6.sav [new file with mode: 0644]
tests/base_init_linext_alt7.sav [new file with mode: 0644]
tests/base_init_linext_alt8.sav [new file with mode: 0644]
tests/base_init_linext_alt9.sav [new file with mode: 0644]
tests/base_init_linext_raf.nit [new file with mode: 0644]
tests/base_init_linext_raf.sav [new file with mode: 0644]
tests/base_init_raf.nit [new file with mode: 0644]
tests/base_init_raf.sav [new file with mode: 0644]
tests/base_inline_statement.nit [new file with mode: 0644]
tests/base_inline_statement.sav [new file with mode: 0644]
tests/base_inline_statement_alt1.sav [new file with mode: 0644]
tests/base_inline_statement_alt2.sav [new file with mode: 0644]
tests/base_inline_statement_alt3.sav [new file with mode: 0644]
tests/base_int.nit [new file with mode: 0644]
tests/base_int.sav [new file with mode: 0644]
tests/base_isa.nit [new file with mode: 0644]
tests/base_isa.sav [new file with mode: 0644]
tests/base_isa_cast.nit [new file with mode: 0644]
tests/base_isa_cast.sav [new file with mode: 0644]
tests/base_isa_cast_alt1.sav [new file with mode: 0644]
tests/base_isa_cast_alt2.sav [new file with mode: 0644]
tests/base_isa_cast_alt3.sav [new file with mode: 0644]
tests/base_isa_cast_alt4.sav [new file with mode: 0644]
tests/base_isa_cast_alt5.sav [new file with mode: 0644]
tests/base_isa_cast_alt6.sav [new file with mode: 0644]
tests/base_isa_nil.nit [new file with mode: 0644]
tests/base_isa_nil.sav [new file with mode: 0644]
tests/base_once.nit [new file with mode: 0644]
tests/base_once.sav [new file with mode: 0644]
tests/base_primitive.nit [new file with mode: 0644]
tests/base_primitive.sav [new file with mode: 0644]
tests/base_prot.nit [new file with mode: 0644]
tests/base_prot.sav [new file with mode: 0644]
tests/base_prot2.nit [new file with mode: 0644]
tests/base_prot2.sav [new file with mode: 0644]
tests/base_prot2_alt1.sav [new file with mode: 0644]
tests/base_prot2_alt2.sav [new file with mode: 0644]
tests/base_prot2_alt3.sav [new file with mode: 0644]
tests/base_prot2_alt4.sav [new file with mode: 0644]
tests/base_prot2_alt5.sav [new file with mode: 0644]
tests/base_prot3.nit [new file with mode: 0644]
tests/base_prot3.sav [new file with mode: 0644]
tests/base_sig_inh.nit [new file with mode: 0644]
tests/base_sig_inh.sav [new file with mode: 0644]
tests/base_simple.nit [new file with mode: 0644]
tests/base_simple.sav [new file with mode: 0644]
tests/base_simple2.nit [new file with mode: 0644]
tests/base_simple2.sav [new file with mode: 0644]
tests/base_super_linext.nit [new file with mode: 0644]
tests/base_super_linext.sav [new file with mode: 0644]
tests/base_super_linext_raf.nit [new file with mode: 0644]
tests/base_super_linext_raf.sav [new file with mode: 0644]
tests/base_virtual_type.nit [new file with mode: 0644]
tests/base_virtual_type.sav [new file with mode: 0644]
tests/base_virtual_type2.nit [new file with mode: 0644]
tests/base_virtual_type2.sav [new file with mode: 0644]
tests/base_virtual_type2_alt1.sav [new file with mode: 0644]
tests/base_virtual_type3.nit [new file with mode: 0644]
tests/base_virtual_type3.sav [new file with mode: 0644]
tests/base_virtual_type3_alt1.sav [new file with mode: 0644]
tests/base_virtual_type4.nit [new file with mode: 0644]
tests/base_virtual_type4.sav [new file with mode: 0644]
tests/base_virtual_type4_alt1.sav [new file with mode: 0644]
tests/base_virtual_type5.nit [new file with mode: 0644]
tests/base_virtual_type5.sav [new file with mode: 0644]
tests/base_virtual_type5_alt1.sav [new file with mode: 0644]
tests/base_virtual_type5_alt2.sav [new file with mode: 0644]
tests/base_virtual_type6.nit [new file with mode: 0644]
tests/base_virtual_type6.sav [new file with mode: 0644]
tests/base_virtual_type7.nit [new file with mode: 0644]
tests/base_virtual_type7.sav [new file with mode: 0644]
tests/base_virtual_type_alt1.sav [new file with mode: 0644]
tests/base_virtual_type_alt2.sav [new file with mode: 0644]
tests/base_virtual_type_alt3.sav [new file with mode: 0644]
tests/bench_421.nit [new file with mode: 0644]
tests/bench_421.sav [new file with mode: 0644]
tests/bench_421_ref.c [new file with mode: 0644]
tests/bench_complex_sort.nit [new file with mode: 0644]
tests/bench_complex_sort.sav [new file with mode: 0644]
tests/bench_fib.nit [new file with mode: 0644]
tests/bench_fib.sav [new file with mode: 0644]
tests/bench_fib_ref.c [new file with mode: 0644]
tests/bench_netsim.nit [new file with mode: 0644]
tests/bench_netsim.sav [new file with mode: 0644]
tests/bench_nsieve_bool.nit [new file with mode: 0644]
tests/bench_nsieve_bool.sav [new file with mode: 0644]
tests/bench_prime.nit [new file with mode: 0644]
tests/bench_prime.sav [new file with mode: 0644]
tests/bench_random_n_sort.nit [new file with mode: 0644]
tests/bench_random_n_sort.sav [new file with mode: 0644]
tests/bench_send.nit [new file with mode: 0644]
tests/bench_send.sav [new file with mode: 0644]
tests/bench_send2.nit [new file with mode: 0644]
tests/bench_send2.sav [new file with mode: 0644]
tests/bench_string_append.nit [new file with mode: 0644]
tests/bench_string_append.sav [new file with mode: 0644]
tests/bench_string_super.nit [new file with mode: 0644]
tests/bench_string_super.sav [new file with mode: 0644]
tests/bench_string_tos.nit [new file with mode: 0644]
tests/bench_string_tos.sav [new file with mode: 0644]
tests/bench_svn105_papillon.log.sav [new file with mode: 0644]
tests/bench_svn107_bird.log.sav [new file with mode: 0644]
tests/bench_svn219_bird.log.sav [new file with mode: 0644]
tests/bench_tak.nit [new file with mode: 0644]
tests/bench_tak.sav [new file with mode: 0644]
tests/error_array_ambig.nit [new file with mode: 0644]
tests/error_array_ambig.sav [new file with mode: 0644]
tests/error_attr_2def.nit [new file with mode: 0644]
tests/error_attr_2def.sav [new file with mode: 0644]
tests/error_attr_assign.nit [new file with mode: 0644]
tests/error_attr_assign.sav [new file with mode: 0644]
tests/error_attr_unk.nit [new file with mode: 0644]
tests/error_attr_unk.sav [new file with mode: 0644]
tests/error_class_glob.nit [new file with mode: 0644]
tests/error_cons_arity.nit [new file with mode: 0644]
tests/error_cons_arity.sav [new file with mode: 0644]
tests/error_cons_arity2.nit [new file with mode: 0644]
tests/error_cons_arity2.sav [new file with mode: 0644]
tests/error_constraint.nit [new file with mode: 0644]
tests/error_constraint.sav [new file with mode: 0644]
tests/error_constraint_raf.nit.broken [new file with mode: 0644]
tests/error_decl_type_var.nit [new file with mode: 0644]
tests/error_decl_type_var.sav [new file with mode: 0644]
tests/error_defs.nit [new file with mode: 0644]
tests/error_defs.sav [new file with mode: 0644]
tests/error_defs_alt1.sav [new file with mode: 0644]
tests/error_defs_alt2.sav [new file with mode: 0644]
tests/error_defs_alt3.sav [new file with mode: 0644]
tests/error_defs_alt4.sav [new file with mode: 0644]
tests/error_defs_alt5.sav [new file with mode: 0644]
tests/error_defs_alt6.sav [new file with mode: 0644]
tests/error_defs_alt7.sav [new file with mode: 0644]
tests/error_defs_alt8.sav [new file with mode: 0644]
tests/error_file_access.sav [new file with mode: 0644]
tests/error_for_coll.nit [new file with mode: 0644]
tests/error_for_coll.sav [new file with mode: 0644]
tests/error_formal.nit [new file with mode: 0644]
tests/error_formal.sav [new file with mode: 0644]
tests/error_fun_ret.nit [new file with mode: 0644]
tests/error_fun_ret.sav [new file with mode: 0644]
tests/error_fun_ret2.nit [new file with mode: 0644]
tests/error_fun_ret2.sav [new file with mode: 0644]
tests/error_fun_ret3.nit [new file with mode: 0644]
tests/error_fun_ret3.sav [new file with mode: 0644]
tests/error_fun_ret4.nit [new file with mode: 0644]
tests/error_fun_ret4.sav [new file with mode: 0644]
tests/error_fun_ret5.nit [new file with mode: 0644]
tests/error_fun_ret5.sav [new file with mode: 0644]
tests/error_gen_f_inh_clash.nit [new file with mode: 0644]
tests/error_gen_f_inh_clash.sav [new file with mode: 0644]
tests/error_if_bool.nit [new file with mode: 0644]
tests/error_if_bool.sav [new file with mode: 0644]
tests/error_inh_clash.nit [new file with mode: 0644]
tests/error_inh_clash.sav [new file with mode: 0644]
tests/error_inh_loop.nit [new file with mode: 0644]
tests/error_inh_loop.sav [new file with mode: 0644]
tests/error_kern_attr_any.nit [new file with mode: 0644]
tests/error_kern_attr_any.sav [new file with mode: 0644]
tests/error_kern_attr_int.nit [new file with mode: 0644]
tests/error_kern_attr_int.sav [new file with mode: 0644]
tests/error_left_bool.nit [new file with mode: 0644]
tests/error_left_bool.sav [new file with mode: 0644]
tests/error_loop_bool_until.sav [new file with mode: 0644]
tests/error_loop_bool_while.nit [new file with mode: 0644]
tests/error_loop_bool_while.sav [new file with mode: 0644]
tests/error_meth_2def.nit [new file with mode: 0644]
tests/error_meth_2def.sav [new file with mode: 0644]
tests/error_meth_2def2.nit [new file with mode: 0644]
tests/error_meth_2def2.sav [new file with mode: 0644]
tests/error_meth_create.nit [new file with mode: 0644]
tests/error_meth_create.sav [new file with mode: 0644]
tests/error_meth_unk1.nit [new file with mode: 0644]
tests/error_meth_unk1.sav [new file with mode: 0644]
tests/error_meth_unk2.nit [new file with mode: 0644]
tests/error_meth_unk2.sav [new file with mode: 0644]
tests/error_mod_unk.nit [new file with mode: 0644]
tests/error_mod_unk.sav [new file with mode: 0644]
tests/error_prop_glob.nit [new file with mode: 0644]
tests/error_prop_loc.nit [new file with mode: 0644]
tests/error_prop_loc.sav [new file with mode: 0644]
tests/error_ref_attr.nit [new file with mode: 0644]
tests/error_ref_attr.sav [new file with mode: 0644]
tests/error_ref_fun.nit [new file with mode: 0644]
tests/error_ref_fun.sav [new file with mode: 0644]
tests/error_ref_param.nit [new file with mode: 0644]
tests/error_ref_proc.nit [new file with mode: 0644]
tests/error_ref_proc.sav [new file with mode: 0644]
tests/error_ref_ret.nit [new file with mode: 0644]
tests/error_ref_ret.sav [new file with mode: 0644]
tests/error_req_loop1.nit [new file with mode: 0644]
tests/error_req_loop1.sav [new file with mode: 0644]
tests/error_req_loop2.nit [new file with mode: 0644]
tests/error_req_loop2.sav [new file with mode: 0644]
tests/error_ret_fun.nit [new file with mode: 0644]
tests/error_ret_fun.sav [new file with mode: 0644]
tests/error_ret_proc.nit [new file with mode: 0644]
tests/error_ret_proc.sav [new file with mode: 0644]
tests/error_ret_type.nit [new file with mode: 0644]
tests/error_ret_type.sav [new file with mode: 0644]
tests/error_right_bool.nit [new file with mode: 0644]
tests/error_right_bool.sav [new file with mode: 0644]
tests/error_spe_attr.nit [new file with mode: 0644]
tests/error_spe_attr.sav [new file with mode: 0644]
tests/error_spe_fun.nit [new file with mode: 0644]
tests/error_spe_fun.sav [new file with mode: 0644]
tests/error_spe_param.nit [new file with mode: 0644]
tests/error_spe_param.sav [new file with mode: 0644]
tests/error_spe_param2.nit [new file with mode: 0644]
tests/error_spe_param2.sav [new file with mode: 0644]
tests/error_spe_proc.nit [new file with mode: 0644]
tests/error_spe_proc.sav [new file with mode: 0644]
tests/error_spe_ret.nit [new file with mode: 0644]
tests/error_spe_ret.sav [new file with mode: 0644]
tests/error_star_type.nit [new file with mode: 0644]
tests/error_star_type.sav [new file with mode: 0644]
tests/error_super_many.nit [new file with mode: 0644]
tests/error_super_none.nit [new file with mode: 0644]
tests/error_super_none.sav [new file with mode: 0644]
tests/error_unk_class.nit [new file with mode: 0644]
tests/error_unk_class.sav [new file with mode: 0644]
tests/error_var_args.nit [new file with mode: 0644]
tests/error_var_args.sav [new file with mode: 0644]
tests/error_var_args2.nit [new file with mode: 0644]
tests/error_var_args2.sav [new file with mode: 0644]
tests/error_var_assign.nit [new file with mode: 0644]
tests/error_var_assign.sav [new file with mode: 0644]
tests/example_421.inputs [new file with mode: 0644]
tests/example_421.nit [new file with mode: 0644]
tests/example_421.sav [new file with mode: 0644]
tests/example_beer.nit [new file with mode: 0644]
tests/example_beer.sav [new file with mode: 0644]
tests/example_exec_ls.nit [new file with mode: 0644]
tests/example_hanoi.nit [new file with mode: 0644]
tests/example_hanoi.sav [new file with mode: 0644]
tests/example_objet.nit [new file with mode: 0644]
tests/example_objet.sav [new file with mode: 0644]
tests/example_point.nit [new file with mode: 0644]
tests/example_point.sav [new file with mode: 0644]
tests/example_procedural_string.nit [new file with mode: 0644]
tests/example_procedural_string.sav [new file with mode: 0644]
tests/example_simple.nit [new file with mode: 0644]
tests/example_simple.sav [new file with mode: 0644]
tests/example_sorter.nit [new file with mode: 0644]
tests/example_sorter.sav [new file with mode: 0644]
tests/example_sorts.nit [new file with mode: 0644]
tests/example_sorts.sav [new file with mode: 0644]
tests/example_string.nit [new file with mode: 0644]
tests/example_string.sav [new file with mode: 0644]
tests/example_time.nit [new file with mode: 0644]
tests/example_time.sav [new file with mode: 0644]
tests/example_variable.nit [new file with mode: 0644]
tests/example_variable.sav [new file with mode: 0644]
tests/example_wc.inputs [new file with mode: 0644]
tests/example_wc.nit [new file with mode: 0644]
tests/example_wc.sav [new file with mode: 0644]
tests/fibonacci.inputs [new file with mode: 0644]
tests/fibonacci.sav [new file with mode: 0644]
tests/galerie.nit [new file with mode: 0644]
tests/galerie.sav [new file with mode: 0644]
tests/gccbug_attribute_access.nit [new file with mode: 0644]
tests/gccbug_attribute_access.sav [new file with mode: 0644]
tests/hello_world.sav [new file with mode: 0644]
tests/module_0.nit [new file with mode: 0644]
tests/module_0.sav [new file with mode: 0644]
tests/module_1.nit [new file with mode: 0644]
tests/module_1.sav [new file with mode: 0644]
tests/module_2.nit [new file with mode: 0644]
tests/module_simple.nit [new file with mode: 0644]
tests/module_simple.sav [new file with mode: 0644]
tests/print_arguments.sav [new file with mode: 0644]
tests/procedural_array.sav [new file with mode: 0644]
tests/rterror_check.nit [new file with mode: 0644]
tests/rterror_cov_param.nit [new file with mode: 0644]
tests/rterror_cov_ret.nit [new file with mode: 0644]
tests/rterror_deep.nit [new file with mode: 0644]
tests/rterror_nilcall_attr.nit [new file with mode: 0644]
tests/rterror_nilcall_mono.nit [new file with mode: 0644]
tests/rterror_nilcall_poly.nit [new file with mode: 0644]
tests/rterror_nilcall_undead.nit [new file with mode: 0644]
tests/shootout_ackermann.args [new file with mode: 0644]
tests/shootout_ackermann.nit [new file with mode: 0644]
tests/shootout_ackermann.sav [new file with mode: 0644]
tests/shootout_binarytrees.args [new file with mode: 0644]
tests/shootout_binarytrees.nit [new file with mode: 0644]
tests/shootout_binarytrees.sav [new file with mode: 0644]
tests/shootout_mandelbrot.args [new file with mode: 0644]
tests/shootout_mandelbrot.nit [new file with mode: 0644]
tests/shootout_mandelbrot.sav [new file with mode: 0644]
tests/shootout_nsieve.nit [new file with mode: 0644]
tests/shootout_nsieve.sav [new file with mode: 0644]
tests/shootout_pidigits.args [new file with mode: 0644]
tests/shootout_pidigits.nit [new file with mode: 0644]
tests/shootout_startup.nit [new file with mode: 0644]
tests/shootout_startup.sav [new file with mode: 0644]
tests/simple.nit [new file with mode: 0644]
tests/simple.sav [new file with mode: 0644]
tests/sol.nit [new file with mode: 0644]
tests/store_save.sh [new file with mode: 0755]
tests/test_accessor.nit [new file with mode: 0644]
tests/test_accessor.sav [new file with mode: 0644]
tests/test_args.args [new file with mode: 0644]
tests/test_args.nit [new file with mode: 0644]
tests/test_args.sav [new file with mode: 0644]
tests/test_array.nit [new file with mode: 0644]
tests/test_array.sav [new file with mode: 0644]
tests/test_array_int.nit [new file with mode: 0644]
tests/test_array_int.sav [new file with mode: 0644]
tests/test_atoi.nit [new file with mode: 0644]
tests/test_atoi.sav [new file with mode: 0644]
tests/test_attr.nit [new file with mode: 0644]
tests/test_attr.sav [new file with mode: 0644]
tests/test_attr_long.nit [new file with mode: 0644]
tests/test_attr_long.sav [new file with mode: 0644]
tests/test_blocks.nit [new file with mode: 0644]
tests/test_blocks.sav [new file with mode: 0644]
tests/test_boxing.nit [new file with mode: 0644]
tests/test_boxing.sav [new file with mode: 0644]
tests/test_break.nit [new file with mode: 0644]
tests/test_break.sav [new file with mode: 0644]
tests/test_calls.nit [new file with mode: 0644]
tests/test_calls.sav [new file with mode: 0644]
tests/test_coll.nit [new file with mode: 0644]
tests/test_coll.sav [new file with mode: 0644]
tests/test_coll_array.nit [new file with mode: 0644]
tests/test_coll_array.sav [new file with mode: 0644]
tests/test_combined_assignment.nit [new file with mode: 0644]
tests/test_combined_assignment.sav [new file with mode: 0644]
tests/test_combined_assignment_alt1.sav [new file with mode: 0644]
tests/test_cond.nit [new file with mode: 0644]
tests/test_cond.sav [new file with mode: 0644]
tests/test_create.nit [new file with mode: 0644]
tests/test_create.sav [new file with mode: 0644]
tests/test_create_more.nit [new file with mode: 0644]
tests/test_create_more.sav [new file with mode: 0644]
tests/test_eq.nit [new file with mode: 0644]
tests/test_eq.sav [new file with mode: 0644]
tests/test_eq2.nit [new file with mode: 0644]
tests/test_eq2.sav [new file with mode: 0644]
tests/test_equal.nit [new file with mode: 0644]
tests/test_equal.sav [new file with mode: 0644]
tests/test_equal_nil.nit [new file with mode: 0644]
tests/test_equal_nil.sav [new file with mode: 0644]
tests/test_exec.nit [new file with mode: 0644]
tests/test_exec.sav [new file with mode: 0644]
tests/test_extern.extern [new file with mode: 0644]
tests/test_extern.nit [new file with mode: 0644]
tests/test_extern.sav [new file with mode: 0644]
tests/test_extern_nit.c [new file with mode: 0644]
tests/test_extern_nit.h [new file with mode: 0644]
tests/test_fdstream.inputs [new file with mode: 0644]
tests/test_fdstream.nit [new file with mode: 0644]
tests/test_fdstream.sav [new file with mode: 0644]
tests/test_file_read.nit [new file with mode: 0644]
tests/test_file_read.sav [new file with mode: 0644]
tests/test_file_write.nit [new file with mode: 0644]
tests/test_file_write.sav [new file with mode: 0644]
tests/test_float.nit [new file with mode: 0644]
tests/test_float.sav [new file with mode: 0644]
tests/test_for.nit [new file with mode: 0644]
tests/test_for.sav [new file with mode: 0644]
tests/test_gen.nit [new file with mode: 0644]
tests/test_gen.sav [new file with mode: 0644]
tests/test_gen_inh.nit [new file with mode: 0644]
tests/test_gen_inh.sav [new file with mode: 0644]
tests/test_genplus.nit [new file with mode: 0644]
tests/test_genplus.sav [new file with mode: 0644]
tests/test_gets.inputs [new file with mode: 0644]
tests/test_gets.nit [new file with mode: 0644]
tests/test_gets.sav [new file with mode: 0644]
tests/test_hash.nit [new file with mode: 0644]
tests/test_hash.sav [new file with mode: 0644]
tests/test_id.nit [new file with mode: 0644]
tests/test_id.sav [new file with mode: 0644]
tests/test_inh.nit [new file with mode: 0644]
tests/test_inheritance.nit [new file with mode: 0644]
tests/test_inheritance.sav [new file with mode: 0644]
tests/test_inheritance_raf.nit [new file with mode: 0644]
tests/test_int_to_s.nit [new file with mode: 0644]
tests/test_int_to_s.sav [new file with mode: 0644]
tests/test_io.inputs [new file with mode: 0644]
tests/test_io.nit [new file with mode: 0644]
tests/test_io.sav [new file with mode: 0644]
tests/test_isa.nit [new file with mode: 0644]
tests/test_isa.sav [new file with mode: 0644]
tests/test_kernel.nit [new file with mode: 0644]
tests/test_kernel.sav [new file with mode: 0644]
tests/test_let.nit [new file with mode: 0644]
tests/test_let.sav [new file with mode: 0644]
tests/test_list.nit [new file with mode: 0644]
tests/test_list.sav [new file with mode: 0644]
tests/test_map.nit [new file with mode: 0644]
tests/test_map.sav [new file with mode: 0644]
tests/test_math.nit [new file with mode: 0644]
tests/test_math.sav [new file with mode: 0644]
tests/test_mem.nit [new file with mode: 0644]
tests/test_mem.sav [new file with mode: 0644]
tests/test_meta.nit [new file with mode: 0644]
tests/test_meta.sav [new file with mode: 0644]
tests/test_multiconstraint.nit [new file with mode: 0644]
tests/test_multiconstraint.sav [new file with mode: 0644]
tests/test_multiconstraint_inh.nit [new file with mode: 0644]
tests/test_multiconstraint_inh.sav [new file with mode: 0644]
tests/test_multiconstraint_ref.nit [new file with mode: 0644]
tests/test_multiconstraint_ref.sav [new file with mode: 0644]
tests/test_multiconstraint_ref2.nit [new file with mode: 0644]
tests/test_multiconstraint_ref2.sav [new file with mode: 0644]
tests/test_nil.nit [new file with mode: 0644]
tests/test_nil.sav [new file with mode: 0644]
tests/test_obj.nit [new file with mode: 0644]
tests/test_obj.sav [new file with mode: 0644]
tests/test_operator_brackets.nit [new file with mode: 0644]
tests/test_operator_brackets.sav [new file with mode: 0644]
tests/test_operators.nit [new file with mode: 0644]
tests/test_operators.sav [new file with mode: 0644]
tests/test_paire.nit [new file with mode: 0644]
tests/test_partial_order.sav [new file with mode: 0644]
tests/test_print.nit [new file with mode: 0644]
tests/test_print.sav [new file with mode: 0644]
tests/test_range.nit [new file with mode: 0644]
tests/test_range.sav [new file with mode: 0644]
tests/test_refinement.nit [new file with mode: 0644]
tests/test_refinement.sav [new file with mode: 0644]
tests/test_return.nit [new file with mode: 0644]
tests/test_return.sav [new file with mode: 0644]
tests/test_star.nit [new file with mode: 0644]
tests/test_star.sav [new file with mode: 0644]
tests/test_stdio.inputs [new file with mode: 0644]
tests/test_stdio.nit [new file with mode: 0644]
tests/test_stdio.sav [new file with mode: 0644]
tests/test_string.nit [new file with mode: 0644]
tests/test_string.sav [new file with mode: 0644]
tests/test_string_long.nit [new file with mode: 0644]
tests/test_string_long.sav [new file with mode: 0644]
tests/test_string_search.nit [new file with mode: 0644]
tests/test_string_search.sav [new file with mode: 0644]
tests/test_string_unicode.nit [new file with mode: 0644]
tests/test_string_unicode.sav [new file with mode: 0644]
tests/test_substring.nit [new file with mode: 0644]
tests/test_substring.sav [new file with mode: 0644]
tests/test_super.nit [new file with mode: 0644]
tests/test_super.sav [new file with mode: 0644]
tests/test_super_explicit.nit [new file with mode: 0644]
tests/test_super_gen.nit [new file with mode: 0644]
tests/test_super_gen.sav [new file with mode: 0644]
tests/test_super_gen_raf.nit [new file with mode: 0644]
tests/test_super_gen_raf.sav [new file with mode: 0644]
tests/test_super_param.nit [new file with mode: 0644]
tests/test_super_param.sav [new file with mode: 0644]
tests/test_super_param_raf.nit [new file with mode: 0644]
tests/test_super_param_raf.sav [new file with mode: 0644]
tests/test_super_param_raf2.nit [new file with mode: 0644]
tests/test_super_param_raf2.sav [new file with mode: 0644]
tests/test_superstring.nit [new file with mode: 0644]
tests/test_superstring.sav [new file with mode: 0644]
tests/test_symbol.nit [new file with mode: 0644]
tests/test_symbol.sav [new file with mode: 0644]
tests/test_undead.nit [new file with mode: 0644]
tests/test_undead.sav [new file with mode: 0644]
tests/test_variance_attr.nit [new file with mode: 0644]
tests/test_variance_attr.sav [new file with mode: 0644]
tests/test_variance_param.nit [new file with mode: 0644]
tests/test_variance_param.sav [new file with mode: 0644]
tests/test_variance_ret.nit [new file with mode: 0644]
tests/test_variance_ret.sav [new file with mode: 0644]
tests/tests.sh [new file with mode: 0755]

diff --git a/.hgignore b/.hgignore
new file mode 100644 (file)
index 0000000..7cfde26
--- /dev/null
+++ b/.hgignore
@@ -0,0 +1,19 @@
+syntax: glob
+*.bak
+.nit_compile
+*.orig
+nitc
+nitdoc
+doc/stdlib
+
+c_src/*.o
+c_src/*.cksum
+
+tests/*.res
+tests/*.log
+tests/*.bin
+tests/*.err
+tests/alt
+
+syntax: regexp
+
diff --git a/BUGS b/BUGS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Changelog b/Changelog
new file mode 100644 (file)
index 0000000..0ec745f
--- /dev/null
+++ b/Changelog
@@ -0,0 +1,4 @@
+version 0.1
+ * First release under the NIT name.
+
+ -- Wed, 09 Jul 2008 15:24:55 -0400
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..e88cd8f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,62 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+NITCOPT=
+
+all: bin/nitc bin/nitdoc doc/stdlib/index.html
+
+bin/nitc: c_src/nitc src/parser/parser.nit
+       @echo '***************************************************************'
+       @echo '* Compile nitc from NIT source files                          *'
+       @echo '***************************************************************'
+       cp c_src/nitc bin/nitc
+       bin/nitc ${NITCOPT} -o bin/nitc -O src/nitc.nit
+
+bin/nitdoc: bin/nitc
+       @echo '***************************************************************'
+       @echo '* Compile nitdoc from NIT source files                        *'
+       @echo '***************************************************************'
+       bin/nitc ${NITCOPT} -o bin/nitdoc -O src/nitdoc.nit
+
+doc/stdlib/index.html: bin/nitdoc
+       @echo '***************************************************************'
+       @echo '* Generate doc for NIT standard library                       *'
+       @echo '***************************************************************'
+       bin/nitdoc lib/*.nit -d doc/stdlib
+
+c_src/nitc:
+       @echo '***************************************************************'
+       @echo '* Compile nitc from C source files                            *'
+       @echo '***************************************************************'
+       make -C c_src
+
+src/parser/parser.nit:
+       @echo '***************************************************************'
+       @echo '* Generate nit parser                                         *'
+       @echo '***************************************************************'
+       make -C src/parser
+
+clean:
+       rm -rf -- .nit_compile 2> /dev/null || true
+       make -C c_src clean 
+       make -C src/parser clean 
+       make -C tests clean 
+
+dist-clean: clean
+       make -C c_src dist-clean
+       make -C src/parser dist-clean
+       rm -rf -- bin/nitc bin/nitdoc doc/stdlib
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..8166308
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,7 @@
+This product includes software developed as part of the Nit Language
+project ( http://nitlanguage.org ).
+
+Nit Language
+ Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+ Copyright 2008 Etienne M. Gagnon <egagnon@j-meg.com>
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..c5d3c3c
--- /dev/null
+++ b/README
@@ -0,0 +1,51 @@
+NIT is a statically typed object-oriented programming language.
+The goal of NIT is to propose a statically typed programming language where structure is not a pain.
+
+NIT has a simple straightforward style and can usually be picked up quickly, particularly by anyone who has programmed before.
+While object-oriented, it allows procedural styles.
+
+The NIT Compiler (nitc) produces efficient machine language binaries.
+
+Some NIT features:
+ * Pure Object-Oriented.
+ * Multiple Inheritance.
+ * Realist typing policy.
+ * Light and clear syntax.
+
+
+Requirement:
+       
+       * gcc           http://gcc.gnu.org/
+
+
+Important files and directory:
+
+       bin/            The NIT tools
+       bin/prmc        The NIT compiler
+       bin/prmdoc      The NIT autodoc
+       BUGS            Known big usability bugs
+       c_src/          C code of nitc (needed to bootstrap)
+       Changelog       List of change between versions
+       doc/            Documentation
+       examples/       Program examples written in NIT
+       LICENCE         License of the software
+       tests/          Non-regression test-suite
+       lib/            NIT standard library
+       Makefile        Bootstrap the NIT tools
+       NOTICE          List of the authors
+       README          This file
+       src/            The NIT tool sources (written in NIT)
+       TODO            What next features are planed
+
+
+How to start:
+
+ * $ make
+ * $ bin/nitc examples/hello_world.nit
+ * $ ./hello_world
+
+
+More information:
+
+       http://www.nitlanguage.org
+
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..2a0847f
--- /dev/null
+++ b/TODO
@@ -0,0 +1,21 @@
+To finish:
+
+* Local property conflicts
+* Owner module conflicts (name and value)
+
+To discuss:
+
+* Attributes
+* Default constructor and constructor inheritance
+
+Later:
+
+* Qualified name
+* Blocks
+* GC
+* Nullable
+* can
+* Real type check (and not just class check)
+* migrate gccx to the executable
+* do not reanalysis/regenerate modules unless needed
+
diff --git a/bin/gccx b/bin/gccx
new file mode 100755 (executable)
index 0000000..2a31b1e
--- /dev/null
+++ b/bin/gccx
@@ -0,0 +1,83 @@
+#!/bin/sh
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Separately recompile a bunch of c files then link them
+
+OPTS="-g" # option for compiler call
+objs="" # List of .o files
+CC="gcc --ansi --pedantic" # Default compiler call
+ext="_savo _sav" # Default flavor to reuse
+out="a.out"  # Default output binary filename
+dir="" # Default tmp dir
+CKSUM="cksum" # Tool that perfors checksum. cksum seems to be very portable
+
+usage()
+{
+       e=`basename "$0"`
+       cat<<END
+Usage: $e [options] modulename [options for module execution]
+-O          Compile with optimizations
+-i          Use the intel compiler instead of gcc
+-I path     Add a include directory
+-o name     Call name the executable
+-d          Create temporary files in a specific directory
+-h          This help
+END
+}
+
+stop=false
+while [ $stop = false ]; do
+       case $1 in 
+               -O) CC="gcc --ansi --pedantic -O2" ext="_savo"; shift;;
+               -i) CC="/opt/intel/cc/10.1.015/bin/icc -O2" ext="_savi"; shift;;
+               -I) OPTS="$OPTS -I $2"; shift; shift;;
+               -o) out="$2"; shift; shift;;
+               -d) dir="$2/"; shift; shift;;
+               -x) OPTS="$OPTS $2"; shift; shift;;
+               -h|"") usage; exit;;
+               *) stop=true
+       esac
+done
+
+for i in "$@"; do
+       j=`basename "$i" .c`
+       found="false"
+       cksum=`gcc -E $i 2> /dev/null | $CKSUM`
+       for e in $ext; do
+               o="$dir$j.$e.o"
+               cksumfile="$dir$j.$e.cksum"
+               if [ -f "$cksumfile" -a -f "$o" ]; then
+                       cksumtry=`cat $cksumfile`
+                       if [ "x$cksum" = "x$cksumtry" ]; then
+                               found=true
+                               break
+                       fi
+               fi
+       done
+       if [ $found = false ]; then
+               echo "* $CC $OPTS -c $i -o $o" >&2
+               if $CC $OPTS -c $i -o $o; then
+                       echo "$cksum" > "$cksumfile"
+               else
+                       exit 1
+               fi
+       fi
+       objs="$objs $o"
+done
+
+echo "* $CC $OPTS -lm $objs -o $out" >&2
+$CC $OPTS -lm $objs -o "$out"
diff --git a/c_src/Makefile b/c_src/Makefile
new file mode 100644 (file)
index 0000000..fc7b7e8
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+all:
+       ln -sf . .nit_compile 2> /dev/null || true
+       sh nitc._build.sh -o nitc
+
+clean:
+       rm -f -- *._sav[oi].* *._sav.* || true
+
+dist-clean: clean
+       rm -f -- nitc || true
diff --git a/c_src/README b/c_src/README
new file mode 100644 (file)
index 0000000..df47615
--- /dev/null
@@ -0,0 +1,2 @@
+This directory contains C files generated by nitc, the NIT compiler, of itself.
+They are used to boostrap nitc, the NIT compiler
diff --git a/c_src/abstract_collection._sep.c b/c_src/abstract_collection._sep.c
new file mode 100644 (file)
index 0000000..4ee19e0
--- /dev/null
@@ -0,0 +1,896 @@
+#include "abstract_collection._sep.h"
+val_t abstract_collection___Collection___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::iterator (bin/../lib/standard//abstract_collection.nit:42,2--43:26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method iterator called (bin/../lib/standard//abstract_collection.nit:42,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::is_empty (bin/../lib/standard//abstract_collection.nit:45,2--46:20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_empty called (bin/../lib/standard//abstract_collection.nit:45,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___length(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::length (bin/../lib/standard//abstract_collection.nit:48,2--49:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method length called (bin/../lib/standard//abstract_collection.nit:48,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::has (bin/../lib/standard//abstract_collection.nit:51,2--53:24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method has called (bin/../lib/standard//abstract_collection.nit:51,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::has_only (bin/../lib/standard//abstract_collection.nit:55,2--58:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method has_only called (bin/../lib/standard//abstract_collection.nit:55,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::count (bin/../lib/standard//abstract_collection.nit:60,2--62:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method count called (bin/../lib/standard//abstract_collection.nit:60,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Collection___first(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Collection::first (bin/../lib/standard//abstract_collection.nit:64,2--65:14)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method first called (bin/../lib/standard//abstract_collection.nit:64,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___NaiveCollection___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::is_empty (bin/../lib/standard//abstract_collection.nit:72,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___NaiveCollection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*NaiveCollection::length*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___NaiveCollection___length(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::length (bin/../lib/standard//abstract_collection.nit:74,2--78:11)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*NaiveCollection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( variable0 /*nb*/)) /*nb*/;
+    continue_2: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_2: while(0);
+  variable0 =  variable0 /*nb*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___NaiveCollection___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::has (bin/../lib/standard//abstract_collection.nit:81,2--84:14)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*NaiveCollection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*i*/ ==  variable0 /*item*/) || (( variable2 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))( variable2 /*i*/,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label3;
+    }
+    continue_4: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_4: while(0);
+  variable1 =  TAG_Bool(false);
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___NaiveCollection___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::has_only (bin/../lib/standard//abstract_collection.nit:87,2--90:13)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*NaiveCollection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*i*/ ==  variable0 /*item*/) || (( variable2 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))( variable2 /*i*/,  variable0 /*item*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label5;
+    }
+    continue_6: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_6: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___NaiveCollection___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::count (bin/../lib/standard//abstract_collection.nit:93,2--97:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable2 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*NaiveCollection::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = TAG_Bool(( variable3 /*i*/ ==  variable0 /*item*/) || (( variable3 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*i*/,COLOR_kernel___Object_____eqeq))( variable3 /*i*/,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
+    }
+    continue_8: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_8: while(0);
+  variable1 =  variable1 /*nb*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___NaiveCollection___first(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::NaiveCollection::first (bin/../lib/standard//abstract_collection.nit:100,2--103:22)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___NaiveCollection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*NaiveCollection::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//abstract_collection.nit:102,3--19\n"); nit_exit(1);}
+  variable0 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*NaiveCollection::iterator*/;
+  variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___Iterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Iterator::item (bin/../lib/standard//abstract_collection.nit:110,2--112:13)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method item called (bin/../lib/standard//abstract_collection.nit:110,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void abstract_collection___Iterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Iterator::next (bin/../lib/standard//abstract_collection.nit:114,2--116:10)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method next called (bin/../lib/standard//abstract_collection.nit:114,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Iterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Iterator::is_ok (bin/../lib/standard//abstract_collection.nit:118,2--119:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_ok called (bin/../lib/standard//abstract_collection.nit:118,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___Container___first(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::first (bin/../lib/standard//abstract_collection.nit:126,2--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___Container___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::is_empty (bin/../lib/standard//abstract_collection.nit:128,2--36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___Container___length(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::length (bin/../lib/standard//abstract_collection.nit:130,2--30)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___Container___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::has (bin/../lib/standard//abstract_collection.nit:132,2--51)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*an_item*/) /*Object::==*/)))));
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___Container___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::has_only (bin/../lib/standard//abstract_collection.nit:134,2--56)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*an_item*/) /*Object::==*/)))));
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___Container___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::count (bin/../lib/standard//abstract_collection.nit:136,2--141:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*an_item*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Int(1);
+    goto return_label15;
+  } else { /*if*/
+    variable1 =  TAG_Int(0);
+    goto return_label15;
+  }
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___Container___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::iterator (bin/../lib/standard//abstract_collection.nit:145,2--60)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_abstract_collection___ContainerIterator___init( self); /*new ContainerIterator[E]*/
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___Container___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::init (bin/../lib/standard//abstract_collection.nit:147,2--148:24)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Container].i]) return;
+  ATTR_abstract_collection___Container____item( self) /*Container::_item*/ =  variable0 /*e*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Container].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Container___item(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::item (bin/../lib/standard//abstract_collection.nit:150,2--151:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
+}
+void abstract_collection___Container___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Container::item= (bin/../lib/standard//abstract_collection.nit:150,2--151:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstract_collection___Container____item( self) /*Container::_item*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___ContainerIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::ContainerIterator::item (bin/../lib/standard//abstract_collection.nit:157,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___ContainerIterator____container( self) /*ContainerIterator::_container*/;
+  variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*Container::item*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___ContainerIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::ContainerIterator::next (bin/../lib/standard//abstract_collection.nit:159,2--34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstract_collection___ContainerIterator____is_ok( self) /*ContainerIterator::_is_ok*/ =  TAG_Bool(false);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___ContainerIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "abstract_collection::ContainerIterator::init (bin/../lib/standard//abstract_collection.nit:161,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ContainerIterator].i]) return;
+  ATTR_abstract_collection___ContainerIterator____container( self) /*ContainerIterator::_container*/ =  variable0 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ContainerIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___ContainerIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::ContainerIterator::is_ok (bin/../lib/standard//abstract_collection.nit:163,2--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstract_collection___ContainerIterator____is_ok( self) /*ContainerIterator::_is_ok*/;
+}
+void abstract_collection___RemovableCollection___clear(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::RemovableCollection::clear (bin/../lib/standard//abstract_collection.nit:171,2--172:11)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method clear called (bin/../lib/standard//abstract_collection.nit:171,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___RemovableCollection___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::RemovableCollection::remove (bin/../lib/standard//abstract_collection.nit:174,2--175:20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method remove called (bin/../lib/standard//abstract_collection.nit:174,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___RemovableCollection___remove_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::RemovableCollection::remove_all (bin/../lib/standard//abstract_collection.nit:177,2--178:59)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  while (true) { /*while*/
+    variable1 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*item*/) /*RemovableCollection::has*/;
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    ((abstract_collection___RemovableCollection___remove_t)CALL( self,COLOR_abstract_collection___RemovableCollection___remove))( self,  variable0 /*item*/) /*RemovableCollection::remove*/;
+    continue_22: while(0);
+  }
+  break_22: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___SimpleCollection___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::SimpleCollection::add (bin/../lib/standard//abstract_collection.nit:184,2--186:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method add called (bin/../lib/standard//abstract_collection.nit:184,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___SimpleCollection___add_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::SimpleCollection::add_all (bin/../lib/standard//abstract_collection.nit:188,2--189:81)"};
+  val_t variable0;
+  val_t variable1;
+      val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*coll*/ ==  NIT_NULL /*null*/) || (( variable0 /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))( variable0 /*coll*/,  NIT_NULL /*null*/) /*Collection::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*coll*/) /*Collection::iterator*/;
+    while (true) { /*for*/
+      variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable2)) break; /*for*/
+      variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self,  variable2 /*i*/) /*SimpleCollection::add*/;
+      continue_24: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+    }
+    break_24: while(0);
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Set___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Set::has_only (bin/../lib/standard//abstract_collection.nit:204,2--212:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*Set::length*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*l*/)==( TAG_Int(1)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*item*/) /*Set::has*/;
+    variable1 = variable2;
+    goto return_label25;
+  } else { /*if*/
+    variable2 = TAG_Bool(( variable1 /*l*/)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label25;
+    } else { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label25;
+    }
+  }
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___Set___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Set::count (bin/../lib/standard//abstract_collection.nit:216,2--222:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*item*/) /*Set::has*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Int(1);
+    goto return_label26;
+  } else { /*if*/
+    variable1 =  TAG_Int(0);
+    goto return_label26;
+  }
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void abstract_collection___Set___remove_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Set::remove_all (bin/../lib/standard//abstract_collection.nit:226,2--227:43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((abstract_collection___RemovableCollection___remove_t)CALL( self,COLOR_abstract_collection___RemovableCollection___remove))( self,  variable0 /*item*/) /*Set::remove*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Map_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::[] (bin/../lib/standard//abstract_collection.nit:244,2--245:19)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method [] called (bin/../lib/standard//abstract_collection.nit:244,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void abstract_collection___Map_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::[]= (bin/../lib/standard//abstract_collection.nit:247,2--248:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method []= called (bin/../lib/standard//abstract_collection.nit:247,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Map___has_key(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::has_key (bin/../lib/standard//abstract_collection.nit:250,2--251:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method has_key called (bin/../lib/standard//abstract_collection.nit:250,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void abstract_collection___Map___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::remove_at (bin/../lib/standard//abstract_collection.nit:253,2--254:22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method remove_at called (bin/../lib/standard//abstract_collection.nit:253,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___Map___recover_with(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::recover_with (bin/../lib/standard//abstract_collection.nit:256,2--263:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___Map___iterator_t)CALL( variable0 /*map*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*map*/) /*Map::iterator*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable1 /*i*/) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ((abstract_collection___MapIterator___key_t)CALL( variable1 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable1 /*i*/) /*MapIterator::key*/;
+    variable3 = ((abstract_collection___Iterator___item_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___item))( variable1 /*i*/) /*MapIterator::item*/;
+    ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable2, variable3) /*Map::[]=*/;
+    ((abstract_collection___Iterator___next_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___next))( variable1 /*i*/) /*MapIterator::next*/;
+    continue_29: while(0);
+  }
+  break_29: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Map___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Map::iterator (bin/../lib/standard//abstract_collection.nit:267,2--38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method iterator called (bin/../lib/standard//abstract_collection.nit:267,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___MapIterator___key(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::MapIterator::key (bin/../lib/standard//abstract_collection.nit:273,2--274:12)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method key called (bin/../lib/standard//abstract_collection.nit:273,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void abstract_collection___MapIterator___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::MapIterator::item= (bin/../lib/standard//abstract_collection.nit:276,2--277:19)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method item= called (bin/../lib/standard//abstract_collection.nit:276,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___IndexedCollection___first(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::first (bin/../lib/standard//abstract_collection.nit:285,2--290:15)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*IndexedCollection::is_empty*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert 'not_empty'  failed: bin/../lib/standard//abstract_collection.nit:289,3--32\n"); nit_exit(1);}
+  variable0 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  TAG_Int(0)) /*IndexedCollection::[]*/;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___IndexedCollection___first__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::first= (bin/../lib/standard//abstract_collection.nit:293,2--296:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self,  TAG_Int(0),  variable0 /*item*/) /*IndexedCollection::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___IndexedCollection___last(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::last (bin/../lib/standard//abstract_collection.nit:298,2--303:22)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*IndexedCollection::is_empty*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert 'not_empty'  failed: bin/../lib/standard//abstract_collection.nit:302,3--32\n"); nit_exit(1);}
+  variable0 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*IndexedCollection::length*/;
+  variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1)));
+  variable0 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self, variable0) /*IndexedCollection::[]*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___IndexedCollection___last__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::last= (bin/../lib/standard//abstract_collection.nit:306,2--314:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*IndexedCollection::length*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*l*/)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*l*/)-UNTAG_Int( TAG_Int(1)));
+    ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable2,  variable0 /*item*/) /*IndexedCollection::[]=*/;
+  } else { /*if*/
+    ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self,  TAG_Int(0),  variable0 /*item*/) /*IndexedCollection::[]=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___IndexedCollection___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::add (bin/../lib/standard//abstract_collection.nit:318,2--319:28)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((abstract_collection___IndexedCollection___push_t)CALL( self,COLOR_abstract_collection___IndexedCollection___push))( self,  variable0 /*e*/) /*IndexedCollection::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___IndexedCollection___push(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::push (bin/../lib/standard//abstract_collection.nit:321,2--322:15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method push called (bin/../lib/standard//abstract_collection.nit:321,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___IndexedCollection___append(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::append (bin/../lib/standard//abstract_collection.nit:324,2--325:81)"};
+  val_t variable0;
+  val_t variable1;
+      val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*coll*/ ==  NIT_NULL /*null*/) || (( variable0 /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))( variable0 /*coll*/,  NIT_NULL /*null*/) /*Collection::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*coll*/) /*Collection::iterator*/;
+    while (true) { /*for*/
+      variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable2)) break; /*for*/
+      variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+      ((abstract_collection___IndexedCollection___push_t)CALL( self,COLOR_abstract_collection___IndexedCollection___push))( self,  variable2 /*i*/) /*IndexedCollection::push*/;
+      continue_36: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+    }
+    break_36: while(0);
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___IndexedCollection___pop(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::pop (bin/../lib/standard//abstract_collection.nit:327,2--328:12)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method pop called (bin/../lib/standard//abstract_collection.nit:327,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void abstract_collection___IndexedCollection___unshift(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::unshift (bin/../lib/standard//abstract_collection.nit:330,2--331:18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method unshift called (bin/../lib/standard//abstract_collection.nit:330,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___IndexedCollection___shift(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::shift (bin/../lib/standard//abstract_collection.nit:333,2--335:14)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method shift called (bin/../lib/standard//abstract_collection.nit:333,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___IndexedCollection___index_of(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::index_of (bin/../lib/standard//abstract_collection.nit:337,2--346:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___IndexedCollection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*IndexedCollection::iterator*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable1 /*i*/) /*IndexedIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___item))( variable1 /*i*/) /*IndexedIterator::item*/;
+    variable2 = TAG_Bool((variable2 ==  variable0 /*item*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((abstract_collection___IndexedIterator___index_t)CALL( variable1 /*i*/,COLOR_abstract_collection___IndexedIterator___index))( variable1 /*i*/) /*IndexedIterator::index*/;
+      variable1 = variable2;
+      goto return_label37;
+    }
+    ((abstract_collection___Iterator___next_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___next))( variable1 /*i*/) /*IndexedIterator::next*/;
+    continue_38: while(0);
+  }
+  break_38: while(0);
+  variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___IndexedCollection___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedCollection::iterator (bin/../lib/standard//abstract_collection.nit:349,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method iterator called (bin/../lib/standard//abstract_collection.nit:349,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___IndexedIterator___index(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedIterator::index (bin/../lib/standard//abstract_collection.nit:355,2--356:16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method index called (bin/../lib/standard//abstract_collection.nit:355,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___IndexedIterator___key(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::IndexedIterator::key (bin/../lib/standard//abstract_collection.nit:358,2--359:31)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___IndexedIterator___index_t)CALL( self,COLOR_abstract_collection___IndexedIterator___index))( self) /*IndexedIterator::index*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___CoupleMap___couple_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMap::couple_at (bin/../lib/standard//abstract_collection.nit:365,2--367:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method couple_at called (bin/../lib/standard//abstract_collection.nit:365,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t abstract_collection___CoupleMap_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMap::[] (bin/../lib/standard//abstract_collection.nit:369,2--375:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___CoupleMap___couple_at_t)CALL( self,COLOR_abstract_collection___CoupleMap___couple_at))( self,  variable0 /*key*/) /*CoupleMap::couple_at*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*c*/ ==  NIT_NULL /*null*/) || (( variable1 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))( variable1 /*c*/,  NIT_NULL /*null*/) /*Couple::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label40;
+  } else { /*if*/
+    variable2 = ((abstract_collection___Couple___second_t)CALL( variable1 /*c*/,COLOR_abstract_collection___Couple___second))( variable1 /*c*/) /*Couple::second*/;
+    variable1 = variable2;
+    goto return_label40;
+  }
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___CoupleMap___has_key(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMap::has_key (bin/../lib/standard//abstract_collection.nit:379,2--57)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___CoupleMap___couple_at_t)CALL( self,COLOR_abstract_collection___CoupleMap___couple_at))( self,  variable0 /*key*/) /*CoupleMap::couple_at*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Couple::==*/)))))));
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstract_collection___CoupleMapIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::item (bin/../lib/standard//abstract_collection.nit:387,2--44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+  variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+  variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*Couple::second*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___CoupleMapIterator___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::item= (bin/../lib/standard//abstract_collection.nit:389,2--45)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+  variable1 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+  ((abstract_collection___Couple___second__eq_t)CALL(variable1,COLOR_abstract_collection___Couple___second__eq))(variable1,  variable0 /*e*/) /*Couple::second=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___CoupleMapIterator___key(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::key (bin/../lib/standard//abstract_collection.nit:391,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+  variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+  variable0 = ((abstract_collection___Couple___first_t)CALL(variable0,COLOR_abstract_collection___Couple___first))(variable0) /*Couple::first*/;
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstract_collection___CoupleMapIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::is_ok (bin/../lib/standard//abstract_collection.nit:393,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+  variable0 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
+  goto return_label45;
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstract_collection___CoupleMapIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::next (bin/../lib/standard//abstract_collection.nit:395,2--398:56)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+  ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
+  while (true) { /*while*/
+    variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+    variable0 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
+    variable1 = variable0;
+    if (UNTAG_Bool(variable1)) { /* and */
+      variable1 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+      variable1 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+      variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Couple::==*/)))));
+    }
+    variable0 = variable1;
+    if (!UNTAG_Bool(variable0)) break; /* while*/
+    variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
+    ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
+    continue_47: while(0);
+  }
+  break_47: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___CoupleMapIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "abstract_collection::CoupleMapIterator::init (bin/../lib/standard//abstract_collection.nit:403,2--44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CoupleMapIterator].i]) return;
+  ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/ =  variable0 /*i*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CoupleMapIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Couple___first(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Couple::first (bin/../lib/standard//abstract_collection.nit:411,2--412:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/;
+}
+void abstract_collection___Couple___first__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Couple::first= (bin/../lib/standard//abstract_collection.nit:411,2--412:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstract_collection___Couple___second(val_t  self) {
+  struct trace_t trace = {NULL, "abstract_collection::Couple::second (bin/../lib/standard//abstract_collection.nit:414,2--415:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/;
+}
+void abstract_collection___Couple___second__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstract_collection::Couple::second= (bin/../lib/standard//abstract_collection.nit:414,2--415:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void abstract_collection___Couple___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "abstract_collection::Couple::init (bin/../lib/standard//abstract_collection.nit:417,2--421:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Couple].i]) return;
+  ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/ =  variable0 /*f*/;
+  ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/ =  variable1 /*s*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Couple].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/abstract_collection._sep.h b/c_src/abstract_collection._sep.h
new file mode 100644 (file)
index 0000000..491d28d
--- /dev/null
@@ -0,0 +1,288 @@
+#ifndef abstract_collection__sep
+#define abstract_collection__sep
+#include "kernel._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Collection[];
+
+extern const classtable_elt_t VFT_NaiveCollection[];
+
+extern const classtable_elt_t VFT_Iterator[];
+
+extern const classtable_elt_t VFT_Container[];
+
+extern const classtable_elt_t VFT_ContainerIterator[];
+
+extern const classtable_elt_t VFT_RemovableCollection[];
+
+extern const classtable_elt_t VFT_SimpleCollection[];
+
+extern const classtable_elt_t VFT_Set[];
+
+extern const classtable_elt_t VFT_Map[];
+
+extern const classtable_elt_t VFT_MapIterator[];
+
+extern const classtable_elt_t VFT_IndexedCollection[];
+
+extern const classtable_elt_t VFT_IndexedIterator[];
+
+extern const classtable_elt_t VFT_CoupleMap[];
+
+extern const classtable_elt_t VFT_CoupleMapIterator[];
+
+extern const classtable_elt_t VFT_Couple[];
+extern const int SFT_abstract_collection[];
+#define ID_Collection SFT_abstract_collection[0]
+#define COLOR_Collection SFT_abstract_collection[1]
+#define INIT_TABLE_POS_Collection SFT_abstract_collection[2]
+#define COLOR_abstract_collection___Collection___iterator SFT_abstract_collection[3]
+#define COLOR_abstract_collection___Collection___is_empty SFT_abstract_collection[4]
+#define COLOR_abstract_collection___Collection___length SFT_abstract_collection[5]
+#define COLOR_abstract_collection___Collection___has SFT_abstract_collection[6]
+#define COLOR_abstract_collection___Collection___has_only SFT_abstract_collection[7]
+#define COLOR_abstract_collection___Collection___count SFT_abstract_collection[8]
+#define COLOR_abstract_collection___Collection___first SFT_abstract_collection[9]
+#define ID_NaiveCollection SFT_abstract_collection[10]
+#define COLOR_NaiveCollection SFT_abstract_collection[11]
+#define INIT_TABLE_POS_NaiveCollection SFT_abstract_collection[12]
+#define ID_Iterator SFT_abstract_collection[13]
+#define COLOR_Iterator SFT_abstract_collection[14]
+#define INIT_TABLE_POS_Iterator SFT_abstract_collection[15]
+#define COLOR_abstract_collection___Iterator___item SFT_abstract_collection[16]
+#define COLOR_abstract_collection___Iterator___next SFT_abstract_collection[17]
+#define COLOR_abstract_collection___Iterator___is_ok SFT_abstract_collection[18]
+#define ID_Container SFT_abstract_collection[19]
+#define COLOR_Container SFT_abstract_collection[20]
+#define COLOR_abstract_collection___Container____item SFT_abstract_collection[21]
+#define INIT_TABLE_POS_Container SFT_abstract_collection[22]
+#define COLOR_abstract_collection___Container___init SFT_abstract_collection[23]
+#define COLOR_abstract_collection___Container___item SFT_abstract_collection[24]
+#define COLOR_abstract_collection___Container___item__eq SFT_abstract_collection[25]
+#define ID_ContainerIterator SFT_abstract_collection[26]
+#define COLOR_ContainerIterator SFT_abstract_collection[27]
+#define COLOR_abstract_collection___ContainerIterator____is_ok SFT_abstract_collection[28]
+#define COLOR_abstract_collection___ContainerIterator____container SFT_abstract_collection[29]
+#define INIT_TABLE_POS_ContainerIterator SFT_abstract_collection[30]
+#define COLOR_abstract_collection___ContainerIterator___init SFT_abstract_collection[31]
+#define ID_RemovableCollection SFT_abstract_collection[32]
+#define COLOR_RemovableCollection SFT_abstract_collection[33]
+#define INIT_TABLE_POS_RemovableCollection SFT_abstract_collection[34]
+#define COLOR_abstract_collection___RemovableCollection___clear SFT_abstract_collection[35]
+#define COLOR_abstract_collection___RemovableCollection___remove SFT_abstract_collection[36]
+#define COLOR_abstract_collection___RemovableCollection___remove_all SFT_abstract_collection[37]
+#define ID_SimpleCollection SFT_abstract_collection[38]
+#define COLOR_SimpleCollection SFT_abstract_collection[39]
+#define INIT_TABLE_POS_SimpleCollection SFT_abstract_collection[40]
+#define COLOR_abstract_collection___SimpleCollection___add SFT_abstract_collection[41]
+#define COLOR_abstract_collection___SimpleCollection___add_all SFT_abstract_collection[42]
+#define ID_Set SFT_abstract_collection[43]
+#define COLOR_Set SFT_abstract_collection[44]
+#define INIT_TABLE_POS_Set SFT_abstract_collection[45]
+#define ID_Map SFT_abstract_collection[46]
+#define COLOR_Map SFT_abstract_collection[47]
+#define INIT_TABLE_POS_Map SFT_abstract_collection[48]
+#define COLOR_abstract_collection___Map_____bra SFT_abstract_collection[49]
+#define COLOR_abstract_collection___Map_____braeq SFT_abstract_collection[50]
+#define COLOR_abstract_collection___Map___has_key SFT_abstract_collection[51]
+#define COLOR_abstract_collection___Map___remove_at SFT_abstract_collection[52]
+#define COLOR_abstract_collection___Map___recover_with SFT_abstract_collection[53]
+#define ID_MapIterator SFT_abstract_collection[54]
+#define COLOR_MapIterator SFT_abstract_collection[55]
+#define INIT_TABLE_POS_MapIterator SFT_abstract_collection[56]
+#define COLOR_abstract_collection___MapIterator___key SFT_abstract_collection[57]
+#define COLOR_abstract_collection___MapIterator___item__eq SFT_abstract_collection[58]
+#define ID_IndexedCollection SFT_abstract_collection[59]
+#define COLOR_IndexedCollection SFT_abstract_collection[60]
+#define INIT_TABLE_POS_IndexedCollection SFT_abstract_collection[61]
+#define COLOR_abstract_collection___IndexedCollection___first__eq SFT_abstract_collection[62]
+#define COLOR_abstract_collection___IndexedCollection___last SFT_abstract_collection[63]
+#define COLOR_abstract_collection___IndexedCollection___last__eq SFT_abstract_collection[64]
+#define COLOR_abstract_collection___IndexedCollection___push SFT_abstract_collection[65]
+#define COLOR_abstract_collection___IndexedCollection___append SFT_abstract_collection[66]
+#define COLOR_abstract_collection___IndexedCollection___pop SFT_abstract_collection[67]
+#define COLOR_abstract_collection___IndexedCollection___unshift SFT_abstract_collection[68]
+#define COLOR_abstract_collection___IndexedCollection___shift SFT_abstract_collection[69]
+#define COLOR_abstract_collection___IndexedCollection___index_of SFT_abstract_collection[70]
+#define ID_IndexedIterator SFT_abstract_collection[71]
+#define COLOR_IndexedIterator SFT_abstract_collection[72]
+#define INIT_TABLE_POS_IndexedIterator SFT_abstract_collection[73]
+#define COLOR_abstract_collection___IndexedIterator___index SFT_abstract_collection[74]
+#define ID_CoupleMap SFT_abstract_collection[75]
+#define COLOR_CoupleMap SFT_abstract_collection[76]
+#define INIT_TABLE_POS_CoupleMap SFT_abstract_collection[77]
+#define COLOR_abstract_collection___CoupleMap___couple_at SFT_abstract_collection[78]
+#define ID_CoupleMapIterator SFT_abstract_collection[79]
+#define COLOR_CoupleMapIterator SFT_abstract_collection[80]
+#define COLOR_abstract_collection___CoupleMapIterator____iter SFT_abstract_collection[81]
+#define INIT_TABLE_POS_CoupleMapIterator SFT_abstract_collection[82]
+#define COLOR_abstract_collection___CoupleMapIterator___init SFT_abstract_collection[83]
+#define ID_Couple SFT_abstract_collection[84]
+#define COLOR_Couple SFT_abstract_collection[85]
+#define COLOR_abstract_collection___Couple____first SFT_abstract_collection[86]
+#define COLOR_abstract_collection___Couple____second SFT_abstract_collection[87]
+#define INIT_TABLE_POS_Couple SFT_abstract_collection[88]
+#define COLOR_abstract_collection___Couple___first SFT_abstract_collection[89]
+#define COLOR_abstract_collection___Couple___first__eq SFT_abstract_collection[90]
+#define COLOR_abstract_collection___Couple___second SFT_abstract_collection[91]
+#define COLOR_abstract_collection___Couple___second__eq SFT_abstract_collection[92]
+#define COLOR_abstract_collection___Couple___init SFT_abstract_collection[93]
+typedef val_t (* abstract_collection___Collection___iterator_t)(val_t  self);
+val_t abstract_collection___Collection___iterator(val_t  self);
+typedef val_t (* abstract_collection___Collection___is_empty_t)(val_t  self);
+val_t abstract_collection___Collection___is_empty(val_t  self);
+typedef val_t (* abstract_collection___Collection___length_t)(val_t  self);
+val_t abstract_collection___Collection___length(val_t  self);
+typedef val_t (* abstract_collection___Collection___has_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Collection___has(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Collection___has_only_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Collection___has_only(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Collection___count_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Collection___count(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Collection___first_t)(val_t  self);
+val_t abstract_collection___Collection___first(val_t  self);
+typedef val_t (* abstract_collection___NaiveCollection___is_empty_t)(val_t  self);
+val_t abstract_collection___NaiveCollection___is_empty(val_t  self);
+typedef val_t (* abstract_collection___NaiveCollection___length_t)(val_t  self);
+val_t abstract_collection___NaiveCollection___length(val_t  self);
+typedef val_t (* abstract_collection___NaiveCollection___has_t)(val_t  self, val_t  param0);
+val_t abstract_collection___NaiveCollection___has(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___NaiveCollection___has_only_t)(val_t  self, val_t  param0);
+val_t abstract_collection___NaiveCollection___has_only(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___NaiveCollection___count_t)(val_t  self, val_t  param0);
+val_t abstract_collection___NaiveCollection___count(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___NaiveCollection___first_t)(val_t  self);
+val_t abstract_collection___NaiveCollection___first(val_t  self);
+typedef val_t (* abstract_collection___Iterator___item_t)(val_t  self);
+val_t abstract_collection___Iterator___item(val_t  self);
+typedef void (* abstract_collection___Iterator___next_t)(val_t  self);
+void abstract_collection___Iterator___next(val_t  self);
+typedef val_t (* abstract_collection___Iterator___is_ok_t)(val_t  self);
+val_t abstract_collection___Iterator___is_ok(val_t  self);
+typedef val_t (* abstract_collection___Container___first_t)(val_t  self);
+val_t abstract_collection___Container___first(val_t  self);
+typedef val_t (* abstract_collection___Container___is_empty_t)(val_t  self);
+val_t abstract_collection___Container___is_empty(val_t  self);
+typedef val_t (* abstract_collection___Container___length_t)(val_t  self);
+val_t abstract_collection___Container___length(val_t  self);
+typedef val_t (* abstract_collection___Container___has_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Container___has(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Container___has_only_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Container___has_only(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Container___count_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Container___count(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Container___iterator_t)(val_t  self);
+val_t abstract_collection___Container___iterator(val_t  self);
+typedef void (* abstract_collection___Container___init_t)(val_t  self, val_t  param0, int* init_table);
+void abstract_collection___Container___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_abstract_collection___Container___init(val_t  param0);
+#define ATTR_abstract_collection___Container____item(recv) ATTR(recv, COLOR_abstract_collection___Container____item)
+typedef val_t (* abstract_collection___Container___item_t)(val_t  self);
+val_t abstract_collection___Container___item(val_t  self);
+typedef void (* abstract_collection___Container___item__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___Container___item__eq(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___ContainerIterator___item_t)(val_t  self);
+val_t abstract_collection___ContainerIterator___item(val_t  self);
+typedef void (* abstract_collection___ContainerIterator___next_t)(val_t  self);
+void abstract_collection___ContainerIterator___next(val_t  self);
+typedef void (* abstract_collection___ContainerIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void abstract_collection___ContainerIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_abstract_collection___ContainerIterator___init(val_t  param0);
+#define ATTR_abstract_collection___ContainerIterator____is_ok(recv) ATTR(recv, COLOR_abstract_collection___ContainerIterator____is_ok)
+typedef val_t (* abstract_collection___ContainerIterator___is_ok_t)(val_t  self);
+val_t abstract_collection___ContainerIterator___is_ok(val_t  self);
+#define ATTR_abstract_collection___ContainerIterator____container(recv) ATTR(recv, COLOR_abstract_collection___ContainerIterator____container)
+typedef void (* abstract_collection___RemovableCollection___clear_t)(val_t  self);
+void abstract_collection___RemovableCollection___clear(val_t  self);
+typedef void (* abstract_collection___RemovableCollection___remove_t)(val_t  self, val_t  param0);
+void abstract_collection___RemovableCollection___remove(val_t  self, val_t  param0);
+typedef void (* abstract_collection___RemovableCollection___remove_all_t)(val_t  self, val_t  param0);
+void abstract_collection___RemovableCollection___remove_all(val_t  self, val_t  param0);
+typedef void (* abstract_collection___SimpleCollection___add_t)(val_t  self, val_t  param0);
+void abstract_collection___SimpleCollection___add(val_t  self, val_t  param0);
+typedef void (* abstract_collection___SimpleCollection___add_all_t)(val_t  self, val_t  param0);
+void abstract_collection___SimpleCollection___add_all(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Set___has_only_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Set___has_only(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Set___count_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Set___count(val_t  self, val_t  param0);
+typedef void (* abstract_collection___Set___remove_all_t)(val_t  self, val_t  param0);
+void abstract_collection___Set___remove_all(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Map_____bra_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Map_____bra(val_t  self, val_t  param0);
+typedef void (* abstract_collection___Map_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void abstract_collection___Map_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* abstract_collection___Map___has_key_t)(val_t  self, val_t  param0);
+val_t abstract_collection___Map___has_key(val_t  self, val_t  param0);
+typedef void (* abstract_collection___Map___remove_at_t)(val_t  self, val_t  param0);
+void abstract_collection___Map___remove_at(val_t  self, val_t  param0);
+typedef void (* abstract_collection___Map___recover_with_t)(val_t  self, val_t  param0);
+void abstract_collection___Map___recover_with(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___Map___iterator_t)(val_t  self);
+val_t abstract_collection___Map___iterator(val_t  self);
+typedef val_t (* abstract_collection___MapIterator___key_t)(val_t  self);
+val_t abstract_collection___MapIterator___key(val_t  self);
+typedef void (* abstract_collection___MapIterator___item__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___MapIterator___item__eq(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___IndexedCollection___first_t)(val_t  self);
+val_t abstract_collection___IndexedCollection___first(val_t  self);
+typedef void (* abstract_collection___IndexedCollection___first__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___first__eq(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___IndexedCollection___last_t)(val_t  self);
+val_t abstract_collection___IndexedCollection___last(val_t  self);
+typedef void (* abstract_collection___IndexedCollection___last__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___last__eq(val_t  self, val_t  param0);
+typedef void (* abstract_collection___IndexedCollection___add_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___add(val_t  self, val_t  param0);
+typedef void (* abstract_collection___IndexedCollection___push_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___push(val_t  self, val_t  param0);
+typedef void (* abstract_collection___IndexedCollection___append_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___append(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___IndexedCollection___pop_t)(val_t  self);
+val_t abstract_collection___IndexedCollection___pop(val_t  self);
+typedef void (* abstract_collection___IndexedCollection___unshift_t)(val_t  self, val_t  param0);
+void abstract_collection___IndexedCollection___unshift(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___IndexedCollection___shift_t)(val_t  self);
+val_t abstract_collection___IndexedCollection___shift(val_t  self);
+typedef val_t (* abstract_collection___IndexedCollection___index_of_t)(val_t  self, val_t  param0);
+val_t abstract_collection___IndexedCollection___index_of(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___IndexedCollection___iterator_t)(val_t  self);
+val_t abstract_collection___IndexedCollection___iterator(val_t  self);
+typedef val_t (* abstract_collection___IndexedIterator___index_t)(val_t  self);
+val_t abstract_collection___IndexedIterator___index(val_t  self);
+typedef val_t (* abstract_collection___IndexedIterator___key_t)(val_t  self);
+val_t abstract_collection___IndexedIterator___key(val_t  self);
+typedef val_t (* abstract_collection___CoupleMap___couple_at_t)(val_t  self, val_t  param0);
+val_t abstract_collection___CoupleMap___couple_at(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___CoupleMap_____bra_t)(val_t  self, val_t  param0);
+val_t abstract_collection___CoupleMap_____bra(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___CoupleMap___has_key_t)(val_t  self, val_t  param0);
+val_t abstract_collection___CoupleMap___has_key(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___CoupleMapIterator___item_t)(val_t  self);
+val_t abstract_collection___CoupleMapIterator___item(val_t  self);
+typedef void (* abstract_collection___CoupleMapIterator___item__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___CoupleMapIterator___item__eq(val_t  self, val_t  param0);
+typedef val_t (* abstract_collection___CoupleMapIterator___key_t)(val_t  self);
+val_t abstract_collection___CoupleMapIterator___key(val_t  self);
+typedef val_t (* abstract_collection___CoupleMapIterator___is_ok_t)(val_t  self);
+val_t abstract_collection___CoupleMapIterator___is_ok(val_t  self);
+typedef void (* abstract_collection___CoupleMapIterator___next_t)(val_t  self);
+void abstract_collection___CoupleMapIterator___next(val_t  self);
+#define ATTR_abstract_collection___CoupleMapIterator____iter(recv) ATTR(recv, COLOR_abstract_collection___CoupleMapIterator____iter)
+typedef void (* abstract_collection___CoupleMapIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void abstract_collection___CoupleMapIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_abstract_collection___CoupleMapIterator___init(val_t  param0);
+#define ATTR_abstract_collection___Couple____first(recv) ATTR(recv, COLOR_abstract_collection___Couple____first)
+typedef val_t (* abstract_collection___Couple___first_t)(val_t  self);
+val_t abstract_collection___Couple___first(val_t  self);
+typedef void (* abstract_collection___Couple___first__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___Couple___first__eq(val_t  self, val_t  param0);
+#define ATTR_abstract_collection___Couple____second(recv) ATTR(recv, COLOR_abstract_collection___Couple____second)
+typedef val_t (* abstract_collection___Couple___second_t)(val_t  self);
+val_t abstract_collection___Couple___second(val_t  self);
+typedef void (* abstract_collection___Couple___second__eq_t)(val_t  self, val_t  param0);
+void abstract_collection___Couple___second__eq(val_t  self, val_t  param0);
+typedef void (* abstract_collection___Couple___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void abstract_collection___Couple___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_abstract_collection___Couple___init(val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/abstractmetamodel._sep.c b/c_src/abstractmetamodel._sep.c
new file mode 100644 (file)
index 0000000..3f656b5
--- /dev/null
@@ -0,0 +1,1428 @@
+#include "abstractmetamodel._sep.h"
+void abstractmetamodel___MMContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::init (src/metamodel//abstractmetamodel.nit:26,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMContext].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMContext___module_hierarchy(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::module_hierarchy (src/metamodel//abstractmetamodel.nit:28,2--29:84)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
+}
+val_t abstractmetamodel___MMContext___class_hierarchy(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::class_hierarchy (src/metamodel//abstractmetamodel.nit:31,2--33:91)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMContext____class_hierarchy( self) /*MMContext::_class_hierarchy*/;
+}
+val_t abstractmetamodel___MMContext___modules(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::modules (src/metamodel//abstractmetamodel.nit:38,2--39:61)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMContext____modules( self) /*MMContext::_modules*/;
+}
+void abstractmetamodel___MMContext___add_module(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::add_module (src/metamodel//abstractmetamodel.nit:41,2--48:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:44,3--23\n"); nit_exit(1);}
+  variable2 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
+  variable3 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable3,COLOR_partial_order___PartialOrder___select_smallests))(variable3,  variable1 /*supers*/) /*PartialOrder::select_smallests*/;
+  ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2,  variable0 /*module*/, variable3) /*PartialOrder::add*/;
+  variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:46,3--28\n"); nit_exit(1);}
+  variable2 = ATTR_abstractmetamodel___MMContext____modules( self) /*MMContext::_modules*/;
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*module*/) /*Array::add*/;
+  variable2 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
+  variable2 = ((partial_order___PartialOrder_____bra_t)CALL(variable2,COLOR_partial_order___PartialOrder_____bra))(variable2,  variable0 /*module*/) /*PartialOrder::[]*/;
+  ATTR_abstractmetamodel___MMModule____mhe( variable0 /*module*/) /*MMModule::_mhe*/ = variable2;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMContext___add_global_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::add_global_class (src/metamodel//abstractmetamodel.nit:51,2--52:73)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMContext____global_classes( self) /*MMContext::_global_classes*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*c*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMContext___add_local_class(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMContext::add_local_class (src/metamodel//abstractmetamodel.nit:54,2--71:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+        val_t variable7;
+        val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*sup*/ ==  NIT_NULL /*null*/) || (( variable1 /*sup*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:57,3--20\n"); nit_exit(1);}
+  variable3 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[String]*/
+  variable3 = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*sup*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*sup*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*s*/==NIT_NULL) || VAL_ISA( variable5 /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*csup*/,  variable5 /*s*/) /*Array::add*/;
+    } else { /*if*/
+      variable6 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable5 /*s*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable5 /*s*/) /*MMLocalClass::che*/;
+      variable6 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable6,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable6) /*PartialOrderElement::direct_greaters*/;
+      variable6 = ((array___AbstractArray___iterator_t)CALL(variable6,COLOR_abstract_collection___Collection___iterator))(variable6) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable7)) break; /*for*/
+        variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
+        variable8 = ((array___AbstractArray___has_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___Collection___has))( variable2 /*csup*/,  variable7 /*ss*/) /*Array::has*/;
+        if (UNTAG_Bool(variable8)) { /*if*/
+          goto continue_5;
+        }
+        ((array___AbstractArray___add_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*csup*/,  variable7 /*ss*/) /*Array::add*/;
+        continue_5: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
+      }
+      break_5: while(0);
+    }
+    continue_4: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_4: while(0);
+  variable5 = ATTR_abstractmetamodel___MMContext____class_hierarchy( self) /*MMContext::_class_hierarchy*/;
+  variable5 = ((partial_order___PartialOrder___add_t)CALL(variable5,COLOR_partial_order___PartialOrder___add))(variable5,  variable0 /*c*/,  variable2 /*csup*/) /*PartialOrder::add*/;
+  variable4 = variable5;
+  ATTR_abstractmetamodel___MMLocalClass____che( variable0 /*c*/) /*MMLocalClass::_che*/ =  variable4 /*che*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMDirectory___name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::name (src/metamodel//abstractmetamodel.nit:77,2--78:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____name( self) /*MMDirectory::_name*/;
+}
+val_t abstractmetamodel___MMDirectory___path(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::path (src/metamodel//abstractmetamodel.nit:80,2--81:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____path( self) /*MMDirectory::_path*/;
+}
+val_t abstractmetamodel___MMDirectory___parent(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::parent (src/metamodel//abstractmetamodel.nit:83,2--85:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____parent( self) /*MMDirectory::_parent*/;
+}
+val_t abstractmetamodel___MMDirectory___owner(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::owner (src/metamodel//abstractmetamodel.nit:87,2--88:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/;
+}
+void abstractmetamodel___MMDirectory___owner__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::owner= (src/metamodel//abstractmetamodel.nit:87,2--88:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMDirectory___modules(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::modules (src/metamodel//abstractmetamodel.nit:90,2--91:77)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
+}
+void abstractmetamodel___MMDirectory___add_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::add_module (src/metamodel//abstractmetamodel.nit:93,2--97:32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
+  variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:96,3--41\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
+  variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*module*/) /*Map::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMDirectory___dhe(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::dhe (src/metamodel//abstractmetamodel.nit:100,2--101:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMDirectory____dhe( self) /*MMDirectory::_dhe*/;
+}
+void abstractmetamodel___MMDirectory___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::init (src/metamodel//abstractmetamodel.nit:103,2--106:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDirectory].i]) return;
+  ATTR_abstractmetamodel___MMDirectory____name( self) /*MMDirectory::_name*/ =  variable0 /*name*/;
+  ATTR_abstractmetamodel___MMDirectory____path( self) /*MMDirectory::_path*/ =  variable1 /*path*/;
+  ATTR_abstractmetamodel___MMDirectory____parent( self) /*MMDirectory::_parent*/ =  variable2 /*parent*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDirectory].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMDirectory___full_name_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMDirectory::full_name_for (src/metamodel//abstractmetamodel.nit:109,2--111:41)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((abstractmetamodel___MMDirectory___name_t)CALL( self,COLOR_abstractmetamodel___MMDirectory___name))( self) /*MMDirectory::name*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 =  variable0 /*module_name*/;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
+  variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMModule___context(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::context (src/metamodel//abstractmetamodel.nit:117,2--118:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____context( self) /*MMModule::_context*/;
+}
+val_t abstractmetamodel___MMModule___name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::name (src/metamodel//abstractmetamodel.nit:120,2--121:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____name( self) /*MMModule::_name*/;
+}
+val_t abstractmetamodel___MMModule___full_name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::full_name (src/metamodel//abstractmetamodel.nit:123,2--124:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/;
+}
+val_t abstractmetamodel___MMModule___directory(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::directory (src/metamodel//abstractmetamodel.nit:126,2--127:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____directory( self) /*MMModule::_directory*/;
+}
+val_t abstractmetamodel___MMModule___mhe(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::mhe (src/metamodel//abstractmetamodel.nit:129,2--130:49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____mhe( self) /*MMModule::_mhe*/;
+}
+val_t abstractmetamodel___MMModule___global_classes(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::global_classes (src/metamodel//abstractmetamodel.nit:132,2--133:78)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____global_classes( self) /*MMModule::_global_classes*/;
+}
+val_t abstractmetamodel___MMModule___local_classes(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::local_classes (src/metamodel//abstractmetamodel.nit:135,2--136:75)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____local_classes( self) /*MMModule::_local_classes*/;
+}
+val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::class_specialization_hierarchy (src/metamodel//abstractmetamodel.nit:138,2--139:106)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
+}
+val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::explicit_imported_modules (src/metamodel//abstractmetamodel.nit:150,2--151:79)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self) /*MMModule::_explicit_imported_modules*/;
+}
+void abstractmetamodel___MMModule___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::init (src/metamodel//abstractmetamodel.nit:159,2--168:38)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMModule].i]) return;
+  ATTR_abstractmetamodel___MMModule____name( self) /*MMModule::_name*/ =  variable0 /*name*/;
+  ATTR_abstractmetamodel___MMModule____directory( self) /*MMModule::_directory*/ =  variable1 /*dir*/;
+  ATTR_abstractmetamodel___MMModule____context( self) /*MMModule::_context*/ =  variable2 /*context*/;
+  variable3 = TAG_Bool(( variable1 /*dir*/ ==  NIT_NULL /*null*/) || (( variable1 /*dir*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*dir*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*dir*/,COLOR_kernel___Object_____eqeq))( variable1 /*dir*/,  NIT_NULL /*null*/) /*MMDirectory::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/ =  variable0 /*name*/;
+  } else { /*if*/
+    variable3 = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable1 /*dir*/,  variable0 /*name*/) /*MMDirectory::full_name_for*/;
+    ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/ = variable3;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMModule].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMModule___add_super_module(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::add_super_module (src/metamodel//abstractmetamodel.nit:172,2--191:45)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self) /*MMModule::_explicit_imported_modules*/;
+  ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*m*/) /*Set::add*/;
+  variable2 = TAG_Bool(( variable1 /*visibility_level*/)==( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
+    ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*m*/) /*Set::add*/;
+    variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
+    variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
+    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+    variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
+    variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
+    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+    variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
+    variable3 = ATTR_abstractmetamodel___MMModule____private_modules( variable0 /*m*/) /*MMModule::_private_modules*/;
+    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+  } else { /*if*/
+    variable2 = TAG_Bool(( variable1 /*visibility_level*/)==( TAG_Int(1)));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*m*/) /*Set::add*/;
+      variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
+      variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+      variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
+      variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+    } else { /*if*/
+      variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*m*/) /*Set::add*/;
+      variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
+      variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+      variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
+      variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMModule___visibility_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::visibility_for (src/metamodel//abstractmetamodel.nit:196,2--210:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*m*/ ==  self) || (( variable0 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*m*/, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*m*/,COLOR_kernel___Object_____eqeq))( variable0 /*m*/,  self) /*MMModule::==*/)))));
+  variable2 = variable1;
+  if (!UNTAG_Bool(variable2)) { /* or */
+    variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
+    variable2 = ((abstract_collection___Collection___has_t)CALL(variable2,COLOR_abstract_collection___Collection___has))(variable2,  variable0 /*m*/) /*Set::has*/;
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Int(3);
+    goto return_label11;
+  } else { /*if*/
+    variable1 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
+    variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*m*/) /*Set::has*/;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 =  TAG_Int(2);
+      goto return_label11;
+    } else { /*if*/
+      variable1 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
+      variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*m*/) /*Set::has*/;
+      if (UNTAG_Bool(variable1)) { /*if*/
+        variable1 =  TAG_Int(1);
+        goto return_label11;
+      } else { /*if*/
+        variable1 =  TAG_Int(0);
+        goto return_label11;
+      }
+    }
+  }
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMModule_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::[] (src/metamodel//abstractmetamodel.nit:215,2--223:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:218,3--39\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*c*/ ==  NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/,  NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:219,3--18\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*c*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*c*/) /*Map::[]*/;
+    goto return_label12;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label12;
+  }
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void abstractmetamodel___MMModule___add_local_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::add_local_class (src/metamodel//abstractmetamodel.nit:227,2--231:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_abstractmetamodel___MMLocalClass____module( variable0 /*c*/) /*MMLocalClass::_module*/ =  self;
+  variable1 = ATTR_abstractmetamodel___MMModule____local_classes( self) /*MMModule::_local_classes*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*c*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMModule___class_by_name(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::class_by_name (src/metamodel//abstractmetamodel.nit:234,2--237:37)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
+  variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*n*/) /*Map::[]*/;
+  variable1 = ((abstractmetamodel___MMModule_____bra_t)CALL( self,COLOR_abstractmetamodel___MMModule_____bra))( self, variable1) /*MMModule::[]*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMModule___has_global_class_named(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::has_global_class_named (src/metamodel//abstractmetamodel.nit:240,2--243:40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*n*/) /*Map::has_key*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMModule___global_class_named(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::global_class_named (src/metamodel//abstractmetamodel.nit:246,2--253:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*n*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*n*/) /*Map::[]*/;
+    goto return_label16;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label16;
+  }
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMModule___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::to_s (src/metamodel//abstractmetamodel.nit:257,2--36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMModule::name*/;
+  variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstractmetamodel___MMModule___set_supers_class(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::set_supers_class (src/metamodel//abstractmetamodel.nit:259,2--267:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:262,3--23\n"); nit_exit(1);}
+  variable3 = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable3,COLOR_partial_order___PartialOrder___select_smallests))(variable3,  variable1 /*supers*/) /*PartialOrder::select_smallests*/;
+  variable2 = variable3;
+  variable3 = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___add_t)CALL(variable3,COLOR_partial_order___PartialOrder___add))(variable3,  variable0 /*c*/,  variable2 /*tab*/) /*PartialOrder::add*/;
+  ATTR_abstractmetamodel___MMLocalClass____cshe( variable0 /*c*/) /*MMLocalClass::_cshe*/ = variable3;
+  variable4 = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable0 /*c*/) /*MMLocalClass::crhe*/;
+  variable4 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable4) /*PartialOrderElement::direct_greaters*/;
+  variable4 = ((array___Collection___to_a_t)CALL(variable4,COLOR_array___Collection___to_a))(variable4) /*Array::to_a*/;
+  variable3 = variable4;
+  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable3 /*tab_all*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable3 /*tab_all*/,  variable2 /*tab*/) /*Array::add_all*/;
+  variable4 = ((abstractmetamodel___MMModule___context_t)CALL( self,COLOR_abstractmetamodel___MMModule___context))( self) /*MMModule::context*/;
+  ((abstractmetamodel___MMContext___add_local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMContext___add_local_class))(variable4,  variable0 /*c*/,  variable3 /*tab_all*/) /*MMContext::add_local_class*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMModule___register_global_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMModule::register_global_class (src/metamodel//abstractmetamodel.nit:270,2--274:38)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable0 /*c*/) /*MMLocalClass::global*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:273,3--25\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable0 /*c*/) /*MMLocalClass::global*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*c*/) /*Map::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___intro(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::intro (src/metamodel//abstractmetamodel.nit:279,2--280:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____intro( self) /*MMGlobalClass::_intro*/;
+}
+val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::class_refinement_hierarchy (src/metamodel//abstractmetamodel.nit:282,2--284:102)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self) /*MMGlobalClass::_class_refinement_hierarchy*/;
+}
+void abstractmetamodel___MMGlobalClass___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::init (src/metamodel//abstractmetamodel.nit:286,2--290:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalClass].i]) return;
+  ATTR_abstractmetamodel___MMGlobalClass____intro( self) /*MMGlobalClass::_intro*/ =  variable0 /*c*/;
+  variable1 = ((abstractmetamodel___MMLocalClass___context_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___context))( variable0 /*c*/) /*MMLocalClass::context*/;
+  ((abstractmetamodel___MMContext___add_global_class_t)CALL(variable1,COLOR_abstractmetamodel___MMContext___add_global_class))(variable1,  self) /*MMContext::add_global_class*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::name (src/metamodel//abstractmetamodel.nit:293,2--296:19)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___name))(variable0) /*MMLocalClass::name*/;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalClass___module(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::module (src/metamodel//abstractmetamodel.nit:299,2--302:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalClass___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::to_s (src/metamodel//abstractmetamodel.nit:305,2--307:19)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstractmetamodel___MMGlobalClass___register_local_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::register_local_class (src/metamodel//abstractmetamodel.nit:310,2--321:50)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*c*/) /*MMLocalClass::module*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:313,3--25\n"); nit_exit(1);}
+  variable1 = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable0 /*c*/) /*MMLocalClass::crhe*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:314,3--23\n"); nit_exit(1);}
+  variable2 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy))( self) /*MMGlobalClass::class_refinement_hierarchy*/;
+  variable2 = ((partial_order___PartialOrder___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*PartialOrder::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*c*/) /*MMLocalClass::module*/;
+    variable4 = ((abstractmetamodel___MMModule___mhe_t)CALL(variable4,COLOR_abstractmetamodel___MMModule___mhe))(variable4) /*MMModule::mhe*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable3 /*s*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable3 /*s*/) /*MMLocalClass::module*/;
+    variable4 = ((partial_order___PartialOrderElement_____l_t)CALL(variable4,COLOR_partial_order___PartialOrderElement_____l))(variable4, variable5) /*PartialOrderElement::<*/;
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = TAG_Bool(( variable3 /*s*/==NIT_NULL) || VAL_ISA( variable3 /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
+    }
+    variable4 = variable5;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable1 /*sup*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*sup*/,  variable3 /*s*/) /*Array::add*/;
+    }
+    continue_25: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_25: while(0);
+  variable2 = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self) /*MMGlobalClass::_class_refinement_hierarchy*/;
+  variable2 = ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2,  variable0 /*c*/,  variable1 /*sup*/) /*PartialOrder::add*/;
+  ATTR_abstractmetamodel___MMLocalClass____crhe( variable0 /*c*/) /*MMLocalClass::_crhe*/ = variable2;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___is_interface(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_interface (src/metamodel//abstractmetamodel.nit:324,2--325:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/;
+}
+void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_interface= (src/metamodel//abstractmetamodel.nit:324,2--325:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_abstract (src/metamodel//abstractmetamodel.nit:327,2--328:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/;
+}
+void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_abstract= (src/metamodel//abstractmetamodel.nit:327,2--328:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___is_universal(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_universal (src/metamodel//abstractmetamodel.nit:330,2--331:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/;
+}
+void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::is_universal= (src/metamodel//abstractmetamodel.nit:330,2--331:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::visibility_level (src/metamodel//abstractmetamodel.nit:333,2--336:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/;
+}
+void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalClass::visibility_level= (src/metamodel//abstractmetamodel.nit:333,2--336:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalClass___name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::name (src/metamodel//abstractmetamodel.nit:341,2--342:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
+}
+val_t abstractmetamodel___MMLocalClass___arity(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::arity (src/metamodel//abstractmetamodel.nit:344,2--346:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____arity( self) /*MMLocalClass::_arity*/;
+}
+val_t abstractmetamodel___MMLocalClass___module(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::module (src/metamodel//abstractmetamodel.nit:348,2--349:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
+}
+val_t abstractmetamodel___MMLocalClass___abstract(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::abstract (src/metamodel//abstractmetamodel.nit:351,2--352:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____abstract( self) /*MMLocalClass::_abstract*/;
+}
+void abstractmetamodel___MMLocalClass___abstract__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::abstract= (src/metamodel//abstractmetamodel.nit:351,2--352:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMLocalClass____abstract( self) /*MMLocalClass::_abstract*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalClass___global(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::global (src/metamodel//abstractmetamodel.nit:354,2--355:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
+}
+val_t abstractmetamodel___MMLocalClass___crhe(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::crhe (src/metamodel//abstractmetamodel.nit:357,2--358:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+}
+val_t abstractmetamodel___MMLocalClass___cshe(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::cshe (src/metamodel//abstractmetamodel.nit:360,2--361:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____cshe( self) /*MMLocalClass::_cshe*/;
+}
+val_t abstractmetamodel___MMLocalClass___che(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::che (src/metamodel//abstractmetamodel.nit:363,2--364:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____che( self) /*MMLocalClass::_che*/;
+}
+val_t abstractmetamodel___MMLocalClass___local_property_by_global(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::local_property_by_global (src/metamodel//abstractmetamodel.nit:366,2--367:79)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+}
+val_t abstractmetamodel___MMLocalClass___global_properties(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::global_properties (src/metamodel//abstractmetamodel.nit:369,2--370:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
+}
+val_t abstractmetamodel___MMLocalClass___properties_by_name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::properties_by_name (src/metamodel//abstractmetamodel.nit:372,2--373:70)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+}
+void abstractmetamodel___MMLocalClass___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::init (src/metamodel//abstractmetamodel.nit:375,2--379:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalClass].i]) return;
+  ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/ =  variable0 /*name*/;
+  ATTR_abstractmetamodel___MMLocalClass____arity( self) /*MMLocalClass::_arity*/ =  variable1 /*arity*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalClass___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::for_module (src/metamodel//abstractmetamodel.nit:382,2--385:17)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+  variable1 = ((abstractmetamodel___MMModule_____bra_t)CALL( variable0 /*m*/,COLOR_abstractmetamodel___MMModule_____bra))( variable0 /*m*/, variable1) /*MMModule::[]*/;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void abstractmetamodel___MMLocalClass___new_global(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::new_global (src/metamodel//abstractmetamodel.nit:388,2--394:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_abstractmetamodel___MMGlobalClass___init( self); /*new MMGlobalClass*/
+  variable0 = variable1;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
+  variable1 = ATTR_abstractmetamodel___MMModule____global_classes(variable1) /*MMModule::_global_classes*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*g*/) /*Array::add*/;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
+  variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable1) /*MMModule::_global_class_by_name*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*g*/) /*Map::[]=*/;
+  ((abstractmetamodel___MMLocalClass___set_global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___set_global))( self,  variable0 /*g*/) /*MMLocalClass::set_global*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMLocalClass___set_global(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::set_global (src/metamodel//abstractmetamodel.nit:397,2--405:36)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*g*/ ==  NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/,  NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:402,3--18\n"); nit_exit(1);}
+  ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/ =  variable0 /*g*/;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
+  ((abstractmetamodel___MMGlobalClass___register_local_class_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalClass___register_local_class))(variable1,  self) /*MMGlobalClass::register_local_class*/;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
+  ((abstractmetamodel___MMModule___register_global_class_t)CALL(variable1,COLOR_abstractmetamodel___MMModule___register_global_class))(variable1,  self) /*MMModule::register_global_class*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::has_global_property_by_name (src/metamodel//abstractmetamodel.nit:408,2--413:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable0 /*n*/) /*Map::[]*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*props*/ ==  NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  variable1 = variable2;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::get_property_by_name (src/metamodel//abstractmetamodel.nit:416,2--424:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable0 /*n*/) /*Map::[]*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*props*/ ==  NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/,  NIT_NULL /*null*/) /*Array::==*/)));
+  variable3 = variable2;
+  if (!UNTAG_Bool(variable3)) { /* or */
+    variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___length))( variable1 /*props*/) /*Array::length*/;
+    variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label31;
+  }
+  variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___first))( variable1 /*props*/) /*Array::first*/;
+  variable1 = variable2;
+  goto return_label31;
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMLocalClass___attribute(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::attribute (src/metamodel//abstractmetamodel.nit:427,2--431:31)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))( self,  variable0 /*a*/) /*MMLocalClass::get_property_by_name*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMLocalClass___method(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::method (src/metamodel//abstractmetamodel.nit:434,2--444:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:438,3--36\n"); nit_exit(1);}
+  variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable0 /*na*/) /*Map::[]*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*props*/ ==  NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___first))( variable1 /*props*/) /*Array::first*/;
+    variable1 = variable2;
+    goto return_label33;
+  }
+  variable1 =  NIT_NULL /*null*/;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::super_methods_named (src/metamodel//abstractmetamodel.nit:447,2--464:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
+  variable2 = ((partial_order___PartialOrderElement___greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___greaters))(variable2) /*PartialOrderElement::greaters*/;
+  variable2 = ((abstract_collection___Collection___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Set::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable3 /*c*/,  variable0 /*n*/) /*MMLocalClass::method*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*g*/ ==  NIT_NULL /*null*/) || (( variable4 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))( variable4 /*g*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      goto continue_35;
+    }
+    ((array___AbstractArray___add_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*classes*/,  variable3 /*c*/) /*Array::add*/;
+    continue_35: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_35: while(0);
+  variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
+  variable2 = ((partial_order___PartialOrderElement___order_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___order))(variable2) /*PartialOrderElement::order*/;
+  variable2 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable2,COLOR_partial_order___PartialOrder___select_smallests))(variable2,  variable1 /*classes*/) /*PartialOrder::select_smallests*/;
+  variable1 = variable2 /*classes=*/;
+  variable3 = NEW_array___Array___init(); /*new Array[MMLocalProperty]*/
+  variable2 = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable6 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable4 /*c*/,  variable0 /*n*/) /*MMLocalClass::method*/;
+    variable5 = variable6;
+    variable6 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable4 /*c*/,  variable5 /*g*/) /*MMLocalClass::[]*/;
+    ((array___AbstractArray___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/, variable6) /*Array::add*/;
+    continue_36: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_36: while(0);
+  variable1 =  variable2 /*res*/;
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void abstractmetamodel___MMLocalClass___register_local_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::register_local_property (src/metamodel//abstractmetamodel.nit:467,2--473:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:470,3--25\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+  variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+    variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
+    ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*p*/) /*Map::[]=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMLocalClass___register_global_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::register_global_property (src/metamodel//abstractmetamodel.nit:477,2--489:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable0 /*glob*/) /*MMGlobalProperty::intro*/;
+  variable1 = variable2;
+  variable3 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMConcreteProperty::name*/;
+  variable2 = variable3;
+  variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable2 /*name*/) /*Map::[]*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*props*/ ==  NIT_NULL /*null*/) || (( variable3 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable3 /*props*/,COLOR_kernel___Object_____eqeq))( variable3 /*props*/,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMGlobalProperty]*/
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable0 /*glob*/) /*Array::add*/;
+    ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable2 /*name*/, variable5) /*Map::[]=*/;
+  } else { /*if*/
+    variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+    variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable2 /*name*/) /*Map::[]*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*glob*/) /*Array::add*/;
+  }
+  variable4 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
+  ((abstract_collection___SimpleCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*glob*/) /*Set::add*/;
+  ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___register_local_property))( self,  variable1 /*prop*/) /*MMLocalClass::register_local_property*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalClass_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::[] (src/metamodel//abstractmetamodel.nit:492,2--500:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:495,3--42\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*glob*/ ==  NIT_NULL /*null*/) || (( variable0 /*glob*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))( variable0 /*glob*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:496,3--21\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*glob*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*glob*/) /*Map::[]*/;
+    goto return_label39;
+  }
+  variable1 =  NIT_NULL /*null*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t abstractmetamodel___MMLocalClass___context(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::context (src/metamodel//abstractmetamodel.nit:503,2--504:49)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+  variable0 = ((abstractmetamodel___MMModule___context_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___context))(variable0) /*MMModule::context*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMLocalClass___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalClass::to_s (src/metamodel//abstractmetamodel.nit:506,2--508:19)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
+  variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalProperty___intro(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::intro (src/metamodel//abstractmetamodel.nit:516,2--517:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/;
+}
+val_t abstractmetamodel___MMGlobalProperty___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::local_class (src/metamodel//abstractmetamodel.nit:519,2--522:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable0 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable0) /*MMConcreteProperty::local_class*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::concrete_property_hierarchy (src/metamodel//abstractmetamodel.nit:525,2--526:115)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/;
+}
+void abstractmetamodel___MMGlobalProperty___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::init (src/metamodel//abstractmetamodel.nit:528,2--537:55)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i]) return;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*p*/ ==  NIT_NULL /*null*/) || (( variable0 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*p*/,COLOR_kernel___Object_____eqeq))( variable0 /*p*/,  NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:531,3--18\n"); nit_exit(1);}
+  variable1 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable0 /*p*/) /*MMConcreteProperty::concrete_property*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:532,3--36\n"); nit_exit(1);}
+  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMConcreteProperty]*/
+  ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/ = variable1;
+  ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/ =  variable0 /*p*/;
+  variable1 = NEW_array___Array___init(); /*new Array[MMConcreteProperty]*/
+  ((abstractmetamodel___MMGlobalProperty___add_concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___add_concrete_property))( self,  variable0 /*p*/, variable1) /*MMGlobalProperty::add_concrete_property*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalProperty___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::to_s (src/metamodel//abstractmetamodel.nit:540,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable0 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable0) /*MMConcreteProperty::full_name*/;
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstractmetamodel___MMGlobalProperty___add_concrete_property(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::add_concrete_property (src/metamodel//abstractmetamodel.nit:542,2--547:51)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*i*/ ==  NIT_NULL /*null*/) || (( variable0 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*i*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*i*/,COLOR_kernel___Object_____eqeq))( variable0 /*i*/,  NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:545,3--18\n"); nit_exit(1);}
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*sup*/ ==  NIT_NULL /*null*/) || (( variable1 /*sup*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:546,3--20\n"); nit_exit(1);}
+  variable2 = ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/;
+  variable2 = ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2,  variable0 /*i*/,  variable1 /*sup*/) /*PartialOrder::add*/;
+  ATTR_abstractmetamodel___MMConcreteProperty____cprhe( variable0 /*i*/) /*MMConcreteProperty::_cprhe*/ = variable2;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::is_attribute (src/metamodel//abstractmetamodel.nit:550,2--551:56)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+  goto return_label46;
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalProperty___is_method(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::is_method (src/metamodel//abstractmetamodel.nit:553,2--554:50)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMGlobalProperty___is_init(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::is_init (src/metamodel//abstractmetamodel.nit:556,2--557:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/;
+}
+void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::is_init= (src/metamodel//abstractmetamodel.nit:556,2--557:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::visibility_level (src/metamodel//abstractmetamodel.nit:559,2--563:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/;
+}
+void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMGlobalProperty::visibility_level= (src/metamodel//abstractmetamodel.nit:559,2--563:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalProperty___name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::name (src/metamodel//abstractmetamodel.nit:569,2--570:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/;
+}
+val_t abstractmetamodel___MMLocalProperty___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::local_class (src/metamodel//abstractmetamodel.nit:572,2--573:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
+}
+val_t abstractmetamodel___MMLocalProperty___global(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::global (src/metamodel//abstractmetamodel.nit:575,2--576:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
+}
+val_t abstractmetamodel___MMLocalProperty___super_prop(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::super_prop (src/metamodel//abstractmetamodel.nit:578,2--580:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
+}
+val_t abstractmetamodel___MMLocalProperty___concrete_property(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::concrete_property (src/metamodel//abstractmetamodel.nit:582,2--584:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/;
+}
+val_t abstractmetamodel___MMLocalProperty___module(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::module (src/metamodel//abstractmetamodel.nit:586,2--587:52)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
+  goto return_label48;
+  return_label48: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t abstractmetamodel___MMLocalProperty___full_name(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::full_name (src/metamodel//abstractmetamodel.nit:589,2--597:75)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_string___String___init(); /*new String*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable2 = variable1;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+    variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+    variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
+    variable4 = variable3;
+    variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+    variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+    variable8 = variable7;
+    variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+    variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
+    variable12 = variable11;
+    variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
+    goto return_label49;
+  } else { /*if*/
+    variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
+    variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable0,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable0) /*MMGlobalProperty::intro*/;
+    variable0 = TAG_Bool((variable0 ==  self) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  self) /*MMConcreteProperty::==*/)))));
+    if (UNTAG_Bool(variable0)) { /*if*/
+      variable0 = NEW_string___String___init(); /*new String*/
+      variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable2 = variable1;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+      variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
+      variable4 = variable3;
+      variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+      variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
+      goto return_label49;
+    } else { /*if*/
+      variable0 = NEW_string___String___init(); /*new String*/
+      variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable2 = variable1;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+      variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
+      variable4 = variable3;
+      variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+      variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
+      variable11 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable11,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable11) /*MMGlobalProperty::intro*/;
+      variable11 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable11,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable11) /*MMConcreteProperty::full_name*/;
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
+      goto return_label49;
+    }
+  }
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstractmetamodel___MMLocalProperty___set_global(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::set_global (src/metamodel//abstractmetamodel.nit:601,2--606:43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*g*/ ==  NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:604,3--18\n"); nit_exit(1);}
+  ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/ =  variable0 /*g*/;
+  variable1 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
+  ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___register_local_property))(variable1,  self) /*MMLocalClass::register_local_property*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMLocalProperty___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::to_s (src/metamodel//abstractmetamodel.nit:609,2--36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
+  variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
+  goto return_label51;
+  return_label51: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void abstractmetamodel___MMLocalProperty___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMLocalProperty::init (src/metamodel//abstractmetamodel.nit:611,2--615:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i]) return;
+  ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/ =  variable0 /*n*/;
+  ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/ =  variable1 /*bc*/;
+  ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/ =  variable2 /*i*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t abstractmetamodel___MMConcreteProperty___cprhe(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMConcreteProperty::cprhe (src/metamodel//abstractmetamodel.nit:637,2--638:61)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMConcreteProperty____cprhe( self) /*MMConcreteProperty::_cprhe*/;
+}
+val_t abstractmetamodel___MMConcreteProperty___need_super(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMConcreteProperty::need_super (src/metamodel//abstractmetamodel.nit:640,2--641:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_abstractmetamodel___MMConcreteProperty____need_super( self) /*MMConcreteProperty::_need_super*/;
+}
+void abstractmetamodel___MMConcreteProperty___need_super__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMConcreteProperty::need_super= (src/metamodel//abstractmetamodel.nit:640,2--641:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super( self) /*MMConcreteProperty::_need_super*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void abstractmetamodel___MMConcreteProperty___new_global(val_t  self) {
+  struct trace_t trace = {NULL, "abstractmetamodel::MMConcreteProperty::new_global (src/metamodel//abstractmetamodel.nit:643,2--648:47)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: src/metamodel//abstractmetamodel.nit:646,3--24\n"); nit_exit(1);}
+  variable0 = NEW_abstractmetamodel___MMGlobalProperty___init( self); /*new MMGlobalProperty*/
+  ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/ = variable0;
+  variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMConcreteProperty::_local_class*/;
+  variable1 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/;
+  ((abstractmetamodel___MMLocalClass___register_global_property_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___register_global_property))(variable0, variable1) /*MMLocalClass::register_global_property*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/abstractmetamodel._sep.h b/c_src/abstractmetamodel._sep.h
new file mode 100644 (file)
index 0000000..6749f84
--- /dev/null
@@ -0,0 +1,479 @@
+#ifndef abstractmetamodel__sep
+#define abstractmetamodel__sep
+#include "partial_order._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMContext[];
+
+extern const classtable_elt_t VFT_MMDirectory[];
+
+extern const classtable_elt_t VFT_MMModule[];
+
+extern const classtable_elt_t VFT_MMGlobalClass[];
+
+extern const classtable_elt_t VFT_MMLocalClass[];
+
+extern const classtable_elt_t VFT_MMGlobalProperty[];
+
+extern const classtable_elt_t VFT_MMLocalProperty[];
+
+extern const classtable_elt_t VFT_MMAttribute[];
+
+extern const classtable_elt_t VFT_MMMethod[];
+
+extern const classtable_elt_t VFT_MMConcreteClass[];
+
+extern const classtable_elt_t VFT_MMConcreteProperty[];
+extern const int SFT_abstractmetamodel[];
+#define ID_MMContext SFT_abstractmetamodel[0]
+#define COLOR_MMContext SFT_abstractmetamodel[1]
+#define COLOR_abstractmetamodel___MMContext____module_hierarchy SFT_abstractmetamodel[2]
+#define COLOR_abstractmetamodel___MMContext____class_hierarchy SFT_abstractmetamodel[3]
+#define COLOR_abstractmetamodel___MMContext____global_classes SFT_abstractmetamodel[4]
+#define COLOR_abstractmetamodel___MMContext____modules SFT_abstractmetamodel[5]
+#define INIT_TABLE_POS_MMContext SFT_abstractmetamodel[6]
+#define COLOR_abstractmetamodel___MMContext___init SFT_abstractmetamodel[7]
+#define COLOR_abstractmetamodel___MMContext___module_hierarchy SFT_abstractmetamodel[8]
+#define COLOR_abstractmetamodel___MMContext___class_hierarchy SFT_abstractmetamodel[9]
+#define COLOR_abstractmetamodel___MMContext___modules SFT_abstractmetamodel[10]
+#define COLOR_abstractmetamodel___MMContext___add_module SFT_abstractmetamodel[11]
+#define COLOR_abstractmetamodel___MMContext___add_global_class SFT_abstractmetamodel[12]
+#define COLOR_abstractmetamodel___MMContext___add_local_class SFT_abstractmetamodel[13]
+#define ID_MMDirectory SFT_abstractmetamodel[14]
+#define COLOR_MMDirectory SFT_abstractmetamodel[15]
+#define COLOR_abstractmetamodel___MMDirectory____name SFT_abstractmetamodel[16]
+#define COLOR_abstractmetamodel___MMDirectory____path SFT_abstractmetamodel[17]
+#define COLOR_abstractmetamodel___MMDirectory____parent SFT_abstractmetamodel[18]
+#define COLOR_abstractmetamodel___MMDirectory____owner SFT_abstractmetamodel[19]
+#define COLOR_abstractmetamodel___MMDirectory____modules SFT_abstractmetamodel[20]
+#define COLOR_abstractmetamodel___MMDirectory____dhe SFT_abstractmetamodel[21]
+#define INIT_TABLE_POS_MMDirectory SFT_abstractmetamodel[22]
+#define COLOR_abstractmetamodel___MMDirectory___name SFT_abstractmetamodel[23]
+#define COLOR_abstractmetamodel___MMDirectory___path SFT_abstractmetamodel[24]
+#define COLOR_abstractmetamodel___MMDirectory___parent SFT_abstractmetamodel[25]
+#define COLOR_abstractmetamodel___MMDirectory___owner SFT_abstractmetamodel[26]
+#define COLOR_abstractmetamodel___MMDirectory___owner__eq SFT_abstractmetamodel[27]
+#define COLOR_abstractmetamodel___MMDirectory___modules SFT_abstractmetamodel[28]
+#define COLOR_abstractmetamodel___MMDirectory___add_module SFT_abstractmetamodel[29]
+#define COLOR_abstractmetamodel___MMDirectory___dhe SFT_abstractmetamodel[30]
+#define COLOR_abstractmetamodel___MMDirectory___init SFT_abstractmetamodel[31]
+#define COLOR_abstractmetamodel___MMDirectory___full_name_for SFT_abstractmetamodel[32]
+#define ID_MMModule SFT_abstractmetamodel[33]
+#define COLOR_MMModule SFT_abstractmetamodel[34]
+#define COLOR_abstractmetamodel___MMModule____context SFT_abstractmetamodel[35]
+#define COLOR_abstractmetamodel___MMModule____name SFT_abstractmetamodel[36]
+#define COLOR_abstractmetamodel___MMModule____full_name SFT_abstractmetamodel[37]
+#define COLOR_abstractmetamodel___MMModule____directory SFT_abstractmetamodel[38]
+#define COLOR_abstractmetamodel___MMModule____mhe SFT_abstractmetamodel[39]
+#define COLOR_abstractmetamodel___MMModule____global_classes SFT_abstractmetamodel[40]
+#define COLOR_abstractmetamodel___MMModule____local_classes SFT_abstractmetamodel[41]
+#define COLOR_abstractmetamodel___MMModule____class_specialization_hierarchy SFT_abstractmetamodel[42]
+#define COLOR_abstractmetamodel___MMModule____intrude_modules SFT_abstractmetamodel[43]
+#define COLOR_abstractmetamodel___MMModule____public_modules SFT_abstractmetamodel[44]
+#define COLOR_abstractmetamodel___MMModule____private_modules SFT_abstractmetamodel[45]
+#define COLOR_abstractmetamodel___MMModule____explicit_imported_modules SFT_abstractmetamodel[46]
+#define COLOR_abstractmetamodel___MMModule____local_class_by_global SFT_abstractmetamodel[47]
+#define COLOR_abstractmetamodel___MMModule____global_class_by_name SFT_abstractmetamodel[48]
+#define INIT_TABLE_POS_MMModule SFT_abstractmetamodel[49]
+#define COLOR_abstractmetamodel___MMModule___context SFT_abstractmetamodel[50]
+#define COLOR_abstractmetamodel___MMModule___name SFT_abstractmetamodel[51]
+#define COLOR_abstractmetamodel___MMModule___full_name SFT_abstractmetamodel[52]
+#define COLOR_abstractmetamodel___MMModule___directory SFT_abstractmetamodel[53]
+#define COLOR_abstractmetamodel___MMModule___mhe SFT_abstractmetamodel[54]
+#define COLOR_abstractmetamodel___MMModule___global_classes SFT_abstractmetamodel[55]
+#define COLOR_abstractmetamodel___MMModule___local_classes SFT_abstractmetamodel[56]
+#define COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy SFT_abstractmetamodel[57]
+#define COLOR_abstractmetamodel___MMModule___explicit_imported_modules SFT_abstractmetamodel[58]
+#define COLOR_abstractmetamodel___MMModule___init SFT_abstractmetamodel[59]
+#define COLOR_abstractmetamodel___MMModule___add_super_module SFT_abstractmetamodel[60]
+#define COLOR_abstractmetamodel___MMModule___visibility_for SFT_abstractmetamodel[61]
+#define COLOR_abstractmetamodel___MMModule_____bra SFT_abstractmetamodel[62]
+#define COLOR_abstractmetamodel___MMModule___add_local_class SFT_abstractmetamodel[63]
+#define COLOR_abstractmetamodel___MMModule___class_by_name SFT_abstractmetamodel[64]
+#define COLOR_abstractmetamodel___MMModule___has_global_class_named SFT_abstractmetamodel[65]
+#define COLOR_abstractmetamodel___MMModule___global_class_named SFT_abstractmetamodel[66]
+#define COLOR_abstractmetamodel___MMModule___set_supers_class SFT_abstractmetamodel[67]
+#define COLOR_abstractmetamodel___MMModule___register_global_class SFT_abstractmetamodel[68]
+#define ID_MMGlobalClass SFT_abstractmetamodel[69]
+#define COLOR_MMGlobalClass SFT_abstractmetamodel[70]
+#define COLOR_abstractmetamodel___MMGlobalClass____intro SFT_abstractmetamodel[71]
+#define COLOR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy SFT_abstractmetamodel[72]
+#define COLOR_abstractmetamodel___MMGlobalClass____is_interface SFT_abstractmetamodel[73]
+#define COLOR_abstractmetamodel___MMGlobalClass____is_abstract SFT_abstractmetamodel[74]
+#define COLOR_abstractmetamodel___MMGlobalClass____is_universal SFT_abstractmetamodel[75]
+#define COLOR_abstractmetamodel___MMGlobalClass____visibility_level SFT_abstractmetamodel[76]
+#define INIT_TABLE_POS_MMGlobalClass SFT_abstractmetamodel[77]
+#define COLOR_abstractmetamodel___MMGlobalClass___intro SFT_abstractmetamodel[78]
+#define COLOR_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy SFT_abstractmetamodel[79]
+#define COLOR_abstractmetamodel___MMGlobalClass___init SFT_abstractmetamodel[80]
+#define COLOR_abstractmetamodel___MMGlobalClass___name SFT_abstractmetamodel[81]
+#define COLOR_abstractmetamodel___MMGlobalClass___module SFT_abstractmetamodel[82]
+#define COLOR_abstractmetamodel___MMGlobalClass___register_local_class SFT_abstractmetamodel[83]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_interface SFT_abstractmetamodel[84]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_interface__eq SFT_abstractmetamodel[85]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_abstract SFT_abstractmetamodel[86]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_abstract__eq SFT_abstractmetamodel[87]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_universal SFT_abstractmetamodel[88]
+#define COLOR_abstractmetamodel___MMGlobalClass___is_universal__eq SFT_abstractmetamodel[89]
+#define COLOR_abstractmetamodel___MMGlobalClass___visibility_level SFT_abstractmetamodel[90]
+#define COLOR_abstractmetamodel___MMGlobalClass___visibility_level__eq SFT_abstractmetamodel[91]
+#define ID_MMLocalClass SFT_abstractmetamodel[92]
+#define COLOR_MMLocalClass SFT_abstractmetamodel[93]
+#define COLOR_abstractmetamodel___MMLocalClass____name SFT_abstractmetamodel[94]
+#define COLOR_abstractmetamodel___MMLocalClass____arity SFT_abstractmetamodel[95]
+#define COLOR_abstractmetamodel___MMLocalClass____module SFT_abstractmetamodel[96]
+#define COLOR_abstractmetamodel___MMLocalClass____abstract SFT_abstractmetamodel[97]
+#define COLOR_abstractmetamodel___MMLocalClass____global SFT_abstractmetamodel[98]
+#define COLOR_abstractmetamodel___MMLocalClass____crhe SFT_abstractmetamodel[99]
+#define COLOR_abstractmetamodel___MMLocalClass____cshe SFT_abstractmetamodel[100]
+#define COLOR_abstractmetamodel___MMLocalClass____che SFT_abstractmetamodel[101]
+#define COLOR_abstractmetamodel___MMLocalClass____local_property_by_global SFT_abstractmetamodel[102]
+#define COLOR_abstractmetamodel___MMLocalClass____global_properties SFT_abstractmetamodel[103]
+#define COLOR_abstractmetamodel___MMLocalClass____properties_by_name SFT_abstractmetamodel[104]
+#define INIT_TABLE_POS_MMLocalClass SFT_abstractmetamodel[105]
+#define COLOR_abstractmetamodel___MMLocalClass___name SFT_abstractmetamodel[106]
+#define COLOR_abstractmetamodel___MMLocalClass___arity SFT_abstractmetamodel[107]
+#define COLOR_abstractmetamodel___MMLocalClass___module SFT_abstractmetamodel[108]
+#define COLOR_abstractmetamodel___MMLocalClass___abstract SFT_abstractmetamodel[109]
+#define COLOR_abstractmetamodel___MMLocalClass___abstract__eq SFT_abstractmetamodel[110]
+#define COLOR_abstractmetamodel___MMLocalClass___global SFT_abstractmetamodel[111]
+#define COLOR_abstractmetamodel___MMLocalClass___crhe SFT_abstractmetamodel[112]
+#define COLOR_abstractmetamodel___MMLocalClass___cshe SFT_abstractmetamodel[113]
+#define COLOR_abstractmetamodel___MMLocalClass___che SFT_abstractmetamodel[114]
+#define COLOR_abstractmetamodel___MMLocalClass___local_property_by_global SFT_abstractmetamodel[115]
+#define COLOR_abstractmetamodel___MMLocalClass___global_properties SFT_abstractmetamodel[116]
+#define COLOR_abstractmetamodel___MMLocalClass___properties_by_name SFT_abstractmetamodel[117]
+#define COLOR_abstractmetamodel___MMLocalClass___init SFT_abstractmetamodel[118]
+#define COLOR_abstractmetamodel___MMLocalClass___for_module SFT_abstractmetamodel[119]
+#define COLOR_abstractmetamodel___MMLocalClass___new_global SFT_abstractmetamodel[120]
+#define COLOR_abstractmetamodel___MMLocalClass___set_global SFT_abstractmetamodel[121]
+#define COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name SFT_abstractmetamodel[122]
+#define COLOR_abstractmetamodel___MMLocalClass___get_property_by_name SFT_abstractmetamodel[123]
+#define COLOR_abstractmetamodel___MMLocalClass___attribute SFT_abstractmetamodel[124]
+#define COLOR_abstractmetamodel___MMLocalClass___method SFT_abstractmetamodel[125]
+#define COLOR_abstractmetamodel___MMLocalClass___super_methods_named SFT_abstractmetamodel[126]
+#define COLOR_abstractmetamodel___MMLocalClass___register_local_property SFT_abstractmetamodel[127]
+#define COLOR_abstractmetamodel___MMLocalClass___register_global_property SFT_abstractmetamodel[128]
+#define COLOR_abstractmetamodel___MMLocalClass_____bra SFT_abstractmetamodel[129]
+#define COLOR_abstractmetamodel___MMLocalClass___context SFT_abstractmetamodel[130]
+#define ID_MMGlobalProperty SFT_abstractmetamodel[131]
+#define COLOR_MMGlobalProperty SFT_abstractmetamodel[132]
+#define COLOR_abstractmetamodel___MMGlobalProperty____intro SFT_abstractmetamodel[133]
+#define COLOR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy SFT_abstractmetamodel[134]
+#define COLOR_abstractmetamodel___MMGlobalProperty____is_init SFT_abstractmetamodel[135]
+#define COLOR_abstractmetamodel___MMGlobalProperty____visibility_level SFT_abstractmetamodel[136]
+#define INIT_TABLE_POS_MMGlobalProperty SFT_abstractmetamodel[137]
+#define COLOR_abstractmetamodel___MMGlobalProperty___intro SFT_abstractmetamodel[138]
+#define COLOR_abstractmetamodel___MMGlobalProperty___local_class SFT_abstractmetamodel[139]
+#define COLOR_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy SFT_abstractmetamodel[140]
+#define COLOR_abstractmetamodel___MMGlobalProperty___init SFT_abstractmetamodel[141]
+#define COLOR_abstractmetamodel___MMGlobalProperty___add_concrete_property SFT_abstractmetamodel[142]
+#define COLOR_abstractmetamodel___MMGlobalProperty___is_attribute SFT_abstractmetamodel[143]
+#define COLOR_abstractmetamodel___MMGlobalProperty___is_method SFT_abstractmetamodel[144]
+#define COLOR_abstractmetamodel___MMGlobalProperty___is_init SFT_abstractmetamodel[145]
+#define COLOR_abstractmetamodel___MMGlobalProperty___is_init__eq SFT_abstractmetamodel[146]
+#define COLOR_abstractmetamodel___MMGlobalProperty___visibility_level SFT_abstractmetamodel[147]
+#define COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq SFT_abstractmetamodel[148]
+#define ID_MMLocalProperty SFT_abstractmetamodel[149]
+#define COLOR_MMLocalProperty SFT_abstractmetamodel[150]
+#define COLOR_abstractmetamodel___MMLocalProperty____name SFT_abstractmetamodel[151]
+#define COLOR_abstractmetamodel___MMLocalProperty____local_class SFT_abstractmetamodel[152]
+#define COLOR_abstractmetamodel___MMLocalProperty____global SFT_abstractmetamodel[153]
+#define COLOR_abstractmetamodel___MMLocalProperty____super_prop SFT_abstractmetamodel[154]
+#define COLOR_abstractmetamodel___MMLocalProperty____concrete_property SFT_abstractmetamodel[155]
+#define INIT_TABLE_POS_MMLocalProperty SFT_abstractmetamodel[156]
+#define COLOR_abstractmetamodel___MMLocalProperty___name SFT_abstractmetamodel[157]
+#define COLOR_abstractmetamodel___MMLocalProperty___local_class SFT_abstractmetamodel[158]
+#define COLOR_abstractmetamodel___MMLocalProperty___global SFT_abstractmetamodel[159]
+#define COLOR_abstractmetamodel___MMLocalProperty___super_prop SFT_abstractmetamodel[160]
+#define COLOR_abstractmetamodel___MMLocalProperty___concrete_property SFT_abstractmetamodel[161]
+#define COLOR_abstractmetamodel___MMLocalProperty___module SFT_abstractmetamodel[162]
+#define COLOR_abstractmetamodel___MMLocalProperty___full_name SFT_abstractmetamodel[163]
+#define COLOR_abstractmetamodel___MMLocalProperty___set_global SFT_abstractmetamodel[164]
+#define COLOR_abstractmetamodel___MMLocalProperty___init SFT_abstractmetamodel[165]
+#define ID_MMAttribute SFT_abstractmetamodel[166]
+#define COLOR_MMAttribute SFT_abstractmetamodel[167]
+#define INIT_TABLE_POS_MMAttribute SFT_abstractmetamodel[168]
+#define ID_MMMethod SFT_abstractmetamodel[169]
+#define COLOR_MMMethod SFT_abstractmetamodel[170]
+#define INIT_TABLE_POS_MMMethod SFT_abstractmetamodel[171]
+#define ID_MMConcreteClass SFT_abstractmetamodel[172]
+#define COLOR_MMConcreteClass SFT_abstractmetamodel[173]
+#define INIT_TABLE_POS_MMConcreteClass SFT_abstractmetamodel[174]
+#define ID_MMConcreteProperty SFT_abstractmetamodel[175]
+#define COLOR_MMConcreteProperty SFT_abstractmetamodel[176]
+#define COLOR_abstractmetamodel___MMConcreteProperty____cprhe SFT_abstractmetamodel[177]
+#define COLOR_abstractmetamodel___MMConcreteProperty____need_super SFT_abstractmetamodel[178]
+#define INIT_TABLE_POS_MMConcreteProperty SFT_abstractmetamodel[179]
+#define COLOR_abstractmetamodel___MMConcreteProperty___cprhe SFT_abstractmetamodel[180]
+#define COLOR_abstractmetamodel___MMConcreteProperty___need_super SFT_abstractmetamodel[181]
+#define COLOR_abstractmetamodel___MMConcreteProperty___need_super__eq SFT_abstractmetamodel[182]
+#define COLOR_abstractmetamodel___MMConcreteProperty___new_global SFT_abstractmetamodel[183]
+typedef void (* abstractmetamodel___MMContext___init_t)(val_t  self, int* init_table);
+void abstractmetamodel___MMContext___init(val_t  self, int* init_table);
+val_t NEW_abstractmetamodel___MMContext___init();
+#define ATTR_abstractmetamodel___MMContext____module_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____module_hierarchy)
+typedef val_t (* abstractmetamodel___MMContext___module_hierarchy_t)(val_t  self);
+val_t abstractmetamodel___MMContext___module_hierarchy(val_t  self);
+#define ATTR_abstractmetamodel___MMContext____class_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____class_hierarchy)
+typedef val_t (* abstractmetamodel___MMContext___class_hierarchy_t)(val_t  self);
+val_t abstractmetamodel___MMContext___class_hierarchy(val_t  self);
+#define ATTR_abstractmetamodel___MMContext____global_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____global_classes)
+#define ATTR_abstractmetamodel___MMContext____modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____modules)
+typedef val_t (* abstractmetamodel___MMContext___modules_t)(val_t  self);
+val_t abstractmetamodel___MMContext___modules(val_t  self);
+typedef void (* abstractmetamodel___MMContext___add_module_t)(val_t  self, val_t  param0, val_t  param1);
+void abstractmetamodel___MMContext___add_module(val_t  self, val_t  param0, val_t  param1);
+typedef void (* abstractmetamodel___MMContext___add_global_class_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMContext___add_global_class(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMContext___add_local_class_t)(val_t  self, val_t  param0, val_t  param1);
+void abstractmetamodel___MMContext___add_local_class(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_abstractmetamodel___MMDirectory____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____name)
+typedef val_t (* abstractmetamodel___MMDirectory___name_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___name(val_t  self);
+#define ATTR_abstractmetamodel___MMDirectory____path(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____path)
+typedef val_t (* abstractmetamodel___MMDirectory___path_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___path(val_t  self);
+#define ATTR_abstractmetamodel___MMDirectory____parent(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____parent)
+typedef val_t (* abstractmetamodel___MMDirectory___parent_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___parent(val_t  self);
+#define ATTR_abstractmetamodel___MMDirectory____owner(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____owner)
+typedef val_t (* abstractmetamodel___MMDirectory___owner_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___owner(val_t  self);
+typedef void (* abstractmetamodel___MMDirectory___owner__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMDirectory___owner__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMDirectory____modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____modules)
+typedef val_t (* abstractmetamodel___MMDirectory___modules_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___modules(val_t  self);
+typedef void (* abstractmetamodel___MMDirectory___add_module_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMDirectory___add_module(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMDirectory____dhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____dhe)
+typedef val_t (* abstractmetamodel___MMDirectory___dhe_t)(val_t  self);
+val_t abstractmetamodel___MMDirectory___dhe(val_t  self);
+typedef void (* abstractmetamodel___MMDirectory___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void abstractmetamodel___MMDirectory___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_abstractmetamodel___MMDirectory___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* abstractmetamodel___MMDirectory___full_name_for_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMDirectory___full_name_for(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMModule____context(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____context)
+typedef val_t (* abstractmetamodel___MMModule___context_t)(val_t  self);
+val_t abstractmetamodel___MMModule___context(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____name)
+typedef val_t (* abstractmetamodel___MMModule___name_t)(val_t  self);
+val_t abstractmetamodel___MMModule___name(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____full_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____full_name)
+typedef val_t (* abstractmetamodel___MMModule___full_name_t)(val_t  self);
+val_t abstractmetamodel___MMModule___full_name(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____directory(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____directory)
+typedef val_t (* abstractmetamodel___MMModule___directory_t)(val_t  self);
+val_t abstractmetamodel___MMModule___directory(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____mhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____mhe)
+typedef val_t (* abstractmetamodel___MMModule___mhe_t)(val_t  self);
+val_t abstractmetamodel___MMModule___mhe(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____global_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____global_classes)
+typedef val_t (* abstractmetamodel___MMModule___global_classes_t)(val_t  self);
+val_t abstractmetamodel___MMModule___global_classes(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____local_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____local_classes)
+typedef val_t (* abstractmetamodel___MMModule___local_classes_t)(val_t  self);
+val_t abstractmetamodel___MMModule___local_classes(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____class_specialization_hierarchy)
+typedef val_t (* abstractmetamodel___MMModule___class_specialization_hierarchy_t)(val_t  self);
+val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____intrude_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____intrude_modules)
+#define ATTR_abstractmetamodel___MMModule____public_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____public_modules)
+#define ATTR_abstractmetamodel___MMModule____private_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____private_modules)
+#define ATTR_abstractmetamodel___MMModule____explicit_imported_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____explicit_imported_modules)
+typedef val_t (* abstractmetamodel___MMModule___explicit_imported_modules_t)(val_t  self);
+val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t  self);
+#define ATTR_abstractmetamodel___MMModule____local_class_by_global(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____local_class_by_global)
+#define ATTR_abstractmetamodel___MMModule____global_class_by_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____global_class_by_name)
+typedef void (* abstractmetamodel___MMModule___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void abstractmetamodel___MMModule___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_abstractmetamodel___MMModule___init(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* abstractmetamodel___MMModule___add_super_module_t)(val_t  self, val_t  param0, val_t  param1);
+void abstractmetamodel___MMModule___add_super_module(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* abstractmetamodel___MMModule___visibility_for_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMModule___visibility_for(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMModule_____bra_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMModule_____bra(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMModule___add_local_class_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMModule___add_local_class(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMModule___class_by_name_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMModule___class_by_name(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMModule___has_global_class_named_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMModule___has_global_class_named(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMModule___global_class_named_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMModule___global_class_named(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMModule___to_s_t)(val_t  self);
+val_t abstractmetamodel___MMModule___to_s(val_t  self);
+typedef void (* abstractmetamodel___MMModule___set_supers_class_t)(val_t  self, val_t  param0, val_t  param1);
+void abstractmetamodel___MMModule___set_supers_class(val_t  self, val_t  param0, val_t  param1);
+typedef void (* abstractmetamodel___MMModule___register_global_class_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMModule___register_global_class(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalClass____intro(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____intro)
+typedef val_t (* abstractmetamodel___MMGlobalClass___intro_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___intro(val_t  self);
+#define ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy)
+typedef val_t (* abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___init_t)(val_t  self, val_t  param0, int* init_table);
+void abstractmetamodel___MMGlobalClass___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_abstractmetamodel___MMGlobalClass___init(val_t  param0);
+typedef val_t (* abstractmetamodel___MMGlobalClass___name_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___name(val_t  self);
+typedef val_t (* abstractmetamodel___MMGlobalClass___module_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___module(val_t  self);
+typedef val_t (* abstractmetamodel___MMGlobalClass___to_s_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___to_s(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___register_local_class_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalClass___register_local_class(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalClass____is_interface(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_interface)
+typedef val_t (* abstractmetamodel___MMGlobalClass___is_interface_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___is_interface(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___is_interface__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalClass____is_abstract(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_abstract)
+typedef val_t (* abstractmetamodel___MMGlobalClass___is_abstract_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___is_abstract__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalClass____is_universal(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_universal)
+typedef val_t (* abstractmetamodel___MMGlobalClass___is_universal_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___is_universal(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___is_universal__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalClass____visibility_level(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____visibility_level)
+typedef val_t (* abstractmetamodel___MMGlobalClass___visibility_level_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalClass___visibility_level__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMLocalClass____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____name)
+typedef val_t (* abstractmetamodel___MMLocalClass___name_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___name(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____arity(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____arity)
+typedef val_t (* abstractmetamodel___MMLocalClass___arity_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___arity(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____module(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____module)
+typedef val_t (* abstractmetamodel___MMLocalClass___module_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___module(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____abstract(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____abstract)
+typedef val_t (* abstractmetamodel___MMLocalClass___abstract_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___abstract(val_t  self);
+typedef void (* abstractmetamodel___MMLocalClass___abstract__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMLocalClass___abstract__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMLocalClass____global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____global)
+typedef val_t (* abstractmetamodel___MMLocalClass___global_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___global(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____crhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____crhe)
+typedef val_t (* abstractmetamodel___MMLocalClass___crhe_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___crhe(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____cshe(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____cshe)
+typedef val_t (* abstractmetamodel___MMLocalClass___cshe_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___cshe(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____che(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____che)
+typedef val_t (* abstractmetamodel___MMLocalClass___che_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___che(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____local_property_by_global)
+typedef val_t (* abstractmetamodel___MMLocalClass___local_property_by_global_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___local_property_by_global(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____global_properties(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____global_properties)
+typedef val_t (* abstractmetamodel___MMLocalClass___global_properties_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___global_properties(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalClass____properties_by_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____properties_by_name)
+typedef val_t (* abstractmetamodel___MMLocalClass___properties_by_name_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___properties_by_name(val_t  self);
+typedef void (* abstractmetamodel___MMLocalClass___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void abstractmetamodel___MMLocalClass___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_abstractmetamodel___MMLocalClass___init(val_t  param0, val_t  param1);
+typedef val_t (* abstractmetamodel___MMLocalClass___for_module_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___for_module(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMLocalClass___new_global_t)(val_t  self);
+void abstractmetamodel___MMLocalClass___new_global(val_t  self);
+typedef void (* abstractmetamodel___MMLocalClass___set_global_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMLocalClass___set_global(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___has_global_property_by_name_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___get_property_by_name_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___attribute_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___attribute(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___method_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___method(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___super_methods_named_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMLocalClass___register_local_property_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMLocalClass___register_local_property(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMLocalClass___register_global_property_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMLocalClass___register_global_property(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass_____bra_t)(val_t  self, val_t  param0);
+val_t abstractmetamodel___MMLocalClass_____bra(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalClass___context_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___context(val_t  self);
+typedef val_t (* abstractmetamodel___MMLocalClass___to_s_t)(val_t  self);
+val_t abstractmetamodel___MMLocalClass___to_s(val_t  self);
+#define ATTR_abstractmetamodel___MMGlobalProperty____intro(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____intro)
+typedef val_t (* abstractmetamodel___MMGlobalProperty___intro_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___intro(val_t  self);
+typedef val_t (* abstractmetamodel___MMGlobalProperty___local_class_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___local_class(val_t  self);
+#define ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy)
+typedef val_t (* abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalProperty___init_t)(val_t  self, val_t  param0, int* init_table);
+void abstractmetamodel___MMGlobalProperty___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_abstractmetamodel___MMGlobalProperty___init(val_t  param0);
+typedef val_t (* abstractmetamodel___MMGlobalProperty___to_s_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___to_s(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalProperty___add_concrete_property_t)(val_t  self, val_t  param0, val_t  param1);
+void abstractmetamodel___MMGlobalProperty___add_concrete_property(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* abstractmetamodel___MMGlobalProperty___is_attribute_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t  self);
+typedef val_t (* abstractmetamodel___MMGlobalProperty___is_method_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___is_method(val_t  self);
+#define ATTR_abstractmetamodel___MMGlobalProperty____is_init(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____is_init)
+typedef val_t (* abstractmetamodel___MMGlobalProperty___is_init_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___is_init(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalProperty___is_init__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____visibility_level)
+typedef val_t (* abstractmetamodel___MMGlobalProperty___visibility_level_t)(val_t  self);
+val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t  self);
+typedef void (* abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t  self, val_t  param0);
+#define ATTR_abstractmetamodel___MMLocalProperty____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____name)
+typedef val_t (* abstractmetamodel___MMLocalProperty___name_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___name(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalProperty____local_class(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____local_class)
+typedef val_t (* abstractmetamodel___MMLocalProperty___local_class_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___local_class(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalProperty____global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____global)
+typedef val_t (* abstractmetamodel___MMLocalProperty___global_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___global(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalProperty____super_prop(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____super_prop)
+typedef val_t (* abstractmetamodel___MMLocalProperty___super_prop_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___super_prop(val_t  self);
+#define ATTR_abstractmetamodel___MMLocalProperty____concrete_property(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____concrete_property)
+typedef val_t (* abstractmetamodel___MMLocalProperty___concrete_property_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___concrete_property(val_t  self);
+typedef val_t (* abstractmetamodel___MMLocalProperty___module_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___module(val_t  self);
+typedef val_t (* abstractmetamodel___MMLocalProperty___full_name_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___full_name(val_t  self);
+typedef void (* abstractmetamodel___MMLocalProperty___set_global_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMLocalProperty___set_global(val_t  self, val_t  param0);
+typedef val_t (* abstractmetamodel___MMLocalProperty___to_s_t)(val_t  self);
+val_t abstractmetamodel___MMLocalProperty___to_s(val_t  self);
+typedef void (* abstractmetamodel___MMLocalProperty___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void abstractmetamodel___MMLocalProperty___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_abstractmetamodel___MMLocalProperty___init(val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_abstractmetamodel___MMConcreteProperty____cprhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMConcreteProperty____cprhe)
+typedef val_t (* abstractmetamodel___MMConcreteProperty___cprhe_t)(val_t  self);
+val_t abstractmetamodel___MMConcreteProperty___cprhe(val_t  self);
+#define ATTR_abstractmetamodel___MMConcreteProperty____need_super(recv) ATTR(recv, COLOR_abstractmetamodel___MMConcreteProperty____need_super)
+typedef val_t (* abstractmetamodel___MMConcreteProperty___need_super_t)(val_t  self);
+val_t abstractmetamodel___MMConcreteProperty___need_super(val_t  self);
+typedef void (* abstractmetamodel___MMConcreteProperty___need_super__eq_t)(val_t  self, val_t  param0);
+void abstractmetamodel___MMConcreteProperty___need_super__eq(val_t  self, val_t  param0);
+typedef void (* abstractmetamodel___MMConcreteProperty___new_global_t)(val_t  self);
+void abstractmetamodel___MMConcreteProperty___new_global(val_t  self);
+#endif
diff --git a/c_src/abstracttool._sep.c b/c_src/abstracttool._sep.c
new file mode 100644 (file)
index 0000000..cf4916d
--- /dev/null
@@ -0,0 +1,321 @@
+#include "abstracttool._sep.h"
+void abstracttool___AbstractCompiler___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "abstracttool::AbstractCompiler::init (src/abstracttool.nit:28,2--31:37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AbstractCompiler].i]) return;
+  ((mmloader___ToolContext___init_t)CALL( self,COLOR_mmloader___ToolContext___init))( self, init_table /*YYY*/) /*ToolContext::init*/;
+  variable0 = NEW_syntax___SrcModuleLoader___init(); /*new SrcModuleLoader*/
+  ((mmloader___ToolContext___register_loader_t)CALL( self,COLOR_mmloader___ToolContext___register_loader))( self, variable0) /*AbstractCompiler::register_loader*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AbstractCompiler].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void abstracttool___AbstractCompiler___exec_cmd_line(val_t  self) {
+  struct trace_t trace = {NULL, "abstracttool::AbstractCompiler::exec_cmd_line (src/abstracttool.nit:34,2--59:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  ((mmloader___ToolContext___process_options_t)CALL( self,COLOR_mmloader___ToolContext___process_options))( self) /*AbstractCompiler::process_options*/;
+  variable0 = ((mmloader___ToolContext___opt_help_t)CALL( self,COLOR_mmloader___ToolContext___opt_help))( self) /*AbstractCompiler::opt_help*/;
+  variable0 = ((opts___Option___value_t)CALL(variable0,COLOR_opts___Option___value))(variable0) /*OptionBool::value*/;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*AbstractCompiler::option_context*/;
+    ((opts___OptionContext___usage_t)CALL(variable0,COLOR_opts___OptionContext___usage))(variable0) /*OptionContext::usage*/;
+    exit(UNTAG_Int( TAG_Int(0)));
+  }
+  variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*AbstractCompiler::option_context*/;
+  variable0 = ((opts___OptionContext___rest_t)CALL(variable0,COLOR_opts___OptionContext___rest))(variable0) /*OptionContext::rest*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*AbstractCompiler::option_context*/;
+    ((opts___OptionContext___usage_t)CALL(variable0,COLOR_opts___OptionContext___usage))(variable0) /*OptionContext::usage*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable1 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*AbstractCompiler::option_context*/;
+  variable1 = ((opts___OptionContext___rest_t)CALL(variable1,COLOR_opts___OptionContext___rest))(variable1) /*OptionContext::rest*/;
+  variable0 = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*rest*/,COLOR_abstract_collection___Collection___length))( variable0 /*rest*/) /*Array::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable5 =  variable3 /*i*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable7 = variable6;
+    if (UNTAG_Bool(variable7)) { /* and */
+      variable7 = ATTR_array___AbstractArray____length( variable0 /*rest*/) /*Array::_length*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+    }
+    variable6 = variable7;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable6 = ATTR_array___Array____items( variable0 /*rest*/) /*Array::_items*/;
+    variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+    goto return_label3;
+    return_label3: while(false);
+    variable5 = variable6;
+    variable5 = ((mmloader___ToolContext___get_module_from_filename_t)CALL( self,COLOR_mmloader___ToolContext___get_module_from_filename))( self, variable5) /*AbstractCompiler::get_module_from_filename*/;
+    variable4 = variable5;
+    ((array___AbstractArray___add_t)CALL( variable1 /*to_do*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*to_do*/,  variable4 /*mod*/) /*Array::add*/;
+    continue_2: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_2: while(0);
+  variable2 = ((mmloader___ToolContext___opt_log_t)CALL( self,COLOR_mmloader___ToolContext___opt_log))( self) /*AbstractCompiler::opt_log*/;
+  variable2 = ((opts___Option___value_t)CALL(variable2,COLOR_opts___Option___value))(variable2) /*OptionBool::value*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((abstracttool___AbstractCompiler___dump_context_info_t)CALL( self,COLOR_abstracttool___AbstractCompiler___dump_context_info))( self) /*AbstractCompiler::dump_context_info*/;
+  }
+  variable2 = ((array___AbstractArray___is_empty_t)CALL( variable1 /*to_do*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*to_do*/) /*Array::is_empty*/;
+  variable2 =  TAG_Bool(!UNTAG_Bool(variable2));
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((mmloader___ToolContext___opt_only_metamodel_t)CALL( self,COLOR_mmloader___ToolContext___opt_only_metamodel))( self) /*AbstractCompiler::opt_only_metamodel*/;
+    variable2 = ((opts___Option___value_t)CALL(variable2,COLOR_opts___Option___value))(variable2) /*OptionBool::value*/;
+    variable2 =  TAG_Bool(!UNTAG_Bool(variable2));
+  }
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((abstracttool___AbstractCompiler___perform_work_t)CALL( self,COLOR_abstracttool___AbstractCompiler___perform_work))( self,  variable1 /*to_do*/) /*AbstractCompiler::perform_work*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void abstracttool___AbstractCompiler___perform_work(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstracttool::AbstractCompiler::perform_work (src/abstracttool.nit:63,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method perform_work called (src/abstracttool.nit:63,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void abstracttool___AbstractCompiler___dump_context_info(val_t  self) {
+  struct trace_t trace = {NULL, "abstracttool::AbstractCompiler::dump_context_info (src/abstracttool.nit:65,2--80:9)"};
+  val_t variable0;
+    val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMContext___module_hierarchy))( self) /*AbstractCompiler::module_hierarchy*/;
+  variable0 = ((partial_order___PartialOrder___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*PartialOrder::iterator*/;
+  while (true) { /*for*/
+    variable1 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable1)) break; /*for*/
+    variable1 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+    ((abstracttool___MMModule___dump_module_info_t)CALL( variable1 /*mod*/,COLOR_abstracttool___MMModule___dump_module_info))( variable1 /*mod*/) /*MMModule::dump_module_info*/;
+    continue_5: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
+  }
+  break_5: while(0);
+  variable1 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  variable0 = variable1;
+  variable1 = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMContext___module_hierarchy))( self) /*AbstractCompiler::module_hierarchy*/;
+  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable0 /*tab*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable0 /*tab*/, variable1) /*Array::add_all*/;
+  variable2 = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMContext___module_hierarchy))( self) /*AbstractCompiler::module_hierarchy*/;
+  variable2 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable2,COLOR_partial_order___PartialOrder___select_smallests))(variable2,  variable0 /*tab*/) /*PartialOrder::select_smallests*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+  variable2 = ((string___Collection___join_t)CALL(variable2,COLOR_string___Collection___join))(variable2, variable3) /*Array::join*/;
+  variable1 = variable2;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*name*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(".full_class_hierarchy.new.dot"), TAG_Int(29)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable4 = NEW_file___OFStream___open(variable3); /*new OFStream*/
+  variable3 = variable4;
+  variable2 = variable3;
+  variable3 = ((abstractmetamodel___MMContext___class_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMContext___class_hierarchy))( self) /*AbstractCompiler::class_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___to_dot_t)CALL(variable3,COLOR_partial_order___PartialOrder___to_dot))(variable3) /*PartialOrder::to_dot*/;
+  ((file___OFStream___write_t)CALL( variable2 /*f*/,COLOR_stream___OStream___write))( variable2 /*f*/, variable3) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable2 /*f*/,COLOR_stream___IOS___close))( variable2 /*f*/) /*OFStream::close*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*name*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(".module_hierarchy.new.dot"), TAG_Int(25)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable4 = NEW_file___OFStream___open(variable3); /*new OFStream*/
+  variable3 = variable4;
+  variable2 = variable3 /*f=*/;
+  variable3 = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMContext___module_hierarchy))( self) /*AbstractCompiler::module_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___to_dot_t)CALL(variable3,COLOR_partial_order___PartialOrder___to_dot))(variable3) /*PartialOrder::to_dot*/;
+  ((file___OFStream___write_t)CALL( variable2 /*f*/,COLOR_stream___OStream___write))( variable2 /*f*/, variable3) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable2 /*f*/,COLOR_stream___IOS___close))( variable2 /*f*/) /*OFStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstracttool___MMModule___dump_module_info(val_t  self) {
+  struct trace_t trace = {NULL, "abstracttool::MMModule::dump_module_info (src/abstracttool.nit:85,2--98:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((mmloader___MMModule___filename_t)CALL( self,COLOR_mmloader___MMModule___filename))( self) /*MMModule::filename*/;
+  variable1 = ((file___String___file_path_t)CALL(variable1,COLOR_file___String___file_path))(variable1) /*String::file_path*/;
+  variable0 = variable1;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable0 /*p*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  variable8 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMModule::name*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+  variable1 = variable2;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*fname*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(".class_hierarchy.new.dot"), TAG_Int(24)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable4 = NEW_file___OFStream___open(variable3); /*new OFStream*/
+  variable3 = variable4;
+  variable2 = variable3;
+  variable3 = ((abstractmetamodel___MMModule___class_specialization_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy))( self) /*MMModule::class_specialization_hierarchy*/;
+  variable3 = ((partial_order___PartialOrder___to_dot_t)CALL(variable3,COLOR_partial_order___PartialOrder___to_dot))(variable3) /*PartialOrder::to_dot*/;
+  ((file___OFStream___write_t)CALL( variable2 /*f*/,COLOR_stream___OStream___write))( variable2 /*f*/, variable3) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable2 /*f*/,COLOR_stream___IOS___close))( variable2 /*f*/) /*OFStream::close*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*fname*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(".properties.log"), TAG_Int(15)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable4 = NEW_file___OFStream___open(variable3); /*new OFStream*/
+  variable3 = variable4;
+  variable2 = variable3 /*f=*/;
+  variable3 = ((abstractmetamodel___MMModule___local_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___local_classes))( self) /*MMModule::local_classes*/;
+  variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    ((abstracttool___MMLocalClass___dump_properties_t)CALL( variable4 /*cla*/,COLOR_abstracttool___MMLocalClass___dump_properties))( variable4 /*cla*/,  variable2 /*f*/) /*MMLocalClass::dump_properties*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+    ((file___OFStream___write_t)CALL( variable2 /*f*/,COLOR_stream___OStream___write))( variable2 /*f*/, variable5) /*OFStream::write*/;
+    continue_7: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_7: while(0);
+  ((file___OFStream___close_t)CALL( variable2 /*f*/,COLOR_stream___IOS___close))( variable2 /*f*/) /*OFStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+void abstracttool___MMLocalClass___dump_properties(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "abstracttool::MMLocalClass::dump_properties (src/abstracttool.nit:103,2--110:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("class "), TAG_Int(6)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 =  self;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+  ((stream___OStream___write_t)CALL( variable0 /*file*/,COLOR_stream___OStream___write))( variable0 /*file*/, variable1) /*OStream::write*/;
+  variable1 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global_properties))( self) /*MMLocalClass::global_properties*/;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Set::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable4 = ((inheritance___MMLocalClass_____bra_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass_____bra))( self,  variable2 /*p*/) /*MMLocalClass::[]*/;
+    variable3 = variable4;
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("\t"), TAG_Int(1)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable3 /*lp*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    variable10 = ((genericity___MMLocalProperty___signature_t)CALL( variable3 /*lp*/,COLOR_static_type___MMLocalProperty___signature))( variable3 /*lp*/) /*MMLocalProperty::signature*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+    ((stream___OStream___write_t)CALL( variable0 /*file*/,COLOR_stream___OStream___write))( variable0 /*file*/, variable4) /*OStream::write*/;
+    continue_9: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_9: while(0);
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("end # "), TAG_Int(6)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 =  self;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+  ((stream___OStream___write_t)CALL( variable0 /*file*/,COLOR_stream___OStream___write))( variable0 /*file*/, variable1) /*OStream::write*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/abstracttool._sep.h b/c_src/abstracttool._sep.h
new file mode 100644 (file)
index 0000000..def3089
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef abstracttool__sep
+#define abstracttool__sep
+#include "syntax._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_AbstractCompiler[];
+extern const int SFT_abstracttool[];
+#define ID_AbstractCompiler SFT_abstracttool[0]
+#define COLOR_AbstractCompiler SFT_abstracttool[1]
+#define INIT_TABLE_POS_AbstractCompiler SFT_abstracttool[2]
+#define COLOR_abstracttool___AbstractCompiler___init SFT_abstracttool[3]
+#define COLOR_abstracttool___AbstractCompiler___exec_cmd_line SFT_abstracttool[4]
+#define COLOR_abstracttool___AbstractCompiler___perform_work SFT_abstracttool[5]
+#define COLOR_abstracttool___AbstractCompiler___dump_context_info SFT_abstracttool[6]
+#define COLOR_abstracttool___MMModule___dump_module_info SFT_abstracttool[7]
+#define COLOR_abstracttool___MMLocalClass___dump_properties SFT_abstracttool[8]
+typedef void (* abstracttool___AbstractCompiler___init_t)(val_t  self, int* init_table);
+void abstracttool___AbstractCompiler___init(val_t  self, int* init_table);
+val_t NEW_abstracttool___AbstractCompiler___init();
+typedef void (* abstracttool___AbstractCompiler___exec_cmd_line_t)(val_t  self);
+void abstracttool___AbstractCompiler___exec_cmd_line(val_t  self);
+typedef void (* abstracttool___AbstractCompiler___perform_work_t)(val_t  self, val_t  param0);
+void abstracttool___AbstractCompiler___perform_work(val_t  self, val_t  param0);
+typedef void (* abstracttool___AbstractCompiler___dump_context_info_t)(val_t  self);
+void abstracttool___AbstractCompiler___dump_context_info(val_t  self);
+typedef void (* abstracttool___MMModule___dump_module_info_t)(val_t  self);
+void abstracttool___MMModule___dump_module_info(val_t  self);
+typedef void (* abstracttool___MMLocalClass___dump_properties_t)(val_t  self, val_t  param0);
+void abstracttool___MMLocalClass___dump_properties(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/array._sep.c b/c_src/array._sep.c
new file mode 100644 (file)
index 0000000..fd63e49
--- /dev/null
@@ -0,0 +1,1595 @@
+#include "array._sep.h"
+void array___AbstractArray___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::enlarge (bin/../lib/standard//array.nit:23,2--22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method enlarge called (bin/../lib/standard//array.nit:23,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t array___AbstractArray___length(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::length (bin/../lib/standard//array.nit:25,2--26:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
+}
+val_t array___AbstractArray___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::is_empty (bin/../lib/standard//array.nit:28,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___AbstractArray___push(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::push (bin/../lib/standard//array.nit:30,2--34)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((array___AbstractArray___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self,  variable0 /*item*/) /*AbstractArray::add*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___AbstractArray___pop(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::pop (bin/../lib/standard//array.nit:32,2--37:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((array___AbstractArray___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*AbstractArray::is_empty*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert 'not_empty'  failed: bin/../lib/standard//array.nit:34,3--32\n"); nit_exit(1);}
+  variable1 = ((abstract_collection___IndexedCollection___last_t)CALL( self,COLOR_abstract_collection___IndexedCollection___last))( self) /*AbstractArray::last*/;
+  variable0 = variable1;
+  ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1)));
+  variable0 =  variable0 /*r*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___AbstractArray___shift(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::shift (bin/../lib/standard//array.nit:40,2--51:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((array___AbstractArray___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*AbstractArray::is_empty*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert 'not_empty'  failed: bin/../lib/standard//array.nit:42,3--32\n"); nit_exit(1);}
+  variable1 = ((abstract_collection___IndexedCollection___first_t)CALL( self,COLOR_abstract_collection___Collection___first))( self) /*AbstractArray::first*/;
+  variable0 = variable1;
+  variable1 =  TAG_Int(1);
+  variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable4 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable1 /*i*/) /*AbstractArray::[]*/;
+    ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable3, variable4) /*AbstractArray::[]=*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_4: while(0);
+  }
+  break_4: while(0);
+  variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)-UNTAG_Int( TAG_Int(1)));
+  ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = variable3;
+  variable0 =  variable0 /*r*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___AbstractArray___unshift(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::unshift (bin/../lib/standard//array.nit:54,2--61:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)+UNTAG_Int( TAG_Int(1)));
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable1 /*i*/) /*AbstractArray::[]*/;
+    ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable2, variable3) /*AbstractArray::[]=*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_6: while(0);
+  }
+  break_6: while(0);
+  ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self,  TAG_Int(0),  variable0 /*item*/) /*AbstractArray::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::AbstractArray::insert (bin/../lib/standard//array.nit:64,2--68:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable2) /*AbstractArray::enlarge*/;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( variable1 /*pos*/));
+  variable3 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___copy_to_t)CALL( self,COLOR_array___AbstractArray___copy_to))( self,  variable1 /*pos*/, variable2,  self, variable3) /*AbstractArray::copy_to*/;
+  ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self,  variable1 /*pos*/,  variable0 /*item*/) /*AbstractArray::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::add (bin/../lib/standard//array.nit:71,2--44)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable1,  variable0 /*item*/) /*AbstractArray::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___clear(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::clear (bin/../lib/standard//array.nit:73,2--32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ =  TAG_Int(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t array___AbstractArray___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::has (bin/../lib/standard//array.nit:75,2--83:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable1 /*i*/) /*AbstractArray::[]*/;
+    variable3 = TAG_Bool((variable3 ==  variable0 /*item*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label10;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_11: while(0);
+  }
+  break_11: while(0);
+  variable1 =  TAG_Bool(false);
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::has_only (bin/../lib/standard//array.nit:86,2--94:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable1 /*i*/) /*AbstractArray::[]*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  variable0 /*item*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*item*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label12;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_13: while(0);
+  }
+  break_13: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___has_key(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::has_key (bin/../lib/standard//array.nit:97,2--66)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)<UNTAG_Int(variable2));
+  }
+  variable1 = variable2;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::count (bin/../lib/standard//array.nit:99,2--108:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable2 =  TAG_Int(0);
+  variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable3 /*l*/));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable2 /*i*/) /*AbstractArray::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*res*/;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_16: while(0);
+  }
+  break_16: while(0);
+  variable1 =  variable1 /*res*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___index_of(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::index_of (bin/../lib/standard//array.nit:111,2--58)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___index_of_from_t)CALL( self,COLOR_array___AbstractArray___index_of_from))( self,  variable0 /*item*/,  TAG_Int(0)) /*AbstractArray::index_of_from*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___last_index_of(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::last_index_of (bin/../lib/standard//array.nit:113,2--77)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  variable1 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self,  variable0 /*item*/, variable1) /*AbstractArray::last_index_of_from*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___AbstractArray___index_of_from(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::AbstractArray::index_of_from (bin/../lib/standard//array.nit:115,2--125:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  variable1 /*pos*/;
+  variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable3 /*len*/));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable2 /*i*/) /*AbstractArray::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable2 =  variable2 /*i*/;
+      goto return_label19;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_20: while(0);
+  }
+  break_20: while(0);
+  variable4 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable4;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t array___AbstractArray___last_index_of_from(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::AbstractArray::last_index_of_from (bin/../lib/standard//array.nit:128,2--138:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  variable1 /*pos*/;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable2 /*i*/) /*AbstractArray::[]*/;
+    variable3 = TAG_Bool((variable3 ==  variable0 /*item*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable2 =  variable2 /*i*/;
+      goto return_label21;
+    } else { /*if*/
+      variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    }
+    continue_22: while(0);
+  }
+  break_22: while(0);
+  variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t array___AbstractArray___reversed(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::reversed (bin/../lib/standard//array.nit:141,2--149:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
+  variable0 = variable1;
+  variable2 = NEW_array___Array___with_capacity( variable0 /*cmp*/); /*new Array[E]*/
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*cmp*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*cmp*/;
+    variable2 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable0 /*cmp*/) /*AbstractArray::[]*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*result*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*result*/, variable2) /*Array::add*/;
+    continue_24: while(0);
+  }
+  break_24: while(0);
+  variable0 =  variable1 /*result*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___AbstractArray___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::remove (bin/../lib/standard//array.nit:152,2--51)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___index_of_t)CALL( self,COLOR_abstract_collection___IndexedCollection___index_of))( self,  variable0 /*item*/) /*AbstractArray::index_of*/;
+  ((array___AbstractArray___remove_at_t)CALL( self,COLOR_abstract_collection___Map___remove_at))( self, variable1) /*AbstractArray::remove_at*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___remove_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::remove_all (bin/../lib/standard//array.nit:154,2--159:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___AbstractArray___index_of_t)CALL( self,COLOR_abstract_collection___IndexedCollection___index_of))( self,  variable0 /*item*/) /*AbstractArray::index_of*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    ((array___AbstractArray___remove_at_t)CALL( self,COLOR_abstract_collection___Map___remove_at))( self,  variable1 /*i*/) /*AbstractArray::remove_at*/;
+    variable2 = ((array___AbstractArray___index_of_from_t)CALL( self,COLOR_array___AbstractArray___index_of_from))( self,  variable0 /*item*/,  variable1 /*i*/) /*AbstractArray::index_of_from*/;
+    variable1 = variable2 /*i=*/;
+    continue_27: while(0);
+  }
+  break_27: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::remove_at (bin/../lib/standard//array.nit:163,2--172:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+      val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( variable1 /*l*/));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = TAG_Int(UNTAG_Int( variable0 /*i*/)+UNTAG_Int( TAG_Int(1)));
+    variable2 = variable3;
+    while (true) { /*while*/
+      variable3 = TAG_Bool(UNTAG_Int( variable2 /*j*/)<UNTAG_Int( variable1 /*l*/));
+      if (!UNTAG_Bool(variable3)) break; /* while*/
+      variable3 = TAG_Int(UNTAG_Int( variable2 /*j*/)-UNTAG_Int( TAG_Int(1)));
+      variable4 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable2 /*j*/) /*AbstractArray::[]*/;
+      ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable3, variable4) /*AbstractArray::[]=*/;
+      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      continue_29: while(0);
+    }
+    break_29: while(0);
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*l*/)-UNTAG_Int( TAG_Int(1)));
+    ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = variable3;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "array::AbstractArray::copy_to (bin/../lib/standard//array.nit:176,2--182:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  variable1 /*len*/;
+  while (true) { /*while*/
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    variable5 = TAG_Int(UNTAG_Int( variable3 /*new_start*/)+UNTAG_Int( variable4 /*i*/));
+    variable6 = TAG_Int(UNTAG_Int( variable0 /*start*/)+UNTAG_Int( variable4 /*i*/));
+    variable6 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self, variable6) /*AbstractArray::[]*/;
+    ((abstract_collection___Map_____braeq_t)CALL( variable2 /*dest*/,COLOR_abstract_collection___Map_____braeq))( variable2 /*dest*/, variable5, variable6) /*AbstractArray::[]=*/;
+    continue_31: while(0);
+  }
+  break_31: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void array___AbstractArray___output(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::output (bin/../lib/standard//array.nit:186,2--193:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( variable1 /*l*/));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable0 /*i*/) /*AbstractArray::[]*/;
+    variable2 = variable3;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*e*/ ==  NIT_NULL /*null*/) || (( variable2 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))( variable2 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      ((kernel___Object___output_t)CALL( variable2 /*e*/,COLOR_kernel___Object___output))( variable2 /*e*/) /*Object::output*/;
+    }
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_33: while(0);
+  }
+  break_33: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t array___AbstractArray___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "array::AbstractArray::iterator (bin/../lib/standard//array.nit:197,2--74)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___ArrayIterator___init( self); /*new ArrayIterator[E]*/
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::AbstractArray::== (bin/../lib/standard//array.nit:199,2--211:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_AbstractArray, ID_AbstractArray)) /*cast AbstractArray[E]*/;
+  variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+  if (!UNTAG_Bool(variable1)) { /* or */
+    variable1 = TAG_Bool(IS_EQUAL_NN( variable0 /*o*/, NIT_NULL /*null*/));
+  }
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label35;
+  }
+  variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_AbstractArray, ID_AbstractArray)) /*cast AbstractArray[E]*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//array.nit:203,3--30\n"); nit_exit(1);}
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*o*/,COLOR_abstract_collection___Collection___length))( variable0 /*o*/) /*AbstractArray::length*/;
+  variable2 = TAG_Bool((variable2)!=( variable1 /*l*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label35;
+  }
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*l*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable2 /*i*/) /*AbstractArray::[]*/;
+    variable4 = ((abstract_collection___Map_____bra_t)CALL( variable0 /*o*/,COLOR_abstract_collection___Map_____bra))( variable0 /*o*/,  variable2 /*i*/) /*AbstractArray::[]*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 == variable4) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3,variable4)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, variable4) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label35;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_36: while(0);
+  }
+  break_36: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___Array_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::Array::[] (bin/../lib/standard//array.nit:227,2--230:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_array___AbstractArray____length( self) /*Array::_length*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)<UNTAG_Int(variable2));
+  }
+  variable1 = variable2;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable1 = ATTR_array___Array____items( self) /*Array::_items*/;
+  variable1 = UNBOX_NativeArray(variable1)[UNTAG_Int( variable0 /*index*/)];
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void array___Array_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::Array::[]= (bin/../lib/standard//array.nit:233,2--242:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ATTR_array___AbstractArray____length( self) /*Array::_length*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1)));
+    variable3 = TAG_Bool(UNTAG_Int( variable0 /*index*/)<UNTAG_Int(variable3));
+  }
+  variable2 = variable3;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:235,3--50\n"); nit_exit(1);}
+  variable2 = ATTR_array___Array____capacity( self) /*Array::_capacity*/;
+  variable2 = TAG_Bool(UNTAG_Int(variable2)<=UNTAG_Int( variable0 /*index*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Int(UNTAG_Int( variable0 /*index*/)+UNTAG_Int( TAG_Int(1)));
+    ((array___Array___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable2) /*Array::enlarge*/;
+  }
+  variable2 = ATTR_array___AbstractArray____length( self) /*Array::_length*/;
+  variable2 = TAG_Bool(UNTAG_Int(variable2)<=UNTAG_Int( variable0 /*index*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Int(UNTAG_Int( variable0 /*index*/)+UNTAG_Int( TAG_Int(1)));
+    ATTR_array___AbstractArray____length( self) /*Array::_length*/ = variable2;
+  }
+  variable2 = ATTR_array___Array____items( self) /*Array::_items*/;
+  UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*index*/)]= variable1 /*item*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::Array::enlarge (bin/../lib/standard//array.nit:245,2--253:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___Array____capacity( self) /*Array::_capacity*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<=UNTAG_Int( variable1 /*c*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label39;
+  }
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*c*/)<=UNTAG_Int( variable0 /*cap*/));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*c*/)*UNTAG_Int( TAG_Int(2)));
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(2)));
+    variable1 = variable2 /*c=*/;
+    continue_40: while(0);
+  }
+  break_40: while(0);
+  variable3 = BOX_NativeArray((val_t*)malloc((UNTAG_Int( variable1 /*c*/) * sizeof(val_t))));
+  variable2 = variable3;
+  variable3 = ATTR_array___Array____capacity( self) /*Array::_capacity*/;
+  variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ATTR_array___Array____items( self) /*Array::_items*/;
+    variable4 = ATTR_array___AbstractArray____length( self) /*Array::_length*/;
+    (void)memcpy(UNBOX_NativeArray( variable2 /*a*/), UNBOX_NativeArray(variable3), UNTAG_Int(variable4)*sizeof(val_t));
+  }
+  ATTR_array___Array____items( self) /*Array::_items*/ =  variable2 /*a*/;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ =  variable1 /*c*/;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "array::Array::init (bin/../lib/standard//array.nit:256,2--260:13)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i]) return;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ =  TAG_Int(0);
+  ATTR_array___AbstractArray____length( self) /*Array::_length*/ =  TAG_Int(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___with(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "array::Array::with (bin/../lib/standard//array.nit:263,2--268:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  /* check if p<Array[E] with p:E */
+  if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//array.nit:264,12--24\n"); nit_exit(1); } /*cast Array[E]*/;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i]) return;
+  variable1 = ATTR_array___Array____items( variable0 /*objects*/) /*Array::_items*/;
+  ATTR_array___Array____items( self) /*Array::_items*/ = variable1;
+  variable1 = ATTR_array___Array____capacity( variable0 /*objects*/) /*Array::_capacity*/;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ = variable1;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*objects*/,COLOR_abstract_collection___Collection___length))( variable0 /*objects*/) /*Array::length*/;
+  ATTR_array___AbstractArray____length( self) /*Array::_length*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___with_capacity(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "array::Array::with_capacity (bin/../lib/standard//array.nit:271,2--277:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i]) return;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'positive'  failed: bin/../lib/standard//array.nit:274,3--27\n"); nit_exit(1);}
+  variable1 = BOX_NativeArray((val_t*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(val_t))));
+  ATTR_array___Array____items( self) /*Array::_items*/ = variable1;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ =  variable0 /*cap*/;
+  ATTR_array___AbstractArray____length( self) /*Array::_length*/ =  TAG_Int(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___filled_with(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "array::Array::filled_with (bin/../lib/standard//array.nit:280,2--290:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i]) return;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert 'positive'  failed: bin/../lib/standard//array.nit:283,3--29\n"); nit_exit(1);}
+  variable2 = BOX_NativeArray((val_t*)malloc((UNTAG_Int( variable1 /*count*/) * sizeof(val_t))));
+  ATTR_array___Array____items( self) /*Array::_items*/ = variable2;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ =  variable1 /*count*/;
+  ATTR_array___AbstractArray____length( self) /*Array::_length*/ =  variable1 /*count*/;
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*count*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    ((array___Array_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self,  variable2 /*i*/,  variable0 /*value*/) /*Array::[]=*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_45: while(0);
+  }
+  break_45: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void array___Array___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "array::Array::with_native (bin/../lib/standard//array.nit:294,2--300:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i]) return;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*size*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert 'positive'  failed: bin/../lib/standard//array.nit:297,3--28\n"); nit_exit(1);}
+  ATTR_array___Array____items( self) /*Array::_items*/ =  variable0 /*nat*/;
+  ATTR_array___Array____capacity( self) /*Array::_capacity*/ =  variable1 /*size*/;
+  ATTR_array___AbstractArray____length( self) /*Array::_length*/ =  variable1 /*size*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Array].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::item (bin/../lib/standard//array.nit:313,2--40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayIterator____array( self) /*ArrayIterator::_array*/;
+  variable1 = ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/;
+  variable0 = ((abstract_collection___Map_____bra_t)CALL(variable0,COLOR_abstract_collection___Map_____bra))(variable0, variable1) /*AbstractArray::[]*/;
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArrayIterator___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::item= (bin/../lib/standard//array.nit:315,2--42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArrayIterator____array( self) /*ArrayIterator::_array*/;
+  variable2 = ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*e*/) /*AbstractArray::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::is_ok (bin/../lib/standard//array.nit:317,2--50)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/;
+  variable1 = ATTR_array___ArrayIterator____array( self) /*ArrayIterator::_array*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*AbstractArray::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)<UNTAG_Int(variable1));
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArrayIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::next (bin/../lib/standard//array.nit:319,2--31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
+  tracehead = trace.prev;
+  return;
+}
+void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::init (bin/../lib/standard//array.nit:321,2--325:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArrayIterator].i]) return;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*a*/ ==  NIT_NULL /*null*/) || (( variable0 /*a*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable0 /*a*/,COLOR_kernel___Object_____eqeq))( variable0 /*a*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'not_nil'  failed: bin/../lib/standard//array.nit:323,3--27\n"); nit_exit(1);}
+  ATTR_array___ArrayIterator____array( self) /*ArrayIterator::_array*/ =  variable0 /*a*/;
+  ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/ =  TAG_Int(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArrayIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayIterator___index(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayIterator::index (bin/../lib/standard//array.nit:328,2--32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_array___ArrayIterator____index( self) /*ArrayIterator::_index*/;
+}
+val_t array___ArraySet___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::has (bin/../lib/standard//array.nit:340,2--41)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable1 = ((array___AbstractArray___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*e*/) /*Array::has*/;
+  goto return_label52;
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void array___ArraySet___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::add (bin/../lib/standard//array.nit:342,2--60)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable1 = ((array___AbstractArray___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*e*/) /*Array::has*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*e*/) /*Array::add*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArraySet___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySet::is_empty (bin/../lib/standard//array.nit:344,2--46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable0 = ((array___AbstractArray___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Array::is_empty*/;
+  goto return_label54;
+  return_label54: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArraySet___length(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySet::length (bin/../lib/standard//array.nit:346,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArraySet___first(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySet::first (bin/../lib/standard//array.nit:348,2--351:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//array.nit:350,3--26\n"); nit_exit(1);}
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable0 = ((abstract_collection___IndexedCollection___first_t)CALL(variable0,COLOR_abstract_collection___Collection___first))(variable0) /*Array::first*/;
+  goto return_label56;
+  return_label56: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArraySet___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::remove (bin/../lib/standard//array.nit:354,2--357:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable2 = ((array___AbstractArray___index_of_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___index_of))(variable2,  variable0 /*item*/) /*Array::index_of*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((array___ArraySet___remove_at_t)CALL( self,COLOR_array___ArraySet___remove_at))( self,  variable1 /*i*/) /*ArraySet::remove_at*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void array___ArraySet___remove_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::remove_all (bin/../lib/standard//array.nit:360,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((array___ArraySet___remove_t)CALL( self,COLOR_abstract_collection___RemovableCollection___remove))( self,  variable0 /*item*/) /*ArraySet::remove*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___ArraySet___clear(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySet::clear (bin/../lib/standard//array.nit:362,2--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  ((array___AbstractArray___clear_t)CALL(variable0,COLOR_abstract_collection___RemovableCollection___clear))(variable0) /*Array::clear*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArraySet___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySet::iterator (bin/../lib/standard//array.nit:364,2--70)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  variable1 = NEW_array___ArraySetIterator___init(variable0); /*new ArraySetIterator[E]*/
+  variable0 = variable1;
+  goto return_label60;
+  return_label60: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArraySet___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::enlarge (bin/../lib/standard//array.nit:366,2--367:45)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  ((array___Array___enlarge_t)CALL(variable1,COLOR_array___AbstractArray___enlarge))(variable1,  variable0 /*cap*/) /*Array::enlarge*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___ArraySet___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArraySet::remove_at (bin/../lib/standard//array.nit:369,2--372:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable2 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  variable2 = ((abstract_collection___IndexedCollection___last_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___last))(variable2) /*Array::last*/;
+  ((array___Array_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1,  variable0 /*i*/, variable2) /*Array::[]=*/;
+  variable1 = ATTR_array___ArraySet____array( self) /*ArraySet::_array*/;
+  ((array___AbstractArray___pop_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___pop))(variable1) /*Array::pop*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___ArraySet___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "array::ArraySet::init (bin/../lib/standard//array.nit:375,2--376:29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySet].i]) return;
+  variable0 = NEW_array___Array___init(); /*new Array[E]*/
+  ATTR_array___ArraySet____array( self) /*ArraySet::_array*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySet].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void array___ArraySet___with_capacity(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "array::ArraySet::with_capacity (bin/../lib/standard//array.nit:378,2--379:68)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySet].i]) return;
+  variable1 = NEW_array___Array___with_capacity( variable0 /*i*/); /*new Array[E]*/
+  ATTR_array___ArraySet____array( self) /*ArraySet::_array*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySet].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArraySetIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySetIterator::is_ok (bin/../lib/standard//array.nit:386,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySetIterator____iter( self) /*ArraySetIterator::_iter*/;
+  variable0 = ((array___ArrayIterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*ArrayIterator::is_ok*/;
+  goto return_label65;
+  return_label65: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArraySetIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySetIterator::next (bin/../lib/standard//array.nit:388,2--30)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySetIterator____iter( self) /*ArraySetIterator::_iter*/;
+  ((array___ArrayIterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*ArrayIterator::next*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArraySetIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArraySetIterator::item (bin/../lib/standard//array.nit:390,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArraySetIterator____iter( self) /*ArraySetIterator::_iter*/;
+  variable0 = ((array___ArrayIterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*ArrayIterator::item*/;
+  goto return_label67;
+  return_label67: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArraySetIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "array::ArraySetIterator::init (bin/../lib/standard//array.nit:392,2--45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySetIterator].i]) return;
+  ATTR_array___ArraySetIterator____iter( self) /*ArraySetIterator::_iter*/ =  variable0 /*iter*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArraySetIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayMap_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::[] (bin/../lib/standard//array.nit:402,2--409:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___ArrayMap___index_t)CALL( self,COLOR_array___ArrayMap___index))( self,  variable0 /*key*/) /*ArrayMap::index*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable3 =  variable1 /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = variable2;
+      variable5 = ATTR_array___AbstractArray____length(variable5) /*Array::_length*/;
+      variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable4 = variable2;
+    variable4 = ATTR_array___Array____items(variable4) /*Array::_items*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+    goto return_label70;
+    return_label70: while(false);
+    variable2 = variable4;
+    variable2 = ((abstract_collection___Couple___second_t)CALL(variable2,COLOR_abstract_collection___Couple___second))(variable2) /*Couple::second*/;
+    variable1 = variable2;
+    goto return_label69;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label69;
+  }
+  return_label69: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::ArrayMap::[]= (bin/../lib/standard//array.nit:413,2--420:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((array___ArrayMap___index_t)CALL( self,COLOR_array___ArrayMap___index))( self,  variable0 /*key*/) /*ArrayMap::index*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label72;
+    return_label72: while(false);
+    variable3 = variable5;
+    ((abstract_collection___Couple___second__eq_t)CALL(variable3,COLOR_abstract_collection___Couple___second__eq))(variable3,  variable1 /*item*/) /*Couple::second=*/;
+  } else { /*if*/
+    variable3 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable4 = NEW_abstract_collection___Couple___init( variable0 /*key*/,  variable1 /*item*/); /*new Couple[K, E]*/
+    ((array___AbstractArray___push_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___push))(variable3, variable4) /*Array::push*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayMap___has_key(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::has_key (bin/../lib/standard//array.nit:424,2--425:50)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___ArrayMap___index_t)CALL( self,COLOR_array___ArrayMap___index))( self,  variable0 /*key*/) /*ArrayMap::index*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>=UNTAG_Int( TAG_Int(0)));
+  goto return_label73;
+  return_label73: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___ArrayMap___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::has (bin/../lib/standard//array.nit:427,2--431:14)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((abstract_collection___Couple___second_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Couple___second))( variable2 /*i*/) /*Couple::second*/;
+    variable3 = TAG_Bool((variable3 ==  variable0 /*item*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label74;
+    }
+    continue_75: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_75: while(0);
+  variable1 =  TAG_Bool(false);
+  goto return_label74;
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___ArrayMap___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::has_only (bin/../lib/standard//array.nit:434,2--438:13)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((abstract_collection___Couple___second_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Couple___second))( variable2 /*i*/) /*Couple::second*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  variable0 /*item*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*item*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label76;
+    }
+    continue_77: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_77: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label76;
+  return_label76: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___ArrayMap___length(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayMap::length (bin/../lib/standard//array.nit:441,2--442:42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  goto return_label78;
+  return_label78: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArrayMap___first(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayMap::first (bin/../lib/standard//array.nit:444,2--46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable0 = ((abstract_collection___IndexedCollection___first_t)CALL(variable0,COLOR_abstract_collection___Collection___first))(variable0) /*Array::first*/;
+  variable0 = ((abstract_collection___Couple___first_t)CALL(variable0,COLOR_abstract_collection___Couple___first))(variable0) /*Couple::first*/;
+  goto return_label79;
+  return_label79: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArrayMap___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::count (bin/../lib/standard//array.nit:446,2--451:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((abstract_collection___Couple___second_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Couple___second))( variable3 /*i*/) /*Couple::second*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
+    }
+    continue_81: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_81: while(0);
+  variable1 =  variable1 /*nb*/;
+  goto return_label80;
+  return_label80: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t array___ArrayMap___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayMap::iterator (bin/../lib/standard//array.nit:454,2--99)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  variable1 = NEW_abstract_collection___CoupleMapIterator___init(variable0); /*new CoupleMapIterator[K, E]*/
+  variable0 = variable1;
+  goto return_label82;
+  return_label82: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArrayMap___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayMap::is_empty (bin/../lib/standard//array.nit:456,2--46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable0 = ((array___AbstractArray___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Array::is_empty*/;
+  goto return_label83;
+  return_label83: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void array___ArrayMap___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::remove (bin/../lib/standard//array.nit:458,2--466:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable3 =  variable1 /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = variable2;
+      variable5 = ATTR_array___AbstractArray____length(variable5) /*Array::_length*/;
+      variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable4 = variable2;
+    variable4 = ATTR_array___Array____items(variable4) /*Array::_items*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+    goto return_label86;
+    return_label86: while(false);
+    variable2 = variable4;
+    variable2 = ((abstract_collection___Couple___second_t)CALL(variable2,COLOR_abstract_collection___Couple___second))(variable2) /*Couple::second*/;
+    variable2 = TAG_Bool((variable2 ==  variable0 /*item*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((array___ArrayMap___remove_at_index_t)CALL( self,COLOR_array___ArrayMap___remove_at_index))( self,  variable1 /*i*/) /*ArrayMap::remove_at_index*/;
+      goto return_label84;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_85: while(0);
+  }
+  break_85: while(0);
+  return_label84: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void array___ArrayMap___remove_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::remove_all (bin/../lib/standard//array.nit:470,2--477:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable3 =  variable1 /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = variable2;
+      variable5 = ATTR_array___AbstractArray____length(variable5) /*Array::_length*/;
+      variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable4 = variable2;
+    variable4 = ATTR_array___Array____items(variable4) /*Array::_items*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+    goto return_label89;
+    return_label89: while(false);
+    variable2 = variable4;
+    variable2 = ((abstract_collection___Couple___second_t)CALL(variable2,COLOR_abstract_collection___Couple___second))(variable2) /*Couple::second*/;
+    variable2 = TAG_Bool((variable2 ==  variable0 /*item*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*item*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((array___ArrayMap___remove_at_index_t)CALL( self,COLOR_array___ArrayMap___remove_at_index))( self,  variable1 /*i*/) /*ArrayMap::remove_at_index*/;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_88: while(0);
+  }
+  break_88: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void array___ArrayMap___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::remove_at (bin/../lib/standard//array.nit:481,2--484:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___ArrayMap___index_t)CALL( self,COLOR_array___ArrayMap___index))( self,  variable0 /*key*/) /*ArrayMap::index*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((array___ArrayMap___remove_at_index_t)CALL( self,COLOR_array___ArrayMap___remove_at_index))( self,  variable1 /*i*/) /*ArrayMap::remove_at_index*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void array___ArrayMap___clear(val_t  self) {
+  struct trace_t trace = {NULL, "array::ArrayMap::clear (bin/../lib/standard//array.nit:487,2--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  ((array___AbstractArray___clear_t)CALL(variable0,COLOR_abstract_collection___RemovableCollection___clear))(variable0) /*Array::clear*/;
+  tracehead = trace.prev;
+  return;
+}
+void array___ArrayMap___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::enlarge (bin/../lib/standard//array.nit:489,2--490:45)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  ((array___Array___enlarge_t)CALL(variable1,COLOR_array___AbstractArray___enlarge))(variable1,  variable0 /*cap*/) /*Array::enlarge*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayMap___couple_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::couple_at (bin/../lib/standard//array.nit:492,2--498:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___ArrayMap___index_t)CALL( self,COLOR_array___ArrayMap___index))( self,  variable0 /*key*/) /*ArrayMap::index*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable3 =  variable1 /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = variable2;
+      variable5 = ATTR_array___AbstractArray____length(variable5) /*Array::_length*/;
+      variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable4 = variable2;
+    variable4 = ATTR_array___Array____items(variable4) /*Array::_items*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+    goto return_label94;
+    return_label94: while(false);
+    variable2 = variable4;
+    variable1 = variable2;
+    goto return_label93;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label93;
+  }
+  return_label93: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void array___ArrayMap___remove_at_index(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::remove_at_index (bin/../lib/standard//array.nit:505,2--509:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ((abstract_collection___IndexedCollection___last_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___last))(variable2) /*Array::last*/;
+  ((array___Array_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1,  variable0 /*i*/, variable2) /*Array::[]=*/;
+  variable1 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  ((array___AbstractArray___pop_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___pop))(variable1) /*Array::pop*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___ArrayMap___index(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayMap::index (bin/../lib/standard//array.nit:515,2--530:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___ArrayMap____last_index( self) /*ArrayMap::_last_index*/;
+  variable1 = variable2;
+  variable2 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*l*/)<UNTAG_Int(variable2));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable4 =  variable1 /*l*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label97;
+    return_label97: while(false);
+    variable3 = variable5;
+    variable3 = ((abstract_collection___Couple___first_t)CALL(variable3,COLOR_abstract_collection___Couple___first))(variable3) /*Couple::first*/;
+    variable3 = TAG_Bool((variable3 ==  variable0 /*key*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*key*/) /*Object::==*/)))));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable1 /*l*/;
+    goto return_label96;
+  }
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int(variable3));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label99;
+    return_label99: while(false);
+    variable3 = variable5;
+    variable3 = ((abstract_collection___Couple___first_t)CALL(variable3,COLOR_abstract_collection___Couple___first))(variable3) /*Couple::first*/;
+    variable3 = TAG_Bool((variable3 ==  variable0 /*key*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*key*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      ATTR_array___ArrayMap____last_index( self) /*ArrayMap::_last_index*/ =  variable2 /*i*/;
+      variable1 =  variable2 /*i*/;
+      goto return_label96;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_98: while(0);
+  }
+  break_98: while(0);
+  variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable3;
+  goto return_label96;
+  return_label96: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void array___ArrayMap___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "array::ArrayMap::init (bin/../lib/standard//array.nit:533,2--536:31)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArrayMap].i]) return;
+  variable0 = NEW_array___Array___init(); /*new Array[Couple[K, E]]*/
+  ATTR_array___ArrayMap____items( self) /*ArrayMap::_items*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ArrayMap].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t array___Iterator___to_a(val_t  self) {
+  struct trace_t trace = {NULL, "array::Iterator::to_a (bin/../lib/standard//array.nit:543,2--551:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_array___Array___init(); /*new Array[E]*/
+  variable0 = variable1;
+  while (true) { /*while*/
+    variable1 = ((abstract_collection___Iterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    variable1 = ((abstract_collection___Iterator___item_t)CALL( self,COLOR_abstract_collection___Iterator___item))( self) /*Iterator::item*/;
+    ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*Array::add*/;
+    ((abstract_collection___Iterator___next_t)CALL( self,COLOR_abstract_collection___Iterator___next))( self) /*Iterator::next*/;
+    continue_102: while(0);
+  }
+  break_102: while(0);
+  variable0 =  variable0 /*res*/;
+  goto return_label101;
+  return_label101: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___Collection___to_a(val_t  self) {
+  struct trace_t trace = {NULL, "array::Collection::to_a (bin/../lib/standard//array.nit:556,2--559:22)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
+  variable0 = ((array___Iterator___to_a_t)CALL(variable0,COLOR_array___Iterator___to_a))(variable0) /*Iterator::to_a*/;
+  goto return_label103;
+  return_label103: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t array___ArrayCapable___calloc_array(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::ArrayCapable::calloc_array (bin/../lib/standard//array.nit:567,2--568:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeArray((val_t*)malloc((UNTAG_Int( param0) * sizeof(val_t))));
+}
+val_t array___NativeArray_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "array::NativeArray::[] (bin/../lib/standard//array.nit:573,2--23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return UNBOX_NativeArray( self)[UNTAG_Int( param0)];
+}
+void array___NativeArray_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::NativeArray::[]= (bin/../lib/standard//array.nit:574,2--29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  UNBOX_NativeArray( self)[UNTAG_Int( param0)]= param1;
+  tracehead = trace.prev;
+  return;
+}
+void array___NativeArray___copy_to(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "array::NativeArray::copy_to (bin/../lib/standard//array.nit:575,2--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  (void)memcpy(UNBOX_NativeArray( param0), UNBOX_NativeArray( self), UNTAG_Int( param1)*sizeof(val_t));
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/array._sep.h b/c_src/array._sep.h
new file mode 100644 (file)
index 0000000..51acd37
--- /dev/null
@@ -0,0 +1,269 @@
+#ifndef array__sep
+#define array__sep
+#include "abstract_collection._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_AbstractArray[];
+
+extern const classtable_elt_t VFT_Array[];
+
+extern const classtable_elt_t VFT_ArrayIterator[];
+
+extern const classtable_elt_t VFT_ArraySet[];
+
+extern const classtable_elt_t VFT_ArraySetIterator[];
+
+extern const classtable_elt_t VFT_ArrayMap[];
+
+extern const classtable_elt_t VFT_ArrayCapable[];
+
+extern const classtable_elt_t VFT_NativeArray[];
+struct TBOX_NativeArray { const classtable_elt_t * vft; val_t * val;};
+val_t BOX_NativeArray(val_t * val);
+#define UNBOX_NativeArray(x) (((struct TBOX_NativeArray *)(VAL2OBJ(x)))->val)
+extern const int SFT_array[];
+#define ID_AbstractArray SFT_array[0]
+#define COLOR_AbstractArray SFT_array[1]
+#define COLOR_array___AbstractArray____length SFT_array[2]
+#define INIT_TABLE_POS_AbstractArray SFT_array[3]
+#define COLOR_array___AbstractArray___enlarge SFT_array[4]
+#define COLOR_array___AbstractArray___insert SFT_array[5]
+#define COLOR_array___AbstractArray___last_index_of SFT_array[6]
+#define COLOR_array___AbstractArray___index_of_from SFT_array[7]
+#define COLOR_array___AbstractArray___last_index_of_from SFT_array[8]
+#define COLOR_array___AbstractArray___reversed SFT_array[9]
+#define COLOR_array___AbstractArray___copy_to SFT_array[10]
+#define ID_Array SFT_array[11]
+#define COLOR_Array SFT_array[12]
+#define COLOR_array___Array____items SFT_array[13]
+#define COLOR_array___Array____capacity SFT_array[14]
+#define INIT_TABLE_POS_Array SFT_array[15]
+#define COLOR_array___Array___init SFT_array[16]
+#define COLOR_array___Array___with SFT_array[17]
+#define COLOR_array___Array___with_capacity SFT_array[18]
+#define COLOR_array___Array___filled_with SFT_array[19]
+#define COLOR_array___Array___with_native SFT_array[20]
+#define ID_ArrayIterator SFT_array[21]
+#define COLOR_ArrayIterator SFT_array[22]
+#define COLOR_array___ArrayIterator____index SFT_array[23]
+#define COLOR_array___ArrayIterator____array SFT_array[24]
+#define INIT_TABLE_POS_ArrayIterator SFT_array[25]
+#define COLOR_array___ArrayIterator___init SFT_array[26]
+#define ID_ArraySet SFT_array[27]
+#define COLOR_ArraySet SFT_array[28]
+#define COLOR_array___ArraySet____array SFT_array[29]
+#define INIT_TABLE_POS_ArraySet SFT_array[30]
+#define COLOR_array___ArraySet___enlarge SFT_array[31]
+#define COLOR_array___ArraySet___remove_at SFT_array[32]
+#define COLOR_array___ArraySet___init SFT_array[33]
+#define COLOR_array___ArraySet___with_capacity SFT_array[34]
+#define ID_ArraySetIterator SFT_array[35]
+#define COLOR_ArraySetIterator SFT_array[36]
+#define COLOR_array___ArraySetIterator____iter SFT_array[37]
+#define INIT_TABLE_POS_ArraySetIterator SFT_array[38]
+#define COLOR_array___ArraySetIterator___init SFT_array[39]
+#define ID_ArrayMap SFT_array[40]
+#define COLOR_ArrayMap SFT_array[41]
+#define COLOR_array___ArrayMap____items SFT_array[42]
+#define COLOR_array___ArrayMap____last_index SFT_array[43]
+#define INIT_TABLE_POS_ArrayMap SFT_array[44]
+#define COLOR_array___ArrayMap___enlarge SFT_array[45]
+#define COLOR_array___ArrayMap___remove_at_index SFT_array[46]
+#define COLOR_array___ArrayMap___index SFT_array[47]
+#define COLOR_array___ArrayMap___init SFT_array[48]
+#define COLOR_array___Iterator___to_a SFT_array[49]
+#define COLOR_array___Collection___to_a SFT_array[50]
+#define ID_ArrayCapable SFT_array[51]
+#define COLOR_ArrayCapable SFT_array[52]
+#define INIT_TABLE_POS_ArrayCapable SFT_array[53]
+#define COLOR_array___ArrayCapable___calloc_array SFT_array[54]
+#define ID_NativeArray SFT_array[55]
+#define COLOR_NativeArray SFT_array[56]
+#define INIT_TABLE_POS_NativeArray SFT_array[57]
+#define COLOR_array___NativeArray_____bra SFT_array[58]
+#define COLOR_array___NativeArray_____braeq SFT_array[59]
+#define COLOR_array___NativeArray___copy_to SFT_array[60]
+typedef void (* array___AbstractArray___enlarge_t)(val_t  self, val_t  param0);
+void array___AbstractArray___enlarge(val_t  self, val_t  param0);
+#define ATTR_array___AbstractArray____length(recv) ATTR(recv, COLOR_array___AbstractArray____length)
+typedef val_t (* array___AbstractArray___length_t)(val_t  self);
+val_t array___AbstractArray___length(val_t  self);
+typedef val_t (* array___AbstractArray___is_empty_t)(val_t  self);
+val_t array___AbstractArray___is_empty(val_t  self);
+typedef void (* array___AbstractArray___push_t)(val_t  self, val_t  param0);
+void array___AbstractArray___push(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___pop_t)(val_t  self);
+val_t array___AbstractArray___pop(val_t  self);
+typedef val_t (* array___AbstractArray___shift_t)(val_t  self);
+val_t array___AbstractArray___shift(val_t  self);
+typedef void (* array___AbstractArray___unshift_t)(val_t  self, val_t  param0);
+void array___AbstractArray___unshift(val_t  self, val_t  param0);
+typedef void (* array___AbstractArray___insert_t)(val_t  self, val_t  param0, val_t  param1);
+void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1);
+typedef void (* array___AbstractArray___add_t)(val_t  self, val_t  param0);
+void array___AbstractArray___add(val_t  self, val_t  param0);
+typedef void (* array___AbstractArray___clear_t)(val_t  self);
+void array___AbstractArray___clear(val_t  self);
+typedef val_t (* array___AbstractArray___has_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___has(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___has_only_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___has_only(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___has_key_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___has_key(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___count_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___count(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___index_of_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___index_of(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___last_index_of_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray___last_index_of(val_t  self, val_t  param0);
+typedef val_t (* array___AbstractArray___index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
+val_t array___AbstractArray___index_of_from(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* array___AbstractArray___last_index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
+val_t array___AbstractArray___last_index_of_from(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* array___AbstractArray___reversed_t)(val_t  self);
+val_t array___AbstractArray___reversed(val_t  self);
+typedef void (* array___AbstractArray___remove_t)(val_t  self, val_t  param0);
+void array___AbstractArray___remove(val_t  self, val_t  param0);
+typedef void (* array___AbstractArray___remove_all_t)(val_t  self, val_t  param0);
+void array___AbstractArray___remove_all(val_t  self, val_t  param0);
+typedef void (* array___AbstractArray___remove_at_t)(val_t  self, val_t  param0);
+void array___AbstractArray___remove_at(val_t  self, val_t  param0);
+typedef void (* array___AbstractArray___copy_to_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void array___AbstractArray___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* array___AbstractArray___output_t)(val_t  self);
+void array___AbstractArray___output(val_t  self);
+typedef val_t (* array___AbstractArray___iterator_t)(val_t  self);
+val_t array___AbstractArray___iterator(val_t  self);
+typedef val_t (* array___AbstractArray_____eqeq_t)(val_t  self, val_t  param0);
+val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* array___Array_____bra_t)(val_t  self, val_t  param0);
+val_t array___Array_____bra(val_t  self, val_t  param0);
+typedef void (* array___Array_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void array___Array_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef void (* array___Array___enlarge_t)(val_t  self, val_t  param0);
+void array___Array___enlarge(val_t  self, val_t  param0);
+typedef void (* array___Array___init_t)(val_t  self, int* init_table);
+void array___Array___init(val_t  self, int* init_table);
+val_t NEW_array___Array___init();
+typedef void (* array___Array___with_t)(val_t  self, val_t  param0, int* init_table);
+void array___Array___with(val_t  self, val_t  param0, int* init_table);
+val_t NEW_array___Array___with(val_t  param0);
+typedef void (* array___Array___with_capacity_t)(val_t  self, val_t  param0, int* init_table);
+void array___Array___with_capacity(val_t  self, val_t  param0, int* init_table);
+val_t NEW_array___Array___with_capacity(val_t  param0);
+typedef void (* array___Array___filled_with_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void array___Array___filled_with(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_array___Array___filled_with(val_t  param0, val_t  param1);
+typedef void (* array___Array___with_native_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void array___Array___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_array___Array___with_native(val_t  param0, val_t  param1);
+#define ATTR_array___Array____items(recv) ATTR(recv, COLOR_array___Array____items)
+#define ATTR_array___Array____capacity(recv) ATTR(recv, COLOR_array___Array____capacity)
+typedef val_t (* array___ArrayIterator___item_t)(val_t  self);
+val_t array___ArrayIterator___item(val_t  self);
+typedef void (* array___ArrayIterator___item__eq_t)(val_t  self, val_t  param0);
+void array___ArrayIterator___item__eq(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayIterator___is_ok_t)(val_t  self);
+val_t array___ArrayIterator___is_ok(val_t  self);
+typedef void (* array___ArrayIterator___next_t)(val_t  self);
+void array___ArrayIterator___next(val_t  self);
+typedef void (* array___ArrayIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_array___ArrayIterator___init(val_t  param0);
+#define ATTR_array___ArrayIterator____index(recv) ATTR(recv, COLOR_array___ArrayIterator____index)
+typedef val_t (* array___ArrayIterator___index_t)(val_t  self);
+val_t array___ArrayIterator___index(val_t  self);
+#define ATTR_array___ArrayIterator____array(recv) ATTR(recv, COLOR_array___ArrayIterator____array)
+#define ATTR_array___ArraySet____array(recv) ATTR(recv, COLOR_array___ArraySet____array)
+typedef val_t (* array___ArraySet___has_t)(val_t  self, val_t  param0);
+val_t array___ArraySet___has(val_t  self, val_t  param0);
+typedef void (* array___ArraySet___add_t)(val_t  self, val_t  param0);
+void array___ArraySet___add(val_t  self, val_t  param0);
+typedef val_t (* array___ArraySet___is_empty_t)(val_t  self);
+val_t array___ArraySet___is_empty(val_t  self);
+typedef val_t (* array___ArraySet___length_t)(val_t  self);
+val_t array___ArraySet___length(val_t  self);
+typedef val_t (* array___ArraySet___first_t)(val_t  self);
+val_t array___ArraySet___first(val_t  self);
+typedef void (* array___ArraySet___remove_t)(val_t  self, val_t  param0);
+void array___ArraySet___remove(val_t  self, val_t  param0);
+typedef void (* array___ArraySet___remove_all_t)(val_t  self, val_t  param0);
+void array___ArraySet___remove_all(val_t  self, val_t  param0);
+typedef void (* array___ArraySet___clear_t)(val_t  self);
+void array___ArraySet___clear(val_t  self);
+typedef val_t (* array___ArraySet___iterator_t)(val_t  self);
+val_t array___ArraySet___iterator(val_t  self);
+typedef void (* array___ArraySet___enlarge_t)(val_t  self, val_t  param0);
+void array___ArraySet___enlarge(val_t  self, val_t  param0);
+typedef void (* array___ArraySet___remove_at_t)(val_t  self, val_t  param0);
+void array___ArraySet___remove_at(val_t  self, val_t  param0);
+typedef void (* array___ArraySet___init_t)(val_t  self, int* init_table);
+void array___ArraySet___init(val_t  self, int* init_table);
+val_t NEW_array___ArraySet___init();
+typedef void (* array___ArraySet___with_capacity_t)(val_t  self, val_t  param0, int* init_table);
+void array___ArraySet___with_capacity(val_t  self, val_t  param0, int* init_table);
+val_t NEW_array___ArraySet___with_capacity(val_t  param0);
+typedef val_t (* array___ArraySetIterator___is_ok_t)(val_t  self);
+val_t array___ArraySetIterator___is_ok(val_t  self);
+typedef void (* array___ArraySetIterator___next_t)(val_t  self);
+void array___ArraySetIterator___next(val_t  self);
+typedef val_t (* array___ArraySetIterator___item_t)(val_t  self);
+val_t array___ArraySetIterator___item(val_t  self);
+typedef void (* array___ArraySetIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void array___ArraySetIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_array___ArraySetIterator___init(val_t  param0);
+#define ATTR_array___ArraySetIterator____iter(recv) ATTR(recv, COLOR_array___ArraySetIterator____iter)
+typedef val_t (* array___ArrayMap_____bra_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap_____bra(val_t  self, val_t  param0);
+typedef void (* array___ArrayMap_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* array___ArrayMap___has_key_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___has_key(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayMap___has_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___has(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayMap___has_only_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___has_only(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayMap___length_t)(val_t  self);
+val_t array___ArrayMap___length(val_t  self);
+typedef val_t (* array___ArrayMap___first_t)(val_t  self);
+val_t array___ArrayMap___first(val_t  self);
+typedef val_t (* array___ArrayMap___count_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___count(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayMap___iterator_t)(val_t  self);
+val_t array___ArrayMap___iterator(val_t  self);
+typedef val_t (* array___ArrayMap___is_empty_t)(val_t  self);
+val_t array___ArrayMap___is_empty(val_t  self);
+typedef void (* array___ArrayMap___remove_t)(val_t  self, val_t  param0);
+void array___ArrayMap___remove(val_t  self, val_t  param0);
+typedef void (* array___ArrayMap___remove_all_t)(val_t  self, val_t  param0);
+void array___ArrayMap___remove_all(val_t  self, val_t  param0);
+typedef void (* array___ArrayMap___remove_at_t)(val_t  self, val_t  param0);
+void array___ArrayMap___remove_at(val_t  self, val_t  param0);
+typedef void (* array___ArrayMap___clear_t)(val_t  self);
+void array___ArrayMap___clear(val_t  self);
+typedef void (* array___ArrayMap___enlarge_t)(val_t  self, val_t  param0);
+void array___ArrayMap___enlarge(val_t  self, val_t  param0);
+typedef val_t (* array___ArrayMap___couple_at_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___couple_at(val_t  self, val_t  param0);
+#define ATTR_array___ArrayMap____items(recv) ATTR(recv, COLOR_array___ArrayMap____items)
+typedef void (* array___ArrayMap___remove_at_index_t)(val_t  self, val_t  param0);
+void array___ArrayMap___remove_at_index(val_t  self, val_t  param0);
+#define ATTR_array___ArrayMap____last_index(recv) ATTR(recv, COLOR_array___ArrayMap____last_index)
+typedef val_t (* array___ArrayMap___index_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___index(val_t  self, val_t  param0);
+typedef void (* array___ArrayMap___init_t)(val_t  self, int* init_table);
+void array___ArrayMap___init(val_t  self, int* init_table);
+val_t NEW_array___ArrayMap___init();
+typedef val_t (* array___Iterator___to_a_t)(val_t  self);
+val_t array___Iterator___to_a(val_t  self);
+typedef val_t (* array___Collection___to_a_t)(val_t  self);
+val_t array___Collection___to_a(val_t  self);
+typedef val_t (* array___ArrayCapable___calloc_array_t)(val_t  self, val_t  param0);
+val_t array___ArrayCapable___calloc_array(val_t  self, val_t  param0);
+typedef val_t (* array___NativeArray_____bra_t)(val_t  self, val_t  param0);
+val_t array___NativeArray_____bra(val_t  self, val_t  param0);
+typedef void (* array___NativeArray_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void array___NativeArray_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef void (* array___NativeArray___copy_to_t)(val_t  self, val_t  param0, val_t  param1);
+void array___NativeArray___copy_to(val_t  self, val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/compiling._sep.c b/c_src/compiling._sep.c
new file mode 100644 (file)
index 0000000..61437ce
--- /dev/null
@@ -0,0 +1,590 @@
+#include "compiling._sep.h"
+void compiling___MMSrcModule___compile_prog_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling::MMSrcModule::compile_prog_to_c (src/compiling//compiling.nit:26,2--75:23)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+    val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMSrcModule::mhe*/;
+  variable1 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable1,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable1) /*PartialOrderElement::greaters_and_self*/;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*m*/==NIT_NULL) || VAL_ISA( variable2 /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/compiling//compiling.nit:32,4--27\n"); nit_exit(1);}
+    ((compiling_global___MMSrcModule___local_analysis_t)CALL( variable2 /*m*/,COLOR_compiling_global___MMSrcModule___local_analysis))( variable2 /*m*/,  variable0 /*tc*/) /*MMSrcModule::local_analysis*/;
+    continue_1: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_1: while(0);
+  variable2 = ((compiling_global___MMSrcModule___global_analysis_t)CALL( self,COLOR_compiling_global___MMSrcModule___global_analysis))( self,  variable0 /*tc*/) /*MMSrcModule::global_analysis*/;
+  variable1 = variable2;
+  variable2 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  ((file___String___mkdir_t)CALL(variable2,COLOR_file___String___mkdir))(variable2) /*String::mkdir*/;
+  variable3 = NEW_array___Array___init(); /*new Array[String]*/
+  variable2 = variable3;
+  variable4 = NEW_array___ArraySet___init(); /*new ArraySet[String]*/
+  variable3 = variable4;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("$CLIBDIR/nit_main.c"), TAG_Int(19)); /*new String*/
+  ((array___AbstractArray___add_t)CALL( variable2 /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*files*/, variable4) /*Array::add*/;
+  variable4 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMSrcModule::mhe*/;
+  variable4 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable4) /*PartialOrderElement::greaters_and_self*/;
+  variable4 = ((abstract_collection___Collection___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*m*/==NIT_NULL) || VAL_ISA( variable5 /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/compiling//compiling.nit:44,4--27\n"); nit_exit(1);}
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 = ((abstractmetamodel___MMModule___name_t)CALL( variable5 /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable5 /*m*/) /*MMSrcModule::name*/;
+    variable14 = variable13;
+    variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+    variable17 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+    variable18 = variable17;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+    variable19 = NEW_string___String___with_native(BOX_NativeString("_sep.c"), TAG_Int(6)); /*new String*/
+    variable20 = variable19;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+    ((array___AbstractArray___add_t)CALL( variable2 /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*files*/, variable6) /*Array::add*/;
+    ((compiling___MMSrcModule___compile_separate_module_t)CALL( variable5 /*m*/,COLOR_compiling___MMSrcModule___compile_separate_module))( variable5 /*m*/,  variable0 /*tc*/,  variable1 /*ga*/) /*MMSrcModule::compile_separate_module*/;
+    variable7 = ((mmloader___MMModule___filename_t)CALL( variable5 /*m*/,COLOR_mmloader___MMModule___filename))( variable5 /*m*/) /*MMSrcModule::filename*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
+    variable7 = ((file___String___strip_extension_t)CALL(variable7,COLOR_file___String___strip_extension))(variable7, variable8) /*String::strip_extension*/;
+    variable6 = variable7;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
+    variable7 = ((string___String_____plus_t)CALL( variable6 /*native_name*/,COLOR_string___String_____plus))( variable6 /*native_name*/, variable7) /*String::+*/;
+    variable7 = ((file___String___file_exists_t)CALL(variable7,COLOR_file___String___file_exists))(variable7) /*String::file_exists*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 = NEW_string___String___init(); /*new String*/
+      variable8 = NEW_string___String___with_native(BOX_NativeString("-I "), TAG_Int(3)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+      variable10 = ((file___String___dirname_t)CALL( variable6 /*native_name*/,COLOR_file___String___dirname))( variable6 /*native_name*/) /*String::dirname*/;
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+      ((array___ArraySet___add_t)CALL( variable3 /*includes*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*includes*/, variable7) /*ArraySet::add*/;
+    }
+    variable7 = NEW_string___String___with_native(BOX_NativeString("_nit.c"), TAG_Int(6)); /*new String*/
+    ((string___String___append_t)CALL( variable6 /*native_name*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*native_name*/, variable7) /*String::append*/;
+    variable7 = ((file___String___file_exists_t)CALL( variable6 /*native_name*/,COLOR_file___String___file_exists))( variable6 /*native_name*/) /*String::file_exists*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*files*/,  variable6 /*native_name*/) /*Array::add*/;
+    }
+    continue_2: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+  }
+  break_2: while(0);
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString("_tables.c"), TAG_Int(9)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  ((array___AbstractArray___add_t)CALL( variable2 /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*files*/, variable4) /*Array::add*/;
+  ((compiling___MMSrcModule___compile_main_t)CALL( self,COLOR_compiling___MMSrcModule___compile_main))( self,  variable0 /*tc*/,  variable1 /*ga*/) /*MMSrcModule::compile_main*/;
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+  variable12 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable13 = variable12;
+  variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+  variable16 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("_build.sh"), TAG_Int(9)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable19) /*String::append*/;
+  variable4 = variable5;
+  variable6 = NEW_file___OFStream___open( variable4 /*fn*/); /*new OFStream*/
+  variable5 = variable6;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("#!/bin/sh\n"), TAG_Int(10)); /*new String*/
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString("CLIBDIR=\""), TAG_Int(9)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = ((compiling_base___ToolContext___clibdir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___clibdir))( variable0 /*tc*/) /*ToolContext::clibdir*/;
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("\"\n"), TAG_Int(2)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = ((compiling_base___ToolContext___bindir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___bindir))( variable0 /*tc*/) /*ToolContext::bindir*/;
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("/gccx -d "), TAG_Int(9)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  variable13 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(" -I $CLIBDIR "), TAG_Int(13)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+  variable17 = ((string___Collection___join_t)CALL( variable3 /*includes*/,COLOR_string___Collection___join))( variable3 /*includes*/, variable17) /*ArraySet::join*/;
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  variable6 = ((compiling_base___ToolContext___output_file_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___output_file))( variable0 /*tc*/) /*ToolContext::output_file*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable6 ==  NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  NIT_NULL /*null*/) /*String::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((compiling_base___ToolContext___output_file_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___output_file))( variable0 /*tc*/) /*ToolContext::output_file*/;
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  } else { /*if*/
+    variable6 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+    variable6 = ((array___AbstractArray___is_empty_t)CALL(variable6,COLOR_abstract_collection___Collection___is_empty))(variable6) /*String::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+      variable10 = variable9;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+    } else { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+      variable10 = variable9;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      variable13 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+      variable15 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable16 = variable15;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+      ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+    }
+  }
+  variable6 = ((compiling_base___ToolContext___boost_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___boost))( variable0 /*tc*/) /*ToolContext::boost*/;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString(" -O"), TAG_Int(3)); /*new String*/
+    ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  }
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString(" \"$@\" \\\n  "), TAG_Int(10)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("\\\n  "), TAG_Int(4)); /*new String*/
+  variable9 = ((string___Collection___join_t)CALL( variable2 /*files*/,COLOR_string___Collection___join))( variable2 /*files*/, variable9) /*Array::join*/;
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable5 /*f*/,COLOR_stream___IOS___close))( variable5 /*f*/) /*OFStream::close*/;
+  variable6 = ((compiling_base___ToolContext___no_cc_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___no_cc))( variable0 /*tc*/) /*ToolContext::no_cc*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable6)))) { /*if*/
+    variable6 = (G_sys);
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("sh "), TAG_Int(3)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 =  variable4 /*fn*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+    ((exec___Sys___system_t)CALL(variable6,COLOR_exec___Sys___system))(variable6, variable7) /*Sys::system*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling___MMSrcModule___compile_main(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling::MMSrcModule::compile_main (src/compiling//compiling.nit:79,2--93:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_compiling_base___CompilerVisitor___init( self); /*new CompilerVisitor*/
+  variable2 = variable3;
+  ((compiling_base___CompilerVisitor___tc__eq_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___tc__eq))( variable2 /*v*/,  variable0 /*tc*/) /*CompilerVisitor::tc=*/;
+  ((compiling_global___CompilerVisitor___global_analysis__eq_t)CALL( variable2 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis__eq))( variable2 /*v*/,  variable1 /*ga*/) /*CompilerVisitor::global_analysis=*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable2 /*v*/, variable3) /*CompilerVisitor::add_decl*/;
+  ((compiling_global___MMSrcModule___compile_tables_to_c_t)CALL( self,COLOR_compiling_global___MMSrcModule___compile_tables_to_c))( self,  variable2 /*v*/) /*MMSrcModule::compile_tables_to_c*/;
+  ((compiling_global___MMSrcModule___compile_main_part_t)CALL( self,COLOR_compiling_global___MMSrcModule___compile_main_part))( self,  variable2 /*v*/) /*MMSrcModule::compile_main_part*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString("_tables.c"), TAG_Int(9)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable5 = NEW_file___OFStream___open(variable4); /*new OFStream*/
+  variable4 = variable5;
+  variable3 = variable4;
+  variable4 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMSrcModule::mhe*/;
+  variable4 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable4) /*PartialOrderElement::greaters_and_self*/;
+  variable4 = ((abstract_collection___Collection___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((abstractmetamodel___MMModule___name_t)CALL( variable5 /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable5 /*m*/) /*MMModule::name*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString("_sep.h\"\n"), TAG_Int(8)); /*new String*/
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+    ((file___OFStream___write_t)CALL( variable3 /*f*/,COLOR_stream___OStream___write))( variable3 /*f*/, variable6) /*OFStream::write*/;
+    continue_4: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+  }
+  break_4: while(0);
+  variable4 = ((compiling_base___CompilerVisitor___to_s_t)CALL( variable2 /*v*/,COLOR_string___Object___to_s))( variable2 /*v*/) /*CompilerVisitor::to_s*/;
+  ((file___OFStream___write_t)CALL( variable3 /*f*/,COLOR_stream___OStream___write))( variable3 /*f*/, variable4) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable3 /*f*/,COLOR_stream___IOS___close))( variable3 /*f*/) /*OFStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling___MMSrcModule___compile_separate_module(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling::MMSrcModule::compile_separate_module (src/compiling//compiling.nit:96,2--119:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_compiling_base___CompilerVisitor___init( self); /*new CompilerVisitor*/
+  variable2 = variable3;
+  ((compiling_base___CompilerVisitor___tc__eq_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___tc__eq))( variable2 /*v*/,  variable0 /*tc*/) /*CompilerVisitor::tc=*/;
+  ((compiling_global___CompilerVisitor___global_analysis__eq_t)CALL( variable2 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis__eq))( variable2 /*v*/,  variable1 /*ga*/) /*CompilerVisitor::global_analysis=*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable2 /*v*/, variable3) /*CompilerVisitor::add_decl*/;
+  variable4 = ((mmloader___MMModule___filename_t)CALL( self,COLOR_mmloader___MMModule___filename))( self) /*MMSrcModule::filename*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
+  variable4 = ((file___String___strip_extension_t)CALL(variable4,COLOR_file___String___strip_extension))(variable4, variable5) /*String::strip_extension*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
+  ((string___String___append_t)CALL( variable3 /*native_name*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*native_name*/, variable4) /*String::append*/;
+  variable4 = ((file___String___file_exists_t)CALL( variable3 /*native_name*/,COLOR_file___String___file_exists))( variable3 /*native_name*/) /*String::file_exists*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("#include <"), TAG_Int(10)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable7 = ((file___String___basename_t)CALL( variable3 /*native_name*/,COLOR_file___String___basename))( variable3 /*native_name*/, variable7) /*String::basename*/;
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable2 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+  }
+  ((compiling_global___MMSrcModule___declare_class_tables_to_c_t)CALL( self,COLOR_compiling_global___MMSrcModule___declare_class_tables_to_c))( self,  variable2 /*v*/) /*MMSrcModule::declare_class_tables_to_c*/;
+  ((compiling_global___MMSrcModule___compile_mod_to_c_t)CALL( self,COLOR_compiling_global___MMSrcModule___compile_mod_to_c))( self,  variable2 /*v*/) /*MMSrcModule::compile_mod_to_c*/;
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+  variable12 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable13 = variable12;
+  variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+  variable16 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("_sep.h"), TAG_Int(6)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable19) /*String::append*/;
+  variable6 = NEW_file___OFStream___open(variable5); /*new OFStream*/
+  variable5 = variable6;
+  variable4 = variable5;
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString("#ifndef "), TAG_Int(8)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+  variable12 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable4 /*f*/,COLOR_stream___OStream___write))( variable4 /*f*/, variable5) /*OFStream::write*/;
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+  variable12 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable4 /*f*/,COLOR_stream___OStream___write))( variable4 /*f*/, variable5) /*OFStream::write*/;
+  variable5 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMSrcModule::mhe*/;
+  variable5 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable5) /*PartialOrderElement::direct_greaters*/;
+  variable5 = ((array___AbstractArray___iterator_t)CALL(variable5,COLOR_abstract_collection___Collection___iterator))(variable5) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 = ((abstractmetamodel___MMModule___name_t)CALL( variable6 /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable6 /*m*/) /*MMModule::name*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+    variable14 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable15) /*String::append*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString("_sep.h\"\n"), TAG_Int(8)); /*new String*/
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable17) /*String::append*/;
+    ((file___OFStream___write_t)CALL( variable4 /*f*/,COLOR_stream___OStream___write))( variable4 /*f*/, variable7) /*OFStream::write*/;
+    continue_6: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_6: while(0);
+  variable5 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable2 /*v*/) /*CompilerVisitor::ctx*/;
+  variable5 = ((compiling_base___CContext___decls_t)CALL(variable5,COLOR_compiling_base___CContext___decls))(variable5) /*CContext::decls*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable5 = ((string___Collection___join_t)CALL(variable5,COLOR_string___Collection___join))(variable5, variable6) /*Array::join*/;
+  ((file___OFStream___write_t)CALL( variable4 /*f*/,COLOR_stream___OStream___write))( variable4 /*f*/, variable5) /*OFStream::write*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("\n#endif\n"), TAG_Int(8)); /*new String*/
+  ((file___OFStream___write_t)CALL( variable4 /*f*/,COLOR_stream___OStream___write))( variable4 /*f*/, variable5) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable4 /*f*/,COLOR_stream___IOS___close))( variable4 /*f*/) /*OFStream::close*/;
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = ((compiling_base___ToolContext___base_dir_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___base_dir))( variable0 /*tc*/) /*ToolContext::base_dir*/;
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  variable13 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable14 = variable13;
+  variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+  variable17 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString("_sep.c"), TAG_Int(6)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+  variable7 = NEW_file___OFStream___open(variable6); /*new OFStream*/
+  variable6 = variable7;
+  variable5 = variable6;
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable10 = variable9;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  variable13 = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable0 /*tc*/) /*ToolContext::ext_prefix*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("_sep.h\"\n"), TAG_Int(8)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  variable6 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable2 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable2 /*v*/) /*CompilerVisitor::ctx*/;
+  variable6 = ((compiling_base___CContext___instrs_t)CALL(variable6,COLOR_compiling_base___CContext___instrs))(variable6) /*CContext::instrs*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable6 = ((string___Collection___join_t)CALL(variable6,COLOR_string___Collection___join))(variable6, variable7) /*Array::join*/;
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  ((file___OFStream___write_t)CALL( variable5 /*f*/,COLOR_stream___OStream___write))( variable5 /*f*/, variable6) /*OFStream::write*/;
+  ((file___OFStream___close_t)CALL( variable5 /*f*/,COLOR_stream___IOS___close))( variable5 /*f*/) /*OFStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/compiling._sep.h b/c_src/compiling._sep.h
new file mode 100644 (file)
index 0000000..d6adfa9
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef compiling__sep
+#define compiling__sep
+#include "compiling_global._sep.h"
+#include <nit_common.h>
+extern const int SFT_compiling[];
+#define COLOR_compiling___MMSrcModule___compile_prog_to_c SFT_compiling[0]
+#define COLOR_compiling___MMSrcModule___compile_main SFT_compiling[1]
+#define COLOR_compiling___MMSrcModule___compile_separate_module SFT_compiling[2]
+typedef void (* compiling___MMSrcModule___compile_prog_to_c_t)(val_t  self, val_t  param0);
+void compiling___MMSrcModule___compile_prog_to_c(val_t  self, val_t  param0);
+typedef void (* compiling___MMSrcModule___compile_main_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling___MMSrcModule___compile_main(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling___MMSrcModule___compile_separate_module_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling___MMSrcModule___compile_separate_module(val_t  self, val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/compiling_base._sep.c b/c_src/compiling_base._sep.c
new file mode 100644 (file)
index 0000000..89b5800
--- /dev/null
@@ -0,0 +1,1004 @@
+#include "compiling_base._sep.h"
+val_t compiling_base___ToolContext___global(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::global (src/compiling//compiling_base.nit:24,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____global( self) /*ToolContext::_global*/;
+}
+void compiling_base___ToolContext___global__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::global= (src/compiling//compiling_base.nit:24,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____global( self) /*ToolContext::_global*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___attr_sim(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::attr_sim (src/compiling//compiling_base.nit:25,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/;
+}
+void compiling_base___ToolContext___attr_sim__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::attr_sim= (src/compiling//compiling_base.nit:25,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___base_dir(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::base_dir (src/compiling//compiling_base.nit:26,2--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____base_dir( self) /*ToolContext::_base_dir*/;
+}
+void compiling_base___ToolContext___base_dir__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::base_dir= (src/compiling//compiling_base.nit:26,2--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____base_dir( self) /*ToolContext::_base_dir*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___clibdir(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::clibdir (src/compiling//compiling_base.nit:27,2--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____clibdir( self) /*ToolContext::_clibdir*/;
+}
+void compiling_base___ToolContext___clibdir__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::clibdir= (src/compiling//compiling_base.nit:27,2--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____clibdir( self) /*ToolContext::_clibdir*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___bindir(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::bindir (src/compiling//compiling_base.nit:28,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____bindir( self) /*ToolContext::_bindir*/;
+}
+void compiling_base___ToolContext___bindir__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::bindir= (src/compiling//compiling_base.nit:28,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____bindir( self) /*ToolContext::_bindir*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___output_file(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::output_file (src/compiling//compiling_base.nit:29,2--44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____output_file( self) /*ToolContext::_output_file*/;
+}
+void compiling_base___ToolContext___output_file__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::output_file= (src/compiling//compiling_base.nit:29,2--44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____output_file( self) /*ToolContext::_output_file*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___boost(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::boost (src/compiling//compiling_base.nit:30,2--36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____boost( self) /*ToolContext::_boost*/;
+}
+void compiling_base___ToolContext___boost__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::boost= (src/compiling//compiling_base.nit:30,2--36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____boost( self) /*ToolContext::_boost*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___no_cc(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::no_cc (src/compiling//compiling_base.nit:31,2--36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____no_cc( self) /*ToolContext::_no_cc*/;
+}
+void compiling_base___ToolContext___no_cc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::no_cc= (src/compiling//compiling_base.nit:31,2--36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____no_cc( self) /*ToolContext::_no_cc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___ToolContext___ext_prefix(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::ext_prefix (src/compiling//compiling_base.nit:32,2--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___ToolContext____ext_prefix( self) /*ToolContext::_ext_prefix*/;
+}
+void compiling_base___ToolContext___ext_prefix__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::ToolContext::ext_prefix= (src/compiling//compiling_base.nit:32,2--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___ToolContext____ext_prefix( self) /*ToolContext::_ext_prefix*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___CompilerVisitor___add_decl(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::add_decl (src/compiling//compiling_base.nit:39,2--45:42)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>=UNTAG_Int( TAG_Int(8)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+    variable1 = ((compiling_base___CContext___decls_t)CALL(variable1,COLOR_compiling_base___CContext___decls))(variable1) /*CContext::decls*/;
+    variable2 = NEW_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
+    variable2 = ((string___String_____plus_t)CALL(variable2,COLOR_string___String_____plus))(variable2,  variable0 /*s*/) /*String::+*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  } else { /*if*/
+    variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+    variable1 = ((compiling_base___CContext___decls_t)CALL(variable1,COLOR_compiling_base___CContext___decls))(variable1) /*CContext::decls*/;
+    variable2 = NEW_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
+    variable3 = ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+    variable2 = ((string___String_____star_t)CALL(variable2,COLOR_string___String_____star))(variable2, variable3) /*String::**/;
+    variable2 = ((string___String_____plus_t)CALL(variable2,COLOR_string___String_____plus))(variable2,  variable0 /*s*/) /*String::+*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___CompilerVisitor___add_instr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::add_instr (src/compiling//compiling_base.nit:49,2--55:43)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>=UNTAG_Int( TAG_Int(8)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+    variable1 = ((compiling_base___CContext___instrs_t)CALL(variable1,COLOR_compiling_base___CContext___instrs))(variable1) /*CContext::instrs*/;
+    variable2 = NEW_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
+    variable2 = ((string___String_____plus_t)CALL(variable2,COLOR_string___String_____plus))(variable2,  variable0 /*s*/) /*String::+*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  } else { /*if*/
+    variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+    variable1 = ((compiling_base___CContext___instrs_t)CALL(variable1,COLOR_compiling_base___CContext___instrs))(variable1) /*CContext::instrs*/;
+    variable2 = NEW_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
+    variable3 = ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+    variable2 = ((string___String_____star_t)CALL(variable2,COLOR_string___String_____star))(variable2, variable3) /*String::**/;
+    variable2 = ((string___String_____plus_t)CALL(variable2,COLOR_string___String_____plus))(variable2,  variable0 /*s*/) /*String::+*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CompilerVisitor___new_number(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::new_number (src/compiling//compiling_base.nit:59,2--64:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_compiling_base___CompilerVisitor____number_cpt( self) /*CompilerVisitor::_number_cpt*/;
+  variable0 = variable1;
+  variable1 = TAG_Int(UNTAG_Int( variable0 /*res*/)+UNTAG_Int( TAG_Int(1)));
+  ATTR_compiling_base___CompilerVisitor____number_cpt( self) /*CompilerVisitor::_number_cpt*/ = variable1;
+  variable0 =  variable0 /*res*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void compiling_base___CompilerVisitor___indent(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::indent (src/compiling//compiling_base.nit:69,2--71:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/ = TAG_Int(UNTAG_Int(ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/)+UNTAG_Int( TAG_Int(1)));
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___CompilerVisitor___unindent(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::unindent (src/compiling//compiling_base.nit:73,2--77:45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/ = TAG_Int(UNTAG_Int(ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/)-UNTAG_Int( TAG_Int(1)));
+  variable0 = ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/ =  TAG_Int(0);
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CompilerVisitor___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::to_s (src/compiling//compiling_base.nit:80,2--87:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_array___Array___init(); /*new Array[String]*/
+  variable0 = variable1;
+  variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+  variable1 = ((compiling_base___CContext___decls_t)CALL(variable1,COLOR_compiling_base___CContext___decls))(variable1) /*CContext::decls*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL( variable0 /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*out*/, variable1) /*Array::append*/;
+  variable1 = ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+  variable1 = ((compiling_base___CContext___instrs_t)CALL(variable1,COLOR_compiling_base___CContext___instrs))(variable1) /*CContext::instrs*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL( variable0 /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*out*/, variable1) /*Array::append*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  ((array___AbstractArray___add_t)CALL( variable0 /*out*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*out*/, variable1) /*Array::add*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable1 = ((string___Collection___join_t)CALL( variable0 /*out*/,COLOR_string___Collection___join))( variable0 /*out*/, variable1) /*Array::join*/;
+  variable0 = variable1;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___CompilerVisitor___module(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::module (src/compiling//compiling_base.nit:90,2--91:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/;
+}
+void compiling_base___CompilerVisitor___module__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::module= (src/compiling//compiling_base.nit:90,2--91:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CompilerVisitor___ctx(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::ctx (src/compiling//compiling_base.nit:93,2--94:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
+}
+void compiling_base___CompilerVisitor___ctx__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::ctx= (src/compiling//compiling_base.nit:93,2--94:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CompilerVisitor___indent_level(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::indent_level (src/compiling//compiling_base.nit:96,2--97:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
+}
+void compiling_base___CompilerVisitor___indent_level__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::indent_level= (src/compiling//compiling_base.nit:96,2--97:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CompilerVisitor___tc(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::tc (src/compiling//compiling_base.nit:99,2--100:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CompilerVisitor____tc( self) /*CompilerVisitor::_tc*/;
+}
+void compiling_base___CompilerVisitor___tc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::tc= (src/compiling//compiling_base.nit:99,2--100:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___CompilerVisitor____tc( self) /*CompilerVisitor::_tc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_base::CompilerVisitor::init (src/compiling//compiling_base.nit:102,2--103:46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompilerVisitor].i]) return;
+  ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/ =  variable0 /*module*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompilerVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___CContext___decls(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CContext::decls (src/compiling//compiling_base.nit:109,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CContext____decls( self) /*CContext::_decls*/;
+}
+val_t compiling_base___CContext___instrs(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::CContext::instrs (src/compiling//compiling_base.nit:110,2--56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___CContext____instrs( self) /*CContext::_instrs*/;
+}
+void compiling_base___CContext___append(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::CContext::append (src/compiling//compiling_base.nit:112,2--115:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_base___CContext____instrs( self) /*CContext::_instrs*/;
+  variable2 = ((compiling_base___CContext___decls_t)CALL( variable0 /*c*/,COLOR_compiling_base___CContext___decls))( variable0 /*c*/) /*CContext::decls*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable2) /*Array::append*/;
+  variable1 = ATTR_compiling_base___CContext____instrs( self) /*CContext::_instrs*/;
+  variable2 = ((compiling_base___CContext___instrs_t)CALL( variable0 /*c*/,COLOR_compiling_base___CContext___instrs))( variable0 /*c*/) /*CContext::instrs*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable2) /*Array::append*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___CContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_base::CContext::init (src/compiling//compiling_base.nit:118,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CContext].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___MMGlobalProperty___meth_call(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalProperty::meth_call (src/compiling//compiling_base.nit:122,2--125:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("CALL_"), TAG_Int(5)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable3 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable3,COLOR_compiling_base___MMLocalProperty___cname))(variable3) /*MMConcreteProperty::cname*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMGlobalProperty___attr_access(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalProperty::attr_access (src/compiling//compiling_base.nit:128,2--131:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("ATTR_"), TAG_Int(5)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable3 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable3,COLOR_compiling_base___MMLocalProperty___cname))(variable3) /*MMConcreteProperty::cname*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMGlobalProperty___color_id(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalProperty::color_id (src/compiling//compiling_base.nit:134,2--137:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable3 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable3,COLOR_compiling_base___MMLocalProperty___cname))(variable3) /*MMConcreteProperty::cname*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMGlobalClass___id_id(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalClass::id_id (src/compiling//compiling_base.nit:143,2--146:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("ID_"), TAG_Int(3)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___name))(variable3) /*MMLocalClass::name*/;
+  variable4 = variable3;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMGlobalClass___color_id(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalClass::color_id (src/compiling//compiling_base.nit:149,2--152:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___name))(variable3) /*MMLocalClass::name*/;
+  variable4 = variable3;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMGlobalClass___init_table_pos_id(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMGlobalClass::init_table_pos_id (src/compiling//compiling_base.nit:155,2--158:38)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("INIT_TABLE_POS_"), TAG_Int(15)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___name))(variable3) /*MMLocalClass::name*/;
+  variable4 = variable3;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMLocalClass___primitive_info(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMLocalClass::primitive_info (src/compiling//compiling_base.nit:169,2--196:13)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_16; static int once_bool_variable1_16;
+  val_t variable2;
+    val_t variable3;
+      val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_base___MMLocalClass____primitive_info_b( self) /*MMLocalClass::_primitive_info_b*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Bool(true)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ATTR_compiling_base___MMLocalClass____primitive_info_cache( self) /*MMLocalClass::_primitive_info_cache*/;
+    goto return_label15;
+  }
+  if (once_bool_variable1_16) variable1 = once_value_variable1_16;
+  else {
+    variable1 = ((compiling_base___MMLocalClass___primitive_ctypes_t)CALL( self,COLOR_compiling_base___MMLocalClass___primitive_ctypes))( self) /*MMLocalClass::primitive_ctypes*/;
+    once_value_variable1_16 = variable1;
+    once_bool_variable1_16 = true;
+  }
+  variable0 = variable1;
+  variable1 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+  variable1 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable0 /*ctypes*/,COLOR_abstract_collection___Map___has_key))( variable0 /*ctypes*/, variable1) /*HashMap::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+    variable1 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable0 /*ctypes*/,COLOR_abstract_collection___Map_____bra))( variable0 /*ctypes*/, variable1) /*HashMap::[]*/;
+    ATTR_compiling_base___MMLocalClass____primitive_info_cache( self) /*MMLocalClass::_primitive_info_cache*/ = variable1;
+    ATTR_compiling_base___MMLocalClass____primitive_info_b( self) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
+    variable1 = ATTR_compiling_base___MMLocalClass____primitive_info_cache( self) /*MMLocalClass::_primitive_info_cache*/;
+    variable0 = variable1;
+    goto return_label15;
+  }
+  variable2 = ((hash___HashMap___iterator_t)CALL( variable0 /*ctypes*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*ctypes*/) /*HashMap::iterator*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = ((hash___HashMapIterator___is_ok_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable1 /*i*/) /*HashMapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ((hash___HashMapIterator___key_t)CALL( variable1 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable1 /*i*/) /*HashMapIterator::key*/;
+    variable2 = variable3;
+    variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+    variable3 = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable3,COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable3,  variable2 /*n*/) /*MMModule::has_global_class_named*/;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable4 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+      variable4 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable4,COLOR_abstractmetamodel___MMModule___class_by_name))(variable4,  variable2 /*n*/) /*MMModule::class_by_name*/;
+      variable3 = variable4;
+      variable4 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
+      variable4 = ((partial_order___PartialOrderElement_____l_t)CALL(variable4,COLOR_partial_order___PartialOrderElement_____l))(variable4,  variable3 /*c*/) /*PartialOrderElement::<*/;
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = ((hash___HashMapIterator___item_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___item))( variable1 /*i*/) /*HashMapIterator::item*/;
+        ATTR_compiling_base___MMLocalClass____primitive_info_cache( self) /*MMLocalClass::_primitive_info_cache*/ = variable4;
+        ATTR_compiling_base___MMLocalClass____primitive_info_b( self) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
+        variable4 = ATTR_compiling_base___MMLocalClass____primitive_info_cache( self) /*MMLocalClass::_primitive_info_cache*/;
+        variable0 = variable4;
+        goto return_label15;
+      }
+    }
+    ((hash___HashMapIterator___next_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___next))( variable1 /*i*/) /*HashMapIterator::next*/;
+    continue_17: while(0);
+  }
+  break_17: while(0);
+  ATTR_compiling_base___MMLocalClass____primitive_info_b( self) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
+  variable0 =  NIT_NULL /*null*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMLocalClass::primitive_ctypes (src/compiling//compiling_base.nit:199,2--214:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, PrimitiveInfo]*/
+  variable0 = variable1;
+  variable2 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable4) /*Array::add*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable5) /*Array::add*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable6) /*Array::add*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable7) /*Array::add*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable8) /*Array::add*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("Pointer"), TAG_Int(7)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable9) /*Array::add*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[Bool]*/
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(true)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(true)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(true)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(false)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(false)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(false)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Bool(false)) /*Array::add*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("int"), TAG_Int(3)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable5) /*Array::add*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("char"), TAG_Int(4)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable6) /*Array::add*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("int"), TAG_Int(3)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable7) /*Array::add*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("float"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable8) /*Array::add*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("char *"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable9) /*Array::add*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("val_t *"), TAG_Int(7)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable10) /*Array::add*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("void *"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable11) /*Array::add*/;
+  variable3 = variable4;
+  variable4 = ((array___AbstractArray___length_t)CALL( variable1 /*pnames*/,COLOR_abstract_collection___Collection___length))( variable1 /*pnames*/) /*Array::length*/;
+  variable5 = NEW_range___Range___without_last( TAG_Int(0), variable4); /*new Range[Int]*/
+  variable4 = variable5;
+  variable4 = ((range___Range___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+    variable7 =  variable5 /*i*/;
+    variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable9 = variable8;
+    if (UNTAG_Bool(variable9)) { /* and */
+      variable9 = ATTR_array___AbstractArray____length( variable1 /*pnames*/) /*Array::_length*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+    }
+    variable8 = variable9;
+    if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable8 = ATTR_array___Array____items( variable1 /*pnames*/) /*Array::_items*/;
+    variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+    goto return_label20;
+    return_label20: while(false);
+    variable7 = variable8;
+    variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
+    variable6 = variable7;
+    variable8 = NEW_compiling_base___PrimitiveInfo___init(); /*new PrimitiveInfo*/
+    variable7 = variable8;
+    ((compiling_base___PrimitiveInfo___name__eq_t)CALL( variable7 /*pi*/,COLOR_compiling_base___PrimitiveInfo___name__eq))( variable7 /*pi*/,  variable6 /*n*/) /*PrimitiveInfo::name=*/;
+    variable8 =  variable5 /*i*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = ATTR_array___AbstractArray____length( variable2 /*tagged*/) /*Array::_length*/;
+      variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+    }
+    variable9 = variable10;
+    if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable9 = ATTR_array___Array____items( variable2 /*tagged*/) /*Array::_items*/;
+    variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+    goto return_label21;
+    return_label21: while(false);
+    variable8 = variable9;
+    ((compiling_base___PrimitiveInfo___tagged__eq_t)CALL( variable7 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged__eq))( variable7 /*pi*/, variable8) /*PrimitiveInfo::tagged=*/;
+    variable8 =  variable5 /*i*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = ATTR_array___AbstractArray____length( variable3 /*cnames*/) /*Array::_length*/;
+      variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+    }
+    variable9 = variable10;
+    if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable9 = ATTR_array___Array____items( variable3 /*cnames*/) /*Array::_items*/;
+    variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+    goto return_label22;
+    return_label22: while(false);
+    variable8 = variable9;
+    ((compiling_base___PrimitiveInfo___cname__eq_t)CALL( variable7 /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname__eq))( variable7 /*pi*/, variable8) /*PrimitiveInfo::cname=*/;
+    ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  variable6 /*n*/,  variable7 /*pi*/) /*HashMap::[]=*/;
+    continue_19: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+  }
+  break_19: while(0);
+  variable0 =  variable0 /*res*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___PrimitiveInfo___name(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::name (src/compiling//compiling_base.nit:220,2--221:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___PrimitiveInfo____name( self) /*PrimitiveInfo::_name*/;
+}
+void compiling_base___PrimitiveInfo___name__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::name= (src/compiling//compiling_base.nit:220,2--221:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___PrimitiveInfo____name( self) /*PrimitiveInfo::_name*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___PrimitiveInfo___tagged(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::tagged (src/compiling//compiling_base.nit:223,2--224:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___PrimitiveInfo____tagged( self) /*PrimitiveInfo::_tagged*/;
+}
+void compiling_base___PrimitiveInfo___tagged__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::tagged= (src/compiling//compiling_base.nit:223,2--224:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___PrimitiveInfo____tagged( self) /*PrimitiveInfo::_tagged*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___PrimitiveInfo___cname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::cname (src/compiling//compiling_base.nit:226,2--227:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_base___PrimitiveInfo____cname( self) /*PrimitiveInfo::_cname*/;
+}
+void compiling_base___PrimitiveInfo___cname__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::cname= (src/compiling//compiling_base.nit:226,2--227:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_base___PrimitiveInfo____cname( self) /*PrimitiveInfo::_cname*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_base___PrimitiveInfo___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_base::PrimitiveInfo::init (src/compiling//compiling_base.nit:229,2--13)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PrimitiveInfo].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PrimitiveInfo].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_base___MMType___cname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMType::cname (src/compiling//compiling_base.nit:233,2--240:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable1 = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable1,COLOR_compiling_base___MMLocalClass___primitive_info))(variable1) /*MMLocalClass::primitive_info*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(( variable0 /*pi*/ ==  NIT_NULL /*null*/) || (( variable0 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*pi*/,COLOR_kernel___Object_____eqeq))( variable0 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
+    variable0 = variable1;
+    goto return_label24;
+  } else { /*if*/
+    variable1 = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable0 /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable0 /*pi*/) /*PrimitiveInfo::cname*/;
+    variable0 = variable1;
+    goto return_label24;
+  }
+  return_label24: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMType___default_cvalue(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMType::default_cvalue (src/compiling//compiling_base.nit:244,2--252:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable1 = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable1,COLOR_compiling_base___MMLocalClass___primitive_info))(variable1) /*MMLocalClass::primitive_info*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*pi*/ ==  NIT_NULL /*null*/) || (( variable0 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*pi*/,COLOR_kernel___Object_____eqeq))( variable0 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable0 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable0 /*pi*/) /*PrimitiveInfo::tagged*/;
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+    variable4 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___name))(variable4) /*MMLocalClass::name*/;
+    variable5 = variable4;
+    variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+    variable8 = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable0 /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable0 /*pi*/) /*PrimitiveInfo::cname*/;
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(")0)"), TAG_Int(3)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+    variable0 = variable1;
+    goto return_label25;
+  } else { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)); /*new String*/
+    variable0 = variable1;
+    goto return_label25;
+  }
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMType___boxtype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::MMType::boxtype (src/compiling//compiling_base.nit:256,2--266:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable2 = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable2,COLOR_compiling_base___MMLocalClass___primitive_info))(variable2) /*MMLocalClass::primitive_info*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*pi*/ ==  NIT_NULL /*null*/) || (( variable1 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))( variable1 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable0 /*s*/;
+    goto return_label26;
+  } else { /*if*/
+    variable2 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable1 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable1 /*pi*/) /*PrimitiveInfo::tagged*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___name))(variable5) /*MMLocalClass::name*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable9 =  variable0 /*s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+      variable1 = variable2;
+      goto return_label26;
+    } else { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("BOX_"), TAG_Int(4)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___name))(variable5) /*MMLocalClass::name*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable9 =  variable0 /*s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+      variable1 = variable2;
+      goto return_label26;
+    }
+  }
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_base___MMType___unboxtype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_base::MMType::unboxtype (src/compiling//compiling_base.nit:270,2--280:41)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable2 = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable2,COLOR_compiling_base___MMLocalClass___primitive_info))(variable2) /*MMLocalClass::primitive_info*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*pi*/ ==  NIT_NULL /*null*/) || (( variable1 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))( variable1 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable0 /*s*/;
+    goto return_label27;
+  } else { /*if*/
+    variable2 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable1 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable1 /*pi*/) /*PrimitiveInfo::tagged*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("UNTAG_"), TAG_Int(6)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___name))(variable5) /*MMLocalClass::name*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable9 =  variable0 /*s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+      variable1 = variable2;
+      goto return_label27;
+    } else { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("UNBOX_"), TAG_Int(6)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___name))(variable5) /*MMLocalClass::name*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable9 =  variable0 /*s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+      variable1 = variable2;
+      goto return_label27;
+    }
+  }
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_base___MMLocalProperty___cname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMLocalProperty::cname (src/compiling//compiling_base.nit:289,2--295:21)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_base___MMLocalProperty____cname_cache( self) /*MMLocalProperty::_cname_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*String::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Symbol]*/
+    variable1 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( self) /*MMLocalProperty::concrete_property*/;
+    variable1 = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalProperty___module))(variable1) /*MMConcreteProperty::module*/;
+    variable1 = ((abstractmetamodel___MMModule___name_t)CALL(variable1,COLOR_abstractmetamodel___MMModule___name))(variable1) /*MMModule::name*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    variable2 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( self) /*MMLocalProperty::concrete_property*/;
+    variable2 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable2) /*MMConcreteProperty::local_class*/;
+    variable2 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___name))(variable2) /*MMLocalClass::name*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+    variable3 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable3) /*Array::add*/;
+    variable0 = ((utils___Object___cmangle_t)CALL( self,COLOR_utils___Object___cmangle))( self, variable0) /*MMLocalProperty::cmangle*/;
+    ATTR_compiling_base___MMLocalProperty____cname_cache( self) /*MMLocalProperty::_cname_cache*/ = variable0;
+  }
+  variable0 = ATTR_compiling_base___MMLocalProperty____cname_cache( self) /*MMLocalProperty::_cname_cache*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_base___MMLocalProperty___color_id_for_super(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_base::MMLocalProperty::color_id_for_super (src/compiling//compiling_base.nit:298,2--301:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("COLOR_SUPER_"), TAG_Int(12)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMLocalProperty::cname*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label29;
+  return_label29: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
diff --git a/c_src/compiling_base._sep.h b/c_src/compiling_base._sep.h
new file mode 100644 (file)
index 0000000..a1b3ed2
--- /dev/null
@@ -0,0 +1,242 @@
+#ifndef compiling_base__sep
+#define compiling_base__sep
+#include "syntax._sep.h"
+#include "utils._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_CompilerVisitor[];
+
+extern const classtable_elt_t VFT_CContext[];
+
+extern const classtable_elt_t VFT_PrimitiveInfo[];
+extern const int SFT_compiling_base[];
+#define COLOR_compiling_base___ToolContext____global SFT_compiling_base[0]
+#define COLOR_compiling_base___ToolContext____attr_sim SFT_compiling_base[1]
+#define COLOR_compiling_base___ToolContext____base_dir SFT_compiling_base[2]
+#define COLOR_compiling_base___ToolContext____clibdir SFT_compiling_base[3]
+#define COLOR_compiling_base___ToolContext____bindir SFT_compiling_base[4]
+#define COLOR_compiling_base___ToolContext____output_file SFT_compiling_base[5]
+#define COLOR_compiling_base___ToolContext____boost SFT_compiling_base[6]
+#define COLOR_compiling_base___ToolContext____no_cc SFT_compiling_base[7]
+#define COLOR_compiling_base___ToolContext____ext_prefix SFT_compiling_base[8]
+#define COLOR_compiling_base___ToolContext___global SFT_compiling_base[9]
+#define COLOR_compiling_base___ToolContext___global__eq SFT_compiling_base[10]
+#define COLOR_compiling_base___ToolContext___attr_sim SFT_compiling_base[11]
+#define COLOR_compiling_base___ToolContext___attr_sim__eq SFT_compiling_base[12]
+#define COLOR_compiling_base___ToolContext___base_dir SFT_compiling_base[13]
+#define COLOR_compiling_base___ToolContext___base_dir__eq SFT_compiling_base[14]
+#define COLOR_compiling_base___ToolContext___clibdir SFT_compiling_base[15]
+#define COLOR_compiling_base___ToolContext___clibdir__eq SFT_compiling_base[16]
+#define COLOR_compiling_base___ToolContext___bindir SFT_compiling_base[17]
+#define COLOR_compiling_base___ToolContext___bindir__eq SFT_compiling_base[18]
+#define COLOR_compiling_base___ToolContext___output_file SFT_compiling_base[19]
+#define COLOR_compiling_base___ToolContext___output_file__eq SFT_compiling_base[20]
+#define COLOR_compiling_base___ToolContext___boost SFT_compiling_base[21]
+#define COLOR_compiling_base___ToolContext___boost__eq SFT_compiling_base[22]
+#define COLOR_compiling_base___ToolContext___no_cc SFT_compiling_base[23]
+#define COLOR_compiling_base___ToolContext___no_cc__eq SFT_compiling_base[24]
+#define COLOR_compiling_base___ToolContext___ext_prefix SFT_compiling_base[25]
+#define COLOR_compiling_base___ToolContext___ext_prefix__eq SFT_compiling_base[26]
+#define ID_CompilerVisitor SFT_compiling_base[27]
+#define COLOR_CompilerVisitor SFT_compiling_base[28]
+#define COLOR_compiling_base___CompilerVisitor____number_cpt SFT_compiling_base[29]
+#define COLOR_compiling_base___CompilerVisitor____module SFT_compiling_base[30]
+#define COLOR_compiling_base___CompilerVisitor____ctx SFT_compiling_base[31]
+#define COLOR_compiling_base___CompilerVisitor____indent_level SFT_compiling_base[32]
+#define COLOR_compiling_base___CompilerVisitor____tc SFT_compiling_base[33]
+#define INIT_TABLE_POS_CompilerVisitor SFT_compiling_base[34]
+#define COLOR_compiling_base___CompilerVisitor___add_decl SFT_compiling_base[35]
+#define COLOR_compiling_base___CompilerVisitor___add_instr SFT_compiling_base[36]
+#define COLOR_compiling_base___CompilerVisitor___new_number SFT_compiling_base[37]
+#define COLOR_compiling_base___CompilerVisitor___indent SFT_compiling_base[38]
+#define COLOR_compiling_base___CompilerVisitor___unindent SFT_compiling_base[39]
+#define COLOR_compiling_base___CompilerVisitor___module SFT_compiling_base[40]
+#define COLOR_compiling_base___CompilerVisitor___module__eq SFT_compiling_base[41]
+#define COLOR_compiling_base___CompilerVisitor___ctx SFT_compiling_base[42]
+#define COLOR_compiling_base___CompilerVisitor___ctx__eq SFT_compiling_base[43]
+#define COLOR_compiling_base___CompilerVisitor___indent_level SFT_compiling_base[44]
+#define COLOR_compiling_base___CompilerVisitor___indent_level__eq SFT_compiling_base[45]
+#define COLOR_compiling_base___CompilerVisitor___tc SFT_compiling_base[46]
+#define COLOR_compiling_base___CompilerVisitor___tc__eq SFT_compiling_base[47]
+#define COLOR_compiling_base___CompilerVisitor___init SFT_compiling_base[48]
+#define ID_CContext SFT_compiling_base[49]
+#define COLOR_CContext SFT_compiling_base[50]
+#define COLOR_compiling_base___CContext____decls SFT_compiling_base[51]
+#define COLOR_compiling_base___CContext____instrs SFT_compiling_base[52]
+#define INIT_TABLE_POS_CContext SFT_compiling_base[53]
+#define COLOR_compiling_base___CContext___decls SFT_compiling_base[54]
+#define COLOR_compiling_base___CContext___instrs SFT_compiling_base[55]
+#define COLOR_compiling_base___CContext___append SFT_compiling_base[56]
+#define COLOR_compiling_base___CContext___init SFT_compiling_base[57]
+#define COLOR_compiling_base___MMGlobalProperty___meth_call SFT_compiling_base[58]
+#define COLOR_compiling_base___MMGlobalProperty___attr_access SFT_compiling_base[59]
+#define COLOR_compiling_base___MMGlobalProperty___color_id SFT_compiling_base[60]
+#define COLOR_compiling_base___MMGlobalClass___id_id SFT_compiling_base[61]
+#define COLOR_compiling_base___MMGlobalClass___color_id SFT_compiling_base[62]
+#define COLOR_compiling_base___MMGlobalClass___init_table_pos_id SFT_compiling_base[63]
+#define COLOR_compiling_base___MMLocalClass____primitive_info_cache SFT_compiling_base[64]
+#define COLOR_compiling_base___MMLocalClass____primitive_info_b SFT_compiling_base[65]
+#define COLOR_compiling_base___MMLocalClass___primitive_info SFT_compiling_base[66]
+#define COLOR_compiling_base___MMLocalClass___primitive_ctypes SFT_compiling_base[67]
+#define ID_PrimitiveInfo SFT_compiling_base[68]
+#define COLOR_PrimitiveInfo SFT_compiling_base[69]
+#define COLOR_compiling_base___PrimitiveInfo____name SFT_compiling_base[70]
+#define COLOR_compiling_base___PrimitiveInfo____tagged SFT_compiling_base[71]
+#define COLOR_compiling_base___PrimitiveInfo____cname SFT_compiling_base[72]
+#define INIT_TABLE_POS_PrimitiveInfo SFT_compiling_base[73]
+#define COLOR_compiling_base___PrimitiveInfo___name SFT_compiling_base[74]
+#define COLOR_compiling_base___PrimitiveInfo___name__eq SFT_compiling_base[75]
+#define COLOR_compiling_base___PrimitiveInfo___tagged SFT_compiling_base[76]
+#define COLOR_compiling_base___PrimitiveInfo___tagged__eq SFT_compiling_base[77]
+#define COLOR_compiling_base___PrimitiveInfo___cname SFT_compiling_base[78]
+#define COLOR_compiling_base___PrimitiveInfo___cname__eq SFT_compiling_base[79]
+#define COLOR_compiling_base___PrimitiveInfo___init SFT_compiling_base[80]
+#define COLOR_compiling_base___MMType___cname SFT_compiling_base[81]
+#define COLOR_compiling_base___MMType___default_cvalue SFT_compiling_base[82]
+#define COLOR_compiling_base___MMType___boxtype SFT_compiling_base[83]
+#define COLOR_compiling_base___MMType___unboxtype SFT_compiling_base[84]
+#define COLOR_compiling_base___MMLocalProperty____cname_cache SFT_compiling_base[85]
+#define COLOR_compiling_base___MMLocalProperty___cname SFT_compiling_base[86]
+#define COLOR_compiling_base___MMLocalProperty___color_id_for_super SFT_compiling_base[87]
+#define ATTR_compiling_base___ToolContext____global(recv) ATTR(recv, COLOR_compiling_base___ToolContext____global)
+typedef val_t (* compiling_base___ToolContext___global_t)(val_t  self);
+val_t compiling_base___ToolContext___global(val_t  self);
+typedef void (* compiling_base___ToolContext___global__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___global__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____attr_sim(recv) ATTR(recv, COLOR_compiling_base___ToolContext____attr_sim)
+typedef val_t (* compiling_base___ToolContext___attr_sim_t)(val_t  self);
+val_t compiling_base___ToolContext___attr_sim(val_t  self);
+typedef void (* compiling_base___ToolContext___attr_sim__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___attr_sim__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____base_dir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____base_dir)
+typedef val_t (* compiling_base___ToolContext___base_dir_t)(val_t  self);
+val_t compiling_base___ToolContext___base_dir(val_t  self);
+typedef void (* compiling_base___ToolContext___base_dir__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___base_dir__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____clibdir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____clibdir)
+typedef val_t (* compiling_base___ToolContext___clibdir_t)(val_t  self);
+val_t compiling_base___ToolContext___clibdir(val_t  self);
+typedef void (* compiling_base___ToolContext___clibdir__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___clibdir__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____bindir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____bindir)
+typedef val_t (* compiling_base___ToolContext___bindir_t)(val_t  self);
+val_t compiling_base___ToolContext___bindir(val_t  self);
+typedef void (* compiling_base___ToolContext___bindir__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___bindir__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____output_file(recv) ATTR(recv, COLOR_compiling_base___ToolContext____output_file)
+typedef val_t (* compiling_base___ToolContext___output_file_t)(val_t  self);
+val_t compiling_base___ToolContext___output_file(val_t  self);
+typedef void (* compiling_base___ToolContext___output_file__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___output_file__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____boost(recv) ATTR(recv, COLOR_compiling_base___ToolContext____boost)
+typedef val_t (* compiling_base___ToolContext___boost_t)(val_t  self);
+val_t compiling_base___ToolContext___boost(val_t  self);
+typedef void (* compiling_base___ToolContext___boost__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___boost__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____no_cc(recv) ATTR(recv, COLOR_compiling_base___ToolContext____no_cc)
+typedef val_t (* compiling_base___ToolContext___no_cc_t)(val_t  self);
+val_t compiling_base___ToolContext___no_cc(val_t  self);
+typedef void (* compiling_base___ToolContext___no_cc__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___no_cc__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___ToolContext____ext_prefix(recv) ATTR(recv, COLOR_compiling_base___ToolContext____ext_prefix)
+typedef val_t (* compiling_base___ToolContext___ext_prefix_t)(val_t  self);
+val_t compiling_base___ToolContext___ext_prefix(val_t  self);
+typedef void (* compiling_base___ToolContext___ext_prefix__eq_t)(val_t  self, val_t  param0);
+void compiling_base___ToolContext___ext_prefix__eq(val_t  self, val_t  param0);
+typedef void (* compiling_base___CompilerVisitor___add_decl_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___add_decl(val_t  self, val_t  param0);
+typedef void (* compiling_base___CompilerVisitor___add_instr_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___add_instr(val_t  self, val_t  param0);
+typedef val_t (* compiling_base___CompilerVisitor___new_number_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___new_number(val_t  self);
+#define ATTR_compiling_base___CompilerVisitor____number_cpt(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____number_cpt)
+typedef void (* compiling_base___CompilerVisitor___indent_t)(val_t  self);
+void compiling_base___CompilerVisitor___indent(val_t  self);
+typedef void (* compiling_base___CompilerVisitor___unindent_t)(val_t  self);
+void compiling_base___CompilerVisitor___unindent(val_t  self);
+typedef val_t (* compiling_base___CompilerVisitor___to_s_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___to_s(val_t  self);
+#define ATTR_compiling_base___CompilerVisitor____module(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____module)
+typedef val_t (* compiling_base___CompilerVisitor___module_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___module(val_t  self);
+typedef void (* compiling_base___CompilerVisitor___module__eq_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___module__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___CompilerVisitor____ctx(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____ctx)
+typedef val_t (* compiling_base___CompilerVisitor___ctx_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___ctx(val_t  self);
+typedef void (* compiling_base___CompilerVisitor___ctx__eq_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___ctx__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___CompilerVisitor____indent_level(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____indent_level)
+typedef val_t (* compiling_base___CompilerVisitor___indent_level_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___indent_level(val_t  self);
+typedef void (* compiling_base___CompilerVisitor___indent_level__eq_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___indent_level__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___CompilerVisitor____tc(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____tc)
+typedef val_t (* compiling_base___CompilerVisitor___tc_t)(val_t  self);
+val_t compiling_base___CompilerVisitor___tc(val_t  self);
+typedef void (* compiling_base___CompilerVisitor___tc__eq_t)(val_t  self, val_t  param0);
+void compiling_base___CompilerVisitor___tc__eq(val_t  self, val_t  param0);
+typedef void (* compiling_base___CompilerVisitor___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_base___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_base___CompilerVisitor___init(val_t  param0);
+#define ATTR_compiling_base___CContext____decls(recv) ATTR(recv, COLOR_compiling_base___CContext____decls)
+typedef val_t (* compiling_base___CContext___decls_t)(val_t  self);
+val_t compiling_base___CContext___decls(val_t  self);
+#define ATTR_compiling_base___CContext____instrs(recv) ATTR(recv, COLOR_compiling_base___CContext____instrs)
+typedef val_t (* compiling_base___CContext___instrs_t)(val_t  self);
+val_t compiling_base___CContext___instrs(val_t  self);
+typedef void (* compiling_base___CContext___append_t)(val_t  self, val_t  param0);
+void compiling_base___CContext___append(val_t  self, val_t  param0);
+typedef void (* compiling_base___CContext___init_t)(val_t  self, int* init_table);
+void compiling_base___CContext___init(val_t  self, int* init_table);
+val_t NEW_compiling_base___CContext___init();
+typedef val_t (* compiling_base___MMGlobalProperty___meth_call_t)(val_t  self);
+val_t compiling_base___MMGlobalProperty___meth_call(val_t  self);
+typedef val_t (* compiling_base___MMGlobalProperty___attr_access_t)(val_t  self);
+val_t compiling_base___MMGlobalProperty___attr_access(val_t  self);
+typedef val_t (* compiling_base___MMGlobalProperty___color_id_t)(val_t  self);
+val_t compiling_base___MMGlobalProperty___color_id(val_t  self);
+typedef val_t (* compiling_base___MMGlobalClass___id_id_t)(val_t  self);
+val_t compiling_base___MMGlobalClass___id_id(val_t  self);
+typedef val_t (* compiling_base___MMGlobalClass___color_id_t)(val_t  self);
+val_t compiling_base___MMGlobalClass___color_id(val_t  self);
+typedef val_t (* compiling_base___MMGlobalClass___init_table_pos_id_t)(val_t  self);
+val_t compiling_base___MMGlobalClass___init_table_pos_id(val_t  self);
+#define ATTR_compiling_base___MMLocalClass____primitive_info_cache(recv) ATTR(recv, COLOR_compiling_base___MMLocalClass____primitive_info_cache)
+#define ATTR_compiling_base___MMLocalClass____primitive_info_b(recv) ATTR(recv, COLOR_compiling_base___MMLocalClass____primitive_info_b)
+typedef val_t (* compiling_base___MMLocalClass___primitive_info_t)(val_t  self);
+val_t compiling_base___MMLocalClass___primitive_info(val_t  self);
+typedef val_t (* compiling_base___MMLocalClass___primitive_ctypes_t)(val_t  self);
+val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self);
+#define ATTR_compiling_base___PrimitiveInfo____name(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____name)
+typedef val_t (* compiling_base___PrimitiveInfo___name_t)(val_t  self);
+val_t compiling_base___PrimitiveInfo___name(val_t  self);
+typedef void (* compiling_base___PrimitiveInfo___name__eq_t)(val_t  self, val_t  param0);
+void compiling_base___PrimitiveInfo___name__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___PrimitiveInfo____tagged(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____tagged)
+typedef val_t (* compiling_base___PrimitiveInfo___tagged_t)(val_t  self);
+val_t compiling_base___PrimitiveInfo___tagged(val_t  self);
+typedef void (* compiling_base___PrimitiveInfo___tagged__eq_t)(val_t  self, val_t  param0);
+void compiling_base___PrimitiveInfo___tagged__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_base___PrimitiveInfo____cname(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____cname)
+typedef val_t (* compiling_base___PrimitiveInfo___cname_t)(val_t  self);
+val_t compiling_base___PrimitiveInfo___cname(val_t  self);
+typedef void (* compiling_base___PrimitiveInfo___cname__eq_t)(val_t  self, val_t  param0);
+void compiling_base___PrimitiveInfo___cname__eq(val_t  self, val_t  param0);
+typedef void (* compiling_base___PrimitiveInfo___init_t)(val_t  self, int* init_table);
+void compiling_base___PrimitiveInfo___init(val_t  self, int* init_table);
+val_t NEW_compiling_base___PrimitiveInfo___init();
+typedef val_t (* compiling_base___MMType___cname_t)(val_t  self);
+val_t compiling_base___MMType___cname(val_t  self);
+typedef val_t (* compiling_base___MMType___default_cvalue_t)(val_t  self);
+val_t compiling_base___MMType___default_cvalue(val_t  self);
+typedef val_t (* compiling_base___MMType___boxtype_t)(val_t  self, val_t  param0);
+val_t compiling_base___MMType___boxtype(val_t  self, val_t  param0);
+typedef val_t (* compiling_base___MMType___unboxtype_t)(val_t  self, val_t  param0);
+val_t compiling_base___MMType___unboxtype(val_t  self, val_t  param0);
+#define ATTR_compiling_base___MMLocalProperty____cname_cache(recv) ATTR(recv, COLOR_compiling_base___MMLocalProperty____cname_cache)
+typedef val_t (* compiling_base___MMLocalProperty___cname_t)(val_t  self);
+val_t compiling_base___MMLocalProperty___cname(val_t  self);
+typedef val_t (* compiling_base___MMLocalProperty___color_id_for_super_t)(val_t  self);
+val_t compiling_base___MMLocalProperty___color_id_for_super(val_t  self);
+#endif
diff --git a/c_src/compiling_global._sep.c b/c_src/compiling_global._sep.c
new file mode 100644 (file)
index 0000000..ae0fca2
--- /dev/null
@@ -0,0 +1,3243 @@
+#include "compiling_global._sep.h"
+val_t compiling_global___ColorContext___color(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::ColorContext::color (src/compiling//compiling_global.nit:28,2--31:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+  variable1 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*e*/) /*HashMap::[]*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___ColorContext___has_color(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::ColorContext::has_color (src/compiling//compiling_global.nit:34,2--37:46)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*HashMap::==*/)))))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+    variable2 = ((abstract_collection___CoupleMap___has_key_t)CALL(variable2,COLOR_abstract_collection___Map___has_key))(variable2,  variable0 /*e*/) /*HashMap::has_key*/;
+  }
+  variable1 = variable2;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___ColorContext___color__eq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::ColorContext::color= (src/compiling//compiling_global.nit:40,2--48:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*HashMap::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_hash___HashMap___init(); /*new HashMap[TableElt, Int]*/
+    ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/ = variable2;
+  }
+  variable2 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+  ((hash___HashMap_____braeq_t)CALL(variable2,COLOR_abstract_collection___Map_____braeq))(variable2,  variable0 /*e*/,  variable1 /*c*/) /*HashMap::[]=*/;
+  variable2 =  variable1 /*c*/;
+  variable3 = ((compiling_global___TableElt___length_t)CALL( variable0 /*e*/,COLOR_compiling_global___TableElt___length))( variable0 /*e*/) /*TableElt::length*/;
+  variable4 = NEW_range___Range___without_last( TAG_Int(0), variable3); /*new Range[Int]*/
+  variable3 = variable4;
+  variable3 = ((range___Range___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+    variable5 = ATTR_compiling_global___ColorContext____colors( self) /*ColorContext::_colors*/;
+    variable6 = ((compiling_global___TableElt___item_t)CALL( variable0 /*e*/,COLOR_compiling_global___TableElt___item))( variable0 /*e*/,  variable4 /*i*/) /*TableElt::item*/;
+    ((hash___HashMap_____braeq_t)CALL(variable5,COLOR_abstract_collection___Map_____braeq))(variable5, variable6,  variable2 /*idx*/) /*HashMap::[]=*/;
+    variable5 = TAG_Int(UNTAG_Int( variable2 /*idx*/)+UNTAG_Int( TAG_Int(1)));
+    variable2 = variable5 /*idx=*/;
+    continue_3: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+  }
+  break_3: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___GlobalAnalysis___compiled_classes(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::GlobalAnalysis::compiled_classes (src/compiling//compiling_global.nit:56,2--57:70)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___GlobalAnalysis____compiled_classes( self) /*GlobalAnalysis::_compiled_classes*/;
+}
+val_t compiling_global___GlobalAnalysis___module(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::GlobalAnalysis::module (src/compiling//compiling_global.nit:59,2--60:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___GlobalAnalysis____module( self) /*GlobalAnalysis::_module*/;
+}
+val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::GlobalAnalysis::max_class_table_length (src/compiling//compiling_global.nit:62,2--63:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/;
+}
+void compiling_global___GlobalAnalysis___max_class_table_length__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::GlobalAnalysis::max_class_table_length= (src/compiling//compiling_global.nit:62,2--63:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___GlobalAnalysis___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::GlobalAnalysis::init (src/compiling//compiling_global.nit:65,2--68:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_GlobalAnalysis].i]) return;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalClass, CompiledClass]*/
+  ATTR_compiling_global___GlobalAnalysis____compiled_classes( self) /*GlobalAnalysis::_compiled_classes*/ = variable1;
+  ATTR_compiling_global___GlobalAnalysis____module( self) /*GlobalAnalysis::_module*/ =  variable0 /*module*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_GlobalAnalysis].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompilerVisitor___global_analysis(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompilerVisitor::global_analysis (src/compiling//compiling_global.nit:73,2--74:56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/;
+}
+void compiling_global___CompilerVisitor___global_analysis__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompilerVisitor::global_analysis= (src/compiling//compiling_global.nit:73,2--74:56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompiledClass___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::local_class (src/compiling//compiling_global.nit:80,2--81:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____local_class( self) /*CompiledClass::_local_class*/;
+}
+val_t compiling_global___CompiledClass___id(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::id (src/compiling//compiling_global.nit:83,2--84:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/;
+}
+void compiling_global___CompiledClass___id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::id= (src/compiling//compiling_global.nit:83,2--84:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompiledClass___class_table(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::class_table (src/compiling//compiling_global.nit:86,2--87:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/;
+}
+void compiling_global___CompiledClass___class_table__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::class_table= (src/compiling//compiling_global.nit:86,2--87:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompiledClass___instance_table(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::instance_table (src/compiling//compiling_global.nit:89,2--90:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/;
+}
+void compiling_global___CompiledClass___instance_table__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::instance_table= (src/compiling//compiling_global.nit:89,2--90:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompiledClass___class_layout(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::class_layout (src/compiling//compiling_global.nit:92,2--93:56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/;
+}
+void compiling_global___CompiledClass___class_layout__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::class_layout= (src/compiling//compiling_global.nit:92,2--93:56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___CompiledClass___instance_layout(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::instance_layout (src/compiling//compiling_global.nit:95,2--96:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/;
+}
+void compiling_global___CompiledClass___instance_layout__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::instance_layout= (src/compiling//compiling_global.nit:95,2--96:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___CompiledClass___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::CompiledClass::init (src/compiling//compiling_global.nit:98,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompiledClass].i]) return;
+  ATTR_compiling_global___CompiledClass____local_class( self) /*CompiledClass::_local_class*/ =  variable0 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompiledClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMGlobalProperty___pos_of(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::MMGlobalProperty::pos_of (src/compiling//compiling_global.nit:102,2--104:36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/;
+}
+void compiling_global___MMGlobalProperty___pos_of__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMGlobalProperty::pos_of= (src/compiling//compiling_global.nit:102,2--104:36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMSrcLocalClass___base_attr_pos(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcLocalClass::base_attr_pos (src/compiling//compiling_global.nit:108,2--109:50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___MMSrcLocalClass____base_attr_pos( self) /*MMSrcLocalClass::_base_attr_pos*/;
+}
+val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcLocalClass::class_color_pos (src/compiling//compiling_global.nit:111,2--112:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/;
+}
+val_t compiling_global___MMSrcLocalClass___class_layout(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcLocalClass::class_layout (src/compiling//compiling_global.nit:114,2--115:49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/;
+}
+val_t compiling_global___MMSrcLocalClass___instance_layout(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcLocalClass::instance_layout (src/compiling//compiling_global.nit:117,2--118:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/;
+}
+void compiling_global___MMSrcLocalClass___build_layout_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcLocalClass::build_layout_in (src/compiling//compiling_global.nit:120,2--160:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_array___Array___init(); /*new Array[MMGlobalProperty]*/
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[MMGlobalProperty]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[LocalTableElt]*/
+  variable4 = variable5;
+  ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/ =  variable4 /*clt*/;
+  variable6 = NEW_array___Array___init(); /*new Array[LocalTableElt]*/
+  variable5 = variable6;
+  ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/ =  variable5 /*ilt*/;
+  variable6 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMSrcLocalClass::global*/;
+  variable6 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable6,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable6) /*MMGlobalClass::intro*/;
+  variable6 = TAG_Bool((variable6 ==  self) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  self) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_compiling_global___TableEltClassIdPos___init( self); /*new TableEltClassIdPos*/
+    ((array___AbstractArray___add_t)CALL( variable1 /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*module_table*/, variable6) /*Array::add*/;
+    variable6 = NEW_compiling_global___TableEltClassColorPos___init( self); /*new TableEltClassColorPos*/
+    ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/ = variable6;
+    variable6 = ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*module_table*/, variable6) /*Array::add*/;
+    variable6 = NEW_compiling_global___TableEltClassInitTablePos___init( self); /*new TableEltClassInitTablePos*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*clt*/, variable6) /*Array::add*/;
+  }
+  variable6 = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL( self,COLOR_syntax_base___MMSrcLocalClass___src_local_properties))( self) /*MMSrcLocalClass::src_local_properties*/;
+  variable6 = ((abstract_collection___Map___iterator_t)CALL(variable6,COLOR_abstract_collection___Collection___iterator))(variable6) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable7 = ((abstract_collection___Iterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable7)) break; /*for*/
+    variable7 = ((abstract_collection___Iterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*MapIterator::item*/;
+    variable9 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable7 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable7 /*p*/) /*MMSrcLocalProperty::global*/;
+    variable8 = variable9;
+    variable9 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*pg*/) /*MMGlobalProperty::intro*/;
+    variable9 = TAG_Bool((variable9 ==  variable7 /*p*/) || ((variable9 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable9, variable7 /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))(variable9,  variable7 /*p*/) /*MMConcreteProperty::==*/)))));
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable9 = TAG_Bool(( variable7 /*p*/==NIT_NULL) || VAL_ISA( variable7 /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
+      if (UNTAG_Bool(variable9)) { /*if*/
+        variable9 = ((array___AbstractArray___length_t)CALL( variable3 /*intro_attributes*/,COLOR_abstract_collection___Collection___length))( variable3 /*intro_attributes*/) /*Array::length*/;
+        ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable8 /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable8 /*pg*/, variable9) /*MMGlobalProperty::pos_of=*/;
+        ((array___AbstractArray___add_t)CALL( variable3 /*intro_attributes*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*intro_attributes*/,  variable8 /*pg*/) /*Array::add*/;
+        variable9 = NEW_compiling_global___TableEltAttrPos___init( variable7 /*p*/); /*new TableEltAttrPos*/
+        ((array___AbstractArray___add_t)CALL( variable5 /*ilt*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*ilt*/, variable9) /*Array::add*/;
+      } else { /*if*/
+        variable9 = TAG_Bool(( variable7 /*p*/==NIT_NULL) || VAL_ISA( variable7 /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+        if (UNTAG_Bool(variable9)) { /*if*/
+          variable9 = ((array___AbstractArray___length_t)CALL( variable2 /*intro_methods*/,COLOR_abstract_collection___Collection___length))( variable2 /*intro_methods*/) /*Array::length*/;
+          ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable8 /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable8 /*pg*/, variable9) /*MMGlobalProperty::pos_of=*/;
+          ((array___AbstractArray___add_t)CALL( variable2 /*intro_methods*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*intro_methods*/,  variable8 /*pg*/) /*Array::add*/;
+          variable9 = NEW_compiling_global___TableEltMethPos___init( variable7 /*p*/); /*new TableEltMethPos*/
+          ((array___AbstractArray___add_t)CALL( variable4 /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*clt*/, variable9) /*Array::add*/;
+        }
+      }
+    }
+    variable9 = TAG_Bool(( variable7 /*p*/==NIT_NULL) || VAL_ISA( variable7 /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = ((abstractmetamodel___MMConcreteProperty___need_super_t)CALL( variable7 /*p*/,COLOR_abstractmetamodel___MMConcreteProperty___need_super))( variable7 /*p*/) /*MMSrcMethod::need_super*/;
+    }
+    variable9 = variable10;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable9 = NEW_compiling_global___TableEltSuperPos___init( variable7 /*p*/); /*new TableEltSuperPos*/
+      ((array___AbstractArray___add_t)CALL( variable4 /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*clt*/, variable9) /*Array::add*/;
+    }
+    continue_7: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*MapIterator::next*/;
+  }
+  break_7: while(0);
+  variable6 = ((compiling_base___ToolContext___attr_sim_t)CALL( variable0 /*tc*/,COLOR_compiling_base___ToolContext___attr_sim))( variable0 /*tc*/) /*ToolContext::attr_sim*/;
+  variable7 = variable6;
+  if (UNTAG_Bool(variable7)) { /* and */
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*intro_attributes*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*intro_attributes*/) /*Array::is_empty*/;
+    variable7 =  TAG_Bool(!UNTAG_Bool(variable7));
+  }
+  variable6 = variable7;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_compiling_global___TableEltBaseAttrPos___init( self); /*new TableEltBaseAttrPos*/
+    ATTR_compiling_global___MMSrcLocalClass____base_attr_pos( self) /*MMSrcLocalClass::_base_attr_pos*/ = variable6;
+    variable6 = ATTR_compiling_global___MMSrcLocalClass____base_attr_pos( self) /*MMSrcLocalClass::_base_attr_pos*/;
+    ((array___AbstractArray___add_t)CALL( variable4 /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*clt*/, variable6) /*Array::add*/;
+  } else { /*if*/
+    ((abstract_collection___IndexedCollection___append_t)CALL( variable1 /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*module_table*/,  variable5 /*ilt*/) /*Array::append*/;
+  }
+  ((abstract_collection___IndexedCollection___append_t)CALL( variable1 /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*module_table*/,  variable4 /*clt*/) /*Array::append*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMSrcModule___local_analysis(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::local_analysis (src/compiling//compiling_global.nit:168,2--174:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[LocalTableElt]*/
+  variable1 = variable2;
+  ATTR_compiling_global___MMSrcModule____local_table( self) /*MMSrcModule::_local_table*/ =  variable1 /*lt*/;
+  variable2 = ((syntax_base___MMSrcModule___src_local_classes_t)CALL( self,COLOR_syntax_base___MMSrcModule___src_local_classes))( self) /*MMSrcModule::src_local_classes*/;
+  variable2 = ((abstract_collection___Map___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*MapIterator::item*/;
+    ((compiling_global___MMSrcLocalClass___build_layout_in_t)CALL( variable3 /*c*/,COLOR_compiling_global___MMSrcLocalClass___build_layout_in))( variable3 /*c*/,  variable0 /*tc*/,  variable1 /*lt*/) /*MMSrcLocalClass::build_layout_in*/;
+    continue_9: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*MapIterator::next*/;
+  }
+  break_9: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMSrcModule___global_analysis(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::global_analysis (src/compiling//compiling_global.nit:178,2--335:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+      val_t variable17;
+      val_t variable18;
+      val_t variable19;
+      val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_compiling_global___GlobalAnalysis___init( self); /*new GlobalAnalysis*/
+  variable1 = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable2 = variable3;
+  variable4 = NEW_hash___HashSet___init(); /*new HashSet[MMGlobalProperty]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[TableElt]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[TableElt]*/
+  variable5 = variable6;
+  variable6 = NEW_compiling_global___TableEltClassSelfId___init(); /*new TableEltClassSelfId*/
+  ((array___AbstractArray___add_t)CALL( variable4 /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*ctab*/, variable6) /*Array::add*/;
+  variable6 = NEW_compiling_global___TableEltVftPointer___init(); /*new TableEltVftPointer*/
+  ((array___AbstractArray___add_t)CALL( variable5 /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*itab*/, variable6) /*Array::add*/;
+  variable7 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable6 = variable7;
+  variable7 =  TAG_Int(3);
+  variable9 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable8 = variable9;
+  variable9 = ((abstractmetamodel___MMModule___local_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___local_classes))( self) /*MMSrcModule::local_classes*/;
+  variable9 = ((array___AbstractArray___iterator_t)CALL(variable9,COLOR_abstract_collection___Collection___iterator))(variable9) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable10 = ((array___ArrayIterator___is_ok_t)CALL(variable9,COLOR_abstract_collection___Iterator___is_ok))(variable9) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable10)) break; /*for*/
+    variable10 = ((array___ArrayIterator___item_t)CALL(variable9,COLOR_abstract_collection___Iterator___item))(variable9) /*ArrayIterator::item*/;
+    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable10 /*c*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable10 /*c*/) /*MMLocalClass::compute_super_classes*/;
+    ((array___AbstractArray___add_t)CALL( variable8 /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*classes*/,  variable10 /*c*/) /*Array::add*/;
+    continue_11: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable9,COLOR_abstract_collection___Iterator___next))(variable9) /*ArrayIterator::next*/;
+  }
+  break_11: while(0);
+  variable9 = NEW_compiling_global___ClassSorter___init(); /*new ClassSorter*/
+  ((sorter___AbstractSorter___sort_t)CALL(variable9,COLOR_sorter___AbstractSorter___sort))(variable9,  variable8 /*classes*/) /*ClassSorter::sort*/;
+  variable9 = ((array___AbstractArray___iterator_t)CALL( variable8 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable8 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable10 = ((array___ArrayIterator___is_ok_t)CALL(variable9,COLOR_abstract_collection___Iterator___is_ok))(variable9) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable10)) break; /*for*/
+    variable10 = ((array___ArrayIterator___item_t)CALL(variable9,COLOR_abstract_collection___Iterator___item))(variable9) /*ArrayIterator::item*/;
+    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable10 /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable10 /*c*/) /*MMLocalClass::compute_ancestors*/;
+    ((inheritance___MMLocalClass___inherit_global_properties_t)CALL( variable10 /*c*/,COLOR_inheritance___MMLocalClass___inherit_global_properties))( variable10 /*c*/) /*MMLocalClass::inherit_global_properties*/;
+    variable12 = NEW_compiling_global___CompiledClass___init( variable10 /*c*/); /*new CompiledClass*/
+    variable11 = variable12;
+    variable12 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable13 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable10 /*c*/) /*MMLocalClass::global*/;
+    ((hash___HashMap_____braeq_t)CALL(variable12,COLOR_abstract_collection___Map_____braeq))(variable12, variable13,  variable11 /*cc*/) /*HashMap::[]=*/;
+    variable13 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable10 /*c*/) /*MMLocalClass::global*/;
+    variable12 = variable13;
+    variable14 = ((abstractmetamodel___MMGlobalClass___module_t)CALL( variable12 /*gc*/,COLOR_abstractmetamodel___MMGlobalClass___module))( variable12 /*gc*/) /*MMGlobalClass::module*/;
+    variable13 = variable14;
+    variable14 = ((compiling_base___MMLocalClass___primitive_info_t)CALL( variable10 /*c*/,COLOR_compiling_base___MMLocalClass___primitive_info))( variable10 /*c*/) /*MMLocalClass::primitive_info*/;
+    variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable14 ==  NIT_NULL /*null*/) || ((variable14 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable14,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable14, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable14,COLOR_kernel___Object_____eqeq))(variable14,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))))));
+    if (UNTAG_Bool(variable14)) { /*if*/
+      ((compiling_global___CompiledClass___id__eq_t)CALL( variable11 /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable11 /*cc*/,  variable6 /*pclassid*/) /*CompiledClass::id=*/;
+      variable14 = TAG_Int(UNTAG_Int( variable6 /*pclassid*/)-UNTAG_Int( TAG_Int(4)));
+      variable6 = variable14 /*pclassid=*/;
+    } else { /*if*/
+      ((compiling_global___CompiledClass___id__eq_t)CALL( variable11 /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable11 /*cc*/,  variable7 /*classid*/) /*CompiledClass::id=*/;
+      variable14 = TAG_Int(UNTAG_Int( variable7 /*classid*/)+UNTAG_Int( TAG_Int(4)));
+      variable7 = variable14 /*classid=*/;
+    }
+    variable14 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable10 /*c*/) /*MMLocalClass::cshe*/;
+    variable14 = ((partial_order___PartialOrderElement___direct_smallers_t)CALL(variable14,COLOR_partial_order___PartialOrderElement___direct_smallers))(variable14) /*PartialOrderElement::direct_smallers*/;
+    variable14 = ((array___AbstractArray___is_empty_t)CALL(variable14,COLOR_abstract_collection___Collection___is_empty))(variable14) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*smallest_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*smallest_classes*/,  variable10 /*c*/) /*Array::add*/;
+    }
+    variable15 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable10 /*c*/) /*MMLocalClass::global*/;
+    variable15 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable15,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable15) /*MMGlobalClass::intro*/;
+    variable14 = variable15;
+    variable15 = TAG_Bool(( variable14 /*bc*/==NIT_NULL) || VAL_ISA( variable14 /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+    if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:230,4--32\n"); nit_exit(1);}
+    variable15 = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable14 /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable14 /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+    ((array___AbstractArray___add_t)CALL( variable4 /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*ctab*/, variable15) /*Array::add*/;
+    continue_12: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable9,COLOR_abstract_collection___Iterator___next))(variable9) /*ArrayIterator::next*/;
+  }
+  break_12: while(0);
+  variable10 = NEW_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
+  variable9 = variable10;
+  variable11 = NEW_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
+  variable10 = variable11;
+  variable11 = ((array___AbstractArray___iterator_t)CALL( variable2 /*smallest_classes*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*smallest_classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable12 = ((array___ArrayIterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable12)) break; /*for*/
+    variable12 = ((array___ArrayIterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*ArrayIterator::item*/;
+    while (true) { /*while*/
+      variable13 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable12 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable12 /*c*/) /*MMLocalClass::cshe*/;
+      variable13 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable13,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable13) /*PartialOrderElement::direct_greaters*/;
+      variable13 = ((array___AbstractArray___length_t)CALL(variable13,COLOR_abstract_collection___Collection___length))(variable13) /*Array::length*/;
+      variable13 = TAG_Bool((variable13)==( TAG_Int(1)));
+      if (!UNTAG_Bool(variable13)) break; /* while*/
+      variable13 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable12 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable12 /*c*/) /*MMLocalClass::cshe*/;
+      variable13 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable13,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable13) /*PartialOrderElement::direct_greaters*/;
+      variable13 = ((abstract_collection___IndexedCollection___first_t)CALL(variable13,COLOR_abstract_collection___Collection___first))(variable13) /*Array::first*/;
+      variable12 = variable13 /*c=*/;
+      continue_14: while(0);
+    }
+    break_14: while(0);
+    ((hash___HashSet___add_t)CALL( variable9 /*crown_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*crown_classes*/,  variable12 /*c*/) /*HashSet::add*/;
+    variable13 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable12 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable12 /*c*/) /*MMLocalClass::cshe*/;
+    variable13 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable13,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable13) /*PartialOrderElement::greaters_and_self*/;
+    ((abstract_collection___SimpleCollection___add_all_t)CALL( variable10 /*core_classes*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable10 /*core_classes*/, variable13) /*HashSet::add_all*/;
+    continue_13: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*ArrayIterator::next*/;
+  }
+  break_13: while(0);
+  ((compiling_global___MMSrcModule___colorize_t)CALL( self,COLOR_compiling_global___MMSrcModule___colorize))( self,  variable1 /*ga*/,  variable4 /*ctab*/,  variable9 /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
+  variable11 =  TAG_Int(0);
+  variable12 = ((array___AbstractArray___iterator_t)CALL( variable8 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable8 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable13 = ((array___ArrayIterator___is_ok_t)CALL(variable12,COLOR_abstract_collection___Iterator___is_ok))(variable12) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable13)) break; /*for*/
+    variable13 = ((array___ArrayIterator___item_t)CALL(variable12,COLOR_abstract_collection___Iterator___item))(variable12) /*ArrayIterator::item*/;
+    variable15 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable16 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable13 /*c*/) /*MMLocalClass::global*/;
+    variable15 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable15,COLOR_abstract_collection___Map_____bra))(variable15, variable16) /*HashMap::[]*/;
+    variable14 = variable15;
+    variable15 = ((hash___HashSet___has_t)CALL( variable10 /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable10 /*core_classes*/,  variable13 /*c*/) /*HashSet::has*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable15 = ((compiling_global___MMSrcModule___build_tables_t)CALL( self,COLOR_compiling_global___MMSrcModule___build_tables))( self,  variable1 /*ga*/,  variable13 /*c*/,  variable4 /*ctab*/) /*MMSrcModule::build_tables*/;
+      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable14 /*cc*/, variable15) /*CompiledClass::class_table=*/;
+      variable15 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+      variable15 = ((array___AbstractArray___length_t)CALL(variable15,COLOR_abstract_collection___Collection___length))(variable15) /*Array::length*/;
+      variable15 = TAG_Bool(UNTAG_Int( variable11 /*maxcolor*/)<UNTAG_Int(variable15));
+      if (UNTAG_Bool(variable15)) { /*if*/
+        variable15 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+        variable15 = ((array___AbstractArray___length_t)CALL(variable15,COLOR_abstract_collection___Collection___length))(variable15) /*Array::length*/;
+        variable11 = variable15 /*maxcolor=*/;
+      }
+    } else { /*if*/
+      variable16 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable13 /*c*/) /*MMLocalClass::cshe*/;
+      variable16 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable16,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable16) /*PartialOrderElement::direct_greaters*/;
+      variable16 = ((abstract_collection___IndexedCollection___first_t)CALL(variable16,COLOR_abstract_collection___Collection___first))(variable16) /*Array::first*/;
+      variable15 = variable16;
+      variable17 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+      variable18 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable15 /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable15 /*sc*/) /*MMLocalClass::global*/;
+      variable17 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable17,COLOR_abstract_collection___Map_____bra))(variable17, variable18) /*HashMap::[]*/;
+      variable16 = variable17;
+      variable17 = ((compiling_global___CompiledClass___class_table_t)CALL( variable16 /*scc*/,COLOR_compiling_global___CompiledClass___class_table))( variable16 /*scc*/) /*CompiledClass::class_table*/;
+      variable17 = ((array___Collection___to_a_t)CALL(variable17,COLOR_array___Collection___to_a))(variable17) /*Array::to_a*/;
+      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable14 /*cc*/, variable17) /*CompiledClass::class_table=*/;
+      variable18 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable13 /*c*/) /*MMLocalClass::global*/;
+      variable18 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable18,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable18) /*MMGlobalClass::intro*/;
+      variable17 = variable18;
+      variable18 = TAG_Bool(( variable17 /*bc*/==NIT_NULL) || VAL_ISA( variable17 /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+      if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:263,5--33\n"); nit_exit(1);}
+      variable19 = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable17 /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable17 /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+      variable18 = variable19;
+      variable20 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+      variable20 = ((array___AbstractArray___length_t)CALL(variable20,COLOR_abstract_collection___Collection___length))(variable20) /*Array::length*/;
+      variable19 = variable20;
+      ((compiling_global___ColorContext___color__eq_t)CALL( variable1 /*ga*/,COLOR_compiling_global___ColorContext___color__eq))( variable1 /*ga*/,  variable18 /*colpos*/,  variable19 /*colposcolor*/) /*GlobalAnalysis::color=*/;
+      variable20 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+      ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  variable18 /*colpos*/) /*Array::add*/;
+      variable20 = TAG_Bool(UNTAG_Int( variable11 /*maxcolor*/)<UNTAG_Int( variable19 /*colposcolor*/));
+      if (UNTAG_Bool(variable20)) { /*if*/
+        variable11 =  variable19 /*colposcolor*/ /*maxcolor=*/;
+      }
+    }
+    continue_15: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable12,COLOR_abstract_collection___Iterator___next))(variable12) /*ArrayIterator::next*/;
+  }
+  break_15: while(0);
+  variable12 = TAG_Int(UNTAG_Int( variable11 /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
+  ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq))( variable1 /*ga*/, variable12) /*GlobalAnalysis::max_class_table_length=*/;
+  variable12 = ((array___AbstractArray___iterator_t)CALL( variable8 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable8 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable13 = ((array___ArrayIterator___is_ok_t)CALL(variable12,COLOR_abstract_collection___Iterator___is_ok))(variable12) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable13)) break; /*for*/
+    variable13 = ((array___ArrayIterator___item_t)CALL(variable12,COLOR_abstract_collection___Iterator___item))(variable12) /*ArrayIterator::item*/;
+    variable15 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable16 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable13 /*c*/) /*MMLocalClass::global*/;
+    variable15 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable15,COLOR_abstract_collection___Map_____bra))(variable15, variable16) /*HashMap::[]*/;
+    variable14 = variable15;
+    variable16 = NEW_compiling_global___TableEltComposite___init( variable14 /*cc*/); /*new TableEltComposite*/
+    variable15 = variable16;
+    variable17 = NEW_compiling_global___TableEltComposite___init( variable14 /*cc*/); /*new TableEltComposite*/
+    variable16 = variable17;
+    variable17 = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable13 /*c*/) /*MMLocalClass::crhe*/;
+    variable17 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable17,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable17) /*PartialOrderElement::greaters_and_self*/;
+    variable17 = ((abstract_collection___Collection___iterator_t)CALL(variable17,COLOR_abstract_collection___Collection___iterator))(variable17) /*Collection::iterator*/;
+    while (true) { /*for*/
+      variable18 = ((abstract_collection___Iterator___is_ok_t)CALL(variable17,COLOR_abstract_collection___Iterator___is_ok))(variable17) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable18)) break; /*for*/
+      variable18 = ((abstract_collection___Iterator___item_t)CALL(variable17,COLOR_abstract_collection___Iterator___item))(variable17) /*Iterator::item*/;
+      variable19 = TAG_Bool(( variable18 /*sc*/==NIT_NULL) || VAL_ISA( variable18 /*sc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+      if (UNTAG_Bool(variable19)) { /*if*/
+        variable19 = ((compiling_global___MMSrcLocalClass___class_layout_t)CALL( variable18 /*sc*/,COLOR_compiling_global___MMSrcLocalClass___class_layout))( variable18 /*sc*/) /*MMSrcLocalClass::class_layout*/;
+        ((compiling_global___TableEltComposite___add_t)CALL( variable15 /*cte*/,COLOR_compiling_global___TableEltComposite___add))( variable15 /*cte*/,  variable18 /*sc*/, variable19) /*TableEltComposite::add*/;
+        variable19 = ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL( variable18 /*sc*/,COLOR_compiling_global___MMSrcLocalClass___instance_layout))( variable18 /*sc*/) /*MMSrcLocalClass::instance_layout*/;
+        ((compiling_global___TableEltComposite___add_t)CALL( variable16 /*ite*/,COLOR_compiling_global___TableEltComposite___add))( variable16 /*ite*/,  variable18 /*sc*/, variable19) /*TableEltComposite::add*/;
+      }
+      ((compiling_global___CompiledClass___class_layout__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_layout__eq))( variable14 /*cc*/,  variable15 /*cte*/) /*CompiledClass::class_layout=*/;
+      ((compiling_global___CompiledClass___instance_layout__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_layout__eq))( variable14 /*cc*/,  variable16 /*ite*/) /*CompiledClass::instance_layout=*/;
+      continue_17: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable17,COLOR_abstract_collection___Iterator___next))(variable17) /*Iterator::next*/;
+    }
+    break_17: while(0);
+    variable17 = ((hash___HashSet___has_t)CALL( variable10 /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable10 /*core_classes*/,  variable13 /*c*/) /*HashSet::has*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable17 = ((compiling_global___TableEltComposite___length_t)CALL( variable15 /*cte*/,COLOR_compiling_global___TableElt___length))( variable15 /*cte*/) /*TableEltComposite::length*/;
+      variable17 = TAG_Bool(UNTAG_Int(variable17)>UNTAG_Int( TAG_Int(0)));
+      if (UNTAG_Bool(variable17)) { /*if*/
+        ((array___AbstractArray___add_t)CALL( variable4 /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*ctab*/,  variable15 /*cte*/) /*Array::add*/;
+      }
+      variable17 = ((compiling_base___ToolContext___attr_sim_t)CALL( variable0 /*cctx*/,COLOR_compiling_base___ToolContext___attr_sim))( variable0 /*cctx*/) /*ToolContext::attr_sim*/;
+      variable17 =  TAG_Bool(!UNTAG_Bool(variable17));
+      if (UNTAG_Bool(variable17)) { /* and */
+        variable17 = ((compiling_global___TableEltComposite___length_t)CALL( variable16 /*ite*/,COLOR_compiling_global___TableElt___length))( variable16 /*ite*/) /*TableEltComposite::length*/;
+        variable17 = TAG_Bool(UNTAG_Int(variable17)>UNTAG_Int( TAG_Int(0)));
+      }
+      if (UNTAG_Bool(variable17)) { /*if*/
+        ((array___AbstractArray___add_t)CALL( variable5 /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*itab*/,  variable16 /*ite*/) /*Array::add*/;
+      }
+    }
+    continue_16: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable12,COLOR_abstract_collection___Iterator___next))(variable12) /*ArrayIterator::next*/;
+  }
+  break_16: while(0);
+  variable12 = TAG_Int(UNTAG_Int( variable11 /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
+  ((compiling_global___MMSrcModule___colorize_t)CALL( self,COLOR_compiling_global___MMSrcModule___colorize))( self,  variable1 /*ga*/,  variable4 /*ctab*/,  variable9 /*crown_classes*/, variable12) /*MMSrcModule::colorize*/;
+  ((compiling_global___MMSrcModule___colorize_t)CALL( self,COLOR_compiling_global___MMSrcModule___colorize))( self,  variable1 /*ga*/,  variable5 /*itab*/,  variable9 /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
+  ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq))( variable1 /*ga*/,  TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/;
+  variable12 = ((array___AbstractArray___iterator_t)CALL( variable8 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable8 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable13 = ((array___ArrayIterator___is_ok_t)CALL(variable12,COLOR_abstract_collection___Iterator___is_ok))(variable12) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable13)) break; /*for*/
+    variable13 = ((array___ArrayIterator___item_t)CALL(variable12,COLOR_abstract_collection___Iterator___item))(variable12) /*ArrayIterator::item*/;
+    variable15 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable16 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable13 /*c*/) /*MMLocalClass::global*/;
+    variable15 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable15,COLOR_abstract_collection___Map_____bra))(variable15, variable16) /*HashMap::[]*/;
+    variable14 = variable15;
+    variable15 = ((hash___HashSet___has_t)CALL( variable10 /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable10 /*core_classes*/,  variable13 /*c*/) /*HashSet::has*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable15 = ((compiling_global___MMSrcModule___build_tables_t)CALL( self,COLOR_compiling_global___MMSrcModule___build_tables))( self,  variable1 /*ga*/,  variable13 /*c*/,  variable4 /*ctab*/) /*MMSrcModule::build_tables*/;
+      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable14 /*cc*/, variable15) /*CompiledClass::class_table=*/;
+      variable15 = ((compiling_global___MMSrcModule___build_tables_t)CALL( self,COLOR_compiling_global___MMSrcModule___build_tables))( self,  variable1 /*ga*/,  variable13 /*c*/,  variable5 /*itab*/) /*MMSrcModule::build_tables*/;
+      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable14 /*cc*/, variable15) /*CompiledClass::instance_table=*/;
+    } else { /*if*/
+      variable16 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable13 /*c*/) /*MMLocalClass::cshe*/;
+      variable16 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable16,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable16) /*PartialOrderElement::direct_greaters*/;
+      variable16 = ((abstract_collection___IndexedCollection___first_t)CALL(variable16,COLOR_abstract_collection___Collection___first))(variable16) /*Array::first*/;
+      variable15 = variable16;
+      variable17 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+      variable18 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable15 /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable15 /*sc*/) /*MMLocalClass::global*/;
+      variable17 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable17,COLOR_abstract_collection___Map_____bra))(variable17, variable18) /*HashMap::[]*/;
+      variable16 = variable17;
+      variable17 = ((compiling_global___CompiledClass___class_table_t)CALL( variable16 /*scc*/,COLOR_compiling_global___CompiledClass___class_table))( variable16 /*scc*/) /*CompiledClass::class_table*/;
+      variable17 = ((array___Collection___to_a_t)CALL(variable17,COLOR_array___Collection___to_a))(variable17) /*Array::to_a*/;
+      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable14 /*cc*/, variable17) /*CompiledClass::class_table=*/;
+      variable18 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable13 /*c*/) /*MMLocalClass::global*/;
+      variable18 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable18,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable18) /*MMGlobalClass::intro*/;
+      variable17 = variable18;
+      variable18 = TAG_Bool(( variable17 /*bc*/==NIT_NULL) || VAL_ISA( variable17 /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+      if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:315,5--33\n"); nit_exit(1);}
+      variable19 = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable17 /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable17 /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+      variable18 = variable19;
+      variable19 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+      variable20 = ((compiling_global___ColorContext___color_t)CALL( variable1 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable1 /*ga*/,  variable18 /*colpos*/) /*GlobalAnalysis::color*/;
+      ((array___Array_____braeq_t)CALL(variable19,COLOR_abstract_collection___Map_____braeq))(variable19, variable20,  variable18 /*colpos*/) /*Array::[]=*/;
+      while (true) { /*while*/
+        variable19 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+        variable19 = ((array___AbstractArray___length_t)CALL(variable19,COLOR_abstract_collection___Collection___length))(variable19) /*Array::length*/;
+        variable19 = TAG_Bool(UNTAG_Int(variable19)<=UNTAG_Int( variable11 /*maxcolor*/));
+        if (!UNTAG_Bool(variable19)) break; /* while*/
+        variable19 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+        ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  NIT_NULL /*null*/) /*Array::add*/;
+        continue_19: while(0);
+      }
+      break_19: while(0);
+      variable19 = ((compiling_global___CompiledClass___class_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable14 /*cc*/) /*CompiledClass::class_table*/;
+      variable20 = ((compiling_global___CompiledClass___class_layout_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___class_layout))( variable14 /*cc*/) /*CompiledClass::class_layout*/;
+      ((compiling_global___MMSrcModule___append_to_table_t)CALL( self,COLOR_compiling_global___MMSrcModule___append_to_table))( self,  variable1 /*ga*/, variable19, variable20) /*MMSrcModule::append_to_table*/;
+      variable19 = ((compiling_global___CompiledClass___instance_table_t)CALL( variable16 /*scc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable16 /*scc*/) /*CompiledClass::instance_table*/;
+      variable19 = ((array___Collection___to_a_t)CALL(variable19,COLOR_array___Collection___to_a))(variable19) /*Array::to_a*/;
+      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable14 /*cc*/, variable19) /*CompiledClass::instance_table=*/;
+      variable19 = ((compiling_global___CompiledClass___instance_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable14 /*cc*/) /*CompiledClass::instance_table*/;
+      variable20 = ((compiling_global___CompiledClass___instance_layout_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_layout))( variable14 /*cc*/) /*CompiledClass::instance_layout*/;
+      ((compiling_global___MMSrcModule___append_to_table_t)CALL( self,COLOR_compiling_global___MMSrcModule___append_to_table))( self,  variable1 /*ga*/, variable19, variable20) /*MMSrcModule::append_to_table*/;
+    }
+    variable15 = ((compiling_base___ToolContext___attr_sim_t)CALL( variable0 /*cctx*/,COLOR_compiling_base___ToolContext___attr_sim))( variable0 /*cctx*/) /*ToolContext::attr_sim*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable15 = ((compiling_global___MMSrcModule___build_tables_t)CALL( self,COLOR_compiling_global___MMSrcModule___build_tables))( self,  variable1 /*ga*/,  variable13 /*c*/,  variable5 /*itab*/) /*MMSrcModule::build_tables*/;
+      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable14 /*cc*/, variable15) /*CompiledClass::instance_table=*/;
+      variable15 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable13 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable13 /*c*/) /*MMLocalClass::cshe*/;
+      variable15 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable15,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable15) /*PartialOrderElement::greaters_and_self*/;
+      variable15 = ((abstract_collection___Collection___iterator_t)CALL(variable15,COLOR_abstract_collection___Collection___iterator))(variable15) /*Collection::iterator*/;
+      while (true) { /*for*/
+        variable16 = ((abstract_collection___Iterator___is_ok_t)CALL(variable15,COLOR_abstract_collection___Iterator___is_ok))(variable15) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable16)) break; /*for*/
+        variable16 = ((abstract_collection___Iterator___item_t)CALL(variable15,COLOR_abstract_collection___Iterator___item))(variable15) /*Iterator::item*/;
+        variable18 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable1 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable1 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+        variable19 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable16 /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable16 /*sc*/) /*MMLocalClass::global*/;
+        variable18 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable18,COLOR_abstract_collection___Map_____bra))(variable18, variable19) /*HashMap::[]*/;
+        variable17 = variable18;
+        variable18 = ((compiling_global___CompiledClass___instance_table_t)CALL( variable14 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable14 /*cc*/) /*CompiledClass::instance_table*/;
+        variable19 = ((compiling_global___CompiledClass___instance_layout_t)CALL( variable17 /*scc*/,COLOR_compiling_global___CompiledClass___instance_layout))( variable17 /*scc*/) /*CompiledClass::instance_layout*/;
+        ((compiling_global___MMSrcModule___append_to_table_t)CALL( self,COLOR_compiling_global___MMSrcModule___append_to_table))( self,  variable14 /*cc*/, variable18, variable19) /*MMSrcModule::append_to_table*/;
+        continue_20: while(0);
+        ((abstract_collection___Iterator___next_t)CALL(variable15,COLOR_abstract_collection___Iterator___next))(variable15) /*Iterator::next*/;
+      }
+      break_20: while(0);
+    }
+    continue_18: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable12,COLOR_abstract_collection___Iterator___next))(variable12) /*ArrayIterator::next*/;
+  }
+  break_18: while(0);
+  variable1 =  variable1 /*ga*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___MMSrcModule___append_to_table(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::append_to_table (src/compiling//compiling_global.nit:338,2--343:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 = ((compiling_global___TableEltComposite___length_t)CALL( variable2 /*cmp*/,COLOR_compiling_global___TableElt___length))( variable2 /*cmp*/) /*TableEltComposite::length*/;
+  variable4 = NEW_range___Range___without_last( TAG_Int(0), variable3); /*new Range[Int]*/
+  variable3 = variable4;
+  variable3 = ((range___Range___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+    variable6 = ((compiling_global___TableEltComposite___item_t)CALL( variable2 /*cmp*/,COLOR_compiling_global___TableElt___item))( variable2 /*cmp*/,  variable4 /*j*/) /*TableEltComposite::item*/;
+    variable5 = variable6;
+    variable6 = ((array___AbstractArray___length_t)CALL( variable1 /*table*/,COLOR_abstract_collection___Collection___length))( variable1 /*table*/) /*Array::length*/;
+    ((compiling_global___ColorContext___color__eq_t)CALL( variable0 /*cc*/,COLOR_compiling_global___ColorContext___color__eq))( variable0 /*cc*/,  variable5 /*e*/, variable6) /*ColorContext::color=*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*table*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*table*/,  variable5 /*e*/) /*Array::add*/;
+    continue_22: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+  }
+  break_22: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMSrcModule___build_tables(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::build_tables (src/compiling//compiling_global.nit:347,2--375:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+      val_t variable8;
+      val_t variable9;
+        val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = NEW_hash___HashMap___init(); /*new HashMap[Int, TableElt]*/
+  variable3 = variable4;
+  variable4 =  TAG_Int(0);
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*elts*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable7 = ((compiling_global___TableElt___is_related_to_t)CALL( variable6 /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable6 /*e*/,  variable1 /*c*/) /*TableElt::is_related_to*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable8 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  variable6 /*e*/) /*GlobalAnalysis::color*/;
+      variable7 = variable8;
+      variable9 = ((compiling_global___TableElt___length_t)CALL( variable6 /*e*/,COLOR_compiling_global___TableElt___length))( variable6 /*e*/) /*TableElt::length*/;
+      variable9 = TAG_Int(UNTAG_Int( variable7 /*col*/)+UNTAG_Int(variable9));
+      variable8 = variable9;
+      ((hash___HashMap_____braeq_t)CALL( variable3 /*tab*/,COLOR_abstract_collection___Map_____braeq))( variable3 /*tab*/,  variable7 /*col*/,  variable6 /*e*/) /*HashMap::[]=*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable4 /*len*/)<UNTAG_Int( variable8 /*l*/));
+      if (UNTAG_Bool(variable9)) { /*if*/
+        variable4 =  variable8 /*l*/ /*len=*/;
+      }
+    }
+    continue_24: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_24: while(0);
+  variable6 = NEW_array___Array___init(); /*new Array[TableElt]*/
+  variable5 = variable6;
+  variable6 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable7 = TAG_Bool(UNTAG_Int( variable6 /*i*/)<UNTAG_Int( variable4 /*len*/));
+    if (!UNTAG_Bool(variable7)) break; /* while*/
+    variable7 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable3 /*tab*/,COLOR_abstract_collection___Map___has_key))( variable3 /*tab*/,  variable6 /*i*/) /*HashMap::has_key*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable8 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable3 /*tab*/,COLOR_abstract_collection___Map_____bra))( variable3 /*tab*/,  variable6 /*i*/) /*HashMap::[]*/;
+      variable7 = variable8;
+      variable8 = ((compiling_global___TableElt___length_t)CALL( variable7 /*e*/,COLOR_compiling_global___TableElt___length))( variable7 /*e*/) /*TableElt::length*/;
+      variable9 = NEW_range___Range___without_last( TAG_Int(0), variable8); /*new Range[Int]*/
+      variable8 = variable9;
+      variable8 = ((range___Range___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Range::iterator*/;
+      while (true) { /*for*/
+        variable9 = ((abstract_collection___Iterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable9)) break; /*for*/
+        variable9 = ((abstract_collection___Iterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*Iterator::item*/;
+        variable10 = ((compiling_global___TableElt___item_t)CALL( variable7 /*e*/,COLOR_compiling_global___TableElt___item))( variable7 /*e*/,  variable9 /*j*/) /*TableElt::item*/;
+        ((array___Array_____braeq_t)CALL( variable5 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable5 /*res*/,  variable6 /*i*/, variable10) /*Array::[]=*/;
+        variable10 = TAG_Int(UNTAG_Int( variable6 /*i*/)+UNTAG_Int( TAG_Int(1)));
+        variable6 = variable10 /*i=*/;
+        continue_26: while(0);
+        ((abstract_collection___Iterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*Iterator::next*/;
+      }
+      break_26: while(0);
+    } else { /*if*/
+      ((array___Array_____braeq_t)CALL( variable5 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable5 /*res*/,  variable6 /*i*/,  NIT_NULL /*null*/) /*Array::[]=*/;
+      variable7 = TAG_Int(UNTAG_Int( variable6 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable6 = variable7 /*i=*/;
+    }
+    continue_25: while(0);
+  }
+  break_25: while(0);
+  variable3 =  variable5 /*res*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+void compiling_global___MMSrcModule___colorize(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::colorize (src/compiling//compiling_global.nit:378,2--416:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+        val_t variable11;
+        val_t variable12;
+          val_t variable13;
+            val_t variable14;
+            val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable5 = NEW_hash___HashMap___init(); /*new HashMap[Int, Array[TableElt]]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable5 = variable6;
+  variable6 = ((array___AbstractArray___iterator_t)CALL( variable1 /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*elts*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable7)) break; /*for*/
+    variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
+    variable9 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    variable8 = variable9;
+    variable10 = ((compiling_global___TableElt___length_t)CALL( variable7 /*e*/,COLOR_compiling_global___TableElt___length))( variable7 /*e*/) /*TableElt::length*/;
+    variable9 = variable10;
+    variable10 = ((compiling_global___ColorContext___has_color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___has_color))( variable0 /*ga*/,  variable7 /*e*/) /*GlobalAnalysis::has_color*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable10 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  variable7 /*e*/) /*GlobalAnalysis::color*/;
+      variable8 = variable10 /*color=*/;
+    } else { /*if*/
+      ((array___AbstractArray___clear_t)CALL( variable5 /*rel_classes*/,COLOR_abstract_collection___RemovableCollection___clear))( variable5 /*rel_classes*/) /*Array::clear*/;
+      variable10 = ((abstract_collection___Collection___iterator_t)CALL( variable2 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*classes*/) /*Collection::iterator*/;
+      while (true) { /*for*/
+        variable11 = ((abstract_collection___Iterator___is_ok_t)CALL(variable10,COLOR_abstract_collection___Iterator___is_ok))(variable10) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable11)) break; /*for*/
+        variable11 = ((abstract_collection___Iterator___item_t)CALL(variable10,COLOR_abstract_collection___Iterator___item))(variable10) /*Iterator::item*/;
+        variable12 = ((compiling_global___TableElt___is_related_to_t)CALL( variable7 /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable7 /*e*/,  variable11 /*c*/) /*TableElt::is_related_to*/;
+        if (UNTAG_Bool(variable12)) { /*if*/
+          ((array___AbstractArray___add_t)CALL( variable5 /*rel_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*rel_classes*/,  variable11 /*c*/) /*Array::add*/;
+        }
+        continue_29: while(0);
+        ((abstract_collection___Iterator___next_t)CALL(variable10,COLOR_abstract_collection___Iterator___next))(variable10) /*Iterator::next*/;
+      }
+      break_29: while(0);
+      variable10 =  variable3 /*startcolor*/;
+      while (true) { /*while*/
+        variable11 = TAG_Bool(( variable10 /*trycolor*/)!=( variable8 /*color*/));
+        if (!UNTAG_Bool(variable11)) break; /* while*/
+        variable8 =  variable10 /*trycolor*/ /*color=*/;
+        variable11 = ((array___AbstractArray___iterator_t)CALL( variable5 /*rel_classes*/,COLOR_abstract_collection___Collection___iterator))( variable5 /*rel_classes*/) /*Array::iterator*/;
+        while (true) { /*for*/
+          variable12 = ((array___ArrayIterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*ArrayIterator::is_ok*/;
+          if (!UNTAG_Bool(variable12)) break; /*for*/
+          variable12 = ((array___ArrayIterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*ArrayIterator::item*/;
+          variable13 =  TAG_Int(0);
+          while (true) { /*while*/
+            variable14 = TAG_Bool(UNTAG_Int( variable13 /*idx*/)<UNTAG_Int( variable9 /*len*/));
+            if (!UNTAG_Bool(variable14)) break; /* while*/
+            variable14 = TAG_Int(UNTAG_Int( variable10 /*trycolor*/)+UNTAG_Int( variable13 /*idx*/));
+            variable14 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable4 /*colors*/,COLOR_abstract_collection___Map___has_key))( variable4 /*colors*/, variable14) /*HashMap::has_key*/;
+            variable15 = variable14;
+            if (UNTAG_Bool(variable15)) { /* and */
+              variable15 = TAG_Int(UNTAG_Int( variable10 /*trycolor*/)+UNTAG_Int( variable13 /*idx*/));
+              variable15 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable4 /*colors*/,COLOR_abstract_collection___Map_____bra))( variable4 /*colors*/, variable15) /*HashMap::[]*/;
+              variable15 = ((compiling_global___MMSrcModule___free_color_t)CALL( self,COLOR_compiling_global___MMSrcModule___free_color))( self, variable15,  variable12 /*c*/) /*MMSrcModule::free_color*/;
+              variable15 =  TAG_Bool(!UNTAG_Bool(variable15));
+            }
+            variable14 = variable15;
+            if (UNTAG_Bool(variable14)) { /*if*/
+              variable14 = TAG_Int(UNTAG_Int( variable10 /*trycolor*/)+UNTAG_Int( variable13 /*idx*/));
+              variable14 = TAG_Int(UNTAG_Int(variable14)+UNTAG_Int( TAG_Int(1)));
+              variable10 = variable14 /*trycolor=*/;
+              variable13 =  TAG_Int(0) /*idx=*/;
+            } else { /*if*/
+              variable14 = TAG_Int(UNTAG_Int( variable13 /*idx*/)+UNTAG_Int( TAG_Int(1)));
+              variable13 = variable14 /*idx=*/;
+            }
+            continue_32: while(0);
+          }
+          break_32: while(0);
+          continue_31: while(0);
+          ((array___ArrayIterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*ArrayIterator::next*/;
+        }
+        break_31: while(0);
+        continue_30: while(0);
+      }
+      break_30: while(0);
+      ((compiling_global___ColorContext___color__eq_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color__eq))( variable0 /*ga*/,  variable7 /*e*/,  variable8 /*color*/) /*GlobalAnalysis::color=*/;
+    }
+    variable10 = NEW_range___Range___without_last( TAG_Int(0),  variable9 /*len*/); /*new Range[Int]*/
+    variable10 = ((range___Range___iterator_t)CALL(variable10,COLOR_abstract_collection___Collection___iterator))(variable10) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable11 = ((abstract_collection___Iterator___is_ok_t)CALL(variable10,COLOR_abstract_collection___Iterator___is_ok))(variable10) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable11)) break; /*for*/
+      variable11 = ((abstract_collection___Iterator___item_t)CALL(variable10,COLOR_abstract_collection___Iterator___item))(variable10) /*Iterator::item*/;
+      variable12 = TAG_Int(UNTAG_Int( variable8 /*color*/)+UNTAG_Int( variable11 /*idx*/));
+      variable12 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable4 /*colors*/,COLOR_abstract_collection___Map___has_key))( variable4 /*colors*/, variable12) /*HashMap::has_key*/;
+      if (UNTAG_Bool(variable12)) { /*if*/
+        variable12 = TAG_Int(UNTAG_Int( variable8 /*color*/)+UNTAG_Int( variable11 /*idx*/));
+        variable12 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable4 /*colors*/,COLOR_abstract_collection___Map_____bra))( variable4 /*colors*/, variable12) /*HashMap::[]*/;
+        ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  variable7 /*e*/) /*Array::add*/;
+      } else { /*if*/
+        variable12 = TAG_Int(UNTAG_Int( variable8 /*color*/)+UNTAG_Int( variable11 /*idx*/));
+        variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[TableElt]*/
+        ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  variable7 /*e*/) /*Array::add*/;
+        ((hash___HashMap_____braeq_t)CALL( variable4 /*colors*/,COLOR_abstract_collection___Map_____braeq))( variable4 /*colors*/, variable12, variable13) /*HashMap::[]=*/;
+      }
+      continue_33: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable10,COLOR_abstract_collection___Iterator___next))(variable10) /*Iterator::next*/;
+    }
+    break_33: while(0);
+    continue_28: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
+  }
+  break_28: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMSrcModule___free_color(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::free_color (src/compiling//compiling_global.nit:422,2--429:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*es*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*es*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((compiling_global___TableElt___is_related_to_t)CALL( variable3 /*e2*/,COLOR_compiling_global___TableElt___is_related_to))( variable3 /*e2*/,  variable1 /*c*/) /*TableElt::is_related_to*/;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable2 =  TAG_Bool(false);
+      goto return_label34;
+    }
+    continue_35: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_35: while(0);
+  variable2 =  TAG_Bool(true);
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___MMSrcModule___compile_tables_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::compile_tables_to_c (src/compiling//compiling_global.nit:432,2--452:15)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  val_t variable4;
+  val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMSrcModule::mhe*/;
+  variable1 = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable1,COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable1) /*PartialOrderElement::greaters_and_self*/;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*m*/==NIT_NULL) || VAL_ISA( variable2 /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:436,4--27\n"); nit_exit(1);}
+    ((compiling_global___MMSrcModule___compile_local_table_to_c_t)CALL( variable2 /*m*/,COLOR_compiling_global___MMSrcModule___compile_local_table_to_c))( variable2 /*m*/,  variable0 /*v*/) /*MMSrcModule::compile_local_table_to_c*/;
+    continue_37: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_37: while(0);
+  variable1 = ((abstractmetamodel___MMModule___local_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___local_classes))( self) /*MMSrcModule::local_classes*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    ((compiling_global___MMLocalClass___compile_tables_to_c_t)CALL( variable2 /*c*/,COLOR_compiling_global___MMLocalClass___compile_tables_to_c))( variable2 /*c*/,  variable0 /*v*/) /*MMLocalClass::compile_tables_to_c*/;
+    continue_38: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_38: while(0);
+  variable2 = NEW_string___String___with_native(BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"), TAG_Int(31)); /*new String*/
+  variable1 = variable2;
+  variable2 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable4) /*Array::add*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable5) /*Array::add*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((symbol___String___to_symbol_t)CALL( variable3 /*t*/,COLOR_symbol___String___to_symbol))( variable3 /*t*/) /*String::to_symbol*/;
+    variable4 = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL( self,COLOR_abstractmetamodel___MMModule___has_global_class_named))( self, variable4) /*MMSrcModule::has_global_class_named*/;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString(", (const classtable_t)VFT_"), TAG_Int(26)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable3 /*t*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
+    } else { /*if*/
+      variable4 = NEW_string___String___with_native(BOX_NativeString(", NULL"), TAG_Int(6)); /*new String*/
+      ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
+    }
+    continue_39: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_39: while(0);
+  variable2 = NEW_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
+  ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable2) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/,  variable1 /*s*/) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::declare_class_tables_to_c (src/compiling//compiling_global.nit:455,2--460:27)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMModule___local_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___local_classes))( self) /*MMSrcModule::local_classes*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable2 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable2 /*c*/) /*MMLocalClass::global*/;
+    variable3 = ((abstractmetamodel___MMGlobalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalClass___module))(variable3) /*MMGlobalClass::module*/;
+    variable3 = TAG_Bool((variable3 ==  self) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  self) /*MMModule::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      ((compiling_global___MMLocalClass___declare_tables_to_c_t)CALL( variable2 /*c*/,COLOR_compiling_global___MMLocalClass___declare_tables_to_c))( variable2 /*c*/,  variable0 /*v*/) /*MMLocalClass::declare_tables_to_c*/;
+    }
+    continue_41: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_41: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMSrcModule___compile_main_part(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::compile_main_part (src/compiling//compiling_global.nit:465,2--490:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  static val_t once_value_variable2_43; static int once_bool_variable2_43;
+    val_t variable3;
+    val_t variable4;
+    static val_t once_value_variable4_44; static int once_bool_variable4_44;
+      static val_t once_value_variable4_45; static int once_bool_variable4_45;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("int main(int argc, char **argv) {"), TAG_Int(33)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("prepare_signals();"), TAG_Int(18)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("glob_argc = argc; glob_argv = argv;"), TAG_Int(35)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  if (once_bool_variable2_43) variable2 = once_value_variable2_43;
+  else {
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/
+    variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+    once_value_variable2_43 = variable2;
+    once_bool_variable2_43 = true;
+  }
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL( self,COLOR_abstractmetamodel___MMModule___has_global_class_named))( self,  variable1 /*sysname*/) /*MMSrcModule::has_global_class_named*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
+    ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable2) /*MMSrcModule::print*/;
+  } else { /*if*/
+    variable3 = ((abstractmetamodel___MMModule___class_by_name_t)CALL( self,COLOR_abstractmetamodel___MMModule___class_by_name))( self,  variable1 /*sysname*/) /*MMSrcModule::class_by_name*/;
+    variable3 = ((genericity___MMLocalClass___get_type_t)CALL(variable3,COLOR_static_type___MMLocalClass___get_type))(variable3) /*MMLocalClass::get_type*/;
+    variable2 = variable3;
+    if (once_bool_variable4_44) variable4 = once_value_variable4_44;
+    else {
+      variable4 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+      variable4 = ((symbol___String___to_symbol_t)CALL(variable4,COLOR_symbol___String___to_symbol))(variable4) /*String::to_symbol*/;
+      once_value_variable4_44 = variable4;
+      once_bool_variable4_44 = true;
+    }
+    variable4 = ((static_type___MMType___select_method_t)CALL( variable2 /*sys*/,COLOR_static_type___MMType___select_method))( variable2 /*sys*/, variable4) /*MMType::select_method*/;
+    variable3 = variable4;
+    variable4 = TAG_Bool(( variable3 /*main*/ ==  NIT_NULL /*null*/) || (( variable3 /*main*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*main*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*main*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*main*/,COLOR_kernel___Object_____eqeq))( variable3 /*main*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      if (once_bool_variable4_45) variable4 = once_value_variable4_45;
+      else {
+        variable4 = NEW_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/
+        variable4 = ((symbol___String___to_symbol_t)CALL(variable4,COLOR_symbol___String___to_symbol))(variable4) /*String::to_symbol*/;
+        once_value_variable4_45 = variable4;
+        once_bool_variable4_45 = true;
+      }
+      variable4 = ((static_type___MMType___select_method_t)CALL( variable2 /*sys*/,COLOR_static_type___MMType___select_method))( variable2 /*sys*/, variable4) /*MMType::select_method*/;
+      variable3 = variable4 /*main=*/;
+    }
+    variable4 = TAG_Bool(( variable3 /*main*/ ==  NIT_NULL /*null*/) || (( variable3 /*main*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*main*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*main*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*main*/,COLOR_kernel___Object_____eqeq))( variable3 /*main*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
+      ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable4) /*MMSrcModule::print*/;
+    } else { /*if*/
+      variable4 = NEW_string___String___with_native(BOX_NativeString("G_sys = NEW_Sys();"), TAG_Int(18)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((compiling_base___MMLocalProperty___cname_t)CALL( variable3 /*main*/,COLOR_compiling_base___MMLocalProperty___cname))( variable3 /*main*/) /*MMMethod::cname*/;
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("(G_sys);"), TAG_Int(8)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+    }
+  }
+  variable2 = NEW_string___String___with_native(BOX_NativeString("return 0;"), TAG_Int(9)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMSrcModule___compile_mod_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::compile_mod_to_c (src/compiling//compiling_global.nit:493,2--522:29)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+      val_t variable15;
+      val_t variable16;
+      val_t variable17;
+          val_t variable18;
+          val_t variable19;
+          val_t variable20;
+          val_t variable21;
+          val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((compiling_base___CompilerVisitor___tc_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable0 /*v*/) /*CompilerVisitor::tc*/;
+  variable1 = ((compiling_base___ToolContext___global_t)CALL(variable1,COLOR_compiling_base___ToolContext___global))(variable1) /*ToolContext::global*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("extern const int SFT_"), TAG_Int(21)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+    variable5 = variable4;
+    variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable1) /*CompilerVisitor::add_decl*/;
+  }
+  variable1 =  TAG_Int(0);
+  variable2 = ATTR_compiling_global___MMSrcModule____local_table( self) /*MMSrcModule::_local_table*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((compiling_base___CompilerVisitor___tc_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable0 /*v*/) /*CompilerVisitor::tc*/;
+    variable4 = ((compiling_base___ToolContext___global_t)CALL(variable4,COLOR_compiling_base___ToolContext___global))(variable4) /*ToolContext::global*/;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((compiling_global___LocalTableElt___symbol_t)CALL( variable3 /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable3 /*e*/) /*LocalTableElt::symbol*/;
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+      variable11 = ((compiling_global___LocalTableElt___value_t)CALL( variable3 /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable3 /*e*/, variable11) /*LocalTableElt::value*/;
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+    } else { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((compiling_global___LocalTableElt___symbol_t)CALL( variable3 /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable3 /*e*/) /*LocalTableElt::symbol*/;
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" SFT_"), TAG_Int(5)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+      variable15 =  variable1 /*i*/;
+      variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+      variable4 = TAG_Int(UNTAG_Int( variable1 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable1 = variable4 /*i=*/;
+    }
+    continue_47: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_47: while(0);
+  variable2 = ((syntax_base___MMSrcModule___src_local_classes_t)CALL( self,COLOR_syntax_base___MMSrcModule___src_local_classes))( self) /*MMSrcModule::src_local_classes*/;
+  variable2 = ((abstract_collection___Map___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*MapIterator::item*/;
+    variable4 = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL( variable3 /*c*/,COLOR_syntax_base___MMSrcLocalClass___src_local_properties))( variable3 /*c*/) /*MMSrcLocalClass::src_local_properties*/;
+    variable4 = ((abstract_collection___Map___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Map::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*MapIterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*MapIterator::item*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable5 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable5 /*p*/) /*MMSrcLocalProperty::global*/;
+      variable6 = variable7;
+      variable7 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable6 /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable6 /*pg*/) /*MMGlobalProperty::intro*/;
+      variable7 = TAG_Bool((variable7 ==  variable5 /*p*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, variable5 /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7,  variable5 /*p*/) /*MMConcreteProperty::==*/)))));
+      variable8 = variable7;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = TAG_Bool(( variable5 /*p*/==NIT_NULL) || VAL_ISA( variable5 /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+      }
+      variable7 = variable8;
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable7 = ((compiling_base___CompilerVisitor___tc_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable0 /*v*/) /*CompilerVisitor::tc*/;
+        variable7 = ((compiling_base___ToolContext___attr_sim_t)CALL(variable7,COLOR_compiling_base___ToolContext___attr_sim))(variable7) /*ToolContext::attr_sim*/;
+        if (UNTAG_Bool(variable7)) { /*if*/
+          variable8 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( variable6 /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( variable6 /*pg*/) /*MMGlobalProperty::local_class*/;
+          variable7 = variable8;
+          variable8 = TAG_Bool(( variable7 /*bc*/==NIT_NULL) || VAL_ISA( variable7 /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+          if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:514,7--35\n"); nit_exit(1);}
+          variable9 = ((compiling_global___MMSrcLocalClass___base_attr_pos_t)CALL( variable7 /*bc*/,COLOR_compiling_global___MMSrcLocalClass___base_attr_pos))( variable7 /*bc*/) /*MMSrcLocalClass::base_attr_pos*/;
+          variable9 = ((compiling_global___TableEltBaseAttrPos___symbol_t)CALL(variable9,COLOR_compiling_global___LocalTableElt___symbol))(variable9) /*TableEltBaseAttrPos::symbol*/;
+          variable8 = variable9;
+          variable9 = NEW_string___String___init(); /*new String*/
+          variable10 = NEW_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable11) /*String::append*/;
+          variable12 = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable6 /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable6 /*pg*/) /*MMGlobalProperty::attr_access*/;
+          variable13 = variable12;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable13) /*String::append*/;
+          variable14 = NEW_string___String___with_native(BOX_NativeString("(recv) ATTRS(recv, "), TAG_Int(19)); /*new String*/
+          variable15 = variable14;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable15) /*String::append*/;
+          variable16 =  variable8 /*s*/;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable16) /*String::append*/;
+          variable17 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+          variable18 = variable17;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable18) /*String::append*/;
+          variable19 = ((compiling_global___MMGlobalProperty___pos_of_t)CALL( variable6 /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of))( variable6 /*pg*/) /*MMGlobalProperty::pos_of*/;
+          variable20 = variable19;
+          variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable20) /*String::append*/;
+          variable21 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+          variable22 = variable21;
+          ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable22) /*String::append*/;
+          ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable9) /*CompilerVisitor::add_decl*/;
+        } else { /*if*/
+          variable7 = NEW_string___String___init(); /*new String*/
+          variable8 = NEW_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+          variable9 = variable8;
+          ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+          variable10 = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable6 /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable6 /*pg*/) /*MMGlobalProperty::attr_access*/;
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+          variable12 = NEW_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, "), TAG_Int(18)); /*new String*/
+          variable13 = variable12;
+          ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+          variable14 = ((compiling_base___MMGlobalProperty___color_id_t)CALL( variable6 /*pg*/,COLOR_compiling_base___MMGlobalProperty___color_id))( variable6 /*pg*/) /*MMGlobalProperty::color_id*/;
+          variable15 = variable14;
+          ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable15) /*String::append*/;
+          variable16 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+          variable17 = variable16;
+          ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable17) /*String::append*/;
+          ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable7) /*CompilerVisitor::add_decl*/;
+        }
+      }
+      variable7 = TAG_Bool(( variable5 /*p*/==NIT_NULL) || VAL_ISA( variable5 /*p*/, COLOR_MMSrcLocalProperty, ID_MMSrcLocalProperty)) /*cast MMSrcLocalProperty*/;
+      if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:521,5--35\n"); nit_exit(1);}
+      ((compiling_methods___MMSrcLocalProperty___compile_property_to_c_t)CALL( variable5 /*p*/,COLOR_compiling_methods___MMSrcLocalProperty___compile_property_to_c))( variable5 /*p*/,  variable0 /*v*/) /*MMSrcLocalProperty::compile_property_to_c*/;
+      continue_49: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*MapIterator::next*/;
+    }
+    break_49: while(0);
+    continue_48: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*MapIterator::next*/;
+  }
+  break_48: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMSrcModule___compile_local_table_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMSrcModule::compile_local_table_to_c (src/compiling//compiling_global.nit:527,2--540:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((compiling_base___CompilerVisitor___tc_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable0 /*v*/) /*CompilerVisitor::tc*/;
+  variable1 = ((compiling_base___ToolContext___global_t)CALL(variable1,COLOR_compiling_base___ToolContext___global))(variable1) /*ToolContext::global*/;
+  variable2 = variable1;
+  if (!UNTAG_Bool(variable2)) { /* or */
+    variable2 = ATTR_compiling_global___MMSrcModule____local_table( self) /*MMSrcModule::_local_table*/;
+    variable2 = ((array___AbstractArray___is_empty_t)CALL(variable2,COLOR_abstract_collection___Collection___is_empty))(variable2) /*Array::is_empty*/;
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    goto return_label50;
+  }
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("const int SFT_"), TAG_Int(14)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMSrcModule::name*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___MMSrcModule____local_table( self) /*MMSrcModule::_local_table*/;
+  variable8 = ((array___AbstractArray___length_t)CALL(variable8,COLOR_abstract_collection___Collection___length))(variable8) /*Array::length*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable1 = ATTR_compiling_global___MMSrcModule____local_table( self) /*MMSrcModule::_local_table*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+    variable3 = ((compiling_global___LocalTableElt___value_t)CALL( variable2 /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable2 /*e*/, variable3) /*LocalTableElt::value*/;
+    variable4 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+    variable3 = ((string___String_____plus_t)CALL(variable3,COLOR_string___String_____plus))(variable3, variable4) /*String::+*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+    continue_51: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_51: while(0);
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableElt___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableElt::is_related_to (src/compiling//compiling_global.nit:545,2--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_related_to called (src/compiling//compiling_global.nit:545,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_global___TableElt___length(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableElt::length (src/compiling//compiling_global.nit:546,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  goto return_label52;
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableElt___item(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableElt::item (src/compiling//compiling_global.nit:547,2--43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label53;
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableElt___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableElt::compile_to_c (src/compiling//compiling_global.nit:548,2--63)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method compile_to_c called (src/compiling//compiling_global.nit:548,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_global___LocalTableElt___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::LocalTableElt::symbol (src/compiling//compiling_global.nit:553,2--20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method symbol called (src/compiling//compiling_global.nit:553,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_global___LocalTableElt___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::LocalTableElt::value (src/compiling//compiling_global.nit:554,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method value called (src/compiling//compiling_global.nit:554,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_global___TableEltPropPos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltPropPos::symbol (src/compiling//compiling_global.nit:560,2--54)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltPropPos::_property*/;
+  variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___global))(variable0) /*MMSrcLocalProperty::global*/;
+  variable0 = ((compiling_base___MMGlobalProperty___color_id_t)CALL(variable0,COLOR_compiling_base___MMGlobalProperty___color_id))(variable0) /*MMGlobalProperty::color_id*/;
+  goto return_label54;
+  return_label54: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltPropPos___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltPropPos::value (src/compiling//compiling_global.nit:561,2--77)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /* Property "), TAG_Int(13)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltPropPos::_property*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___TableEltPropPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltPropPos::init (src/compiling//compiling_global.nit:563,2--565:15)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltPropPos].i]) return;
+  ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltPropPos::_property*/ =  variable0 /*p*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltPropPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltMethPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltMethPos::compile_to_c (src/compiling//compiling_global.nit:571,2--574:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltMethPos::_property*/;
+  variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalProperty___global))(variable3) /*MMSrcLocalProperty::global*/;
+  variable3 = ((inheritance___MMLocalClass_____bra_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable1 /*c*/, variable3) /*MMLocalClass::[]*/;
+  variable2 = variable3;
+  variable3 = ((compiling_base___MMLocalProperty___cname_t)CALL( variable2 /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable2 /*p*/) /*MMLocalProperty::cname*/;
+  variable2 = variable3;
+  goto return_label57;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltMethPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltMethPos::init (src/compiling//compiling_global.nit:576,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltMethPos].i]) return;
+  ((compiling_global___TableEltPropPos___init_t)CALL( self,COLOR_compiling_global___TableEltPropPos___init))( self,  param0, init_table /*YYY*/) /*TableEltPropPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltMethPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltSuperPos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltSuperPos::symbol (src/compiling//compiling_global.nit:581,2--57)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltSuperPos::_property*/;
+  variable0 = ((compiling_base___MMLocalProperty___color_id_for_super_t)CALL(variable0,COLOR_compiling_base___MMLocalProperty___color_id_for_super))(variable0) /*MMSrcLocalProperty::color_id_for_super*/;
+  goto return_label59;
+  return_label59: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltSuperPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltSuperPos::compile_to_c (src/compiling//compiling_global.nit:582,2--601:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+        val_t variable9;
+        val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltSuperPos::_property*/;
+  variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable3) /*MMSrcLocalProperty::local_class*/;
+  variable2 = variable3;
+  variable4 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltSuperPos::_property*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMSrcLocalProperty::global*/;
+  variable3 = variable4;
+  variable5 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable1 /*c*/) /*MMLocalClass::che*/;
+  variable5 = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___linear_extension))(variable5) /*PartialOrderElement::linear_extension*/;
+  variable4 = variable5;
+  variable5 =  TAG_Bool(false);
+  variable6 = ((array___AbstractArray___iterator_t)CALL( variable4 /*lin*/,COLOR_abstract_collection___Collection___iterator))( variable4 /*lin*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable7)) break; /*for*/
+    variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
+    variable8 = TAG_Bool(( variable7 /*s*/ ==  variable2 /*pc*/) || (( variable7 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*s*/, variable2 /*pc*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*s*/,COLOR_kernel___Object_____eqeq))( variable7 /*s*/,  variable2 /*pc*/) /*MMLocalClass::==*/)))));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  TAG_Bool(true) /*found=*/;
+    } else { /*if*/
+      variable8 =  variable5 /*found*/;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable1 /*c*/) /*MMLocalClass::che*/;
+        variable8 = ((partial_order___PartialOrderElement_____l_t)CALL(variable8,COLOR_partial_order___PartialOrderElement_____l))(variable8,  variable7 /*s*/) /*PartialOrderElement::<*/;
+      }
+      if (UNTAG_Bool(variable8)) { /*if*/
+        variable9 = ((inheritance___MMLocalClass_____bra_t)CALL( variable7 /*s*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable7 /*s*/,  variable3 /*g*/) /*MMLocalClass::[]*/;
+        variable8 = variable9;
+        variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*p*/ ==  NIT_NULL /*null*/) || (( variable8 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*p*/,COLOR_kernel___Object_____eqeq))( variable8 /*p*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))))));
+        variable10 = variable9;
+        if (UNTAG_Bool(variable10)) { /* and */
+          variable10 = TAG_Bool(( variable8 /*p*/==NIT_NULL) || VAL_ISA( variable8 /*p*/, COLOR_MMConcreteProperty, ID_MMConcreteProperty)) /*cast MMConcreteProperty*/;
+        }
+        variable9 = variable10;
+        if (UNTAG_Bool(variable9)) { /*if*/
+          variable9 = ((compiling_base___MMLocalProperty___cname_t)CALL( variable8 /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable8 /*p*/) /*MMConcreteProperty::cname*/;
+          variable2 = variable9;
+          goto return_label60;
+        }
+      }
+    }
+    continue_61: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
+  }
+  break_61: while(0);
+  if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:600,3--14\n"); nit_exit(1);}
+  variable2 =  NIT_NULL /*null*/;
+  goto return_label60;
+  return_label60: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltSuperPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltSuperPos::init (src/compiling//compiling_global.nit:604,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltSuperPos].i]) return;
+  ((compiling_global___TableEltPropPos___init_t)CALL( self,COLOR_compiling_global___TableEltPropPos___init))( self,  param0, init_table /*YYY*/) /*TableEltPropPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltSuperPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltAttrPos::compile_to_c (src/compiling//compiling_global.nit:609,2--613:53)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable4 = ATTR_compiling_global___TableEltPropPos____property( self) /*TableEltAttrPos::_property*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMSrcLocalProperty::global*/;
+  variable4 = ((inheritance___MMLocalClass_____bra_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable1 /*c*/, variable4) /*MMLocalClass::[]*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(": Attribute "), TAG_Int(12)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 =  variable1 /*c*/;
+  variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  variable14 =  variable3 /*p*/;
+  variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable2 = variable4;
+  goto return_label63;
+  return_label63: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltAttrPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltAttrPos::init (src/compiling//compiling_global.nit:616,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltAttrPos].i]) return;
+  ((compiling_global___TableEltPropPos___init_t)CALL( self,COLOR_compiling_global___TableEltPropPos___init))( self,  param0, init_table /*YYY*/) /*TableEltPropPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltAttrPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltClassPos___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassPos::is_related_to (src/compiling//compiling_global.nit:622,2--625:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*c*/) /*MMLocalClass::module*/;
+  variable3 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassPos::_local_class*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___global))(variable3) /*MMLocalClass::global*/;
+  variable2 = ((abstractmetamodel___MMModule_____bra_t)CALL(variable2,COLOR_abstractmetamodel___MMModule_____bra))(variable2, variable3) /*MMModule::[]*/;
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable0 /*c*/) /*MMLocalClass::cshe*/;
+  variable2 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable2,COLOR_partial_order___PartialOrderElement_____leq))(variable2,  variable1 /*bc*/) /*PartialOrderElement::<=*/;
+  variable1 = variable2;
+  goto return_label65;
+  return_label65: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___TableEltClassPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassPos::init (src/compiling//compiling_global.nit:628,2--630:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassPos].i]) return;
+  ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassPos::_local_class*/ =  variable0 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltClassIdPos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassIdPos::symbol (src/compiling//compiling_global.nit:636,2--54)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassIdPos::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___global))(variable0) /*MMLocalClass::global*/;
+  variable0 = ((compiling_base___MMGlobalClass___id_id_t)CALL(variable0,COLOR_compiling_base___MMGlobalClass___id_id))(variable0) /*MMGlobalClass::id_id*/;
+  goto return_label67;
+  return_label67: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltClassIdPos___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassIdPos::value (src/compiling//compiling_global.nit:637,2--639:83)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable0 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable0 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable5 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassIdPos::_local_class*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___global))(variable5) /*MMLocalClass::global*/;
+  variable4 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*HashMap::[]*/;
+  variable4 = ((compiling_global___CompiledClass___id_t)CALL(variable4,COLOR_compiling_global___CompiledClass___id))(variable4) /*CompiledClass::id*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /* Id of "), TAG_Int(10)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassIdPos::_local_class*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label68;
+  return_label68: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___TableEltClassIdPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassIdPos::init (src/compiling//compiling_global.nit:642,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassIdPos].i]) return;
+  ((compiling_global___TableEltClassPos___init_t)CALL( self,COLOR_compiling_global___TableEltClassPos___init))( self,  param0, init_table /*YYY*/) /*TableEltClassPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassIdPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltClassInitTablePos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassInitTablePos::symbol (src/compiling//compiling_global.nit:647,2--66)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassInitTablePos::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___global))(variable0) /*MMLocalClass::global*/;
+  variable0 = ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL(variable0,COLOR_compiling_base___MMGlobalClass___init_table_pos_id))(variable0) /*MMGlobalClass::init_table_pos_id*/;
+  goto return_label70;
+  return_label70: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltClassInitTablePos___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassInitTablePos::value (src/compiling//compiling_global.nit:648,2--650:57)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassInitTablePos::_local_class*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label71;
+  return_label71: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassInitTablePos::compile_to_c (src/compiling//compiling_global.nit:652,2--661:93)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable4 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable2 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable2 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable5 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassInitTablePos::_local_class*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___global))(variable5) /*MMLocalClass::global*/;
+  variable4 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*HashMap::[]*/;
+  variable3 = variable4;
+  variable5 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable1 /*c*/) /*MMLocalClass::cshe*/;
+  variable5 = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable5) /*PartialOrderElement::reverse_linear_extension*/;
+  variable4 = variable5;
+  variable5 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable6 =  variable5 /*i*/;
+    variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable8 = variable7;
+    if (UNTAG_Bool(variable8)) { /* and */
+      variable8 = ATTR_array___AbstractArray____length( variable4 /*linext*/) /*Array::_length*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+    }
+    variable7 = variable8;
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable7 = ATTR_array___Array____items( variable4 /*linext*/) /*Array::_items*/;
+    variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+    goto return_label74;
+    return_label74: while(false);
+    variable6 = variable7;
+    variable6 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___global))(variable6) /*MMLocalClass::global*/;
+    variable7 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassInitTablePos::_local_class*/;
+    variable7 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___global))(variable7) /*MMLocalClass::global*/;
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable6 == variable7) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6,variable7)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6, variable7) /*MMGlobalClass::==*/)))))));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_73: while(0);
+  }
+  break_73: while(0);
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 =  variable5 /*i*/;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+  variable12 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable13 = variable12;
+  variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+  variable16 =  variable1 /*c*/;
+  variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+  variable19 = ((compiling_global___CompiledClass___local_class_t)CALL( variable3 /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable3 /*cc*/) /*CompiledClass::local_class*/;
+  variable20 = variable19;
+  variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+  variable21 = NEW_string___String___with_native(BOX_NativeString(": superclass init_table position */"), TAG_Int(35)); /*new String*/
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable22) /*String::append*/;
+  variable2 = variable6;
+  goto return_label72;
+  return_label72: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltClassInitTablePos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassInitTablePos::init (src/compiling//compiling_global.nit:664,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i]) return;
+  ((compiling_global___TableEltClassPos___init_t)CALL( self,COLOR_compiling_global___TableEltClassPos___init))( self,  param0, init_table /*YYY*/) /*TableEltClassPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltClassColorPos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassColorPos::symbol (src/compiling//compiling_global.nit:669,2--57)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassColorPos::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___global))(variable0) /*MMLocalClass::global*/;
+  variable0 = ((compiling_base___MMGlobalClass___color_id_t)CALL(variable0,COLOR_compiling_base___MMGlobalClass___color_id))(variable0) /*MMGlobalClass::color_id*/;
+  goto return_label76;
+  return_label76: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltClassColorPos___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassColorPos::value (src/compiling//compiling_global.nit:670,2--672:57)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassColorPos::_local_class*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label77;
+  return_label77: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassColorPos::compile_to_c (src/compiling//compiling_global.nit:674,2--678:94)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable4 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable2 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable2 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable5 = ATTR_compiling_global___TableEltClassPos____local_class( self) /*TableEltClassColorPos::_local_class*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___global))(variable5) /*MMLocalClass::global*/;
+  variable4 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*HashMap::[]*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((compiling_global___CompiledClass___id_t)CALL( variable3 /*cc*/,COLOR_compiling_global___CompiledClass___id))( variable3 /*cc*/) /*CompiledClass::id*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 =  variable1 /*c*/;
+  variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+  variable18 = ((compiling_global___CompiledClass___local_class_t)CALL( variable3 /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable3 /*cc*/) /*CompiledClass::local_class*/;
+  variable19 = variable18;
+  variable19 = ((string___String___to_s_t)CALL(variable19,COLOR_string___Object___to_s))(variable19) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable19) /*String::append*/;
+  variable20 = NEW_string___String___with_native(BOX_NativeString(": superclass typecheck marker */"), TAG_Int(32)); /*new String*/
+  variable21 = variable20;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable21) /*String::append*/;
+  variable2 = variable4;
+  goto return_label78;
+  return_label78: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltClassColorPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassColorPos::init (src/compiling//compiling_global.nit:681,2--17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassColorPos].i]) return;
+  ((compiling_global___TableEltClassPos___init_t)CALL( self,COLOR_compiling_global___TableEltClassPos___init))( self,  param0, init_table /*YYY*/) /*TableEltClassPos::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassColorPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltBaseAttrPos___symbol(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltBaseAttrPos::symbol (src/compiling//compiling_global.nit:687,2--87)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMSrcLocalClass::module*/;
+  variable4 = variable3;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  variable7 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___name))(variable7) /*MMSrcLocalClass::name*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("_BASEATTR"), TAG_Int(9)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+  goto return_label80;
+  return_label80: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltBaseAttrPos___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltBaseAttrPos::value (src/compiling//compiling_global.nit:688,2--690:63)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_global___ColorContext___color_t)CALL( variable0 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable0 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable5 = variable4;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /* BaseAttrPos of "), TAG_Int(19)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label81;
+  return_label81: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltBaseAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltBaseAttrPos::compile_to_c (src/compiling//compiling_global.nit:693,2--697:150)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable4 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable2 /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable2 /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable1 /*c*/) /*MMLocalClass::global*/;
+  variable4 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*HashMap::[]*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable7 = ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL(variable7,COLOR_compiling_global___MMSrcLocalClass___instance_layout))(variable7) /*MMSrcLocalClass::instance_layout*/;
+  variable7 = ((abstract_collection___IndexedCollection___first_t)CALL(variable7,COLOR_abstract_collection___Collection___first))(variable7) /*Array::first*/;
+  variable7 = ((compiling_global___ColorContext___color_t)CALL( variable3 /*cc*/,COLOR_compiling_global___ColorContext___color))( variable3 /*cc*/, variable7) /*CompiledClass::color*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(": Base attribut offset of "), TAG_Int(26)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable15 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable15,COLOR_abstractmetamodel___MMLocalClass___module))(variable15) /*MMSrcLocalClass::module*/;
+  variable16 = variable15;
+  variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable19 = ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/;
+  variable20 = variable19;
+  variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable20) /*String::append*/;
+  variable21 = NEW_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable22) /*String::append*/;
+  variable23 =  variable1 /*c*/;
+  variable23 = ((string___String___to_s_t)CALL(variable23,COLOR_string___Object___to_s))(variable23) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable23) /*String::append*/;
+  variable24 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+  variable25 = variable24;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable25) /*String::append*/;
+  variable2 = variable4;
+  goto return_label82;
+  return_label82: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltBaseAttrPos___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltBaseAttrPos::init (src/compiling//compiling_global.nit:700,2--702:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i]) return;
+  ATTR_compiling_global___TableEltBaseAttrPos____local_class( self) /*TableEltBaseAttrPos::_local_class*/ =  variable0 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltComposite___length(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::length (src/compiling//compiling_global.nit:711,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_compiling_global___TableEltComposite____table( self) /*TableEltComposite::_table*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  goto return_label84;
+  return_label84: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_global___TableEltComposite___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::is_related_to (src/compiling//compiling_global.nit:712,2--64)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable0 /*c*/) /*MMLocalClass::cshe*/;
+  variable2 = ATTR_compiling_global___TableEltComposite____cc( self) /*TableEltComposite::_cc*/;
+  variable2 = ((compiling_global___CompiledClass___local_class_t)CALL(variable2,COLOR_compiling_global___CompiledClass___local_class))(variable2) /*CompiledClass::local_class*/;
+  variable1 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable1,COLOR_partial_order___PartialOrderElement_____leq))(variable1, variable2) /*PartialOrderElement::<=*/;
+  goto return_label85;
+  return_label85: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___TableEltComposite___add(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::add (src/compiling//compiling_global.nit:714,2--717:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_compiling_global___TableEltComposite____offsets( self) /*TableEltComposite::_offsets*/;
+  variable3 = ATTR_compiling_global___TableEltComposite____table( self) /*TableEltComposite::_table*/;
+  variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+  ((hash___HashMap_____braeq_t)CALL(variable2,COLOR_abstract_collection___Map_____braeq))(variable2,  variable0 /*c*/, variable3) /*HashMap::[]=*/;
+  variable2 = ATTR_compiling_global___TableEltComposite____table( self) /*TableEltComposite::_table*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2,  variable1 /*tab*/) /*Array::append*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltComposite___item(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::item (src/compiling//compiling_global.nit:720,2--38)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_global___TableEltComposite____table( self) /*TableEltComposite::_table*/;
+  variable2 =  variable0 /*i*/;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = variable1;
+    variable4 = ATTR_array___AbstractArray____length(variable4) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = variable1;
+  variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label88;
+  return_label88: while(false);
+  variable1 = variable3;
+  goto return_label87;
+  return_label87: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltComposite___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::compile_to_c (src/compiling//compiling_global.nit:722,2--39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  fprintf(stderr, "Aborted: src/compiling//compiling_global.nit:722,35--39\n"); nit_exit(1);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltComposite___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltComposite::init (src/compiling//compiling_global.nit:724,2--728:42)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltComposite].i]) return;
+  ATTR_compiling_global___TableEltComposite____cc( self) /*TableEltComposite::_cc*/ =  variable0 /*cc*/;
+  variable1 = NEW_array___Array___init(); /*new Array[LocalTableElt]*/
+  ATTR_compiling_global___TableEltComposite____table( self) /*TableEltComposite::_table*/ = variable1;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[MMLocalClass, Int]*/
+  ATTR_compiling_global___TableEltComposite____offsets( self) /*TableEltComposite::_offsets*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltComposite].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltClassSelfId___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassSelfId::is_related_to (src/compiling//compiling_global.nit:734,2--43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Bool(true);
+  goto return_label91;
+  return_label91: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassSelfId::compile_to_c (src/compiling//compiling_global.nit:735,2--738:93)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable6 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable6,COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable6) /*GlobalAnalysis::compiled_classes*/;
+  variable7 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable1 /*c*/) /*MMLocalClass::global*/;
+  variable6 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable6,COLOR_abstract_collection___Map_____bra))(variable6, variable7) /*HashMap::[]*/;
+  variable6 = ((compiling_global___CompiledClass___id_t)CALL(variable6,COLOR_compiling_global___CompiledClass___id))(variable6) /*CompiledClass::id*/;
+  variable7 = variable6;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable11 = variable10;
+  variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString(": Identity */"), TAG_Int(13)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+  variable2 = variable3;
+  goto return_label92;
+  return_label92: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltClassSelfId___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltClassSelfId::init (src/compiling//compiling_global.nit:741,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassSelfId].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassSelfId].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltVftPointer___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltVftPointer::is_related_to (src/compiling//compiling_global.nit:746,2--43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Bool(true);
+  goto return_label94;
+  return_label94: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_global___TableEltVftPointer___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltVftPointer::compile_to_c (src/compiling//compiling_global.nit:747,2--750:60)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((compiling_global___ColorContext___color_t)CALL( variable2 /*ga*/,COLOR_compiling_global___ColorContext___color))( variable2 /*ga*/,  self) /*GlobalAnalysis::color*/;
+  variable7 = variable6;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(": Pointer to the classtable */"), TAG_Int(30)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable2 = variable3;
+  goto return_label95;
+  return_label95: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___TableEltVftPointer___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::TableEltVftPointer::init (src/compiling//compiling_global.nit:753,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltVftPointer].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltVftPointer].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___ClassSorter___compare(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_global::ClassSorter::compare (src/compiling//compiling_global.nit:760,2--47)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((compiling_global___MMLocalClass___compare_t)CALL( variable0 /*a*/,COLOR_compiling_global___MMLocalClass___compare))( variable0 /*a*/,  variable1 /*b*/) /*MMLocalClass::compare*/;
+  goto return_label97;
+  return_label97: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_global___ClassSorter___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_global::ClassSorter::init (src/compiling//compiling_global.nit:761,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSorter].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSorter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___MMLocalClass___compare(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMLocalClass::compare (src/compiling//compiling_global.nit:765,2--783:37)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  variable2 = TAG_Bool(( variable1 /*a*/ ==  variable0 /*b*/) || (( variable1 /*a*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*a*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*a*/, variable0 /*b*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*a*/,COLOR_kernel___Object_____eqeq))( variable1 /*a*/,  variable0 /*b*/) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  TAG_Int(0);
+    goto return_label99;
+  } else { /*if*/
+    variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable1 /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable1 /*a*/) /*MMLocalClass::module*/;
+    variable2 = ((abstractmetamodel___MMModule___mhe_t)CALL(variable2,COLOR_abstractmetamodel___MMModule___mhe))(variable2) /*MMModule::mhe*/;
+    variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*b*/) /*MMLocalClass::module*/;
+    variable2 = ((partial_order___PartialOrderElement_____l_t)CALL(variable2,COLOR_partial_order___PartialOrderElement_____l))(variable2, variable3) /*PartialOrderElement::<*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable1 =  TAG_Int(1);
+      goto return_label99;
+    } else { /*if*/
+      variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*b*/) /*MMLocalClass::module*/;
+      variable2 = ((abstractmetamodel___MMModule___mhe_t)CALL(variable2,COLOR_abstractmetamodel___MMModule___mhe))(variable2) /*MMModule::mhe*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable1 /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable1 /*a*/) /*MMLocalClass::module*/;
+      variable2 = ((partial_order___PartialOrderElement_____l_t)CALL(variable2,COLOR_partial_order___PartialOrderElement_____l))(variable2, variable3) /*PartialOrderElement::<*/;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+        variable1 = variable2;
+        goto return_label99;
+      }
+    }
+  }
+  variable3 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable1 /*a*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable1 /*a*/) /*MMLocalClass::cshe*/;
+  variable3 = ((partial_order___PartialOrderElement___rank_t)CALL(variable3,COLOR_partial_order___PartialOrderElement___rank))(variable3) /*PartialOrderElement::rank*/;
+  variable2 = variable3;
+  variable4 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable0 /*b*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable0 /*b*/) /*MMLocalClass::cshe*/;
+  variable4 = ((partial_order___PartialOrderElement___rank_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___rank))(variable4) /*PartialOrderElement::rank*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(UNTAG_Int( variable2 /*ar*/)>UNTAG_Int( variable3 /*br*/));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable1 =  TAG_Int(1);
+    goto return_label99;
+  } else { /*if*/
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*br*/)>UNTAG_Int( variable2 /*ar*/));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+      variable1 = variable4;
+      goto return_label99;
+    } else { /*if*/
+      variable4 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable0 /*b*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable0 /*b*/) /*MMLocalClass::name*/;
+      variable4 = ((symbol___Symbol___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*Symbol::to_s*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable1 /*a*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable1 /*a*/) /*MMLocalClass::name*/;
+      variable5 = ((symbol___Symbol___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*Symbol::to_s*/;
+      variable4 = ((kernel___Comparable_____leqg_t)CALL(variable4,COLOR_kernel___Comparable_____leqg))(variable4, variable5) /*String::<=>*/;
+      variable1 = variable4;
+      goto return_label99;
+    }
+  }
+  return_label99: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_global___MMLocalClass___declare_tables_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMLocalClass::declare_tables_to_c (src/compiling//compiling_global.nit:787,2--800:71)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable1) /*CompilerVisitor::add_decl*/;
+  variable2 = ((compiling_base___MMLocalClass___primitive_info_t)CALL( self,COLOR_compiling_base___MMLocalClass___primitive_info))( self) /*MMLocalClass::primitive_info*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("extern const classtable_elt_t VFT_"), TAG_Int(34)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+  variable6 = variable5;
+  variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable2) /*CompilerVisitor::add_decl*/;
+  variable2 = TAG_Bool(( variable1 /*pi*/ ==  NIT_NULL /*null*/) || (( variable1 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*pi*/,COLOR_kernel___Object_____eqeq))( variable1 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+  } else { /*if*/
+    variable2 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable1 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable1 /*pi*/) /*PrimitiveInfo::tagged*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+      variable3 = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable1 /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable1 /*pi*/) /*PrimitiveInfo::cname*/;
+      variable2 = variable3;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable3 = variable4;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable3 /*tbox*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(" { const classtable_elt_t * vft; "), TAG_Int(33)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      variable10 =  variable2 /*t*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString(" val;};"), TAG_Int(7)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 =  variable2 /*t*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(" val);"), TAG_Int(6)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("#define UNBOX_"), TAG_Int(14)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("(x) ((("), TAG_Int(7)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 =  variable3 /*tbox*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(" *)(VAL2OBJ(x)))->val)"), TAG_Int(22)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___MMLocalClass___compile_tables_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_global::MMLocalClass::compile_tables_to_c (src/compiling//compiling_global.nit:804,2--913:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+    val_t variable14;
+        val_t variable15;
+          val_t variable16;
+          val_t variable17;
+          val_t variable18;
+          val_t variable19;
+          val_t variable20;
+          val_t variable21;
+          val_t variable22;
+          val_t variable23;
+          val_t variable24;
+          val_t variable25;
+            val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable2 = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable2,COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable2) /*GlobalAnalysis::compiled_classes*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+  variable2 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable3) /*HashMap::[]*/;
+  variable1 = variable2;
+  variable3 = ((compiling_global___CompiledClass___class_table_t)CALL( variable1 /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable1 /*cc*/) /*CompiledClass::class_table*/;
+  variable2 = variable3;
+  variable4 = ((array___AbstractArray___length_t)CALL( variable2 /*ctab*/,COLOR_abstract_collection___Collection___length))( variable2 /*ctab*/) /*Array::length*/;
+  variable3 = variable4;
+  variable4 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable4 = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable4,COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable4) /*GlobalAnalysis::max_class_table_length*/;
+  variable5 = ((array___AbstractArray___length_t)CALL( variable2 /*ctab*/,COLOR_abstract_collection___Collection___length))( variable2 /*ctab*/) /*Array::length*/;
+  variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int(variable5));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable0 /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable0 /*v*/) /*CompilerVisitor::global_analysis*/;
+    variable4 = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable4,COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable4) /*GlobalAnalysis::max_class_table_length*/;
+    variable3 = variable4 /*clen=*/;
+  }
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("const classtable_elt_t VFT_"), TAG_Int(27)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 =  variable3 /*clen*/;
+  variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable2 /*ctab*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*ctab*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*e*/ ==  NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/,  NIT_NULL /*null*/) /*TableElt::==*/)))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("{0} /* Class Hole :( */,"), TAG_Int(24)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+    } else { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("{(int) "), TAG_Int(7)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 = ((compiling_global___TableElt___compile_to_c_t)CALL( variable5 /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable5 /*e*/,  variable0 /*v*/,  self) /*TableElt::compile_to_c*/;
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString("},"), TAG_Int(2)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+    }
+    continue_102: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_102: while(0);
+  variable4 = ((array___AbstractArray___length_t)CALL( variable2 /*ctab*/,COLOR_abstract_collection___Collection___length))( variable2 /*ctab*/) /*Array::length*/;
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*clen*/)>UNTAG_Int(variable4));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("{0},"), TAG_Int(4)); /*new String*/
+    variable5 = ((array___AbstractArray___length_t)CALL( variable2 /*ctab*/,COLOR_abstract_collection___Collection___length))( variable2 /*ctab*/) /*Array::length*/;
+    variable5 = TAG_Int(UNTAG_Int( variable3 /*clen*/)-UNTAG_Int(variable5));
+    variable4 = ((string___String_____star_t)CALL(variable4,COLOR_string___String_____star))(variable4, variable5) /*String::**/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  }
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable5 = ((compiling_global___CompiledClass___instance_table_t)CALL( variable1 /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable1 /*cc*/) /*CompiledClass::instance_table*/;
+  variable4 = variable5;
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable4 /*itab*/,COLOR_abstract_collection___Collection___iterator))( variable4 /*itab*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable7 = TAG_Bool(( variable6 /*e*/ ==  NIT_NULL /*null*/) || (( variable6 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*e*/,COLOR_kernel___Object_____eqeq))( variable6 /*e*/,  NIT_NULL /*null*/) /*TableElt::==*/)))));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("/* Instance Hole :( */"), TAG_Int(22)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable7) /*CompilerVisitor::add_instr*/;
+    } else { /*if*/
+      variable7 = ((compiling_global___TableElt___compile_to_c_t)CALL( variable6 /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable6 /*e*/,  variable0 /*v*/,  self) /*TableElt::compile_to_c*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable7) /*CompilerVisitor::add_instr*/;
+    }
+    continue_103: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_103: while(0);
+  variable6 = ((compiling_base___MMLocalClass___primitive_info_t)CALL( self,COLOR_compiling_base___MMLocalClass___primitive_info))( self) /*MMLocalClass::primitive_info*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(( variable5 /*pi*/ ==  NIT_NULL /*null*/) || (( variable5 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*pi*/,COLOR_kernel___Object_____eqeq))( variable5 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((compiling_methods___CompilerVisitor___clear_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___clear))( variable0 /*v*/) /*CompilerVisitor::clear*/;
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("(void)"), TAG_Int(6)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+    variable6 = variable7;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
+    variable7 = ((string___String_____plus_t)CALL( variable6 /*s*/,COLOR_string___String_____plus))( variable6 /*s*/, variable7) /*String::+*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable7) /*CompilerVisitor::add_instr*/;
+    ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+    variable8 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable0 /*v*/) /*CompilerVisitor::ctx*/;
+    variable7 = variable8;
+    variable8 = NEW_compiling_base___CContext___init(); /*new CContext*/
+    ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable0 /*v*/, variable8) /*CompilerVisitor::ctx=*/;
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+    variable9 = NEW_string___String___with_native(BOX_NativeString("OBJ2VAL(obj)"), TAG_Int(12)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable9) /*Array::add*/;
+    ((compiling_methods___CompilerVisitor___method_params__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params__eq))( variable0 /*v*/, variable8) /*CompilerVisitor::method_params=*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString("obj_t obj;"), TAG_Int(10)); /*new String*/
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    variable8 = NEW_string___String___init(); /*new String*/
+    variable9 = NEW_string___String___with_native(BOX_NativeString("obj = alloc(sizeof(val_t) * "), TAG_Int(28)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+    variable11 = ((array___AbstractArray___length_t)CALL( variable4 /*itab*/,COLOR_abstract_collection___Collection___length))( variable4 /*itab*/) /*Array::length*/;
+    variable12 = variable11;
+    variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    variable8 = NEW_string___String___init(); /*new String*/
+    variable9 = NEW_string___String___with_native(BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_"), TAG_Int(34)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+    variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+    variable12 = variable11;
+    variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    variable8 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global_properties))( self) /*MMLocalClass::global_properties*/;
+    variable8 = ((abstract_collection___Collection___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Set::iterator*/;
+    while (true) { /*for*/
+      variable9 = ((abstract_collection___Iterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable9)) break; /*for*/
+      variable9 = ((abstract_collection___Iterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*Iterator::item*/;
+      variable11 = ((inheritance___MMLocalClass_____bra_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass_____bra))( self,  variable9 /*g*/) /*MMLocalClass::[]*/;
+      variable10 = variable11;
+      variable12 = ((genericity___MMLocalProperty___signature_t)CALL( variable10 /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable10 /*p*/) /*MMLocalProperty::signature*/;
+      variable12 = ((static_type___MMSignature___return_type_t)CALL(variable12,COLOR_static_type___MMSignature___return_type))(variable12) /*MMSignature::return_type*/;
+      variable11 = variable12;
+      variable12 = TAG_Bool(( variable10 /*p*/==NIT_NULL) || VAL_ISA( variable10 /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+      variable13 = variable12;
+      if (UNTAG_Bool(variable13)) { /* and */
+        variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*t*/ ==  NIT_NULL /*null*/) || (( variable11 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*t*/,COLOR_kernel___Object_____eqeq))( variable11 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+      }
+      variable12 = variable13;
+      if (UNTAG_Bool(variable12)) { /*if*/
+        variable13 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable10 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable10 /*p*/) /*MMAttribute::concrete_property*/;
+        variable12 = variable13;
+        variable13 = TAG_Bool(( variable12 /*pi*/==NIT_NULL) || VAL_ISA( variable12 /*pi*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
+        if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:857,6--33\n"); nit_exit(1);}
+        variable14 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable12 /*pi*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable12 /*pi*/) /*MMSrcAttribute::node*/;
+        variable13 = variable14;
+        variable14 = TAG_Bool(( variable13 /*np*/==NIT_NULL) || VAL_ISA( variable13 /*np*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/;
+        if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/compiling//compiling_global.nit:859,6--31\n"); nit_exit(1);}
+        variable15 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( variable13 /*np*/,COLOR_parser_nodes___AAttrPropdef___n_expr))( variable13 /*np*/) /*AAttrPropdef::n_expr*/;
+        variable14 = variable15;
+        variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*ne*/ ==  NIT_NULL /*null*/) || (( variable14 /*ne*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*ne*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*ne*/,COLOR_kernel___Object_____eqeq))( variable14 /*ne*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+        if (UNTAG_Bool(variable15)) { /*if*/
+          variable16 = ((compiling_methods___PExpr___compile_expr_t)CALL( variable14 /*ne*/,COLOR_compiling_methods___PExpr___compile_expr))( variable14 /*ne*/,  variable0 /*v*/) /*PExpr::compile_expr*/;
+          variable15 = variable16;
+          variable16 = NEW_string___String___init(); /*new String*/
+          variable17 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+          variable18 = variable17;
+          ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable18) /*String::append*/;
+          variable19 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable10 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable10 /*p*/) /*MMAttribute::global*/;
+          variable19 = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable19,COLOR_compiling_base___MMGlobalProperty___attr_access))(variable19) /*MMGlobalProperty::attr_access*/;
+          variable20 = variable19;
+          ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable20) /*String::append*/;
+          variable21 = NEW_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
+          variable22 = variable21;
+          ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable22) /*String::append*/;
+          variable23 =  variable15 /*e*/;
+          ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable23) /*String::append*/;
+          variable24 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+          variable25 = variable24;
+          ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable25) /*String::append*/;
+          ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+        } else { /*if*/
+          variable16 = ((static_type___MMType___local_class_t)CALL( variable11 /*t*/,COLOR_static_type___MMType___local_class))( variable11 /*t*/) /*MMType::local_class*/;
+          variable16 = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable16,COLOR_compiling_base___MMLocalClass___primitive_info))(variable16) /*MMLocalClass::primitive_info*/;
+          variable15 = variable16;
+          variable16 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pi*/ ==  NIT_NULL /*null*/) || (( variable15 /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pi*/,COLOR_kernel___Object_____eqeq))( variable15 /*pi*/,  NIT_NULL /*null*/) /*PrimitiveInfo::==*/)))))));
+          variable17 = variable16;
+          if (UNTAG_Bool(variable17)) { /* and */
+            variable17 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable15 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable15 /*pi*/) /*PrimitiveInfo::tagged*/;
+          }
+          variable16 = variable17;
+          if (UNTAG_Bool(variable16)) { /*if*/
+            variable17 = ((compiling_base___MMType___default_cvalue_t)CALL( variable11 /*t*/,COLOR_compiling_base___MMType___default_cvalue))( variable11 /*t*/) /*MMType::default_cvalue*/;
+            variable16 = variable17;
+            variable17 = NEW_string___String___init(); /*new String*/
+            variable18 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+            variable19 = variable18;
+            ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable19) /*String::append*/;
+            variable20 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable10 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable10 /*p*/) /*MMAttribute::global*/;
+            variable20 = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable20,COLOR_compiling_base___MMGlobalProperty___attr_access))(variable20) /*MMGlobalProperty::attr_access*/;
+            variable21 = variable20;
+            ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable21) /*String::append*/;
+            variable22 = NEW_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
+            variable23 = variable22;
+            ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable23) /*String::append*/;
+            variable24 =  variable16 /*default*/;
+            ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable24) /*String::append*/;
+            variable25 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+            variable26 = variable25;
+            ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable26) /*String::append*/;
+            ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable17) /*CompilerVisitor::add_instr*/;
+          }
+        }
+      }
+      continue_104: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*Iterator::next*/;
+    }
+    break_104: while(0);
+    variable8 = NEW_string___String___with_native(BOX_NativeString("return OBJ2VAL(obj);"), TAG_Int(20)); /*new String*/
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    variable8 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable0 /*v*/) /*CompilerVisitor::ctx*/;
+    ((compiling_base___CContext___append_t)CALL( variable7 /*ctx_old*/,COLOR_compiling_base___CContext___append))( variable7 /*ctx_old*/, variable8) /*CContext::append*/;
+    ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable0 /*v*/,  variable7 /*ctx_old*/) /*CompilerVisitor::ctx=*/;
+    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    variable9 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
+    variable9 = ((partial_order___PartialOrderElement___greaters_t)CALL(variable9,COLOR_partial_order___PartialOrderElement___greaters))(variable9) /*PartialOrderElement::greaters*/;
+    variable9 = ((abstract_collection___Collection___length_t)CALL(variable9,COLOR_abstract_collection___Collection___length))(variable9) /*Set::length*/;
+    variable9 = TAG_Int(UNTAG_Int(variable9)+UNTAG_Int( TAG_Int(1)));
+    variable8 = variable9;
+    variable10 = NEW_string___String___init(); /*new String*/
+    variable11 = NEW_string___String___with_native(BOX_NativeString("int init_table["), TAG_Int(15)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+    variable13 =  variable8 /*init_table_size*/;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString("] = {0"), TAG_Int(6)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable15) /*String::append*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString(", 0"), TAG_Int(3)); /*new String*/
+    variable17 = TAG_Int(UNTAG_Int( variable8 /*init_table_size*/)-UNTAG_Int( TAG_Int(1)));
+    variable16 = ((string___String_____star_t)CALL(variable16,COLOR_string___String_____star))(variable16, variable17) /*String::**/;
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable17) /*String::append*/;
+    variable18 = NEW_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
+    variable19 = variable18;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable19) /*String::append*/;
+    variable9 = variable10;
+    variable10 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global_properties))( self) /*MMLocalClass::global_properties*/;
+    variable10 = ((abstract_collection___Collection___iterator_t)CALL(variable10,COLOR_abstract_collection___Collection___iterator))(variable10) /*Set::iterator*/;
+    while (true) { /*for*/
+      variable11 = ((abstract_collection___Iterator___is_ok_t)CALL(variable10,COLOR_abstract_collection___Iterator___is_ok))(variable10) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable11)) break; /*for*/
+      variable11 = ((abstract_collection___Iterator___item_t)CALL(variable10,COLOR_abstract_collection___Iterator___item))(variable10) /*Iterator::item*/;
+      variable13 = ((inheritance___MMLocalClass_____bra_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass_____bra))( self,  variable11 /*g*/) /*MMLocalClass::[]*/;
+      variable12 = variable13;
+      variable13 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable12 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable12 /*p*/) /*MMLocalProperty::global*/;
+      variable13 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable13,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable13) /*MMGlobalProperty::is_init*/;
+      variable13 =  TAG_Bool(!UNTAG_Bool(variable13));
+      if (!UNTAG_Bool(variable13)) { /* or */
+        variable13 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable12 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable12 /*p*/) /*MMLocalProperty::global*/;
+        variable13 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable13,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable13) /*MMGlobalProperty::intro*/;
+        variable13 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable13,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable13) /*MMConcreteProperty::local_class*/;
+        variable13 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable13,COLOR_abstractmetamodel___MMLocalClass___global))(variable13) /*MMLocalClass::global*/;
+        variable14 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+        variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable13 == variable14) || ((variable13 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable13,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable13,variable14)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable13,COLOR_kernel___Object_____eqeq))(variable13, variable14) /*MMGlobalClass::==*/)))))));
+      }
+      if (UNTAG_Bool(variable13)) { /*if*/
+        goto continue_105;
+      }
+      ((compiling_methods___CompilerVisitor___clear_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___clear))( variable0 /*v*/) /*CompilerVisitor::clear*/;
+      variable14 = NEW_array___Array___init(); /*new Array[String]*/
+      variable13 = variable14;
+      variable15 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+      variable16 = NEW_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
+      ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15, variable16) /*Array::add*/;
+      variable14 = variable15;
+      variable15 = ((genericity___MMLocalProperty___signature_t)CALL( variable12 /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable12 /*p*/) /*MMLocalProperty::signature*/;
+      variable15 = ((static_type___MMSignature___arity_t)CALL(variable15,COLOR_static_type___MMSignature___arity))(variable15) /*MMSignature::arity*/;
+      variable16 = NEW_range___Range___without_last( TAG_Int(0), variable15); /*new Range[Int]*/
+      variable15 = variable16;
+      variable15 = ((range___Range___iterator_t)CALL(variable15,COLOR_abstract_collection___Collection___iterator))(variable15) /*Range::iterator*/;
+      while (true) { /*for*/
+        variable16 = ((abstract_collection___Iterator___is_ok_t)CALL(variable15,COLOR_abstract_collection___Iterator___is_ok))(variable15) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable16)) break; /*for*/
+        variable16 = ((abstract_collection___Iterator___item_t)CALL(variable15,COLOR_abstract_collection___Iterator___item))(variable15) /*Iterator::item*/;
+        variable17 = NEW_string___String___init(); /*new String*/
+        variable18 = NEW_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/
+        variable19 = variable18;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable19) /*String::append*/;
+        variable20 =  variable16 /*i*/;
+        variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable20) /*String::append*/;
+        variable21 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+        variable22 = variable21;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable22) /*String::append*/;
+        ((array___AbstractArray___add_t)CALL( variable13 /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable13 /*params*/, variable17) /*Array::add*/;
+        variable17 = NEW_string___String___init(); /*new String*/
+        variable18 = NEW_string___String___with_native(BOX_NativeString("p"), TAG_Int(1)); /*new String*/
+        variable19 = variable18;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable19) /*String::append*/;
+        variable20 =  variable16 /*i*/;
+        variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable20) /*String::append*/;
+        variable21 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+        variable22 = variable21;
+        ((string___String___append_t)CALL(variable17,COLOR_abstract_collection___IndexedCollection___append))(variable17, variable22) /*String::append*/;
+        ((array___AbstractArray___add_t)CALL( variable14 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*args*/, variable17) /*Array::add*/;
+        continue_106: while(0);
+        ((abstract_collection___Iterator___next_t)CALL(variable15,COLOR_abstract_collection___Iterator___next))(variable15) /*Iterator::next*/;
+      }
+      break_106: while(0);
+      variable15 = NEW_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/
+      ((array___AbstractArray___add_t)CALL( variable14 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*args*/, variable15) /*Array::add*/;
+      variable16 = NEW_string___String___init(); /*new String*/
+      variable17 = NEW_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
+      variable18 = variable17;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable18) /*String::append*/;
+      variable19 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable12 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable12 /*p*/) /*MMLocalProperty::global*/;
+      variable19 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable19,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable19) /*MMGlobalProperty::intro*/;
+      variable19 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable19,COLOR_compiling_base___MMLocalProperty___cname))(variable19) /*MMConcreteProperty::cname*/;
+      variable20 = variable19;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable20) /*String::append*/;
+      variable21 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable22 = variable21;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable22) /*String::append*/;
+      variable23 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+      variable23 = ((string___Collection___join_t)CALL( variable13 /*params*/,COLOR_string___Collection___join))( variable13 /*params*/, variable23) /*Array::join*/;
+      variable24 = variable23;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable24) /*String::append*/;
+      variable25 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+      variable26 = variable25;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable26) /*String::append*/;
+      variable15 = variable16;
+      variable16 = NEW_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
+      variable16 = ((string___String_____plus_t)CALL( variable15 /*s*/,COLOR_string___String_____plus))( variable15 /*s*/, variable16) /*String::+*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+      ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/,  variable9 /*init_table_decl*/) /*CompilerVisitor::add_instr*/;
+      variable16 = NEW_string___String___init(); /*new String*/
+      variable17 = NEW_string___String___with_native(BOX_NativeString("val_t self = NEW_"), TAG_Int(17)); /*new String*/
+      variable18 = variable17;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable18) /*String::append*/;
+      variable19 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable20 = variable19;
+      variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable20) /*String::append*/;
+      variable21 = NEW_string___String___with_native(BOX_NativeString("();"), TAG_Int(3)); /*new String*/
+      variable22 = variable21;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable22) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+      variable16 = NEW_string___String___init(); /*new String*/
+      variable17 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable18 = variable17;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable18) /*String::append*/;
+      variable19 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable12 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable12 /*p*/) /*MMLocalProperty::concrete_property*/;
+      variable19 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable19,COLOR_compiling_base___MMLocalProperty___cname))(variable19) /*MMConcreteProperty::cname*/;
+      variable20 = variable19;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable20) /*String::append*/;
+      variable21 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable22 = variable21;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable22) /*String::append*/;
+      variable23 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+      variable23 = ((string___Collection___join_t)CALL( variable14 /*args*/,COLOR_string___Collection___join))( variable14 /*args*/, variable23) /*Array::join*/;
+      variable24 = variable23;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable24) /*String::append*/;
+      variable25 = NEW_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
+      variable26 = variable25;
+      ((string___String___append_t)CALL(variable16,COLOR_abstract_collection___IndexedCollection___append))(variable16, variable26) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString("return self;"), TAG_Int(12)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable16) /*CompilerVisitor::add_instr*/;
+      continue_105: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable10,COLOR_abstract_collection___Iterator___next))(variable10) /*Iterator::next*/;
+    }
+    break_105: while(0);
+  } else { /*if*/
+    variable6 = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable5 /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable5 /*pi*/) /*PrimitiveInfo::tagged*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable6)))) { /*if*/
+      variable7 = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable5 /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable5 /*pi*/) /*PrimitiveInfo::cname*/;
+      variable6 = variable7;
+      variable8 = NEW_string___String___init(); /*new String*/
+      variable9 = NEW_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+      variable7 = variable8;
+      variable8 = NEW_string___String___init(); /*new String*/
+      variable9 = NEW_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+      variable15 =  variable6 /*t*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString(" val) {"), TAG_Int(7)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable17) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+      ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+      variable8 = NEW_string___String___init(); /*new String*/
+      variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+      variable11 =  variable7 /*tbox*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(" *box = ("), TAG_Int(9)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable13) /*String::append*/;
+      variable14 =  variable7 /*tbox*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+      variable15 = NEW_string___String___with_native(BOX_NativeString("*)alloc(sizeof("), TAG_Int(15)); /*new String*/
+      variable16 = variable15;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable16) /*String::append*/;
+      variable17 =  variable7 /*tbox*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable17) /*String::append*/;
+      variable18 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+      variable19 = variable18;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable19) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+      variable8 = NEW_string___String___init(); /*new String*/
+      variable9 = NEW_string___String___with_native(BOX_NativeString("box->vft = VFT_"), TAG_Int(15)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+      variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString("box->val = val;"), TAG_Int(15)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString("return OBJ2VAL(box);"), TAG_Int(20)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/compiling_global._sep.h b/c_src/compiling_global._sep.h
new file mode 100644 (file)
index 0000000..171552c
--- /dev/null
@@ -0,0 +1,400 @@
+#ifndef compiling_global__sep
+#define compiling_global__sep
+#include "compiling_methods._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_ColorContext[];
+
+extern const classtable_elt_t VFT_GlobalAnalysis[];
+
+extern const classtable_elt_t VFT_CompiledClass[];
+
+extern const classtable_elt_t VFT_TableElt[];
+
+extern const classtable_elt_t VFT_LocalTableElt[];
+
+extern const classtable_elt_t VFT_TableEltPropPos[];
+
+extern const classtable_elt_t VFT_TableEltMethPos[];
+
+extern const classtable_elt_t VFT_TableEltSuperPos[];
+
+extern const classtable_elt_t VFT_TableEltAttrPos[];
+
+extern const classtable_elt_t VFT_TableEltClassPos[];
+
+extern const classtable_elt_t VFT_TableEltClassIdPos[];
+
+extern const classtable_elt_t VFT_TableEltClassInitTablePos[];
+
+extern const classtable_elt_t VFT_TableEltClassColorPos[];
+
+extern const classtable_elt_t VFT_TableEltBaseAttrPos[];
+
+extern const classtable_elt_t VFT_TableEltComposite[];
+
+extern const classtable_elt_t VFT_TableEltClassSelfId[];
+
+extern const classtable_elt_t VFT_TableEltVftPointer[];
+
+extern const classtable_elt_t VFT_ClassSorter[];
+extern const int SFT_compiling_global[];
+#define ID_ColorContext SFT_compiling_global[0]
+#define COLOR_ColorContext SFT_compiling_global[1]
+#define COLOR_compiling_global___ColorContext____colors SFT_compiling_global[2]
+#define INIT_TABLE_POS_ColorContext SFT_compiling_global[3]
+#define COLOR_compiling_global___ColorContext___color SFT_compiling_global[4]
+#define COLOR_compiling_global___ColorContext___has_color SFT_compiling_global[5]
+#define COLOR_compiling_global___ColorContext___color__eq SFT_compiling_global[6]
+#define ID_GlobalAnalysis SFT_compiling_global[7]
+#define COLOR_GlobalAnalysis SFT_compiling_global[8]
+#define COLOR_compiling_global___GlobalAnalysis____compiled_classes SFT_compiling_global[9]
+#define COLOR_compiling_global___GlobalAnalysis____module SFT_compiling_global[10]
+#define COLOR_compiling_global___GlobalAnalysis____max_class_table_length SFT_compiling_global[11]
+#define INIT_TABLE_POS_GlobalAnalysis SFT_compiling_global[12]
+#define COLOR_compiling_global___GlobalAnalysis___compiled_classes SFT_compiling_global[13]
+#define COLOR_compiling_global___GlobalAnalysis___module SFT_compiling_global[14]
+#define COLOR_compiling_global___GlobalAnalysis___max_class_table_length SFT_compiling_global[15]
+#define COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq SFT_compiling_global[16]
+#define COLOR_compiling_global___GlobalAnalysis___init SFT_compiling_global[17]
+#define COLOR_compiling_global___CompilerVisitor____global_analysis SFT_compiling_global[18]
+#define COLOR_compiling_global___CompilerVisitor___global_analysis SFT_compiling_global[19]
+#define COLOR_compiling_global___CompilerVisitor___global_analysis__eq SFT_compiling_global[20]
+#define ID_CompiledClass SFT_compiling_global[21]
+#define COLOR_CompiledClass SFT_compiling_global[22]
+#define COLOR_compiling_global___CompiledClass____local_class SFT_compiling_global[23]
+#define COLOR_compiling_global___CompiledClass____id SFT_compiling_global[24]
+#define COLOR_compiling_global___CompiledClass____class_table SFT_compiling_global[25]
+#define COLOR_compiling_global___CompiledClass____instance_table SFT_compiling_global[26]
+#define COLOR_compiling_global___CompiledClass____class_layout SFT_compiling_global[27]
+#define COLOR_compiling_global___CompiledClass____instance_layout SFT_compiling_global[28]
+#define INIT_TABLE_POS_CompiledClass SFT_compiling_global[29]
+#define COLOR_compiling_global___CompiledClass___local_class SFT_compiling_global[30]
+#define COLOR_compiling_global___CompiledClass___id SFT_compiling_global[31]
+#define COLOR_compiling_global___CompiledClass___id__eq SFT_compiling_global[32]
+#define COLOR_compiling_global___CompiledClass___class_table SFT_compiling_global[33]
+#define COLOR_compiling_global___CompiledClass___class_table__eq SFT_compiling_global[34]
+#define COLOR_compiling_global___CompiledClass___instance_table SFT_compiling_global[35]
+#define COLOR_compiling_global___CompiledClass___instance_table__eq SFT_compiling_global[36]
+#define COLOR_compiling_global___CompiledClass___class_layout SFT_compiling_global[37]
+#define COLOR_compiling_global___CompiledClass___class_layout__eq SFT_compiling_global[38]
+#define COLOR_compiling_global___CompiledClass___instance_layout SFT_compiling_global[39]
+#define COLOR_compiling_global___CompiledClass___instance_layout__eq SFT_compiling_global[40]
+#define COLOR_compiling_global___CompiledClass___init SFT_compiling_global[41]
+#define COLOR_compiling_global___MMGlobalProperty____pos_of SFT_compiling_global[42]
+#define COLOR_compiling_global___MMGlobalProperty___pos_of SFT_compiling_global[43]
+#define COLOR_compiling_global___MMGlobalProperty___pos_of__eq SFT_compiling_global[44]
+#define COLOR_compiling_global___MMSrcLocalClass____base_attr_pos SFT_compiling_global[45]
+#define COLOR_compiling_global___MMSrcLocalClass____class_color_pos SFT_compiling_global[46]
+#define COLOR_compiling_global___MMSrcLocalClass____class_layout SFT_compiling_global[47]
+#define COLOR_compiling_global___MMSrcLocalClass____instance_layout SFT_compiling_global[48]
+#define COLOR_compiling_global___MMSrcLocalClass___base_attr_pos SFT_compiling_global[49]
+#define COLOR_compiling_global___MMSrcLocalClass___class_color_pos SFT_compiling_global[50]
+#define COLOR_compiling_global___MMSrcLocalClass___class_layout SFT_compiling_global[51]
+#define COLOR_compiling_global___MMSrcLocalClass___instance_layout SFT_compiling_global[52]
+#define COLOR_compiling_global___MMSrcLocalClass___build_layout_in SFT_compiling_global[53]
+#define COLOR_compiling_global___MMSrcModule____local_table SFT_compiling_global[54]
+#define COLOR_compiling_global___MMSrcModule___local_analysis SFT_compiling_global[55]
+#define COLOR_compiling_global___MMSrcModule___global_analysis SFT_compiling_global[56]
+#define COLOR_compiling_global___MMSrcModule___append_to_table SFT_compiling_global[57]
+#define COLOR_compiling_global___MMSrcModule___build_tables SFT_compiling_global[58]
+#define COLOR_compiling_global___MMSrcModule___colorize SFT_compiling_global[59]
+#define COLOR_compiling_global___MMSrcModule___free_color SFT_compiling_global[60]
+#define COLOR_compiling_global___MMSrcModule___compile_tables_to_c SFT_compiling_global[61]
+#define COLOR_compiling_global___MMSrcModule___declare_class_tables_to_c SFT_compiling_global[62]
+#define COLOR_compiling_global___MMSrcModule___compile_main_part SFT_compiling_global[63]
+#define COLOR_compiling_global___MMSrcModule___compile_mod_to_c SFT_compiling_global[64]
+#define COLOR_compiling_global___MMSrcModule___compile_local_table_to_c SFT_compiling_global[65]
+#define ID_TableElt SFT_compiling_global[66]
+#define COLOR_TableElt SFT_compiling_global[67]
+#define INIT_TABLE_POS_TableElt SFT_compiling_global[68]
+#define COLOR_compiling_global___TableElt___is_related_to SFT_compiling_global[69]
+#define COLOR_compiling_global___TableElt___length SFT_compiling_global[70]
+#define COLOR_compiling_global___TableElt___item SFT_compiling_global[71]
+#define COLOR_compiling_global___TableElt___compile_to_c SFT_compiling_global[72]
+#define ID_LocalTableElt SFT_compiling_global[73]
+#define COLOR_LocalTableElt SFT_compiling_global[74]
+#define INIT_TABLE_POS_LocalTableElt SFT_compiling_global[75]
+#define COLOR_compiling_global___LocalTableElt___symbol SFT_compiling_global[76]
+#define COLOR_compiling_global___LocalTableElt___value SFT_compiling_global[77]
+#define ID_TableEltPropPos SFT_compiling_global[78]
+#define COLOR_TableEltPropPos SFT_compiling_global[79]
+#define COLOR_compiling_global___TableEltPropPos____property SFT_compiling_global[80]
+#define INIT_TABLE_POS_TableEltPropPos SFT_compiling_global[81]
+#define COLOR_compiling_global___TableEltPropPos___init SFT_compiling_global[82]
+#define ID_TableEltMethPos SFT_compiling_global[83]
+#define COLOR_TableEltMethPos SFT_compiling_global[84]
+#define INIT_TABLE_POS_TableEltMethPos SFT_compiling_global[85]
+#define COLOR_compiling_global___TableEltMethPos___init SFT_compiling_global[86]
+#define ID_TableEltSuperPos SFT_compiling_global[87]
+#define COLOR_TableEltSuperPos SFT_compiling_global[88]
+#define INIT_TABLE_POS_TableEltSuperPos SFT_compiling_global[89]
+#define COLOR_compiling_global___TableEltSuperPos___init SFT_compiling_global[90]
+#define ID_TableEltAttrPos SFT_compiling_global[91]
+#define COLOR_TableEltAttrPos SFT_compiling_global[92]
+#define INIT_TABLE_POS_TableEltAttrPos SFT_compiling_global[93]
+#define COLOR_compiling_global___TableEltAttrPos___init SFT_compiling_global[94]
+#define ID_TableEltClassPos SFT_compiling_global[95]
+#define COLOR_TableEltClassPos SFT_compiling_global[96]
+#define COLOR_compiling_global___TableEltClassPos____local_class SFT_compiling_global[97]
+#define INIT_TABLE_POS_TableEltClassPos SFT_compiling_global[98]
+#define COLOR_compiling_global___TableEltClassPos___init SFT_compiling_global[99]
+#define ID_TableEltClassIdPos SFT_compiling_global[100]
+#define COLOR_TableEltClassIdPos SFT_compiling_global[101]
+#define INIT_TABLE_POS_TableEltClassIdPos SFT_compiling_global[102]
+#define COLOR_compiling_global___TableEltClassIdPos___init SFT_compiling_global[103]
+#define ID_TableEltClassInitTablePos SFT_compiling_global[104]
+#define COLOR_TableEltClassInitTablePos SFT_compiling_global[105]
+#define INIT_TABLE_POS_TableEltClassInitTablePos SFT_compiling_global[106]
+#define COLOR_compiling_global___TableEltClassInitTablePos___init SFT_compiling_global[107]
+#define ID_TableEltClassColorPos SFT_compiling_global[108]
+#define COLOR_TableEltClassColorPos SFT_compiling_global[109]
+#define INIT_TABLE_POS_TableEltClassColorPos SFT_compiling_global[110]
+#define COLOR_compiling_global___TableEltClassColorPos___init SFT_compiling_global[111]
+#define ID_TableEltBaseAttrPos SFT_compiling_global[112]
+#define COLOR_TableEltBaseAttrPos SFT_compiling_global[113]
+#define COLOR_compiling_global___TableEltBaseAttrPos____local_class SFT_compiling_global[114]
+#define INIT_TABLE_POS_TableEltBaseAttrPos SFT_compiling_global[115]
+#define COLOR_compiling_global___TableEltBaseAttrPos___init SFT_compiling_global[116]
+#define ID_TableEltComposite SFT_compiling_global[117]
+#define COLOR_TableEltComposite SFT_compiling_global[118]
+#define COLOR_compiling_global___TableEltComposite____table SFT_compiling_global[119]
+#define COLOR_compiling_global___TableEltComposite____cc SFT_compiling_global[120]
+#define COLOR_compiling_global___TableEltComposite____offsets SFT_compiling_global[121]
+#define INIT_TABLE_POS_TableEltComposite SFT_compiling_global[122]
+#define COLOR_compiling_global___TableEltComposite___add SFT_compiling_global[123]
+#define COLOR_compiling_global___TableEltComposite___init SFT_compiling_global[124]
+#define ID_TableEltClassSelfId SFT_compiling_global[125]
+#define COLOR_TableEltClassSelfId SFT_compiling_global[126]
+#define INIT_TABLE_POS_TableEltClassSelfId SFT_compiling_global[127]
+#define COLOR_compiling_global___TableEltClassSelfId___init SFT_compiling_global[128]
+#define ID_TableEltVftPointer SFT_compiling_global[129]
+#define COLOR_TableEltVftPointer SFT_compiling_global[130]
+#define INIT_TABLE_POS_TableEltVftPointer SFT_compiling_global[131]
+#define COLOR_compiling_global___TableEltVftPointer___init SFT_compiling_global[132]
+#define ID_ClassSorter SFT_compiling_global[133]
+#define COLOR_ClassSorter SFT_compiling_global[134]
+#define INIT_TABLE_POS_ClassSorter SFT_compiling_global[135]
+#define COLOR_compiling_global___ClassSorter___init SFT_compiling_global[136]
+#define COLOR_compiling_global___MMLocalClass___compare SFT_compiling_global[137]
+#define COLOR_compiling_global___MMLocalClass___declare_tables_to_c SFT_compiling_global[138]
+#define COLOR_compiling_global___MMLocalClass___compile_tables_to_c SFT_compiling_global[139]
+#define ATTR_compiling_global___ColorContext____colors(recv) ATTR(recv, COLOR_compiling_global___ColorContext____colors)
+typedef val_t (* compiling_global___ColorContext___color_t)(val_t  self, val_t  param0);
+val_t compiling_global___ColorContext___color(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___ColorContext___has_color_t)(val_t  self, val_t  param0);
+val_t compiling_global___ColorContext___has_color(val_t  self, val_t  param0);
+typedef void (* compiling_global___ColorContext___color__eq_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___ColorContext___color__eq(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_compiling_global___GlobalAnalysis____compiled_classes(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____compiled_classes)
+typedef val_t (* compiling_global___GlobalAnalysis___compiled_classes_t)(val_t  self);
+val_t compiling_global___GlobalAnalysis___compiled_classes(val_t  self);
+#define ATTR_compiling_global___GlobalAnalysis____module(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____module)
+typedef val_t (* compiling_global___GlobalAnalysis___module_t)(val_t  self);
+val_t compiling_global___GlobalAnalysis___module(val_t  self);
+#define ATTR_compiling_global___GlobalAnalysis____max_class_table_length(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____max_class_table_length)
+typedef val_t (* compiling_global___GlobalAnalysis___max_class_table_length_t)(val_t  self);
+val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t  self);
+typedef void (* compiling_global___GlobalAnalysis___max_class_table_length__eq_t)(val_t  self, val_t  param0);
+void compiling_global___GlobalAnalysis___max_class_table_length__eq(val_t  self, val_t  param0);
+typedef void (* compiling_global___GlobalAnalysis___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___GlobalAnalysis___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___GlobalAnalysis___init(val_t  param0);
+#define ATTR_compiling_global___CompilerVisitor____global_analysis(recv) ATTR(recv, COLOR_compiling_global___CompilerVisitor____global_analysis)
+typedef val_t (* compiling_global___CompilerVisitor___global_analysis_t)(val_t  self);
+val_t compiling_global___CompilerVisitor___global_analysis(val_t  self);
+typedef void (* compiling_global___CompilerVisitor___global_analysis__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompilerVisitor___global_analysis__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___CompiledClass____local_class(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____local_class)
+typedef val_t (* compiling_global___CompiledClass___local_class_t)(val_t  self);
+val_t compiling_global___CompiledClass___local_class(val_t  self);
+#define ATTR_compiling_global___CompiledClass____id(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____id)
+typedef val_t (* compiling_global___CompiledClass___id_t)(val_t  self);
+val_t compiling_global___CompiledClass___id(val_t  self);
+typedef void (* compiling_global___CompiledClass___id__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompiledClass___id__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___CompiledClass____class_table(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____class_table)
+typedef val_t (* compiling_global___CompiledClass___class_table_t)(val_t  self);
+val_t compiling_global___CompiledClass___class_table(val_t  self);
+typedef void (* compiling_global___CompiledClass___class_table__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompiledClass___class_table__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___CompiledClass____instance_table(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____instance_table)
+typedef val_t (* compiling_global___CompiledClass___instance_table_t)(val_t  self);
+val_t compiling_global___CompiledClass___instance_table(val_t  self);
+typedef void (* compiling_global___CompiledClass___instance_table__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompiledClass___instance_table__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___CompiledClass____class_layout(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____class_layout)
+typedef val_t (* compiling_global___CompiledClass___class_layout_t)(val_t  self);
+val_t compiling_global___CompiledClass___class_layout(val_t  self);
+typedef void (* compiling_global___CompiledClass___class_layout__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompiledClass___class_layout__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___CompiledClass____instance_layout(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____instance_layout)
+typedef val_t (* compiling_global___CompiledClass___instance_layout_t)(val_t  self);
+val_t compiling_global___CompiledClass___instance_layout(val_t  self);
+typedef void (* compiling_global___CompiledClass___instance_layout__eq_t)(val_t  self, val_t  param0);
+void compiling_global___CompiledClass___instance_layout__eq(val_t  self, val_t  param0);
+typedef void (* compiling_global___CompiledClass___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___CompiledClass___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___CompiledClass___init(val_t  param0);
+#define ATTR_compiling_global___MMGlobalProperty____pos_of(recv) ATTR(recv, COLOR_compiling_global___MMGlobalProperty____pos_of)
+typedef val_t (* compiling_global___MMGlobalProperty___pos_of_t)(val_t  self);
+val_t compiling_global___MMGlobalProperty___pos_of(val_t  self);
+typedef void (* compiling_global___MMGlobalProperty___pos_of__eq_t)(val_t  self, val_t  param0);
+void compiling_global___MMGlobalProperty___pos_of__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____base_attr_pos)
+typedef val_t (* compiling_global___MMSrcLocalClass___base_attr_pos_t)(val_t  self);
+val_t compiling_global___MMSrcLocalClass___base_attr_pos(val_t  self);
+#define ATTR_compiling_global___MMSrcLocalClass____class_color_pos(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____class_color_pos)
+typedef val_t (* compiling_global___MMSrcLocalClass___class_color_pos_t)(val_t  self);
+val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t  self);
+#define ATTR_compiling_global___MMSrcLocalClass____class_layout(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____class_layout)
+typedef val_t (* compiling_global___MMSrcLocalClass___class_layout_t)(val_t  self);
+val_t compiling_global___MMSrcLocalClass___class_layout(val_t  self);
+#define ATTR_compiling_global___MMSrcLocalClass____instance_layout(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____instance_layout)
+typedef val_t (* compiling_global___MMSrcLocalClass___instance_layout_t)(val_t  self);
+val_t compiling_global___MMSrcLocalClass___instance_layout(val_t  self);
+typedef void (* compiling_global___MMSrcLocalClass___build_layout_in_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___MMSrcLocalClass___build_layout_in(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_compiling_global___MMSrcModule____local_table(recv) ATTR(recv, COLOR_compiling_global___MMSrcModule____local_table)
+typedef void (* compiling_global___MMSrcModule___local_analysis_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___local_analysis(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___MMSrcModule___global_analysis_t)(val_t  self, val_t  param0);
+val_t compiling_global___MMSrcModule___global_analysis(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMSrcModule___append_to_table_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void compiling_global___MMSrcModule___append_to_table(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_global___MMSrcModule___build_tables_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_global___MMSrcModule___build_tables(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* compiling_global___MMSrcModule___colorize_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void compiling_global___MMSrcModule___colorize(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* compiling_global___MMSrcModule___free_color_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___MMSrcModule___free_color(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___MMSrcModule___compile_tables_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___compile_tables_to_c(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMSrcModule___declare_class_tables_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMSrcModule___compile_main_part_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___compile_main_part(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMSrcModule___compile_mod_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___compile_mod_to_c(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMSrcModule___compile_local_table_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMSrcModule___compile_local_table_to_c(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableElt___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableElt___is_related_to(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableElt___length_t)(val_t  self);
+val_t compiling_global___TableElt___length(val_t  self);
+typedef val_t (* compiling_global___TableElt___item_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableElt___item(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableElt___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableElt___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_global___LocalTableElt___symbol_t)(val_t  self);
+val_t compiling_global___LocalTableElt___symbol(val_t  self);
+typedef val_t (* compiling_global___LocalTableElt___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___LocalTableElt___value(val_t  self, val_t  param0);
+#define ATTR_compiling_global___TableEltPropPos____property(recv) ATTR(recv, COLOR_compiling_global___TableEltPropPos____property)
+typedef val_t (* compiling_global___TableEltPropPos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltPropPos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltPropPos___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltPropPos___value(val_t  self, val_t  param0);
+typedef void (* compiling_global___TableEltPropPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltPropPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltPropPos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltMethPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltMethPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltMethPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltMethPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltMethPos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltSuperPos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltSuperPos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltSuperPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltSuperPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltSuperPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltSuperPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltSuperPos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltAttrPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltAttrPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltAttrPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltAttrPos___init(val_t  param0);
+#define ATTR_compiling_global___TableEltClassPos____local_class(recv) ATTR(recv, COLOR_compiling_global___TableEltClassPos____local_class)
+typedef val_t (* compiling_global___TableEltClassPos___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassPos___is_related_to(val_t  self, val_t  param0);
+typedef void (* compiling_global___TableEltClassPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltClassPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltClassPos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltClassIdPos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassIdPos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltClassIdPos___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassIdPos___value(val_t  self, val_t  param0);
+typedef void (* compiling_global___TableEltClassIdPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltClassIdPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltClassIdPos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltClassInitTablePos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassInitTablePos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltClassInitTablePos___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassInitTablePos___value(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltClassInitTablePos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltClassInitTablePos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltClassInitTablePos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltClassInitTablePos___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltClassColorPos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassColorPos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltClassColorPos___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassColorPos___value(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltClassColorPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltClassColorPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltClassColorPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltClassColorPos___init(val_t  param0);
+#define ATTR_compiling_global___TableEltBaseAttrPos____local_class(recv) ATTR(recv, COLOR_compiling_global___TableEltBaseAttrPos____local_class)
+typedef val_t (* compiling_global___TableEltBaseAttrPos___symbol_t)(val_t  self);
+val_t compiling_global___TableEltBaseAttrPos___symbol(val_t  self);
+typedef val_t (* compiling_global___TableEltBaseAttrPos___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltBaseAttrPos___value(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltBaseAttrPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltBaseAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltBaseAttrPos___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltBaseAttrPos___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltBaseAttrPos___init(val_t  param0);
+#define ATTR_compiling_global___TableEltComposite____table(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____table)
+#define ATTR_compiling_global___TableEltComposite____cc(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____cc)
+#define ATTR_compiling_global___TableEltComposite____offsets(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____offsets)
+typedef val_t (* compiling_global___TableEltComposite___length_t)(val_t  self);
+val_t compiling_global___TableEltComposite___length(val_t  self);
+typedef val_t (* compiling_global___TableEltComposite___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltComposite___is_related_to(val_t  self, val_t  param0);
+typedef void (* compiling_global___TableEltComposite___add_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___TableEltComposite___add(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_global___TableEltComposite___item_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltComposite___item(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltComposite___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltComposite___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltComposite___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltComposite___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_global___TableEltComposite___init(val_t  param0);
+typedef val_t (* compiling_global___TableEltClassSelfId___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassSelfId___is_related_to(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltClassSelfId___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltClassSelfId___init_t)(val_t  self, int* init_table);
+void compiling_global___TableEltClassSelfId___init(val_t  self, int* init_table);
+val_t NEW_compiling_global___TableEltClassSelfId___init();
+typedef val_t (* compiling_global___TableEltVftPointer___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltVftPointer___is_related_to(val_t  self, val_t  param0);
+typedef val_t (* compiling_global___TableEltVftPointer___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltVftPointer___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___TableEltVftPointer___init_t)(val_t  self, int* init_table);
+void compiling_global___TableEltVftPointer___init(val_t  self, int* init_table);
+val_t NEW_compiling_global___TableEltVftPointer___init();
+typedef val_t (* compiling_global___ClassSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___ClassSorter___compare(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_global___ClassSorter___init_t)(val_t  self, int* init_table);
+void compiling_global___ClassSorter___init(val_t  self, int* init_table);
+val_t NEW_compiling_global___ClassSorter___init();
+typedef val_t (* compiling_global___MMLocalClass___compare_t)(val_t  self, val_t  param0);
+val_t compiling_global___MMLocalClass___compare(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMLocalClass___declare_tables_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMLocalClass___declare_tables_to_c(val_t  self, val_t  param0);
+typedef void (* compiling_global___MMLocalClass___compile_tables_to_c_t)(val_t  self, val_t  param0);
+void compiling_global___MMLocalClass___compile_tables_to_c(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/compiling_methods._sep.c b/c_src/compiling_methods._sep.c
new file mode 100644 (file)
index 0000000..e4909ac
--- /dev/null
@@ -0,0 +1,7873 @@
+#include "compiling_methods._sep.h"
+void compiling_methods___CompilerVisitor___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::compile_stmt (src/compiling//compiling_methods.nit:24,2--30:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((compiling_methods___PExpr___prepare_compile_stmt_t)CALL( variable0 /*n*/,COLOR_compiling_methods___PExpr___prepare_compile_stmt))( variable0 /*n*/,  self) /*PExpr::prepare_compile_stmt*/;
+  variable2 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable1 = variable2;
+  ((compiling_methods___PExpr___compile_stmt_t)CALL( variable0 /*n*/,COLOR_compiling_methods___PExpr___compile_stmt))( variable0 /*n*/,  self) /*PExpr::compile_stmt*/;
+  ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/ =  variable1 /*i*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::compile_expr (src/compiling//compiling_methods.nit:33,2--47:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable1 = variable2;
+  variable3 = ((compiling_methods___PExpr___compile_expr_t)CALL( variable0 /*n*/,COLOR_compiling_methods___PExpr___compile_expr))( variable0 /*n*/,  self) /*PExpr::compile_expr*/;
+  variable2 = variable3;
+  ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/ =  variable1 /*i*/;
+  variable3 = ((string___String_____bra_t)CALL( variable2 /*s*/,COLOR_abstract_collection___Map_____bra))( variable2 /*s*/,  TAG_Int(0)) /*String::[]*/;
+  variable3 = TAG_Bool((variable3)==( TAG_Char(' ')));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable1 =  variable2 /*s*/;
+    goto return_label1;
+  }
+  variable3 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1)));
+  variable3 = ((compiling_methods___CompilerVisitor___variable_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___variable))( self, variable3) /*CompilerVisitor::variable*/;
+  variable3 = TAG_Bool(( variable2 /*s*/ == variable3) || (( variable2 /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable2 /*s*/,COLOR_kernel___Object_____eqeq))( variable2 /*s*/, variable3) /*String::==*/)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable1 =  variable2 /*s*/;
+    goto return_label1;
+  }
+  variable4 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___get_var))( self) /*CompilerVisitor::get_var*/;
+  variable3 = variable4;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___add_assignment))( self,  variable3 /*v*/,  variable2 /*s*/) /*CompilerVisitor::add_assignment*/;
+  variable1 =  variable3 /*v*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::ensure_var (src/compiling//compiling_methods.nit:50,2--58:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string___String___substring_t)CALL( variable0 /*s*/,COLOR_string___String___substring))( variable0 /*s*/,  TAG_Int(0),  TAG_Int(3)) /*String::substring*/;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("variable"), TAG_Int(8)); /*new String*/
+  variable1 = TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*String::==*/)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  variable0 /*s*/;
+    goto return_label2;
+  }
+  variable2 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___get_var))( self) /*CompilerVisitor::get_var*/;
+  variable1 = variable2;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___add_assignment))( self,  variable1 /*v*/,  variable0 /*s*/) /*CompilerVisitor::add_assignment*/;
+  variable1 =  variable1 /*v*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_methods___CompilerVisitor___add_assignment(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::add_assignment (src/compiling//compiling_methods.nit:61,2--65:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*v*/ ==  variable1 /*s*/) || (( variable0 /*v*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable0 /*v*/,COLOR_kernel___Object_____eqeq))( variable0 /*v*/,  variable1 /*s*/) /*String::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 =  variable0 /*v*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+    variable8 =  variable1 /*s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( self,COLOR_compiling_base___CompilerVisitor___add_instr))( self, variable2) /*CompilerVisitor::add_instr*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___variable(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::variable (src/compiling//compiling_methods.nit:69,2--72:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("variable"), TAG_Int(8)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 =  variable0 /*i*/;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___CompilerVisitor___get_var(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::get_var (src/compiling//compiling_methods.nit:81,2--90:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable1 = ((compiling_methods___CompilerVisitor___variable_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___variable))( self, variable1) /*CompilerVisitor::variable*/;
+  variable0 = variable1;
+  variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
+  ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/ = variable1;
+  variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable2 = ATTR_compiling_methods___CompilerVisitor____variable_index_max( self) /*CompilerVisitor::_variable_index_max*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 =  variable0 /*v*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_decl_t)CALL( self,COLOR_compiling_base___CompilerVisitor___add_decl))( self, variable1) /*CompilerVisitor::add_decl*/;
+    variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+    ATTR_compiling_methods___CompilerVisitor____variable_index_max( self) /*CompilerVisitor::_variable_index_max*/ = variable1;
+  }
+  variable0 =  variable0 /*v*/;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void compiling_methods___CompilerVisitor___free_var(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::free_var (src/compiling//compiling_methods.nit:93,2--98:40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  variable1 = ((compiling_methods___CompilerVisitor___variable_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___variable))( self, variable1) /*CompilerVisitor::variable*/;
+  variable1 = TAG_Bool(( variable0 /*v*/ == variable1) || (( variable0 /*v*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable0 /*v*/,COLOR_kernel___Object_____eqeq))( variable0 /*v*/, variable1) /*String::==*/)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+    ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/ = variable1;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___CompilerVisitor___clear(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::clear (src/compiling//compiling_methods.nit:102,2--108:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____has_return( self) /*CompilerVisitor::_has_return*/ =  TAG_Bool(false);
+  ((compiling_base___CompilerVisitor___indent_level__eq_t)CALL( self,COLOR_compiling_base___CompilerVisitor___indent_level__eq))( self,  TAG_Int(0)) /*CompilerVisitor::indent_level=*/;
+  ATTR_compiling_methods___CompilerVisitor____variable_index( self) /*CompilerVisitor::_variable_index*/ =  TAG_Int(0);
+  ATTR_compiling_methods___CompilerVisitor____variable_index_max( self) /*CompilerVisitor::_variable_index_max*/ =  TAG_Int(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___varnames(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::varnames (src/compiling//compiling_methods.nit:111,2--112:78)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____varnames( self) /*CompilerVisitor::_varnames*/;
+}
+val_t compiling_methods___CompilerVisitor___has_return(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::has_return (src/compiling//compiling_methods.nit:114,2--115:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____has_return( self) /*CompilerVisitor::_has_return*/;
+}
+void compiling_methods___CompilerVisitor___has_return__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::has_return= (src/compiling//compiling_methods.nit:114,2--115:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____has_return( self) /*CompilerVisitor::_has_return*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___method_params(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::method_params (src/compiling//compiling_methods.nit:117,2--118:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____method_params( self) /*CompilerVisitor::_method_params*/;
+}
+void compiling_methods___CompilerVisitor___method_params__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::method_params= (src/compiling//compiling_methods.nit:117,2--118:52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____method_params( self) /*CompilerVisitor::_method_params*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___method(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::method (src/compiling//compiling_methods.nit:120,2--121:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____method( self) /*CompilerVisitor::_method*/;
+}
+void compiling_methods___CompilerVisitor___method__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::method= (src/compiling//compiling_methods.nit:120,2--121:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____method( self) /*CompilerVisitor::_method*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___return_label(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::return_label (src/compiling//compiling_methods.nit:123,2--124:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____return_label( self) /*CompilerVisitor::_return_label*/;
+}
+void compiling_methods___CompilerVisitor___return_label__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::return_label= (src/compiling//compiling_methods.nit:123,2--124:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____return_label( self) /*CompilerVisitor::_return_label*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___break_label(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::break_label (src/compiling//compiling_methods.nit:126,2--127:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____break_label( self) /*CompilerVisitor::_break_label*/;
+}
+void compiling_methods___CompilerVisitor___break_label__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::break_label= (src/compiling//compiling_methods.nit:126,2--127:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____break_label( self) /*CompilerVisitor::_break_label*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___continue_label(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::continue_label (src/compiling//compiling_methods.nit:129,2--130:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____continue_label( self) /*CompilerVisitor::_continue_label*/;
+}
+void compiling_methods___CompilerVisitor___continue_label__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::continue_label= (src/compiling//compiling_methods.nit:129,2--130:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____continue_label( self) /*CompilerVisitor::_continue_label*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___CompilerVisitor___return_value(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::return_value (src/compiling//compiling_methods.nit:132,2--133:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_compiling_methods___CompilerVisitor____return_value( self) /*CompilerVisitor::_return_value*/;
+}
+void compiling_methods___CompilerVisitor___return_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::return_value= (src/compiling//compiling_methods.nit:132,2--133:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_compiling_methods___CompilerVisitor____return_value( self) /*CompilerVisitor::_return_value*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::init (src/compiling//compiling_methods.nit:135,2--138:7)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompilerVisitor].i]) return;
+  ((compiling_methods___CompilerVisitor___init_t)CALL( self,COLOR_SUPER_compiling_methods___CompilerVisitor___init))( self,  param0, init_table) /*super CompilerVisitor::init*/;
+  ((compiling_methods___CompilerVisitor___clear_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___clear))( self) /*CompilerVisitor::clear*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompilerVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::CompilerVisitor::invoke_super_init_calls_after (src/compiling//compiling_methods.nit:141,2--178:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+      val_t variable11;
+      val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___method_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___method))( self) /*CompilerVisitor::method*/;
+  variable2 = ((syntax_base___MMSrcLocalProperty___node_t)CALL(variable2,COLOR_syntax_base___MMSrcLocalProperty___node))(variable2) /*MMSrcMethod::node*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*n*/==NIT_NULL) || VAL_ISA( variable1 /*n*/, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/compiling//compiling_methods.nit:144,3--35\n"); nit_exit(1);}
+  variable2 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+  variable2 = ((array___AbstractArray___is_empty_t)CALL(variable2,COLOR_abstract_collection___Collection___is_empty))(variable2) /*Array::is_empty*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label9;
+  }
+  variable2 =  TAG_Int(0);
+  variable3 =  TAG_Int(0);
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*start_prop*/ ==  NIT_NULL /*null*/) || (( variable0 /*start_prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*start_prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*start_prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*start_prop*/,COLOR_kernel___Object_____eqeq))( variable0 /*start_prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    while (true) { /*while*/
+      variable4 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+      variable5 =  variable2 /*i*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = variable4;
+        variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+        variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable6 = variable4;
+      variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+      variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+      goto return_label11;
+      return_label11: while(false);
+      variable4 = variable6;
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  variable0 /*start_prop*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*start_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*start_prop*/) /*MMMethod::==*/)))))));
+      if (!UNTAG_Bool(variable4)) break; /* while*/
+      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_10: while(0);
+    }
+    break_10: while(0);
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    while (true) { /*while*/
+      variable4 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+      variable5 =  variable3 /*j*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = variable4;
+        variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+        variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable6 = variable4;
+      variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+      variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+      goto return_label13;
+      return_label13: while(false);
+      variable4 = variable6;
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  variable0 /*start_prop*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*start_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*start_prop*/) /*MMMethod::==*/)))))));
+      if (!UNTAG_Bool(variable4)) break; /* while*/
+      variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      continue_12: while(0);
+    }
+    break_12: while(0);
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*j*/;
+  }
+  variable4 = NIT_NULL /*decl variable stop_prop*/;
+  variable5 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+  variable5 = ((array___AbstractArray___length_t)CALL(variable5,COLOR_abstract_collection___Collection___length))(variable5) /*Array::length*/;
+  variable5 = TAG_Bool(UNTAG_Int( variable3 /*j*/)<UNTAG_Int(variable5));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+    variable6 =  variable3 /*j*/;
+    variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable8 = variable7;
+    if (UNTAG_Bool(variable8)) { /* and */
+      variable8 = variable5;
+      variable8 = ATTR_array___AbstractArray____length(variable8) /*Array::_length*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+    }
+    variable7 = variable8;
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable7 = variable5;
+    variable7 = ATTR_array___Array____items(variable7) /*Array::_items*/;
+    variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+    goto return_label14;
+    return_label14: while(false);
+    variable5 = variable7;
+    variable4 = variable5 /*stop_prop=*/;
+  }
+  variable6 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+  variable6 = ((array___AbstractArray___length_t)CALL(variable6,COLOR_abstract_collection___Collection___length))(variable6) /*Array::length*/;
+  variable5 = variable6;
+  while (true) { /*while*/
+    variable6 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable5 /*l*/));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    variable7 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable1 /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable1 /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+    variable8 =  variable2 /*i*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = variable7;
+      variable10 = ATTR_array___AbstractArray____length(variable10) /*Array::_length*/;
+      variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+    }
+    variable9 = variable10;
+    if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable9 = variable7;
+    variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
+    variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+    goto return_label16;
+    return_label16: while(false);
+    variable7 = variable9;
+    variable6 = variable7;
+    variable7 = TAG_Bool(( variable6 /*p*/ ==  variable4 /*stop_prop*/) || (( variable6 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*p*/, variable4 /*stop_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*p*/,COLOR_kernel___Object_____eqeq))( variable6 /*p*/,  variable4 /*stop_prop*/) /*MMMethod::==*/)))));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      goto break_15;
+    }
+    variable8 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___method_params))( self) /*CompilerVisitor::method_params*/;
+    variable7 = variable8;
+    variable8 = ((genericity___MMLocalProperty___signature_t)CALL( variable6 /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable6 /*p*/) /*MMMethod::signature*/;
+    variable8 = ((static_type___MMSignature___arity_t)CALL(variable8,COLOR_static_type___MMSignature___arity))(variable8) /*MMSignature::arity*/;
+    variable8 = TAG_Bool((variable8)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable8 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+      variable9 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( self,COLOR_compiling_methods___CompilerVisitor___method_params))( self) /*CompilerVisitor::method_params*/;
+      variable10 =  TAG_Int(0);
+      variable11 = TAG_Bool(UNTAG_Int( variable10 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable12 = variable11;
+      if (UNTAG_Bool(variable12)) { /* and */
+        variable12 = variable9;
+        variable12 = ATTR_array___AbstractArray____length(variable12) /*Array::_length*/;
+        variable12 = TAG_Bool(UNTAG_Int( variable10 /*index*/)<UNTAG_Int(variable12));
+      }
+      variable11 = variable12;
+      if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable11 = variable9;
+      variable11 = ATTR_array___Array____items(variable11) /*Array::_items*/;
+      variable11 = UNBOX_NativeArray(variable11)[UNTAG_Int( variable10 /*index*/)];
+      goto return_label17;
+      return_label17: while(false);
+      variable9 = variable11;
+      ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable9) /*Array::add*/;
+      variable7 = variable8 /*cargs=*/;
+    }
+    ((compiling_methods___MMMethod___compile_call_t)CALL( variable6 /*p*/,COLOR_compiling_methods___MMMethod___compile_call))( variable6 /*p*/,  self,  variable7 /*cargs*/) /*MMMethod::compile_call*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_15: while(0);
+  }
+  break_15: while(0);
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMMethod::compile_call (src/compiling//compiling_methods.nit:193,2--233:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    static val_t once_value_variable5_19; static int once_bool_variable5_19;
+      val_t variable6;
+      static val_t once_value_variable6_20; static int once_bool_variable6_20;
+  static val_t once_value_variable4_21; static int once_bool_variable4_21;
+  static val_t once_value_variable5_22; static int once_bool_variable5_22;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+    static val_t once_value_variable8_24; static int once_bool_variable8_24;
+      val_t variable25;
+      val_t variable26;
+      val_t variable27;
+      val_t variable28;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( self) /*MMMethod::concrete_property*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable2 /*i*/==NIT_NULL) || VAL_ISA( variable2 /*i*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/compiling//compiling_methods.nit:200,3--26\n"); nit_exit(1);}
+  variable3 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable2 /*i*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable2 /*i*/) /*MMSrcMethod::node*/;
+  variable3 = TAG_Bool((variable3==NIT_NULL) || VAL_ISA(variable3, COLOR_AInternMethPropdef, ID_AInternMethPropdef)) /*cast AInternMethPropdef*/;
+  variable4 = variable3;
+  if (!UNTAG_Bool(variable4)) { /* or */
+    variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable2 /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable2 /*i*/) /*MMSrcMethod::local_class*/;
+    variable4 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___name))(variable4) /*MMLocalClass::name*/;
+    if (once_bool_variable5_19) variable5 = once_value_variable5_19;
+    else {
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
+      variable5 = ((symbol___String___to_symbol_t)CALL(variable5,COLOR_symbol___String___to_symbol))(variable5) /*String::to_symbol*/;
+      once_value_variable5_19 = variable5;
+      once_bool_variable5_19 = true;
+    }
+    variable4 = TAG_Bool((variable4 == variable5) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4,variable5)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable5) /*Symbol::==*/)))));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMMethod::name*/;
+      if (once_bool_variable6_20) variable6 = once_value_variable6_20;
+      else {
+        variable6 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+        variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+        once_value_variable6_20 = variable6;
+        once_bool_variable6_20 = true;
+      }
+      variable5 = TAG_Bool((variable5 == variable6) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5, variable6) /*Symbol::==*/)))));
+    }
+    variable4 = variable5;
+  }
+  variable3 = variable4;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable4 = ((compiling_methods___MMSrcMethod___do_compile_inside_t)CALL( variable2 /*i*/,COLOR_compiling_methods___MMSrcMethod___do_compile_inside))( variable2 /*i*/,  variable0 /*v*/,  variable1 /*cargs*/) /*MMSrcMethod::do_compile_inside*/;
+    variable3 = variable4;
+    variable2 =  variable3 /*e*/;
+    goto return_label18;
+  }
+  if (once_bool_variable4_21) variable4 = once_value_variable4_21;
+  else {
+    variable4 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+    variable4 = ((symbol___String___to_symbol_t)CALL(variable4,COLOR_symbol___String___to_symbol))(variable4) /*String::to_symbol*/;
+    once_value_variable4_21 = variable4;
+    once_bool_variable4_21 = true;
+  }
+  variable3 = variable4;
+  if (once_bool_variable5_22) variable5 = once_value_variable5_22;
+  else {
+    variable5 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+    variable5 = ((symbol___String___to_symbol_t)CALL(variable5,COLOR_symbol___String___to_symbol))(variable5) /*String::to_symbol*/;
+    once_value_variable5_22 = variable5;
+    once_bool_variable5_22 = true;
+  }
+  variable4 = variable5;
+  variable5 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMMethod::name*/;
+  variable5 = TAG_Bool((variable5 ==  variable4 /*ne*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, variable4 /*ne*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  variable4 /*ne*/) /*Symbol::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable6 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMMethod::signature*/;
+    variable6 = ((static_type___MMSignature___recv_t)CALL(variable6,COLOR_static_type___MMSignature___recv))(variable6) /*MMSignature::recv*/;
+    variable6 = ((static_type___MMType___select_method_t)CALL(variable6,COLOR_static_type___MMType___select_method))(variable6,  variable3 /*ee*/) /*MMType::select_method*/;
+    variable5 = variable6;
+    variable7 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable5 /*eqp*/,COLOR_compiling_methods___MMMethod___compile_call))( variable5 /*eqp*/,  variable0 /*v*/,  variable1 /*cargs*/) /*MMMethod::compile_call*/;
+    variable6 = variable7;
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(!UNTAG_Bool("), TAG_Int(21)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 =  variable6 /*eqcall*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+    variable2 = variable7;
+    goto return_label18;
+  }
+  variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMMethod::global*/;
+  variable5 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable5) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___Collection___to_a_t)CALL( variable1 /*cargs*/,COLOR_array___Collection___to_a))( variable1 /*cargs*/) /*Array::to_a*/;
+    variable1 = variable5 /*cargs=*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString("init_table /*YYY*/"), TAG_Int(18)); /*new String*/
+    ((array___AbstractArray___add_t)CALL( variable1 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*cargs*/, variable5) /*Array::add*/;
+  }
+  variable6 = NEW_string___String___init(); /*new String*/
+  variable7 = NEW_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+  variable9 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMMethod::cname*/;
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("_t)CALL("), TAG_Int(8)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+  variable13 =  TAG_Int(0);
+  variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable15 = variable14;
+  if (UNTAG_Bool(variable15)) { /* and */
+    variable15 = ATTR_array___AbstractArray____length( variable1 /*cargs*/) /*Array::_length*/;
+    variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+  }
+  variable14 = variable15;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable14 = ATTR_array___Array____items( variable1 /*cargs*/) /*Array::_items*/;
+  variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+  goto return_label23;
+  return_label23: while(false);
+  variable13 = variable14;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+  variable17 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMMethod::global*/;
+  variable17 = ((compiling_base___MMGlobalProperty___color_id_t)CALL(variable17,COLOR_compiling_base___MMGlobalProperty___color_id))(variable17) /*MMGlobalProperty::color_id*/;
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+  variable5 = variable6;
+  variable7 = NEW_string___String___init(); /*new String*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+  variable10 =  variable5 /*m*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable13 = ((string___Collection___join_t)CALL( variable1 /*cargs*/,COLOR_string___Collection___join))( variable1 /*cargs*/, variable13) /*Array::join*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+  variable17 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMMethod::local_class*/;
+  variable18 = variable17;
+  variable18 = ((string___String___to_s_t)CALL(variable18,COLOR_string___Object___to_s))(variable18) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable20) /*String::append*/;
+  variable21 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMMethod::name*/;
+  variable22 = variable21;
+  variable22 = ((string___String___to_s_t)CALL(variable22,COLOR_string___Object___to_s))(variable22) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable22) /*String::append*/;
+  variable23 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable24 = variable23;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable24) /*String::append*/;
+  variable6 = variable7;
+  variable7 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMMethod::name*/;
+  variable7 = TAG_Bool((variable7 ==  variable3 /*ee*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, variable3 /*ee*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7,  variable3 /*ee*/) /*Symbol::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("UNTAG_Bool("), TAG_Int(11)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 =  variable6 /*vcall*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+    variable6 = variable7 /*vcall=*/;
+    if (once_bool_variable8_24) variable8 = once_value_variable8_24;
+    else {
+      variable8 = NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+      variable8 = ((symbol___String___to_symbol_t)CALL(variable8,COLOR_symbol___String___to_symbol))(variable8) /*String::to_symbol*/;
+      once_value_variable8_24 = variable8;
+      once_bool_variable8_24 = true;
+    }
+    variable7 = variable8;
+    variable8 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable2 /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable2 /*i*/) /*MMSrcMethod::local_class*/;
+    variable8 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable8,COLOR_abstractmetamodel___MMLocalClass___name))(variable8) /*MMLocalClass::name*/;
+    variable8 = TAG_Bool((variable8 ==  variable7 /*obj*/) || ((variable8 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable8, variable7 /*obj*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))(variable8,  variable7 /*obj*/) /*Symbol::==*/)))));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable8 = NEW_string___String___init(); /*new String*/
+      variable9 = NEW_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+      variable11 =  variable5 /*m*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable13) /*String::append*/;
+      variable14 = ((compiling_base___MMLocalProperty___cname_t)CALL( variable2 /*i*/,COLOR_compiling_base___MMLocalProperty___cname))( variable2 /*i*/) /*MMSrcMethod::cname*/;
+      variable15 = variable14;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString(")?(IS_EQUAL_NN("), TAG_Int(15)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable17) /*String::append*/;
+      variable18 =  TAG_Int(0);
+      variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable20 = variable19;
+      if (UNTAG_Bool(variable20)) { /* and */
+        variable20 = ATTR_array___AbstractArray____length( variable1 /*cargs*/) /*Array::_length*/;
+        variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
+      }
+      variable19 = variable20;
+      if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable19 = ATTR_array___Array____items( variable1 /*cargs*/) /*Array::_items*/;
+      variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
+      goto return_label25;
+      return_label25: while(false);
+      variable18 = variable19;
+      variable19 = variable18;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable19) /*String::append*/;
+      variable20 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+      variable21 = variable20;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable21) /*String::append*/;
+      variable22 =  TAG_Int(1);
+      variable23 = TAG_Bool(UNTAG_Int( variable22 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable24 = variable23;
+      if (UNTAG_Bool(variable24)) { /* and */
+        variable24 = ATTR_array___AbstractArray____length( variable1 /*cargs*/) /*Array::_length*/;
+        variable24 = TAG_Bool(UNTAG_Int( variable22 /*index*/)<UNTAG_Int(variable24));
+      }
+      variable23 = variable24;
+      if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable23 = ATTR_array___Array____items( variable1 /*cargs*/) /*Array::_items*/;
+      variable23 = UNBOX_NativeArray(variable23)[UNTAG_Int( variable22 /*index*/)];
+      goto return_label26;
+      return_label26: while(false);
+      variable22 = variable23;
+      variable23 = variable22;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable23) /*String::append*/;
+      variable24 = NEW_string___String___with_native(BOX_NativeString(")):("), TAG_Int(4)); /*new String*/
+      variable25 = variable24;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable25) /*String::append*/;
+      variable26 =  variable6 /*vcall*/;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable26) /*String::append*/;
+      variable27 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+      variable28 = variable27;
+      ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable28) /*String::append*/;
+      variable6 = variable8 /*vcall=*/;
+    }
+    variable8 = NEW_string___String___init(); /*new String*/
+    variable9 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+    variable11 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*cargs*/,COLOR_abstract_collection___Collection___first))( variable1 /*cargs*/) /*Array::first*/;
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(" == "), TAG_Int(4)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+    variable15 =  TAG_Int(1);
+    variable16 = TAG_Bool(UNTAG_Int( variable15 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable17 = variable16;
+    if (UNTAG_Bool(variable17)) { /* and */
+      variable17 = ATTR_array___AbstractArray____length( variable1 /*cargs*/) /*Array::_length*/;
+      variable17 = TAG_Bool(UNTAG_Int( variable15 /*index*/)<UNTAG_Int(variable17));
+    }
+    variable16 = variable17;
+    if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable16 = ATTR_array___Array____items( variable1 /*cargs*/) /*Array::_items*/;
+    variable16 = UNBOX_NativeArray(variable16)[UNTAG_Int( variable15 /*index*/)];
+    goto return_label27;
+    return_label27: while(false);
+    variable15 = variable16;
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable16) /*String::append*/;
+    variable17 = NEW_string___String___with_native(BOX_NativeString(") || (("), TAG_Int(7)); /*new String*/
+    variable18 = variable17;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable18) /*String::append*/;
+    variable19 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*cargs*/,COLOR_abstract_collection___Collection___first))( variable1 /*cargs*/) /*Array::first*/;
+    variable20 = variable19;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable20) /*String::append*/;
+    variable21 = NEW_string___String___with_native(BOX_NativeString(" != NIT_NULL) && "), TAG_Int(17)); /*new String*/
+    variable22 = variable21;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable22) /*String::append*/;
+    variable23 =  variable6 /*vcall*/;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable23) /*String::append*/;
+    variable24 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+    variable25 = variable24;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable25) /*String::append*/;
+    variable6 = variable8 /*vcall=*/;
+  }
+  variable7 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMMethod::signature*/;
+  variable7 = ((static_type___MMSignature___return_type_t)CALL(variable7,COLOR_static_type___MMSignature___return_type))(variable7) /*MMSignature::return_type*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable7 ==  NIT_NULL /*null*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable2 =  variable6 /*vcall*/;
+    goto return_label18;
+  } else { /*if*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable7 = ((string___String_____plus_t)CALL( variable6 /*vcall*/,COLOR_string___String_____plus))( variable6 /*vcall*/, variable7) /*String::+*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable7) /*CompilerVisitor::add_instr*/;
+    variable2 =  NIT_NULL /*null*/;
+    goto return_label18;
+  }
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMMethod___compile_constructor_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMMethod::compile_constructor_call (src/compiling//compiling_methods.nit:237,2--243:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+  variable2 = variable3;
+  variable4 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMMethod::signature*/;
+  variable4 = ((static_type___MMSignature___recv_t)CALL(variable4,COLOR_static_type___MMSignature___recv))(variable4) /*MMSignature::recv*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable2 /*recv*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(" = NEW_"), TAG_Int(7)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMMethod::global*/;
+  variable10 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable10,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable10) /*MMGlobalProperty::intro*/;
+  variable10 = ((compiling_base___MMLocalProperty___cname_t)CALL(variable10,COLOR_compiling_base___MMLocalProperty___cname))(variable10) /*MMConcreteProperty::cname*/;
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable14 = ((string___Collection___join_t)CALL( variable1 /*cargs*/,COLOR_string___Collection___join))( variable1 /*cargs*/, variable14) /*Array::join*/;
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString("); /*new "), TAG_Int(9)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+  variable18 =  variable3 /*stype*/;
+  variable18 = ((string___String___to_s_t)CALL(variable18,COLOR_string___Object___to_s))(variable18) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable20) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable2 =  variable2 /*recv*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMMethod::compile_super_call (src/compiling//compiling_methods.nit:246,2--251:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMMethod::cname*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("_t)CALL("), TAG_Int(8)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 =  TAG_Int(0);
+  variable11 = TAG_Bool(UNTAG_Int( variable10 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable12 = variable11;
+  if (UNTAG_Bool(variable12)) { /* and */
+    variable12 = ATTR_array___AbstractArray____length( variable1 /*cargs*/) /*Array::_length*/;
+    variable12 = TAG_Bool(UNTAG_Int( variable10 /*index*/)<UNTAG_Int(variable12));
+  }
+  variable11 = variable12;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable11 = ATTR_array___Array____items( variable1 /*cargs*/) /*Array::_items*/;
+  variable11 = UNBOX_NativeArray(variable11)[UNTAG_Int( variable10 /*index*/)];
+  goto return_label30;
+  return_label30: while(false);
+  variable10 = variable11;
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+  variable14 = ((compiling_base___MMLocalProperty___color_id_for_super_t)CALL( self,COLOR_compiling_base___MMLocalProperty___color_id_for_super))( self) /*MMMethod::color_id_for_super*/;
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable17) /*String::append*/;
+  variable2 = variable3;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable2 /*m*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable10 = ((string___Collection___join_t)CALL( variable1 /*cargs*/,COLOR_string___Collection___join))( variable1 /*cargs*/, variable10) /*Array::join*/;
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString(") /*super "), TAG_Int(10)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  variable14 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMMethod::local_class*/;
+  variable15 = variable14;
+  variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+  variable18 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMMethod::name*/;
+  variable19 = variable18;
+  variable19 = ((string___String___to_s_t)CALL(variable19,COLOR_string___Object___to_s))(variable19) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable19) /*String::append*/;
+  variable20 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable21 = variable20;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable21) /*String::append*/;
+  variable3 = variable4;
+  variable2 =  variable3 /*vcall*/;
+  goto return_label29;
+  return_label29: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMAttribute___compile_access(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMAttribute::compile_access (src/compiling//compiling_methods.nit:256,2--260:65)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMAttribute::global*/;
+  variable5 = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable5,COLOR_compiling_base___MMGlobalProperty___attr_access))(variable5) /*MMGlobalProperty::attr_access*/;
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  variable9 =  variable1 /*recv*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+  variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMAttribute::local_class*/;
+  variable13 = variable12;
+  variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable15) /*String::append*/;
+  variable16 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMAttribute::name*/;
+  variable17 = variable16;
+  variable17 = ((string___String___to_s_t)CALL(variable17,COLOR_string___Object___to_s))(variable17) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable19) /*String::append*/;
+  goto return_label31;
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_methods___MMSrcLocalProperty___compile_property_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::MMSrcLocalProperty::compile_property_to_c (src/compiling//compiling_methods.nit:265,2--266:46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMSrcMethod::decl_csignature (src/compiling//compiling_methods.nit:270,2--300:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_array___Array___init(); /*new Array[String]*/
+  variable2 = variable3;
+  variable3 = NIT_NULL /*decl variable params_new*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMSrcMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_array___Array___init(); /*new Array[String]*/
+    variable3 = variable4 /*params_new=*/;
+  }
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  TAG_Int(0);
+  variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable9 = variable8;
+  if (UNTAG_Bool(variable9)) { /* and */
+    variable9 = ATTR_array___AbstractArray____length( variable1 /*args*/) /*Array::_length*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+  }
+  variable8 = variable9;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable8 = ATTR_array___Array____items( variable1 /*args*/) /*Array::_items*/;
+  variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+  goto return_label34;
+  return_label34: while(false);
+  variable7 = variable8;
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  ((array___AbstractArray___add_t)CALL( variable2 /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*params*/, variable4) /*Array::add*/;
+  variable4 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMSrcMethod::signature*/;
+  variable4 = ((static_type___MMSignature___arity_t)CALL(variable4,COLOR_static_type___MMSignature___arity))(variable4) /*MMSignature::arity*/;
+  variable5 = NEW_range___Range___without_last( TAG_Int(0), variable4); /*new Range[Int]*/
+  variable4 = variable5;
+  variable4 = ((range___Range___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 = TAG_Int(UNTAG_Int( variable5 /*i*/)+UNTAG_Int( TAG_Int(1)));
+    variable11 = variable10;
+    variable12 = TAG_Bool(UNTAG_Int( variable11 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable13 = variable12;
+    if (UNTAG_Bool(variable13)) { /* and */
+      variable13 = ATTR_array___AbstractArray____length( variable1 /*args*/) /*Array::_length*/;
+      variable13 = TAG_Bool(UNTAG_Int( variable11 /*index*/)<UNTAG_Int(variable13));
+    }
+    variable12 = variable13;
+    if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable12 = ATTR_array___Array____items( variable1 /*args*/) /*Array::_items*/;
+    variable12 = UNBOX_NativeArray(variable12)[UNTAG_Int( variable11 /*index*/)];
+    goto return_label36;
+    return_label36: while(false);
+    variable10 = variable12;
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+    variable6 = variable7;
+    ((array___AbstractArray___add_t)CALL( variable2 /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*params*/,  variable6 /*p*/) /*Array::add*/;
+    variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*params_new*/ ==  NIT_NULL /*null*/) || (( variable3 /*params_new*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable3 /*params_new*/,COLOR_kernel___Object_____eqeq))( variable3 /*params_new*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable3 /*params_new*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*params_new*/,  variable6 /*p*/) /*Array::add*/;
+    }
+    continue_35: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+  }
+  break_35: while(0);
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMSrcMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("int* init_table"), TAG_Int(15)); /*new String*/
+    ((array___AbstractArray___add_t)CALL( variable2 /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*params*/, variable4) /*Array::add*/;
+  }
+  variable4 = NIT_NULL /*decl variable ret*/;
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMSrcMethod::signature*/;
+  variable5 = ((static_type___MMSignature___return_type_t)CALL(variable5,COLOR_static_type___MMSignature___return_type))(variable5) /*MMSignature::return_type*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
+    variable4 = variable5 /*ret=*/;
+  } else { /*if*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)); /*new String*/
+    variable4 = variable5 /*ret=*/;
+  }
+  variable6 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable6 = ((string___Collection___join_t)CALL( variable2 /*params*/,COLOR_string___Collection___join))( variable2 /*params*/, variable6) /*Array::join*/;
+  variable5 = variable6;
+  variable7 = NEW_string___String___init(); /*new String*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+  variable10 =  variable4 /*ret*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+  variable13 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMSrcMethod::cname*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+  variable17 =  variable5 /*p*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable19) /*String::append*/;
+  variable6 = variable7;
+  variable7 = NEW_string___String___init(); /*new String*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+  variable10 =  variable4 /*ret*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(" (* "), TAG_Int(4)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+  variable13 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMSrcMethod::cname*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("_t)("), TAG_Int(4)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+  variable17 =  variable5 /*p*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable19) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable7) /*CompilerVisitor::add_decl*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable7 = ((string___String_____plus_t)CALL( variable6 /*s*/,COLOR_string___String_____plus))( variable6 /*s*/, variable7) /*String::+*/;
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable7) /*CompilerVisitor::add_decl*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*params_new*/ ==  NIT_NULL /*null*/) || (( variable3 /*params_new*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable3 /*params_new*/,COLOR_kernel___Object_____eqeq))( variable3 /*params_new*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 = ((compiling_base___MMLocalProperty___cname_t)CALL( self,COLOR_compiling_base___MMLocalProperty___cname))( self) /*MMSrcMethod::cname*/;
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+    variable14 = ((string___Collection___join_t)CALL( variable3 /*params_new*/,COLOR_string___Collection___join))( variable3 /*params_new*/, variable14) /*Array::join*/;
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable15) /*String::append*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable17) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable7) /*CompilerVisitor::add_decl*/;
+  }
+  variable2 =  variable6 /*s*/;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_methods___MMSrcMethod___compile_property_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::MMSrcMethod::compile_property_to_c (src/compiling//compiling_methods.nit:303,2--331:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((compiling_methods___CompilerVisitor___clear_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___clear))( variable0 /*v*/) /*CompilerVisitor::clear*/;
+  variable2 = NEW_array___Array___init(); /*new Array[String]*/
+  variable1 = variable2;
+  variable2 = NEW_string___String___with_native(BOX_NativeString(" self"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL( variable1 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*args*/, variable2) /*Array::add*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMSrcMethod::signature*/;
+  variable2 = ((static_type___MMSignature___arity_t)CALL(variable2,COLOR_static_type___MMSignature___arity))(variable2) /*MMSignature::arity*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString(" param"), TAG_Int(6)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable3 /*i*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*args*/, variable4) /*Array::add*/;
+    continue_38: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_38: while(0);
+  variable3 = ((compiling_methods___MMSrcMethod___decl_csignature_t)CALL( self,COLOR_compiling_methods___MMSrcMethod___decl_csignature))( self,  variable0 /*v*/,  variable1 /*args*/) /*MMSrcMethod::decl_csignature*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable2 /*cs*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable4 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable0 /*v*/) /*CompilerVisitor::ctx*/;
+  variable3 = variable4;
+  variable4 = NEW_compiling_base___CContext___init(); /*new CContext*/
+  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable0 /*v*/, variable4) /*CompilerVisitor::ctx=*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("struct trace_t trace = {NULL, \""), TAG_Int(31)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((abstractmetamodel___MMLocalProperty___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___module))( self) /*MMSrcMethod::module*/;
+  variable7 = ((abstractmetamodel___MMModule___name_t)CALL(variable7,COLOR_abstractmetamodel___MMModule___name))(variable7) /*MMModule::name*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMSrcMethod::local_class*/;
+  variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable11,COLOR_abstractmetamodel___MMLocalClass___name))(variable11) /*MMLocalClass::name*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMSrcMethod::name*/;
+  variable16 = variable15;
+  variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable19 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( self,COLOR_syntax_base___MMSrcLocalProperty___node))( self) /*MMSrcMethod::node*/;
+  variable19 = ((parser_prod___Prod___locate_t)CALL(variable19,COLOR_parser_prod___PNode___locate))(variable19) /*PPropdef::locate*/;
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable20) /*String::append*/;
+  variable21 = NEW_string___String___with_native(BOX_NativeString(")\"};"), TAG_Int(4)); /*new String*/
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable22) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable4) /*CompilerVisitor::add_decl*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("trace.prev = tracehead; tracehead = &trace;"), TAG_Int(43)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable5 = ((compiling_methods___MMSrcMethod___do_compile_inside_t)CALL( self,COLOR_compiling_methods___MMSrcMethod___do_compile_inside))( self,  variable0 /*v*/,  variable1 /*args*/) /*MMSrcMethod::do_compile_inside*/;
+  variable4 = variable5;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("tracehead = trace.prev;"), TAG_Int(23)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable5) /*CompilerVisitor::add_instr*/;
+  variable5 = TAG_Bool(( variable4 /*s*/ ==  NIT_NULL /*null*/) || (( variable4 /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable4 /*s*/,COLOR_kernel___Object_____eqeq))( variable4 /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("return;"), TAG_Int(7)); /*new String*/
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable5) /*CompilerVisitor::add_instr*/;
+  } else { /*if*/
+    variable5 = NEW_string___String___init(); /*new String*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("return "), TAG_Int(7)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+    variable8 =  variable4 /*s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable5) /*CompilerVisitor::add_instr*/;
+  }
+  variable5 = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable0 /*v*/) /*CompilerVisitor::ctx*/;
+  ((compiling_base___CContext___append_t)CALL( variable3 /*ctx_old*/,COLOR_compiling_base___CContext___append))( variable3 /*ctx_old*/, variable5) /*CContext::append*/;
+  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable0 /*v*/,  variable3 /*ctx_old*/) /*CompilerVisitor::ctx=*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable5) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___MMSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMSrcMethod::do_compile_inside (src/compiling//compiling_methods.nit:334,2--335:74)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method do_compile_inside called (src/compiling//compiling_methods.nit:334,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_methods___MMReadImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMReadImplementationMethod::do_compile_inside (src/compiling//compiling_methods.nit:339,2--341:45)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( self,COLOR_syntax_base___MMSrcLocalProperty___node))( self) /*MMReadImplementationMethod::node*/;
+  variable2 = ((mmbuilder___AAttrPropdef___prop_t)CALL(variable2,COLOR_syntax_base___AAttrPropdef___prop))(variable2) /*AAttrPropdef::prop*/;
+  variable3 =  TAG_Int(0);
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ATTR_array___AbstractArray____length( variable1 /*params*/) /*Array::_length*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+  }
+  variable4 = variable5;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable4 = ATTR_array___Array____items( variable1 /*params*/) /*Array::_items*/;
+  variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+  goto return_label40;
+  return_label40: while(false);
+  variable3 = variable4;
+  variable2 = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable2,COLOR_compiling_methods___MMAttribute___compile_access))(variable2,  variable0 /*v*/, variable3) /*MMSrcAttribute::compile_access*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMWriteImplementationMethod::do_compile_inside (src/compiling//compiling_methods.nit:346,2--349:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( self,COLOR_syntax_base___MMSrcLocalProperty___node))( self) /*MMWriteImplementationMethod::node*/;
+  variable2 = ((mmbuilder___AAttrPropdef___prop_t)CALL(variable2,COLOR_syntax_base___AAttrPropdef___prop))(variable2) /*AAttrPropdef::prop*/;
+  variable3 =  TAG_Int(0);
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ATTR_array___AbstractArray____length( variable1 /*params*/) /*Array::_length*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+  }
+  variable4 = variable5;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable4 = ATTR_array___Array____items( variable1 /*params*/) /*Array::_items*/;
+  variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+  goto return_label42;
+  return_label42: while(false);
+  variable3 = variable4;
+  variable2 = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable2,COLOR_compiling_methods___MMAttribute___compile_access))(variable2,  variable0 /*v*/, variable3) /*MMSrcAttribute::compile_access*/;
+  variable3 =  TAG_Int(1);
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ATTR_array___AbstractArray____length( variable1 /*params*/) /*Array::_length*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+  }
+  variable4 = variable5;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable4 = ATTR_array___Array____items( variable1 /*params*/) /*Array::_items*/;
+  variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+  goto return_label43;
+  return_label43: while(false);
+  variable3 = variable4;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/, variable2, variable3) /*CompilerVisitor::add_assignment*/;
+  variable2 =  NIT_NULL /*null*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMMethSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMMethSrcMethod::do_compile_inside (src/compiling//compiling_methods.nit:354,2--356:47)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( self,COLOR_syntax_base___MMSrcLocalProperty___node))( self) /*MMMethSrcMethod::node*/;
+  variable2 = ((compiling_methods___AMethPropdef___do_compile_inside_t)CALL(variable2,COLOR_compiling_methods___AMethPropdef___do_compile_inside))(variable2,  variable0 /*v*/,  self,  variable1 /*params*/) /*AMethPropdef::do_compile_inside*/;
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t compiling_methods___MMType___compile_cast(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "compiling_methods::MMType::compile_cast (src/compiling//compiling_methods.nit:361,2--367:99)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___global))(variable3) /*MMLocalClass::global*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*recv*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("==NIT_NULL) || VAL_ISA("), TAG_Int(23)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable1 /*recv*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 = ((compiling_base___MMGlobalClass___color_id_t)CALL( variable2 /*g*/,COLOR_compiling_base___MMGlobalClass___color_id))( variable2 /*g*/) /*MMGlobalClass::color_id*/;
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable15) /*String::append*/;
+  variable16 = ((compiling_base___MMGlobalClass___id_id_t)CALL( variable2 /*g*/,COLOR_compiling_base___MMGlobalClass___id_id))( variable2 /*g*/) /*MMGlobalClass::id_id*/;
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable17) /*String::append*/;
+  variable18 = NEW_string___String___with_native(BOX_NativeString(")) /*cast "), TAG_Int(10)); /*new String*/
+  variable19 = variable18;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable19) /*String::append*/;
+  variable20 =  self;
+  variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable20) /*String::append*/;
+  variable21 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable22) /*String::append*/;
+  variable2 = variable3;
+  goto return_label45;
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void compiling_methods___MMType___compile_type_check(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::MMType::compile_type_check (src/compiling//compiling_methods.nit:370,2--375:171)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable4 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___global))(variable4) /*MMLocalClass::global*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("if (("), TAG_Int(5)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable1 /*recv*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("!=NIT_NULL) && !VAL_ISA("), TAG_Int(24)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 =  variable1 /*recv*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = ((compiling_base___MMGlobalClass___color_id_t)CALL( variable3 /*g*/,COLOR_compiling_base___MMGlobalClass___color_id))( variable3 /*g*/) /*MMGlobalClass::color_id*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = ((compiling_base___MMGlobalClass___id_id_t)CALL( variable3 /*g*/,COLOR_compiling_base___MMGlobalClass___id_id))( variable3 /*g*/) /*MMGlobalClass::id_id*/;
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \"Cast failled at "), TAG_Int(38)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable20) /*String::append*/;
+  variable21 = ((parser_prod___PNode___locate_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___locate))( variable2 /*n*/) /*PNode::locate*/;
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable22) /*String::append*/;
+  variable23 = NEW_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1); } /*cast "), TAG_Int(28)); /*new String*/
+  variable24 = variable23;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable24) /*String::append*/;
+  variable25 =  self;
+  variable25 = ((string___String___to_s_t)CALL(variable25,COLOR_string___Object___to_s))(variable25) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable25) /*String::append*/;
+  variable26 = NEW_string___String___with_native(BOX_NativeString("*/;"), TAG_Int(3)); /*new String*/
+  variable27 = variable26;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable27) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::AMethPropdef::do_compile_inside (src/compiling//compiling_methods.nit:382,2--383:95)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method do_compile_inside called (src/compiling//compiling_methods.nit:382,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_methods___AConcreteMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::AConcreteMethPropdef::do_compile_inside (src/compiling//compiling_methods.nit:387,2--446:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+        val_t variable11;
+        val_t variable12;
+        val_t variable13;
+        val_t variable14;
+        val_t variable15;
+        val_t variable16;
+        val_t variable17;
+        val_t variable18;
+        val_t variable19;
+    val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*method*/) /*MMSrcMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
+  variable3 = variable4;
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( variable3 /*orig_meth*/,COLOR_static_type___MMLocalProperty___signature))( variable3 /*orig_meth*/) /*MMLocalProperty::signature*/;
+  variable6 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable6 = ((static_type___MMSignature___recv_t)CALL(variable6,COLOR_static_type___MMSignature___recv))(variable6) /*MMSignature::recv*/;
+  variable5 = ((vararg___MMSignature___adaptation_to_t)CALL(variable5,COLOR_genericity___MMSignature___adaptation_to))(variable5, variable6) /*MMSignature::adaptation_to*/;
+  variable4 = variable5;
+  variable5 = ((parser_nodes___AMethPropdef___n_signature_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_signature))( self) /*AConcreteMethPropdef::n_signature*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable6 = ((parser_nodes___AMethPropdef___n_signature_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_signature))( self) /*AConcreteMethPropdef::n_signature*/;
+    variable5 = variable6;
+    variable6 = TAG_Bool(( variable5 /*sig*/==NIT_NULL) || VAL_ISA( variable5 /*sig*/, COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/compiling//compiling_methods.nit:393,4--28\n"); nit_exit(1);}
+    variable6 = ((parser_nodes___ASignature___n_params_t)CALL( variable5 /*sig*/,COLOR_parser_nodes___ASignature___n_params))( variable5 /*sig*/) /*ASignature::n_params*/;
+    variable6 = ((list___List___iterator_t)CALL(variable6,COLOR_abstract_collection___Collection___iterator))(variable6) /*List::iterator*/;
+    while (true) { /*for*/
+      variable7 = ((list___ListIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ListIterator::is_ok*/;
+      if (!UNTAG_Bool(variable7)) break; /*for*/
+      variable7 = ((list___ListIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ListIterator::item*/;
+      variable9 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+      variable8 = variable9;
+      variable9 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+      variable10 = ((mmbuilder___PParam___variable_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___variable))( variable7 /*ap*/) /*PParam::variable*/;
+      ((abstract_collection___Map_____braeq_t)CALL(variable9,COLOR_abstract_collection___Map_____braeq))(variable9, variable10,  variable8 /*cname*/) /*Map::[]=*/;
+      variable10 = ((mmbuilder___PParam___position_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___position))( variable7 /*ap*/) /*PParam::position*/;
+      variable10 = ((static_type___MMSignature_____bra_t)CALL( variable4 /*orig_sig*/,COLOR_static_type___MMSignature_____bra))( variable4 /*orig_sig*/, variable10) /*MMSignature::[]*/;
+      variable9 = variable10;
+      variable10 = ((mmbuilder___PParam___variable_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___variable))( variable7 /*ap*/) /*PParam::variable*/;
+      variable10 = ((syntax_base___Variable___stype_t)CALL(variable10,COLOR_syntax_base___Variable___stype))(variable10) /*Variable::stype*/;
+      variable10 = ((static_type___MMType_____l_t)CALL( variable9 /*orig_type*/,COLOR_static_type___MMType_____l))( variable9 /*orig_type*/, variable10) /*MMType::<*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable10)))) { /*if*/
+        variable10 = NEW_string___String___init(); /*new String*/
+        variable11 = NEW_string___String___with_native(BOX_NativeString("/* check if p<"), TAG_Int(14)); /*new String*/
+        variable12 = variable11;
+        ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+        variable13 = ((mmbuilder___PParam___variable_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___variable))( variable7 /*ap*/) /*PParam::variable*/;
+        variable13 = ((syntax_base___Variable___stype_t)CALL(variable13,COLOR_syntax_base___Variable___stype))(variable13) /*Variable::stype*/;
+        variable14 = variable13;
+        variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable14) /*String::append*/;
+        variable15 = NEW_string___String___with_native(BOX_NativeString(" with p:"), TAG_Int(8)); /*new String*/
+        variable16 = variable15;
+        ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable16) /*String::append*/;
+        variable17 =  variable9 /*orig_type*/;
+        variable17 = ((string___String___to_s_t)CALL(variable17,COLOR_string___Object___to_s))(variable17) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable17) /*String::append*/;
+        variable18 = NEW_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
+        variable19 = variable18;
+        ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable19) /*String::append*/;
+        ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable10) /*CompilerVisitor::add_instr*/;
+        variable10 = ((mmbuilder___PParam___variable_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___variable))( variable7 /*ap*/) /*PParam::variable*/;
+        variable10 = ((syntax_base___Variable___stype_t)CALL(variable10,COLOR_syntax_base___Variable___stype))(variable10) /*Variable::stype*/;
+        variable11 = ((mmbuilder___PParam___position_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___position))( variable7 /*ap*/) /*PParam::position*/;
+        variable11 = TAG_Int(UNTAG_Int(variable11)+UNTAG_Int( TAG_Int(1)));
+        variable12 = variable11;
+        variable13 = TAG_Bool(UNTAG_Int( variable12 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable14 = variable13;
+        if (UNTAG_Bool(variable14)) { /* and */
+          variable14 = ATTR_array___AbstractArray____length( variable2 /*params*/) /*Array::_length*/;
+          variable14 = TAG_Bool(UNTAG_Int( variable12 /*index*/)<UNTAG_Int(variable14));
+        }
+        variable13 = variable14;
+        if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable13 = ATTR_array___Array____items( variable2 /*params*/) /*Array::_items*/;
+        variable13 = UNBOX_NativeArray(variable13)[UNTAG_Int( variable12 /*index*/)];
+        goto return_label49;
+        return_label49: while(false);
+        variable11 = variable13;
+        ((compiling_methods___MMType___compile_type_check_t)CALL(variable10,COLOR_compiling_methods___MMType___compile_type_check))(variable10,  variable0 /*v*/, variable11,  variable7 /*ap*/) /*MMType::compile_type_check*/;
+      }
+      variable10 = ((mmbuilder___PParam___position_t)CALL( variable7 /*ap*/,COLOR_syntax_base___PParam___position))( variable7 /*ap*/) /*PParam::position*/;
+      variable10 = TAG_Int(UNTAG_Int(variable10)+UNTAG_Int( TAG_Int(1)));
+      variable11 = variable10;
+      variable12 = TAG_Bool(UNTAG_Int( variable11 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable13 = variable12;
+      if (UNTAG_Bool(variable13)) { /* and */
+        variable13 = ATTR_array___AbstractArray____length( variable2 /*params*/) /*Array::_length*/;
+        variable13 = TAG_Bool(UNTAG_Int( variable11 /*index*/)<UNTAG_Int(variable13));
+      }
+      variable12 = variable13;
+      if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable12 = ATTR_array___Array____items( variable2 /*params*/) /*Array::_items*/;
+      variable12 = UNBOX_NativeArray(variable12)[UNTAG_Int( variable11 /*index*/)];
+      goto return_label50;
+      return_label50: while(false);
+      variable10 = variable12;
+      ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable8 /*cname*/, variable10) /*CompilerVisitor::add_assignment*/;
+      continue_48: while(0);
+      ((list___ListIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ListIterator::next*/;
+    }
+    break_48: while(0);
+  }
+  variable6 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params))( variable0 /*v*/) /*CompilerVisitor::method_params*/;
+  variable5 = variable6;
+  variable7 = ((compiling_methods___CompilerVisitor___return_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_label))( variable0 /*v*/) /*CompilerVisitor::return_label*/;
+  variable6 = variable7;
+  variable8 = ((compiling_methods___CompilerVisitor___return_value_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value))( variable0 /*v*/) /*CompilerVisitor::return_value*/;
+  variable7 = variable8;
+  variable9 = ((compiling_methods___CompilerVisitor___has_return_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___has_return))( variable0 /*v*/) /*CompilerVisitor::has_return*/;
+  variable8 = variable9;
+  variable9 = NIT_NULL /*decl variable itpos*/;
+  variable10 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = NEW_string___String___init(); /*new String*/
+    variable11 = NEW_string___String___with_native(BOX_NativeString("VAL2OBJ("), TAG_Int(8)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+    variable13 =  TAG_Int(0);
+    variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable15 = variable14;
+    if (UNTAG_Bool(variable15)) { /* and */
+      variable15 = ATTR_array___AbstractArray____length( variable2 /*params*/) /*Array::_length*/;
+      variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+    }
+    variable14 = variable15;
+    if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable14 = ATTR_array___Array____items( variable2 /*params*/) /*Array::_items*/;
+    variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+    goto return_label51;
+    return_label51: while(false);
+    variable13 = variable14;
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable14) /*String::append*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString(")->vft["), TAG_Int(7)); /*new String*/
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable16) /*String::append*/;
+    variable17 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*method*/) /*MMSrcMethod::local_class*/;
+    variable17 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable17,COLOR_abstractmetamodel___MMLocalClass___global))(variable17) /*MMLocalClass::global*/;
+    variable17 = ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL(variable17,COLOR_compiling_base___MMGlobalClass___init_table_pos_id))(variable17) /*MMGlobalClass::init_table_pos_id*/;
+    variable18 = variable17;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable18) /*String::append*/;
+    variable19 = NEW_string___String___with_native(BOX_NativeString("].i"), TAG_Int(3)); /*new String*/
+    variable20 = variable19;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable20) /*String::append*/;
+    variable9 = variable10 /*itpos=*/;
+    variable10 = NEW_string___String___init(); /*new String*/
+    variable11 = NEW_string___String___with_native(BOX_NativeString("if (init_table["), TAG_Int(15)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+    variable13 =  variable9 /*itpos*/;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString("]) return;"), TAG_Int(10)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable15) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable10) /*CompilerVisitor::add_instr*/;
+  }
+  ((compiling_methods___CompilerVisitor___method_params__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params__eq))( variable0 /*v*/,  variable2 /*params*/) /*CompilerVisitor::method_params=*/;
+  ((compiling_methods___CompilerVisitor___has_return__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___has_return__eq))( variable0 /*v*/,  TAG_Bool(false)) /*CompilerVisitor::has_return=*/;
+  variable10 = NEW_string___String___init(); /*new String*/
+  variable11 = NEW_string___String___with_native(BOX_NativeString("return_label"), TAG_Int(12)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+  variable13 = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable0 /*v*/) /*CompilerVisitor::new_number*/;
+  variable14 = variable13;
+  variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable16) /*String::append*/;
+  ((compiling_methods___CompilerVisitor___return_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_label__eq))( variable0 /*v*/, variable10) /*CompilerVisitor::return_label=*/;
+  variable10 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable10 = ((static_type___MMSignature___return_type_t)CALL(variable10,COLOR_static_type___MMSignature___return_type))(variable10) /*MMSignature::return_type*/;
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable10 ==  NIT_NULL /*null*/) || ((variable10 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable10,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable10, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable10,COLOR_kernel___Object_____eqeq))(variable10,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+    ((compiling_methods___CompilerVisitor___return_value__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value__eq))( variable0 /*v*/, variable10) /*CompilerVisitor::return_value=*/;
+    variable10 = ((compiling_methods___CompilerVisitor___return_value_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value))( variable0 /*v*/) /*CompilerVisitor::return_value*/;
+    ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/, variable10) /*CompilerVisitor::free_var*/;
+  } else { /*if*/
+    ((compiling_methods___CompilerVisitor___return_value__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*CompilerVisitor::return_value=*/;
+  }
+  variable10 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((compiling_methods___CompilerVisitor___method__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method__eq))( variable0 /*v*/,  variable1 /*method*/) /*CompilerVisitor::method=*/;
+    ((compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after))( variable0 /*v*/,  NIT_NULL /*null*/) /*CompilerVisitor::invoke_super_init_calls_after*/;
+  }
+  variable10 = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL( self,COLOR_parser_nodes___AConcreteMethPropdef___n_block))( self) /*AConcreteMethPropdef::n_block*/;
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable10 ==  NIT_NULL /*null*/) || ((variable10 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable10,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable10, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable10,COLOR_kernel___Object_____eqeq))(variable10,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL( self,COLOR_parser_nodes___AConcreteMethPropdef___n_block))( self) /*AConcreteMethPropdef::n_block*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable10) /*CompilerVisitor::compile_stmt*/;
+  }
+  variable10 = ((compiling_methods___CompilerVisitor___has_return_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___has_return))( variable0 /*v*/) /*CompilerVisitor::has_return*/;
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = NEW_string___String___init(); /*new String*/
+    variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+    variable13 = ((compiling_methods___CompilerVisitor___return_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_label))( variable0 /*v*/) /*CompilerVisitor::return_label*/;
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable14) /*String::append*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)); /*new String*/
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable16) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable10) /*CompilerVisitor::add_instr*/;
+  }
+  variable10 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = NEW_string___String___init(); /*new String*/
+    variable11 = NEW_string___String___with_native(BOX_NativeString("init_table["), TAG_Int(11)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable12) /*String::append*/;
+    variable13 =  variable9 /*itpos*/;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString("] = 1;"), TAG_Int(6)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable10,COLOR_abstract_collection___IndexedCollection___append))(variable10, variable15) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable10) /*CompilerVisitor::add_instr*/;
+  }
+  variable11 = ((compiling_methods___CompilerVisitor___return_value_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value))( variable0 /*v*/) /*CompilerVisitor::return_value*/;
+  variable10 = variable11;
+  ((compiling_methods___CompilerVisitor___method_params__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params__eq))( variable0 /*v*/,  variable5 /*old_method_params*/) /*CompilerVisitor::method_params=*/;
+  ((compiling_methods___CompilerVisitor___return_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_label__eq))( variable0 /*v*/,  variable6 /*old_return_label*/) /*CompilerVisitor::return_label=*/;
+  ((compiling_methods___CompilerVisitor___return_value__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value__eq))( variable0 /*v*/,  variable7 /*old_return_value*/) /*CompilerVisitor::return_value=*/;
+  ((compiling_methods___CompilerVisitor___has_return__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___has_return__eq))( variable0 /*v*/,  variable8 /*old_has_return*/) /*CompilerVisitor::has_return=*/;
+  variable3 =  variable10 /*ret*/;
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t compiling_methods___ADeferredMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::ADeferredMethPropdef::do_compile_inside (src/compiling//compiling_methods.nit:451,2--458:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Deferred method "), TAG_Int(33)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((mmbuilder___AMethPropdef___name_t)CALL( self,COLOR_mmbuilder___AMethPropdef___name))( self) /*ADeferredMethPropdef::name*/;
+  variable7 = variable6;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(" called ("), TAG_Int(9)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*ADeferredMethPropdef::first_token*/;
+  variable10 = ((parser_prod___Token___locate_t)CALL(variable10,COLOR_parser_prod___PNode___locate))(variable10) /*Token::locate*/;
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString(")\\n\");"), TAG_Int(6)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("nit_exit(1);"), TAG_Int(12)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  variable3 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable3 = ((static_type___MMSignature___return_type_t)CALL(variable3,COLOR_static_type___MMSignature___return_type))(variable3) /*MMSignature::return_type*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)); /*new String*/
+    goto return_label52;
+  } else { /*if*/
+    variable3 =  NIT_NULL /*null*/;
+    goto return_label52;
+  }
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::AExternMethPropdef::do_compile_inside (src/compiling//compiling_methods.nit:464,2--485:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((abstractmetamodel___MMLocalProperty___module_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___module))( variable1 /*method*/) /*MMSrcMethod::module*/;
+  variable7 = ((abstractmetamodel___MMModule___name_t)CALL(variable7,COLOR_abstractmetamodel___MMModule___name))(variable7) /*MMModule::name*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*method*/) /*MMSrcMethod::local_class*/;
+  variable11 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable11,COLOR_abstractmetamodel___MMLocalClass___name))(variable11) /*MMLocalClass::name*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+  variable15 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*method*/) /*MMSrcMethod::local_class*/;
+  variable15 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable15,COLOR_abstractmetamodel___MMLocalClass___name))(variable15) /*MMLocalClass::name*/;
+  variable16 = variable15;
+  variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable18) /*String::append*/;
+  variable19 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*method*/) /*MMSrcMethod::name*/;
+  variable20 = variable19;
+  variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable20) /*String::append*/;
+  variable21 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable22 = variable21;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable22) /*String::append*/;
+  variable23 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable23 = ((static_type___MMSignature___arity_t)CALL(variable23,COLOR_static_type___MMSignature___arity))(variable23) /*MMSignature::arity*/;
+  variable24 = variable23;
+  variable24 = ((string___String___to_s_t)CALL(variable24,COLOR_string___Object___to_s))(variable24) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable24) /*String::append*/;
+  variable25 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable26 = variable25;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable26) /*String::append*/;
+  variable3 = variable4;
+  variable4 = ((parser_nodes___AExternMethPropdef___n_extern_t)CALL( self,COLOR_parser_nodes___AExternMethPropdef___n_extern))( self) /*AExternMethPropdef::n_extern*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((parser_nodes___AExternMethPropdef___n_extern_t)CALL( self,COLOR_parser_nodes___AExternMethPropdef___n_extern))( self) /*AExternMethPropdef::n_extern*/;
+    variable4 = ((lexer___Token___text_t)CALL(variable4,COLOR_lexer___Token___text))(variable4) /*TString::text*/;
+    variable3 = variable4 /*ename=*/;
+    variable4 = ((array___AbstractArray___length_t)CALL( variable3 /*ename*/,COLOR_abstract_collection___Collection___length))( variable3 /*ename*/) /*String::length*/;
+    variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(2)));
+    variable4 = ((string___String___substring_t)CALL( variable3 /*ename*/,COLOR_string___String___substring))( variable3 /*ename*/,  TAG_Int(1), variable4) /*String::substring*/;
+    variable3 = variable4 /*ename=*/;
+  }
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable4 = variable5;
+  variable5 = ((array___AbstractArray___length_t)CALL( variable2 /*params*/,COLOR_abstract_collection___Collection___length))( variable2 /*params*/) /*Array::length*/;
+  variable6 = ((static_type___MMSignature___arity_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___arity))( variable4 /*sig*/) /*MMSignature::arity*/;
+  variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( TAG_Int(1)));
+  variable5 = TAG_Bool((variable5)!=(variable6));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = NEW_string___String___init(); /*new String*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("par:"), TAG_Int(4)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+    variable8 = ((array___AbstractArray___length_t)CALL( variable2 /*params*/,COLOR_abstract_collection___Collection___length))( variable2 /*params*/) /*Array::length*/;
+    variable9 = variable8;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(" sig:"), TAG_Int(5)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+    variable12 = ((static_type___MMSignature___arity_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___arity))( variable4 /*sig*/) /*MMSignature::arity*/;
+    variable13 = variable12;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+    ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable5) /*AExternMethPropdef::printl*/;
+  }
+  variable6 = NEW_array___Array___init(); /*new Array[String]*/
+  variable5 = variable6;
+  variable6 = ((static_type___MMSignature___recv_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___recv))( variable4 /*sig*/) /*MMSignature::recv*/;
+  variable7 =  TAG_Int(0);
+  variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable9 = variable8;
+  if (UNTAG_Bool(variable9)) { /* and */
+    variable9 = ATTR_array___AbstractArray____length( variable2 /*params*/) /*Array::_length*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+  }
+  variable8 = variable9;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable8 = ATTR_array___Array____items( variable2 /*params*/) /*Array::_items*/;
+  variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+  goto return_label54;
+  return_label54: while(false);
+  variable7 = variable8;
+  variable6 = ((compiling_base___MMType___unboxtype_t)CALL(variable6,COLOR_compiling_base___MMType___unboxtype))(variable6, variable7) /*MMType::unboxtype*/;
+  ((array___AbstractArray___add_t)CALL( variable5 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*args*/, variable6) /*Array::add*/;
+  variable6 = ((static_type___MMSignature___arity_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___arity))( variable4 /*sig*/) /*MMSignature::arity*/;
+  variable7 = NEW_range___Range___without_last( TAG_Int(0), variable6); /*new Range[Int]*/
+  variable6 = variable7;
+  variable6 = ((range___Range___iterator_t)CALL(variable6,COLOR_abstract_collection___Collection___iterator))(variable6) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable7 = ((abstract_collection___Iterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable7)) break; /*for*/
+    variable7 = ((abstract_collection___Iterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*Iterator::item*/;
+    variable8 = ((static_type___MMSignature_____bra_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature_____bra))( variable4 /*sig*/,  variable7 /*i*/) /*MMSignature::[]*/;
+    variable9 = TAG_Int(UNTAG_Int( variable7 /*i*/)+UNTAG_Int( TAG_Int(1)));
+    variable10 = variable9;
+    variable11 = TAG_Bool(UNTAG_Int( variable10 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable12 = variable11;
+    if (UNTAG_Bool(variable12)) { /* and */
+      variable12 = ATTR_array___AbstractArray____length( variable2 /*params*/) /*Array::_length*/;
+      variable12 = TAG_Bool(UNTAG_Int( variable10 /*index*/)<UNTAG_Int(variable12));
+    }
+    variable11 = variable12;
+    if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable11 = ATTR_array___Array____items( variable2 /*params*/) /*Array::_items*/;
+    variable11 = UNBOX_NativeArray(variable11)[UNTAG_Int( variable10 /*index*/)];
+    goto return_label56;
+    return_label56: while(false);
+    variable9 = variable11;
+    variable8 = ((compiling_base___MMType___unboxtype_t)CALL(variable8,COLOR_compiling_base___MMType___unboxtype))(variable8, variable9) /*MMType::unboxtype*/;
+    ((array___AbstractArray___add_t)CALL( variable5 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*args*/, variable8) /*Array::add*/;
+    continue_55: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*Iterator::next*/;
+  }
+  break_55: while(0);
+  variable7 = NEW_string___String___init(); /*new String*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+  variable10 =  variable3 /*ename*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable13 = ((string___Collection___join_t)CALL( variable5 /*args*/,COLOR_string___Collection___join))( variable5 /*args*/, variable13) /*Array::join*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+  variable6 = variable7;
+  variable7 = ((static_type___MMSignature___return_type_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___return_type))( variable4 /*sig*/) /*MMSignature::return_type*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable7 ==  NIT_NULL /*null*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((static_type___MMSignature___return_type_t)CALL( variable4 /*sig*/,COLOR_static_type___MMSignature___return_type))( variable4 /*sig*/) /*MMSignature::return_type*/;
+    variable7 = ((compiling_base___MMType___boxtype_t)CALL(variable7,COLOR_compiling_base___MMType___boxtype))(variable7,  variable6 /*s*/) /*MMType::boxtype*/;
+    variable3 = variable7;
+    goto return_label53;
+  } else { /*if*/
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 =  variable6 /*s*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable7) /*CompilerVisitor::add_instr*/;
+    variable3 =  NIT_NULL /*null*/;
+    goto return_label53;
+  }
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "compiling_methods::AInternMethPropdef::do_compile_inside (src/compiling//compiling_methods.nit:491,2--659:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  static val_t once_value_variable6_58; static int once_bool_variable6_58;
+    static val_t once_value_variable6_59; static int once_bool_variable6_59;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      static val_t once_value_variable6_61; static int once_bool_variable6_61;
+        static val_t once_value_variable6_63; static int once_bool_variable6_63;
+          static val_t once_value_variable6_65; static int once_bool_variable6_65;
+            static val_t once_value_variable6_67; static int once_bool_variable6_67;
+              static val_t once_value_variable6_69; static int once_bool_variable6_69;
+               static val_t once_value_variable6_71; static int once_bool_variable6_71;
+               static val_t once_value_variable6_73; static int once_bool_variable6_73;
+               val_t variable13;
+               val_t variable14;
+               val_t variable15;
+               val_t variable16;
+               static val_t once_value_variable6_76; static int once_bool_variable6_76;
+               static val_t once_value_variable6_79; static int once_bool_variable6_79;
+               static val_t once_value_variable6_82; static int once_bool_variable6_82;
+               static val_t once_value_variable6_85; static int once_bool_variable6_85;
+               static val_t once_value_variable6_88; static int once_bool_variable6_88;
+               static val_t once_value_variable6_91; static int once_bool_variable6_91;
+               static val_t once_value_variable6_94; static int once_bool_variable6_94;
+               static val_t once_value_variable6_97; static int once_bool_variable6_97;
+               static val_t once_value_variable6_100; static int once_bool_variable6_100;
+               static val_t once_value_variable6_103; static int once_bool_variable6_103;
+               static val_t once_value_variable6_106; static int once_bool_variable6_106;
+               static val_t once_value_variable6_109; static int once_bool_variable6_109;
+    static val_t once_value_variable6_112; static int once_bool_variable6_112;
+      static val_t once_value_variable6_113; static int once_bool_variable6_113;
+        static val_t once_value_variable6_115; static int once_bool_variable6_115;
+          static val_t once_value_variable6_117; static int once_bool_variable6_117;
+            static val_t once_value_variable6_119; static int once_bool_variable6_119;
+              static val_t once_value_variable6_121; static int once_bool_variable6_121;
+               static val_t once_value_variable6_124; static int once_bool_variable6_124;
+               static val_t once_value_variable6_127; static int once_bool_variable6_127;
+               static val_t once_value_variable6_130; static int once_bool_variable6_130;
+               static val_t once_value_variable6_133; static int once_bool_variable6_133;
+               static val_t once_value_variable6_136; static int once_bool_variable6_136;
+               static val_t once_value_variable6_139; static int once_bool_variable6_139;
+               static val_t once_value_variable6_142; static int once_bool_variable6_142;
+      static val_t once_value_variable6_145; static int once_bool_variable6_145;
+        static val_t once_value_variable6_146; static int once_bool_variable6_146;
+          static val_t once_value_variable6_148; static int once_bool_variable6_148;
+            static val_t once_value_variable6_150; static int once_bool_variable6_150;
+              static val_t once_value_variable6_152; static int once_bool_variable6_152;
+               static val_t once_value_variable6_154; static int once_bool_variable6_154;
+               static val_t once_value_variable6_156; static int once_bool_variable6_156;
+               static val_t once_value_variable6_158; static int once_bool_variable6_158;
+               static val_t once_value_variable6_160; static int once_bool_variable6_160;
+               static val_t once_value_variable6_163; static int once_bool_variable6_163;
+               static val_t once_value_variable6_166; static int once_bool_variable6_166;
+               static val_t once_value_variable6_169; static int once_bool_variable6_169;
+               static val_t once_value_variable6_172; static int once_bool_variable6_172;
+               static val_t once_value_variable6_175; static int once_bool_variable6_175;
+               static val_t once_value_variable6_178; static int once_bool_variable6_178;
+               static val_t once_value_variable6_181; static int once_bool_variable6_181;
+               static val_t once_value_variable6_184; static int once_bool_variable6_184;
+               static val_t once_value_variable6_187; static int once_bool_variable6_187;
+               static val_t once_value_variable6_190; static int once_bool_variable6_190;
+        static val_t once_value_variable6_193; static int once_bool_variable6_193;
+          static val_t once_value_variable6_194; static int once_bool_variable6_194;
+            static val_t once_value_variable6_196; static int once_bool_variable6_196;
+              static val_t once_value_variable6_198; static int once_bool_variable6_198;
+               static val_t once_value_variable6_200; static int once_bool_variable6_200;
+               static val_t once_value_variable6_202; static int once_bool_variable6_202;
+               static val_t once_value_variable6_204; static int once_bool_variable6_204;
+               static val_t once_value_variable6_207; static int once_bool_variable6_207;
+          static val_t once_value_variable6_210; static int once_bool_variable6_210;
+            static val_t once_value_variable6_211; static int once_bool_variable6_211;
+              static val_t once_value_variable6_213; static int once_bool_variable6_213;
+               static val_t once_value_variable6_216; static int once_bool_variable6_216;
+               val_t variable17;
+               val_t variable18;
+               val_t variable19;
+               val_t variable20;
+               static val_t once_value_variable6_220; static int once_bool_variable6_220;
+            static val_t once_value_variable6_224; static int once_bool_variable6_224;
+              static val_t once_value_variable6_225; static int once_bool_variable6_225;
+               static val_t once_value_variable6_227; static int once_bool_variable6_227;
+               static val_t once_value_variable6_229; static int once_bool_variable6_229;
+               static val_t once_value_variable6_232; static int once_bool_variable6_232;
+               static val_t once_value_variable6_236; static int once_bool_variable6_236;
+               val_t variable21;
+               val_t variable22;
+               val_t variable23;
+               val_t variable24;
+               val_t variable25;
+               val_t variable26;
+               val_t variable27;
+               val_t variable28;
+              static val_t once_value_variable6_242; static int once_bool_variable6_242;
+               static val_t once_value_variable6_244; static int once_bool_variable6_244;
+               static val_t once_value_variable6_245; static int once_bool_variable6_245;
+               static val_t once_value_variable6_248; static int once_bool_variable6_248;
+               static val_t once_value_variable6_250; static int once_bool_variable6_250;
+               static val_t once_value_variable6_252; static int once_bool_variable6_252;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*method*/) /*MMSrcMethod::local_class*/;
+  variable4 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___name))(variable4) /*MMLocalClass::name*/;
+  variable3 = variable4;
+  variable5 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*method*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*method*/) /*MMSrcMethod::name*/;
+  variable4 = variable5;
+  variable5 = NIT_NULL /*decl variable s*/;
+  if (once_bool_variable6_58) variable6 = once_value_variable6_58;
+  else {
+    variable6 = NEW_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+    variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+    once_value_variable6_58 = variable6;
+    once_bool_variable6_58 = true;
+  }
+  variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    if (once_bool_variable6_59) variable6 = once_value_variable6_59;
+    else {
+      variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+      variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+      once_value_variable6_59 = variable6;
+      once_bool_variable6_59 = true;
+    }
+    variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 =  TAG_Int(0);
+      variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable11 = variable10;
+      if (UNTAG_Bool(variable11)) { /* and */
+        variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+        variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+      }
+      variable10 = variable11;
+      if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+      variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+      goto return_label60;
+      return_label60: while(false);
+      variable9 = variable10;
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      variable5 = variable6 /*s=*/;
+    } else { /*if*/
+      if (once_bool_variable6_61) variable6 = once_value_variable6_61;
+      else {
+        variable6 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+        variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+        once_value_variable6_61 = variable6;
+        once_bool_variable6_61 = true;
+      }
+      variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(-UNTAG_Int("), TAG_Int(19)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  TAG_Int(0);
+        variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable11 = variable10;
+        if (UNTAG_Bool(variable11)) { /* and */
+          variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+          variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+        }
+        variable10 = variable11;
+        if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+        variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+        goto return_label62;
+        return_label62: while(false);
+        variable9 = variable10;
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+        variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+        variable12 = variable11;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+        variable5 = variable6 /*s=*/;
+      } else { /*if*/
+        if (once_bool_variable6_63) variable6 = once_value_variable6_63;
+        else {
+          variable6 = NEW_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+          variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+          once_value_variable6_63 = variable6;
+          once_bool_variable6_63 = true;
+        }
+        variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+        if (UNTAG_Bool(variable6)) { /*if*/
+          variable6 = NEW_string___String___init(); /*new String*/
+          variable7 = NEW_string___String___with_native(BOX_NativeString("printf(\"%d\\n\", UNTAG_Int("), TAG_Int(25)); /*new String*/
+          variable8 = variable7;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+          variable9 =  TAG_Int(0);
+          variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable11 = variable10;
+          if (UNTAG_Bool(variable11)) { /* and */
+            variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+            variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+          }
+          variable10 = variable11;
+          if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+          variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+          goto return_label64;
+          return_label64: while(false);
+          variable9 = variable10;
+          variable10 = variable9;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+          variable11 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+          variable12 = variable11;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+          ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+        } else { /*if*/
+          if (once_bool_variable6_65) variable6 = once_value_variable6_65;
+          else {
+            variable6 = NEW_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+            variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+            once_value_variable6_65 = variable6;
+            once_bool_variable6_65 = true;
+          }
+          variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+          if (UNTAG_Bool(variable6)) { /*if*/
+            variable6 = NEW_string___String___init(); /*new String*/
+            variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Int("), TAG_Int(19)); /*new String*/
+            variable8 = variable7;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+            variable9 =  TAG_Int(0);
+            variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable11 = variable10;
+            if (UNTAG_Bool(variable11)) { /* and */
+              variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+              variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+            }
+            variable10 = variable11;
+            if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+            variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+            goto return_label66;
+            return_label66: while(false);
+            variable9 = variable10;
+            variable10 = variable9;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+            variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+            variable12 = variable11;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+            variable5 = variable6 /*s=*/;
+          } else { /*if*/
+            if (once_bool_variable6_67) variable6 = once_value_variable6_67;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_67 = variable6;
+              once_bool_variable6_67 = true;
+            }
+            variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              variable6 = NEW_string___String___init(); /*new String*/
+              variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+              variable8 = variable7;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+              variable9 =  TAG_Int(0);
+              variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable11 = variable10;
+              if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+              }
+              variable10 = variable11;
+              if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+              variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+              goto return_label68;
+              return_label68: while(false);
+              variable9 = variable10;
+              variable10 = variable9;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+              variable11 = NEW_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
+              variable12 = variable11;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+              variable5 = variable6 /*s=*/;
+            } else { /*if*/
+              if (once_bool_variable6_69) variable6 = once_value_variable6_69;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_69 = variable6;
+               once_bool_variable6_69 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label70;
+               return_label70: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_71) variable6 = once_value_variable6_71;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("to_f"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_71 = variable6;
+               once_bool_variable6_71 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float((float)UNTAG_Int("), TAG_Int(27)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label72;
+               return_label72: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_73) variable6 = once_value_variable6_73;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_73 = variable6;
+               once_bool_variable6_73 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label74;
+               return_label74: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label75;
+               return_label75: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_76) variable6 = once_value_variable6_76;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_76 = variable6;
+               once_bool_variable6_76 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label77;
+               return_label77: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label78;
+               return_label78: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_79) variable6 = once_value_variable6_79;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_79 = variable6;
+               once_bool_variable6_79 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label80;
+               return_label80: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")*UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label81;
+               return_label81: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_82) variable6 = once_value_variable6_82;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_82 = variable6;
+               once_bool_variable6_82 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label83;
+               return_label83: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")/UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label84;
+               return_label84: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_85) variable6 = once_value_variable6_85;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_85 = variable6;
+               once_bool_variable6_85 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label86;
+               return_label86: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")%UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label87;
+               return_label87: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_88) variable6 = once_value_variable6_88;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_88 = variable6;
+               once_bool_variable6_88 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label89;
+               return_label89: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label90;
+               return_label90: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_91) variable6 = once_value_variable6_91;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_91 = variable6;
+               once_bool_variable6_91 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label92;
+               return_label92: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label93;
+               return_label93: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_94) variable6 = once_value_variable6_94;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_94 = variable6;
+               once_bool_variable6_94 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label95;
+               return_label95: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<=UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label96;
+               return_label96: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_97) variable6 = once_value_variable6_97;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_97 = variable6;
+               once_bool_variable6_97 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label98;
+               return_label98: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>=UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label99;
+               return_label99: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_100) variable6 = once_value_variable6_100;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("lshift"), TAG_Int(6)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_100 = variable6;
+               once_bool_variable6_100 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label101;
+               return_label101: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<<UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label102;
+               return_label102: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_103) variable6 = once_value_variable6_103;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("rshift"), TAG_Int(6)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_103 = variable6;
+               once_bool_variable6_103 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label104;
+               return_label104: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>>UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label105;
+               return_label105: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_106) variable6 = once_value_variable6_106;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_106 = variable6;
+               once_bool_variable6_106 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label107;
+               return_label107: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label108;
+               return_label108: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_109) variable6 = once_value_variable6_109;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_109 = variable6;
+               once_bool_variable6_109 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label110;
+               return_label110: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label111;
+               return_label111: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+              }
+            }
+          }
+        }
+      }
+    }
+  } else { /*if*/
+    if (once_bool_variable6_112) variable6 = once_value_variable6_112;
+    else {
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
+      variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+      once_value_variable6_112 = variable6;
+      once_bool_variable6_112 = true;
+    }
+    variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      if (once_bool_variable6_113) variable6 = once_value_variable6_113;
+      else {
+        variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+        variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+        once_value_variable6_113 = variable6;
+        once_bool_variable6_113 = true;
+      }
+      variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int((int)UNBOX_Float("), TAG_Int(25)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  TAG_Int(0);
+        variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable11 = variable10;
+        if (UNTAG_Bool(variable11)) { /* and */
+          variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+          variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+        }
+        variable10 = variable11;
+        if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+        variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+        goto return_label114;
+        return_label114: while(false);
+        variable9 = variable10;
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+        variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+        variable12 = variable11;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+        variable5 = variable6 /*s=*/;
+      } else { /*if*/
+        if (once_bool_variable6_115) variable6 = once_value_variable6_115;
+        else {
+          variable6 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+          variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+          once_value_variable6_115 = variable6;
+          once_bool_variable6_115 = true;
+        }
+        variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+        if (UNTAG_Bool(variable6)) { /*if*/
+          variable6 = NEW_string___String___init(); /*new String*/
+          variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float(-UNBOX_Float("), TAG_Int(23)); /*new String*/
+          variable8 = variable7;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+          variable9 =  TAG_Int(0);
+          variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable11 = variable10;
+          if (UNTAG_Bool(variable11)) { /* and */
+            variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+            variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+          }
+          variable10 = variable11;
+          if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+          variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+          goto return_label116;
+          return_label116: while(false);
+          variable9 = variable10;
+          variable10 = variable9;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+          variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+          variable12 = variable11;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+          variable5 = variable6 /*s=*/;
+        } else { /*if*/
+          if (once_bool_variable6_117) variable6 = once_value_variable6_117;
+          else {
+            variable6 = NEW_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+            variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+            once_value_variable6_117 = variable6;
+            once_bool_variable6_117 = true;
+          }
+          variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+          if (UNTAG_Bool(variable6)) { /*if*/
+            variable6 = NEW_string___String___init(); /*new String*/
+            variable7 = NEW_string___String___with_native(BOX_NativeString("printf(\"%f\\n\", UNBOX_Float("), TAG_Int(27)); /*new String*/
+            variable8 = variable7;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+            variable9 =  TAG_Int(0);
+            variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable11 = variable10;
+            if (UNTAG_Bool(variable11)) { /* and */
+              variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+              variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+            }
+            variable10 = variable11;
+            if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+            variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+            goto return_label118;
+            return_label118: while(false);
+            variable9 = variable10;
+            variable10 = variable9;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+            variable11 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+            variable12 = variable11;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+            ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+          } else { /*if*/
+            if (once_bool_variable6_119) variable6 = once_value_variable6_119;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_119 = variable6;
+              once_bool_variable6_119 = true;
+            }
+            variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              variable6 = NEW_string___String___init(); /*new String*/
+              variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int((int)UNBOX_Float("), TAG_Int(25)); /*new String*/
+              variable8 = variable7;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+              variable9 =  TAG_Int(0);
+              variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable11 = variable10;
+              if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+              }
+              variable10 = variable11;
+              if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+              variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+              goto return_label120;
+              return_label120: while(false);
+              variable9 = variable10;
+              variable10 = variable9;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+              variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+              variable12 = variable11;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+              variable5 = variable6 /*s=*/;
+            } else { /*if*/
+              if (once_bool_variable6_121) variable6 = once_value_variable6_121;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_121 = variable6;
+               once_bool_variable6_121 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label122;
+               return_label122: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")+UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label123;
+               return_label123: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_124) variable6 = once_value_variable6_124;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_124 = variable6;
+               once_bool_variable6_124 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label125;
+               return_label125: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label126;
+               return_label126: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_127) variable6 = once_value_variable6_127;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_127 = variable6;
+               once_bool_variable6_127 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label128;
+               return_label128: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")*UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label129;
+               return_label129: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_130) variable6 = once_value_variable6_130;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_130 = variable6;
+               once_bool_variable6_130 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label131;
+               return_label131: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")/UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label132;
+               return_label132: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_133) variable6 = once_value_variable6_133;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_133 = variable6;
+               once_bool_variable6_133 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label134;
+               return_label134: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label135;
+               return_label135: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_136) variable6 = once_value_variable6_136;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_136 = variable6;
+               once_bool_variable6_136 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label137;
+               return_label137: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>UNBOX_Float("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label138;
+               return_label138: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_139) variable6 = once_value_variable6_139;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_139 = variable6;
+               once_bool_variable6_139 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label140;
+               return_label140: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<=UNBOX_Float("), TAG_Int(15)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label141;
+               return_label141: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_142) variable6 = once_value_variable6_142;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_142 = variable6;
+               once_bool_variable6_142 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label143;
+               return_label143: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>=UNBOX_Float("), TAG_Int(15)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label144;
+               return_label144: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+              }
+            }
+          }
+        }
+      }
+    } else { /*if*/
+      if (once_bool_variable6_145) variable6 = once_value_variable6_145;
+      else {
+        variable6 = NEW_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+        variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+        once_value_variable6_145 = variable6;
+        once_bool_variable6_145 = true;
+      }
+      variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        if (once_bool_variable6_146) variable6 = once_value_variable6_146;
+        else {
+          variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+          variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+          once_value_variable6_146 = variable6;
+          once_bool_variable6_146 = true;
+        }
+        variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+        if (UNTAG_Bool(variable6)) { /*if*/
+          variable6 = NEW_string___String___init(); /*new String*/
+          variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)); /*new String*/
+          variable8 = variable7;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+          variable9 =  TAG_Int(0);
+          variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable11 = variable10;
+          if (UNTAG_Bool(variable11)) { /* and */
+            variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+            variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+          }
+          variable10 = variable11;
+          if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+          variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+          goto return_label147;
+          return_label147: while(false);
+          variable9 = variable10;
+          variable10 = variable9;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+          variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+          variable12 = variable11;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+          variable5 = variable6 /*s=*/;
+        } else { /*if*/
+          if (once_bool_variable6_148) variable6 = once_value_variable6_148;
+          else {
+            variable6 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+            variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+            once_value_variable6_148 = variable6;
+            once_bool_variable6_148 = true;
+          }
+          variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+          if (UNTAG_Bool(variable6)) { /*if*/
+            variable6 = NEW_string___String___init(); /*new String*/
+            variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(-UNTAG_Char("), TAG_Int(21)); /*new String*/
+            variable8 = variable7;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+            variable9 =  TAG_Int(0);
+            variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable11 = variable10;
+            if (UNTAG_Bool(variable11)) { /* and */
+              variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+              variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+            }
+            variable10 = variable11;
+            if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+            variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+            goto return_label149;
+            return_label149: while(false);
+            variable9 = variable10;
+            variable10 = variable9;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+            variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+            variable12 = variable11;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+            variable5 = variable6 /*s=*/;
+          } else { /*if*/
+            if (once_bool_variable6_150) variable6 = once_value_variable6_150;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_150 = variable6;
+              once_bool_variable6_150 = true;
+            }
+            variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              variable6 = NEW_string___String___init(); /*new String*/
+              variable7 = NEW_string___String___with_native(BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char("), TAG_Int(39)); /*new String*/
+              variable8 = variable7;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+              variable9 =  TAG_Int(0);
+              variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable11 = variable10;
+              if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+              }
+              variable10 = variable11;
+              if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+              variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+              goto return_label151;
+              return_label151: while(false);
+              variable9 = variable10;
+              variable10 = variable9;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+              variable11 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+              variable12 = variable11;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+              ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+            } else { /*if*/
+              if (once_bool_variable6_152) variable6 = once_value_variable6_152;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_152 = variable6;
+               once_bool_variable6_152 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char("), TAG_Int(34)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label153;
+               return_label153: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_154) variable6 = once_value_variable6_154;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_154 = variable6;
+               once_bool_variable6_154 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label155;
+               return_label155: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_156) variable6 = once_value_variable6_156;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_156 = variable6;
+               once_bool_variable6_156 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label157;
+               return_label157: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_158) variable6 = once_value_variable6_158;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_158 = variable6;
+               once_bool_variable6_158 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label159;
+               return_label159: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-'0')"), TAG_Int(6)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_160) variable6 = once_value_variable6_160;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_160 = variable6;
+               once_bool_variable6_160 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label161;
+               return_label161: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")+UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label162;
+               return_label162: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_163) variable6 = once_value_variable6_163;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_163 = variable6;
+               once_bool_variable6_163 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label164;
+               return_label164: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")-UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label165;
+               return_label165: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_166) variable6 = once_value_variable6_166;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_166 = variable6;
+               once_bool_variable6_166 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label167;
+               return_label167: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")*UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label168;
+               return_label168: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_169) variable6 = once_value_variable6_169;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_169 = variable6;
+               once_bool_variable6_169 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label170;
+               return_label170: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")/UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label171;
+               return_label171: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_172) variable6 = once_value_variable6_172;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_172 = variable6;
+               once_bool_variable6_172 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label173;
+               return_label173: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")%UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label174;
+               return_label174: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_175) variable6 = once_value_variable6_175;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_175 = variable6;
+               once_bool_variable6_175 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label176;
+               return_label176: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label177;
+               return_label177: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_178) variable6 = once_value_variable6_178;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_178 = variable6;
+               once_bool_variable6_178 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label179;
+               return_label179: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>UNTAG_Char("), TAG_Int(13)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label180;
+               return_label180: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_181) variable6 = once_value_variable6_181;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_181 = variable6;
+               once_bool_variable6_181 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label182;
+               return_label182: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")<=UNTAG_Char("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label183;
+               return_label183: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_184) variable6 = once_value_variable6_184;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_184 = variable6;
+               once_bool_variable6_184 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label185;
+               return_label185: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")>=UNTAG_Char("), TAG_Int(14)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label186;
+               return_label186: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_187) variable6 = once_value_variable6_187;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_187 = variable6;
+               once_bool_variable6_187 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label188;
+               return_label188: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label189;
+               return_label189: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_190) variable6 = once_value_variable6_190;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_190 = variable6;
+               once_bool_variable6_190 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label191;
+               return_label191: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label192;
+               return_label192: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+               }
+              }
+            }
+          }
+        }
+      } else { /*if*/
+        if (once_bool_variable6_193) variable6 = once_value_variable6_193;
+        else {
+          variable6 = NEW_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+          variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+          once_value_variable6_193 = variable6;
+          once_bool_variable6_193 = true;
+        }
+        variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+        if (UNTAG_Bool(variable6)) { /*if*/
+          if (once_bool_variable6_194) variable6 = once_value_variable6_194;
+          else {
+            variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+            variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+            once_value_variable6_194 = variable6;
+            once_bool_variable6_194 = true;
+          }
+          variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+          if (UNTAG_Bool(variable6)) { /*if*/
+            variable6 = NEW_string___String___init(); /*new String*/
+            variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)); /*new String*/
+            variable8 = variable7;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+            variable9 =  TAG_Int(0);
+            variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable11 = variable10;
+            if (UNTAG_Bool(variable11)) { /* and */
+              variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+              variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+            }
+            variable10 = variable11;
+            if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+            variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+            goto return_label195;
+            return_label195: while(false);
+            variable9 = variable10;
+            variable10 = variable9;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+            variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+            variable12 = variable11;
+            ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+            variable5 = variable6 /*s=*/;
+          } else { /*if*/
+            if (once_bool_variable6_196) variable6 = once_value_variable6_196;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_196 = variable6;
+              once_bool_variable6_196 = true;
+            }
+            variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              variable6 = NEW_string___String___init(); /*new String*/
+              variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(-UNTAG_Bool("), TAG_Int(21)); /*new String*/
+              variable8 = variable7;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+              variable9 =  TAG_Int(0);
+              variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable11 = variable10;
+              if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+              }
+              variable10 = variable11;
+              if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+              variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+              goto return_label197;
+              return_label197: while(false);
+              variable9 = variable10;
+              variable10 = variable9;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+              variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+              variable12 = variable11;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+              variable5 = variable6 /*s=*/;
+            } else { /*if*/
+              if (once_bool_variable6_198) variable6 = once_value_variable6_198;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_198 = variable6;
+               once_bool_variable6_198 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("(void)printf(UNTAG_Bool("), TAG_Int(24)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label199;
+               return_label199: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")?\"true\\n\":\"false\\n\");"), TAG_Int(22)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+              } else { /*if*/
+               if (once_bool_variable6_200) variable6 = once_value_variable6_200;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_200 = variable6;
+               once_bool_variable6_200 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Bool("), TAG_Int(20)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label201;
+               return_label201: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_202) variable6 = once_value_variable6_202;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_202 = variable6;
+               once_bool_variable6_202 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label203;
+               return_label203: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_204) variable6 = once_value_variable6_204;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_204 = variable6;
+               once_bool_variable6_204 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label205;
+               return_label205: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label206;
+               return_label206: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_207) variable6 = once_value_variable6_207;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_207 = variable6;
+               once_bool_variable6_207 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label208;
+               return_label208: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label209;
+               return_label209: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               }
+               }
+               }
+               }
+              }
+            }
+          }
+        } else { /*if*/
+          if (once_bool_variable6_210) variable6 = once_value_variable6_210;
+          else {
+            variable6 = NEW_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
+            variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+            once_value_variable6_210 = variable6;
+            once_bool_variable6_210 = true;
+          }
+          variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+          if (UNTAG_Bool(variable6)) { /*if*/
+            if (once_bool_variable6_211) variable6 = once_value_variable6_211;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_211 = variable6;
+              once_bool_variable6_211 = true;
+            }
+            variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              variable6 = NEW_string___String___init(); /*new String*/
+              variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeArray("), TAG_Int(26)); /*new String*/
+              variable8 = variable7;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+              variable9 =  TAG_Int(0);
+              variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable11 = variable10;
+              if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+              }
+              variable10 = variable11;
+              if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+              variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+              goto return_label212;
+              return_label212: while(false);
+              variable9 = variable10;
+              variable10 = variable9;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+              variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+              variable12 = variable11;
+              ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+              variable5 = variable6 /*s=*/;
+            } else { /*if*/
+              if (once_bool_variable6_213) variable6 = once_value_variable6_213;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_213 = variable6;
+               once_bool_variable6_213 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label214;
+               return_label214: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label215;
+               return_label215: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(")]"), TAG_Int(2)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_216) variable6 = once_value_variable6_216;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_216 = variable6;
+               once_bool_variable6_216 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label217;
+               return_label217: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label218;
+               return_label218: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(")]="), TAG_Int(3)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable17 =  TAG_Int(2);
+               variable18 = TAG_Bool(UNTAG_Int( variable17 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable19 = variable18;
+               if (UNTAG_Bool(variable19)) { /* and */
+               variable19 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable19 = TAG_Bool(UNTAG_Int( variable17 /*index*/)<UNTAG_Int(variable19));
+               }
+               variable18 = variable19;
+               if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable18 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable18 = UNBOX_NativeArray(variable18)[UNTAG_Int( variable17 /*index*/)];
+               goto return_label219;
+               return_label219: while(false);
+               variable17 = variable18;
+               variable18 = variable17;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+               variable19 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+               variable20 = variable19;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               } else { /*if*/
+               if (once_bool_variable6_220) variable6 = once_value_variable6_220;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_220 = variable6;
+               once_bool_variable6_220 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeArray("), TAG_Int(31)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(1);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label221;
+               return_label221: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("), UNBOX_NativeArray("), TAG_Int(21)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(0);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label222;
+               return_label222: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable17 =  TAG_Int(2);
+               variable18 = TAG_Bool(UNTAG_Int( variable17 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable19 = variable18;
+               if (UNTAG_Bool(variable19)) { /* and */
+               variable19 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable19 = TAG_Bool(UNTAG_Int( variable17 /*index*/)<UNTAG_Int(variable19));
+               }
+               variable18 = variable19;
+               if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable18 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable18 = UNBOX_NativeArray(variable18)[UNTAG_Int( variable17 /*index*/)];
+               goto return_label223;
+               return_label223: while(false);
+               variable17 = variable18;
+               variable18 = variable17;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+               variable19 = NEW_string___String___with_native(BOX_NativeString(")*sizeof(val_t));"), TAG_Int(17)); /*new String*/
+               variable20 = variable19;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               }
+               }
+              }
+            }
+          } else { /*if*/
+            if (once_bool_variable6_224) variable6 = once_value_variable6_224;
+            else {
+              variable6 = NEW_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
+              variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+              once_value_variable6_224 = variable6;
+              once_bool_variable6_224 = true;
+            }
+            variable6 = TAG_Bool(( variable3 /*c*/ == variable6) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, variable6) /*Symbol::==*/)))));
+            if (UNTAG_Bool(variable6)) { /*if*/
+              if (once_bool_variable6_225) variable6 = once_value_variable6_225;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_225 = variable6;
+               once_bool_variable6_225 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeString("), TAG_Int(27)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label226;
+               return_label226: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_227) variable6 = once_value_variable6_227;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("atoi"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_227 = variable6;
+               once_bool_variable6_227 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString("), TAG_Int(32)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label228;
+               return_label228: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_229) variable6 = once_value_variable6_229;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_229 = variable6;
+               once_bool_variable6_229 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Char(UNBOX_NativeString("), TAG_Int(28)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label230;
+               return_label230: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label231;
+               return_label231: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(")])"), TAG_Int(3)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_232) variable6 = once_value_variable6_232;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_232 = variable6;
+               once_bool_variable6_232 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("UNBOX_NativeString("), TAG_Int(19)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label233;
+               return_label233: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label234;
+               return_label234: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(")]=UNTAG_Char("), TAG_Int(14)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable17 =  TAG_Int(2);
+               variable18 = TAG_Bool(UNTAG_Int( variable17 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable19 = variable18;
+               if (UNTAG_Bool(variable19)) { /* and */
+               variable19 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable19 = TAG_Bool(UNTAG_Int( variable17 /*index*/)<UNTAG_Int(variable19));
+               }
+               variable18 = variable19;
+               if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable18 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable18 = UNBOX_NativeArray(variable18)[UNTAG_Int( variable17 /*index*/)];
+               goto return_label235;
+               return_label235: while(false);
+               variable17 = variable18;
+               variable18 = variable17;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+               variable19 = NEW_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
+               variable20 = variable19;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               } else { /*if*/
+               if (once_bool_variable6_236) variable6 = once_value_variable6_236;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_236 = variable6;
+               once_bool_variable6_236 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeString("), TAG_Int(32)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(1);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label237;
+               return_label237: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(4);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label238;
+               return_label238: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString("), UNBOX_NativeString("), TAG_Int(22)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable17 =  TAG_Int(0);
+               variable18 = TAG_Bool(UNTAG_Int( variable17 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable19 = variable18;
+               if (UNTAG_Bool(variable19)) { /* and */
+               variable19 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable19 = TAG_Bool(UNTAG_Int( variable17 /*index*/)<UNTAG_Int(variable19));
+               }
+               variable18 = variable19;
+               if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable18 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable18 = UNBOX_NativeArray(variable18)[UNTAG_Int( variable17 /*index*/)];
+               goto return_label239;
+               return_label239: while(false);
+               variable17 = variable18;
+               variable18 = variable17;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+               variable19 = NEW_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
+               variable20 = variable19;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable20) /*String::append*/;
+               variable21 =  TAG_Int(3);
+               variable22 = TAG_Bool(UNTAG_Int( variable21 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable23 = variable22;
+               if (UNTAG_Bool(variable23)) { /* and */
+               variable23 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable23 = TAG_Bool(UNTAG_Int( variable21 /*index*/)<UNTAG_Int(variable23));
+               }
+               variable22 = variable23;
+               if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable22 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable22 = UNBOX_NativeArray(variable22)[UNTAG_Int( variable21 /*index*/)];
+               goto return_label240;
+               return_label240: while(false);
+               variable21 = variable22;
+               variable22 = variable21;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable22) /*String::append*/;
+               variable23 = NEW_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)); /*new String*/
+               variable24 = variable23;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable24) /*String::append*/;
+               variable25 =  TAG_Int(2);
+               variable26 = TAG_Bool(UNTAG_Int( variable25 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable27 = variable26;
+               if (UNTAG_Bool(variable27)) { /* and */
+               variable27 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable27 = TAG_Bool(UNTAG_Int( variable25 /*index*/)<UNTAG_Int(variable27));
+               }
+               variable26 = variable27;
+               if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable26 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable26 = UNBOX_NativeArray(variable26)[UNTAG_Int( variable25 /*index*/)];
+               goto return_label241;
+               return_label241: while(false);
+               variable25 = variable26;
+               variable26 = variable25;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable26) /*String::append*/;
+               variable27 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+               variable28 = variable27;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable28) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               }
+               }
+               }
+               }
+              }
+            } else { /*if*/
+              if (once_bool_variable6_242) variable6 = once_value_variable6_242;
+              else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_242 = variable6;
+               once_bool_variable6_242 = true;
+              }
+              variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+              if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Int((int)"), TAG_Int(13)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label243;
+               return_label243: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+              } else { /*if*/
+               if (once_bool_variable6_244) variable6 = once_value_variable6_244;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("sys"), TAG_Int(3)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_244 = variable6;
+               once_bool_variable6_244 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___with_native(BOX_NativeString("(G_sys)"), TAG_Int(7)); /*new String*/
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_245) variable6 = once_value_variable6_245;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("is_same_type"), TAG_Int(12)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_245 = variable6;
+               once_bool_variable6_245 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool((VAL2VFT("), TAG_Int(18)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(0);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label246;
+               return_label246: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(")==VAL2VFT("), TAG_Int(11)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable13 =  TAG_Int(1);
+               variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable15 = variable14;
+               if (UNTAG_Bool(variable15)) { /* and */
+               variable15 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+               }
+               variable14 = variable15;
+               if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable14 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+               goto return_label247;
+               return_label247: while(false);
+               variable13 = variable14;
+               variable14 = variable13;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_248) variable6 = once_value_variable6_248;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("exit"), TAG_Int(4)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_248 = variable6;
+               once_bool_variable6_248 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("exit(UNTAG_Int("), TAG_Int(15)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(1);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label249;
+               return_label249: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               } else { /*if*/
+               if (once_bool_variable6_250) variable6 = once_value_variable6_250;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("calloc_array"), TAG_Int(12)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_250 = variable6;
+               once_bool_variable6_250 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_NativeArray((val_t*)malloc((UNTAG_Int("), TAG_Int(42)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(1);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label251;
+               return_label251: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(") * sizeof(val_t))))"), TAG_Int(20)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               if (once_bool_variable6_252) variable6 = once_value_variable6_252;
+               else {
+               variable6 = NEW_string___String___with_native(BOX_NativeString("calloc_string"), TAG_Int(13)); /*new String*/
+               variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+               once_value_variable6_252 = variable6;
+               once_bool_variable6_252 = true;
+               }
+               variable6 = TAG_Bool(( variable4 /*n*/ == variable6) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, variable6) /*Symbol::==*/)))));
+               if (UNTAG_Bool(variable6)) { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("BOX_NativeString((char*)malloc((UNTAG_Int("), TAG_Int(42)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  TAG_Int(1);
+               variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               variable11 = variable10;
+               if (UNTAG_Bool(variable11)) { /* and */
+               variable11 = ATTR_array___AbstractArray____length( variable2 /*p*/) /*Array::_length*/;
+               variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+               }
+               variable10 = variable11;
+               if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+               variable10 = ATTR_array___Array____items( variable2 /*p*/) /*Array::_items*/;
+               variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+               goto return_label253;
+               return_label253: while(false);
+               variable9 = variable10;
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+               variable11 = NEW_string___String___with_native(BOX_NativeString(") * sizeof(char))))"), TAG_Int(19)); /*new String*/
+               variable12 = variable11;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+               variable5 = variable6 /*s=*/;
+               } else { /*if*/
+               variable6 = NEW_string___String___init(); /*new String*/
+               variable7 = NEW_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Intern "), TAG_Int(24)); /*new String*/
+               variable8 = variable7;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+               variable9 =  variable4 /*n*/;
+               variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+               variable10 = NEW_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1);"), TAG_Int(18)); /*new String*/
+               variable11 = variable10;
+               ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable6) /*CompilerVisitor::add_instr*/;
+               }
+               }
+               }
+               }
+               }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  variable6 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*method*/) /*MMSrcMethod::signature*/;
+  variable6 = ((static_type___MMSignature___return_type_t)CALL(variable6,COLOR_static_type___MMSignature___return_type))(variable6) /*MMSignature::return_type*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable6 ==  NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  variable7 = variable6;
+  if (UNTAG_Bool(variable7)) { /* and */
+    variable7 = TAG_Bool(( variable5 /*s*/ ==  NIT_NULL /*null*/) || (( variable5 /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable5 /*s*/,COLOR_kernel___Object_____eqeq))( variable5 /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  }
+  variable6 = variable7;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("NIT_NULL /*stub*/"), TAG_Int(17)); /*new String*/
+    variable5 = variable6 /*s=*/;
+  }
+  variable3 =  variable5 /*s*/;
+  goto return_label57;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t compiling_methods___PExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::PExpr::compile_expr (src/compiling//compiling_methods.nit:666,2--668:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method compile_expr called (src/compiling//compiling_methods.nit:666,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void compiling_methods___PExpr___prepare_compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::PExpr::prepare_compile_stmt (src/compiling//compiling_methods.nit:670,2--673:45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___PExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::PExpr::compile_stmt (src/compiling//compiling_methods.nit:675,2--677:57)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("Error!"), TAG_Int(6)); /*new String*/
+  ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable1) /*PExpr::printl*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___ABlockExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ABlockExpr::compile_stmt (src/compiling//compiling_methods.nit:681,2--684:19)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ABlockExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ABlockExpr___n_expr))( self) /*ABlockExpr::n_expr*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/,  variable2 /*n*/) /*CompilerVisitor::compile_stmt*/;
+    continue_257: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_257: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AVardeclExpr___prepare_compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AVardeclExpr::prepare_compile_stmt (src/compiling//compiling_methods.nit:690,2--693:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+  variable1 = variable2;
+  variable2 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable3 = ((typing___AVardeclExpr___variable_t)CALL( self,COLOR_typing___AVardeclExpr___variable))( self) /*AVardeclExpr::variable*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable2,COLOR_abstract_collection___Map_____braeq))(variable2, variable3,  variable1 /*cname*/) /*Map::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AVardeclExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AVardeclExpr::compile_stmt (src/compiling//compiling_methods.nit:696,2--704:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable3 = ((typing___AVardeclExpr___variable_t)CALL( self,COLOR_typing___AVardeclExpr___variable))( self) /*AVardeclExpr::variable*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable3) /*Map::[]*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = ((typing___AVardeclExpr___variable_t)CALL( self,COLOR_typing___AVardeclExpr___variable))( self) /*AVardeclExpr::variable*/;
+    variable3 = ((syntax_base___Variable___stype_t)CALL(variable3,COLOR_syntax_base___Variable___stype))(variable3) /*Variable::stype*/;
+    variable2 = variable3;
+    variable3 = NEW_string___String___init(); /*new String*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+    variable6 = ((compiling_base___MMType___default_cvalue_t)CALL( variable2 /*t*/,COLOR_compiling_base___MMType___default_cvalue))( variable2 /*t*/) /*MMType::default_cvalue*/;
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" /*decl variable "), TAG_Int(17)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+    variable10 = ((typing___AVardeclExpr___variable_t)CALL( self,COLOR_typing___AVardeclExpr___variable))( self) /*AVardeclExpr::variable*/;
+    variable10 = ((syntax_base___Variable___name_t)CALL(variable10,COLOR_syntax_base___Variable___name))(variable10) /*Variable::name*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable1 /*cname*/, variable3) /*CompilerVisitor::add_assignment*/;
+  } else { /*if*/
+    variable3 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
+    variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+    variable2 = variable3;
+    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable1 /*cname*/,  variable2 /*e*/) /*CompilerVisitor::add_assignment*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AReturnExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AReturnExpr::compile_stmt (src/compiling//compiling_methods.nit:710,2--717:38)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((compiling_methods___CompilerVisitor___has_return__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___has_return__eq))( variable0 /*v*/,  TAG_Bool(true)) /*CompilerVisitor::has_return=*/;
+  variable1 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+    variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+    variable1 = variable2;
+    variable2 = ((compiling_methods___CompilerVisitor___return_value_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_value))( variable0 /*v*/) /*CompilerVisitor::return_value*/;
+    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/, variable2,  variable1 /*e*/) /*CompilerVisitor::add_assignment*/;
+  }
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_methods___CompilerVisitor___return_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___return_label))( variable0 /*v*/) /*CompilerVisitor::return_label*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___ABreakExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ABreakExpr::compile_stmt (src/compiling//compiling_methods.nit:722,2--724:37)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_methods___CompilerVisitor___break_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label))( variable0 /*v*/) /*CompilerVisitor::break_label*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AContinueExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AContinueExpr::compile_stmt (src/compiling//compiling_methods.nit:729,2--731:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_methods___CompilerVisitor___continue_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label))( variable0 /*v*/) /*CompilerVisitor::continue_label*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AAbortExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAbortExpr::compile_stmt (src/compiling//compiling_methods.nit:736,2--738:71)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Aborted: "), TAG_Int(26)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_prod___Prod___locate_t)CALL( self,COLOR_parser_prod___PNode___locate))( self) /*AAbortExpr::locate*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1);"), TAG_Int(18)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___ADoExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ADoExpr::compile_stmt (src/compiling//compiling_methods.nit:743,2--746:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ADoExpr___n_block_t)CALL( self,COLOR_parser_nodes___ADoExpr___n_block))( self) /*ADoExpr::n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((parser_nodes___ADoExpr___n_block_t)CALL( self,COLOR_parser_nodes___ADoExpr___n_block))( self) /*ADoExpr::n_block*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable1) /*CompilerVisitor::compile_stmt*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AIfExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AIfExpr::compile_stmt (src/compiling//compiling_methods.nit:752,2--768:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  variable2 = ((parser_nodes___AIfExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_then))( self) /*AIfExpr::n_then*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+    variable2 = ((parser_nodes___AIfExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_then))( self) /*AIfExpr::n_then*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_stmt*/;
+    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  }
+  variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)); /*new String*/
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+    ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+    variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_stmt*/;
+    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  }
+  variable2 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AIfexprExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AIfexprExpr::compile_expr (src/compiling//compiling_methods.nit:773,2--788:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable3 = ((parser_nodes___AIfexprExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_then))( self) /*AIfexprExpr::n_then*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable3 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/, variable3) /*CompilerVisitor::ensure_var*/;
+  variable2 = variable3;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable2 /*e*/) /*CompilerVisitor::free_var*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable4 = ((parser_nodes___AIfexprExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_else))( self) /*AIfexprExpr::n_else*/;
+  variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable4) /*CompilerVisitor::compile_expr*/;
+  variable4 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/, variable4) /*CompilerVisitor::ensure_var*/;
+  variable3 = variable4;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable2 /*e*/,  variable3 /*e2*/) /*CompilerVisitor::add_assignment*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable1 =  variable2 /*e*/;
+  goto return_label266;
+  return_label266: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_methods___AControlableBlock___compile_inside_block(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AControlableBlock::compile_inside_block (src/compiling//compiling_methods.nit:793,2--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method compile_inside_block called (src/compiling//compiling_methods.nit:793,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AControlableBlock___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AControlableBlock::compile_stmt (src/compiling//compiling_methods.nit:794,2--806:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___break_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label))( variable0 /*v*/) /*CompilerVisitor::break_label*/;
+  variable1 = variable2;
+  variable3 = ((compiling_methods___CompilerVisitor___continue_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label))( variable0 /*v*/) /*CompilerVisitor::continue_label*/;
+  variable2 = variable3;
+  variable4 = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable0 /*v*/) /*CompilerVisitor::new_number*/;
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("break_"), TAG_Int(6)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable3 /*id*/;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  ((compiling_methods___CompilerVisitor___break_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label__eq))( variable0 /*v*/, variable4) /*CompilerVisitor::break_label=*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("continue_"), TAG_Int(9)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable3 /*id*/;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  ((compiling_methods___CompilerVisitor___continue_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label__eq))( variable0 /*v*/, variable4) /*CompilerVisitor::continue_label=*/;
+  ((compiling_methods___AControlableBlock___compile_inside_block_t)CALL( self,COLOR_compiling_methods___AControlableBlock___compile_inside_block))( self,  variable0 /*v*/) /*AControlableBlock::compile_inside_block*/;
+  ((compiling_methods___CompilerVisitor___break_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label__eq))( variable0 /*v*/,  variable1 /*old_break_label*/) /*CompilerVisitor::break_label=*/;
+  ((compiling_methods___CompilerVisitor___continue_label__eq_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label__eq))( variable0 /*v*/,  variable2 /*old_continue_label*/) /*CompilerVisitor::continue_label=*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AWhileExpr___compile_inside_block(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AWhileExpr::compile_inside_block (src/compiling//compiling_methods.nit:811,2--824:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("while (true) { /*while*/"), TAG_Int(24)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable1) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable2 = ((parser_nodes___AWhileExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AWhileExpr___n_expr))( self) /*AWhileExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")) break; /* while*/"), TAG_Int(20)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  variable2 = ((parser_nodes___AWhileExpr___n_block_t)CALL( self,COLOR_parser_nodes___AWhileExpr___n_block))( self) /*AWhileExpr::n_block*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AWhileExpr___n_block_t)CALL( self,COLOR_parser_nodes___AWhileExpr___n_block))( self) /*AWhileExpr::n_block*/;
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_stmt*/;
+  }
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 = ((compiling_methods___CompilerVisitor___continue_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label))( variable0 /*v*/) /*CompilerVisitor::continue_label*/;
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 = ((compiling_methods___CompilerVisitor___break_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label))( variable0 /*v*/) /*CompilerVisitor::break_label*/;
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AForExpr___compile_inside_block(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AForExpr::compile_inside_block (src/compiling//compiling_methods.nit:829,2--831:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AForExpr___n_vardecl_t)CALL( self,COLOR_parser_nodes___AForExpr___n_vardecl))( self) /*AForExpr::n_vardecl*/;
+  ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/, variable1) /*CompilerVisitor::compile_stmt*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AForVardeclExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AForVardeclExpr::compile_stmt (src/compiling//compiling_methods.nit:836,2--883:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  static val_t once_value_variable4_271; static int once_bool_variable4_271;
+  val_t variable5;
+  val_t variable6;
+  static val_t once_value_variable6_272; static int once_bool_variable6_272;
+  val_t variable7;
+  static val_t once_value_variable7_273; static int once_bool_variable7_273;
+  val_t variable8;
+  static val_t once_value_variable8_274; static int once_bool_variable8_274;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
+  variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
+  if (once_bool_variable4_271) variable4 = once_value_variable4_271;
+  else {
+    variable4 = NEW_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
+    variable4 = ((symbol___String___to_symbol_t)CALL(variable4,COLOR_symbol___String___to_symbol))(variable4) /*String::to_symbol*/;
+    once_value_variable4_271 = variable4;
+    once_bool_variable4_271 = true;
+  }
+  variable3 = ((static_type___MMType___select_method_t)CALL(variable3,COLOR_static_type___MMType___select_method))(variable3, variable4) /*MMType::select_method*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable2 /*prop*/ ==  NIT_NULL /*null*/) || (( variable2 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))( variable2 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("No iterator"), TAG_Int(11)); /*new String*/
+    ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable3) /*AForVardeclExpr::printl*/;
+    goto return_label270;
+  }
+  variable4 = ((genericity___MMLocalProperty___signature_t)CALL( variable2 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable2 /*prop*/) /*MMMethod::signature*/;
+  variable4 = ((static_type___MMSignature___return_type_t)CALL(variable4,COLOR_static_type___MMSignature___return_type))(variable4) /*MMSignature::return_type*/;
+  variable3 = variable4;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  variable5 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+  variable4 = variable5;
+  variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable1 /*e*/) /*Array::add*/;
+  variable5 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable2 /*prop*/,COLOR_compiling_methods___MMMethod___compile_call))( variable2 /*prop*/,  variable0 /*v*/, variable5) /*MMMethod::compile_call*/;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable4 /*iter*/, variable5) /*CompilerVisitor::add_assignment*/;
+  if (once_bool_variable6_272) variable6 = once_value_variable6_272;
+  else {
+    variable6 = NEW_string___String___with_native(BOX_NativeString("is_ok"), TAG_Int(5)); /*new String*/
+    variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+    once_value_variable6_272 = variable6;
+    once_bool_variable6_272 = true;
+  }
+  variable6 = ((static_type___MMType___select_method_t)CALL( variable3 /*ittype*/,COLOR_static_type___MMType___select_method))( variable3 /*ittype*/, variable6) /*MMType::select_method*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(( variable5 /*prop2*/ ==  NIT_NULL /*null*/) || (( variable5 /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))( variable5 /*prop2*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("No is_ok"), TAG_Int(8)); /*new String*/
+    ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable6) /*AForVardeclExpr::printl*/;
+    goto return_label270;
+  }
+  if (once_bool_variable7_273) variable7 = once_value_variable7_273;
+  else {
+    variable7 = NEW_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
+    variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
+    once_value_variable7_273 = variable7;
+    once_bool_variable7_273 = true;
+  }
+  variable7 = ((static_type___MMType___select_method_t)CALL( variable3 /*ittype*/,COLOR_static_type___MMType___select_method))( variable3 /*ittype*/, variable7) /*MMType::select_method*/;
+  variable6 = variable7;
+  variable7 = TAG_Bool(( variable6 /*prop3*/ ==  NIT_NULL /*null*/) || (( variable6 /*prop3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*prop3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*prop3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*prop3*/,COLOR_kernel___Object_____eqeq))( variable6 /*prop3*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("No item"), TAG_Int(7)); /*new String*/
+    ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable7) /*AForVardeclExpr::printl*/;
+    goto return_label270;
+  }
+  if (once_bool_variable8_274) variable8 = once_value_variable8_274;
+  else {
+    variable8 = NEW_string___String___with_native(BOX_NativeString("next"), TAG_Int(4)); /*new String*/
+    variable8 = ((symbol___String___to_symbol_t)CALL(variable8,COLOR_symbol___String___to_symbol))(variable8) /*String::to_symbol*/;
+    once_value_variable8_274 = variable8;
+    once_bool_variable8_274 = true;
+  }
+  variable8 = ((static_type___MMType___select_method_t)CALL( variable3 /*ittype*/,COLOR_static_type___MMType___select_method))( variable3 /*ittype*/, variable8) /*MMType::select_method*/;
+  variable7 = variable8;
+  variable8 = TAG_Bool(( variable7 /*prop4*/ ==  NIT_NULL /*null*/) || (( variable7 /*prop4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*prop4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*prop4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*prop4*/,COLOR_kernel___Object_____eqeq))( variable7 /*prop4*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("No next"), TAG_Int(7)); /*new String*/
+    ((parser_prod___PNode___printl_t)CALL( self,COLOR_parser_prod___PNode___printl))( self, variable8) /*AForVardeclExpr::printl*/;
+    goto return_label270;
+  }
+  variable8 = NEW_string___String___with_native(BOX_NativeString("while (true) { /*for*/"), TAG_Int(22)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable8) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable9 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+  variable8 = variable9;
+  variable9 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  variable4 /*iter*/) /*Array::add*/;
+  variable9 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable5 /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable5 /*prop2*/,  variable0 /*v*/, variable9) /*MMMethod::compile_call*/;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable8 /*ok*/, variable9) /*CompilerVisitor::add_assignment*/;
+  variable9 = NEW_string___String___init(); /*new String*/
+  variable10 = NEW_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable11) /*String::append*/;
+  variable12 =  variable8 /*ok*/;
+  ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(")) break; /*for*/"), TAG_Int(17)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable14) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable9) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable8 /*ok*/) /*CompilerVisitor::free_var*/;
+  variable10 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  variable4 /*iter*/) /*Array::add*/;
+  variable10 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable6 /*prop3*/,COLOR_compiling_methods___MMMethod___compile_call))( variable6 /*prop3*/,  variable0 /*v*/, variable10) /*MMMethod::compile_call*/;
+  variable9 = variable10;
+  variable10 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/,  variable9 /*e*/) /*CompilerVisitor::ensure_var*/;
+  variable9 = variable10 /*e=*/;
+  variable10 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable11 = ((typing___AForVardeclExpr___variable_t)CALL( self,COLOR_typing___AForVardeclExpr___variable))( self) /*AForVardeclExpr::variable*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable10,COLOR_abstract_collection___Map_____braeq))(variable10, variable11,  variable9 /*e*/) /*Map::[]=*/;
+  variable11 = ((parser_prod___PNode___parent_t)CALL( self,COLOR_parser_prod___PNode___parent))( self) /*AForVardeclExpr::parent*/;
+  variable10 = variable11;
+  variable11 = TAG_Bool(( variable10 /*par*/==NIT_NULL) || VAL_ISA( variable10 /*par*/, COLOR_AForExpr, ID_AForExpr)) /*cast AForExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/compiling//compiling_methods.nit:873,3--25\n"); nit_exit(1);}
+  variable12 = ((parser_nodes___AForExpr___n_block_t)CALL( variable10 /*par*/,COLOR_parser_nodes___AForExpr___n_block))( variable10 /*par*/) /*AForExpr::n_block*/;
+  variable11 = variable12;
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable11 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable11 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable0 /*v*/,  variable11 /*n_block*/) /*CompilerVisitor::compile_stmt*/;
+  }
+  variable12 = NEW_string___String___init(); /*new String*/
+  variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable14) /*String::append*/;
+  variable15 = ((compiling_methods___CompilerVisitor___continue_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___continue_label))( variable0 /*v*/) /*CompilerVisitor::continue_label*/;
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable18) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable12) /*CompilerVisitor::add_instr*/;
+  variable12 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  variable4 /*iter*/) /*Array::add*/;
+  variable12 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable7 /*prop4*/,COLOR_compiling_methods___MMMethod___compile_call))( variable7 /*prop4*/,  variable0 /*v*/, variable12) /*MMMethod::compile_call*/;
+  variable9 = variable12 /*e=*/;
+  variable12 = TAG_Bool(( variable9 /*e*/ ==  NIT_NULL /*null*/) || (( variable9 /*e*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable9 /*e*/,COLOR_kernel___Object_____eqeq))( variable9 /*e*/,  NIT_NULL /*null*/) /*String::==*/)));
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/compiling//compiling_methods.nit:880,3--18\n"); nit_exit(1);}
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable12) /*CompilerVisitor::add_instr*/;
+  variable12 = NEW_string___String___init(); /*new String*/
+  variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable14) /*String::append*/;
+  variable15 = ((compiling_methods___CompilerVisitor___break_label_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___break_label))( variable0 /*v*/) /*CompilerVisitor::break_label*/;
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable16) /*String::append*/;
+  variable17 = NEW_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
+  variable18 = variable17;
+  ((string___String___append_t)CALL(variable12,COLOR_abstract_collection___IndexedCollection___append))(variable12, variable18) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable12) /*CompilerVisitor::add_instr*/;
+  return_label270: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AAssertExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAssertExpr::compile_stmt (src/compiling//compiling_methods.nit:888,2--895:100)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("Assert"), TAG_Int(6)); /*new String*/
+  variable2 = variable3;
+  variable3 = ((parser_nodes___AAssertExpr___n_id_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_id))( self) /*AAssertExpr::n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_string___String___init(); /*new String*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("Assert '"), TAG_Int(8)); /*new String*/
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+    variable6 = ((parser_nodes___AAssertExpr___n_id_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_id))( self) /*AAssertExpr::n_id*/;
+    variable6 = ((lexer___Token___text_t)CALL(variable6,COLOR_lexer___Token___text))(variable6) /*TId::text*/;
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString("' "), TAG_Int(2)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+    variable2 = variable3 /*s=*/;
+  }
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \""), TAG_Int(22)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable2 /*s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(" failed: "), TAG_Int(9)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 = ((parser_prod___Prod___locate_t)CALL( self,COLOR_parser_prod___PNode___locate))( self) /*AAssertExpr::locate*/;
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1);}"), TAG_Int(19)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable15) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AVarExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AVarExpr::compile_expr (src/compiling//compiling_methods.nit:900,2--902:54)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable5 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarExpr::variable*/;
+  variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*Map::[]*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarExpr::variable*/;
+  variable8 = ((syntax_base___Variable___name_t)CALL(variable8,COLOR_syntax_base___Variable___name))(variable8) /*Variable::name*/;
+  variable9 = variable8;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+  goto return_label276;
+  return_label276: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_methods___AVarAssignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AVarAssignExpr::compile_stmt (src/compiling//compiling_methods.nit:907,2--910:67)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AVarAssignExpr::n_value*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable3 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarAssignExpr::variable*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable3) /*Map::[]*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarAssignExpr::variable*/;
+  variable9 = ((syntax_base___Variable___name_t)CALL(variable9,COLOR_syntax_base___Variable___name))(variable9) /*Variable::name*/;
+  variable10 = variable9;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("=*/"), TAG_Int(3)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/, variable2, variable3) /*CompilerVisitor::add_assignment*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AVarReassignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AVarReassignExpr::compile_stmt (src/compiling//compiling_methods.nit:915,2--920:67)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable3 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarReassignExpr::variable*/;
+  variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable3) /*Map::[]*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AVarReassignExpr::n_value*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  variable4 = ((typing___AReassignFormExpr___assign_method_t)CALL( self,COLOR_typing___AReassignFormExpr___assign_method))( self) /*AVarReassignExpr::assign_method*/;
+  variable5 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable1 /*e1*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable2 /*e2*/) /*Array::add*/;
+  variable4 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable4,COLOR_compiling_methods___MMMethod___compile_call))(variable4,  variable0 /*v*/, variable5) /*MMMethod::compile_call*/;
+  variable3 = variable4;
+  variable4 = ((compiling_methods___CompilerVisitor___varnames_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___varnames))( variable0 /*v*/) /*CompilerVisitor::varnames*/;
+  variable5 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarReassignExpr::variable*/;
+  variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable5) /*Map::[]*/;
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 =  variable3 /*e3*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+  variable11 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarReassignExpr::variable*/;
+  variable11 = ((syntax_base___Variable___name_t)CALL(variable11,COLOR_syntax_base___Variable___name))(variable11) /*Variable::name*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/, variable4, variable5) /*CompilerVisitor::add_assignment*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___ASelfExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASelfExpr::compile_expr (src/compiling//compiling_methods.nit:925,2--927:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params))( variable0 /*v*/) /*CompilerVisitor::method_params*/;
+  variable2 =  TAG_Int(0);
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = variable1;
+    variable4 = ATTR_array___AbstractArray____length(variable4) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = variable1;
+  variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label280;
+  return_label280: while(false);
+  variable1 = variable3;
+  goto return_label279;
+  return_label279: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AOrExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AOrExpr::compile_expr (src/compiling//compiling_methods.nit:932,2--942:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AOrExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr))( self) /*AOrExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/, variable2) /*CompilerVisitor::ensure_var*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")) { /* or */"), TAG_Int(13)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable3 = ((parser_nodes___AOrExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr2))( self) /*AOrExpr::n_expr2*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable1 /*e*/,  variable2 /*e2*/) /*CompilerVisitor::add_assignment*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  variable1 =  variable1 /*e*/;
+  goto return_label281;
+  return_label281: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AAndExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAndExpr::compile_expr (src/compiling//compiling_methods.nit:947,2--957:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/, variable2) /*CompilerVisitor::ensure_var*/;
+  variable1 = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")) { /* and */"), TAG_Int(14)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable1 /*e*/) /*CompilerVisitor::free_var*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  variable3 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable1 /*e*/,  variable2 /*e2*/) /*CompilerVisitor::add_assignment*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  variable1 =  variable1 /*e*/;
+  goto return_label282;
+  return_label282: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ANotExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ANotExpr::compile_expr (src/compiling//compiling_methods.nit:962,2--964:59)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(" TAG_Bool(!UNTAG_Bool("), TAG_Int(22)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_nodes___ANotExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ANotExpr___n_expr))( self) /*ANotExpr::n_expr*/;
+  variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable4) /*CompilerVisitor::compile_expr*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  goto return_label283;
+  return_label283: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AEeExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AEeExpr::compile_expr (src/compiling//compiling_methods.nit:969,2--973:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AEeExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AEeExpr___n_expr))( self) /*AEeExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___AEeExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AEeExpr___n_expr2))( self) /*AEeExpr::n_expr2*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("TAG_Bool(IS_EQUAL_NN("), TAG_Int(21)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable1 /*e*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable2 /*e2*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable1 = variable3;
+  goto return_label284;
+  return_label284: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AIsaExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AIsaExpr::compile_expr (src/compiling//compiling_methods.nit:978,2--981:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AIsaExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_expr))( self) /*AIsaExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AIsaExpr___n_type_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_type))( self) /*AIsaExpr::n_type*/;
+  variable2 = ((typing___PType___stype_t)CALL(variable2,COLOR_typing___PType___stype))(variable2) /*PType::stype*/;
+  variable2 = ((compiling_methods___MMType___compile_cast_t)CALL(variable2,COLOR_compiling_methods___MMType___compile_cast))(variable2,  variable0 /*v*/,  variable1 /*e*/) /*MMType::compile_cast*/;
+  variable1 = variable2;
+  goto return_label285;
+  return_label285: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ATrueExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ATrueExpr::compile_expr (src/compiling//compiling_methods.nit:986,2--988:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(" TAG_Bool(true)"), TAG_Int(15)); /*new String*/
+  goto return_label286;
+  return_label286: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AFalseExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AFalseExpr::compile_expr (src/compiling//compiling_methods.nit:993,2--995:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(" TAG_Bool(false)"), TAG_Int(16)); /*new String*/
+  goto return_label287;
+  return_label287: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AIntExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AIntExpr::compile_expr (src/compiling//compiling_methods.nit:1000,2--1002:36)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(" TAG_Int("), TAG_Int(9)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_nodes___AIntExpr___n_number_t)CALL( self,COLOR_parser_nodes___AIntExpr___n_number))( self) /*AIntExpr::n_number*/;
+  variable4 = ((lexer___Token___text_t)CALL(variable4,COLOR_lexer___Token___text))(variable4) /*TNumber::text*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  goto return_label288;
+  return_label288: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AFloatExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AFloatExpr::compile_expr (src/compiling//compiling_methods.nit:1007,2--1009:36)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("BOX_Float("), TAG_Int(10)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_nodes___AFloatExpr___n_float_t)CALL( self,COLOR_parser_nodes___AFloatExpr___n_float))( self) /*AFloatExpr::n_float*/;
+  variable4 = ((lexer___Token___text_t)CALL(variable4,COLOR_lexer___Token___text))(variable4) /*TFloat::text*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  goto return_label289;
+  return_label289: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ACharExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ACharExpr::compile_expr (src/compiling//compiling_methods.nit:1014,2--1016:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(" TAG_Char("), TAG_Int(10)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_nodes___ACharExpr___n_char_t)CALL( self,COLOR_parser_nodes___ACharExpr___n_char))( self) /*ACharExpr::n_char*/;
+  variable4 = ((lexer___Token___text_t)CALL(variable4,COLOR_lexer___Token___text))(variable4) /*TChar::text*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  goto return_label290;
+  return_label290: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AStringFormExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AStringFormExpr::compile_expr (src/compiling//compiling_methods.nit:1021,2--1025:107)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_292; static int once_bool_variable3_292;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*AStringFormExpr::stype*/;
+  if (once_bool_variable3_292) variable3 = once_value_variable3_292;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("with_native"), TAG_Int(11)); /*new String*/
+    variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+    once_value_variable3_292 = variable3;
+    once_bool_variable3_292 = true;
+  }
+  variable2 = ((static_type___MMType___select_method_t)CALL(variable2,COLOR_static_type___MMType___select_method))(variable2, variable3) /*MMType::select_method*/;
+  variable1 = variable2;
+  ((compiling_methods___AStringFormExpr___compute_string_info_t)CALL( self,COLOR_compiling_methods___AStringFormExpr___compute_string_info))( self) /*AStringFormExpr::compute_string_info*/;
+  variable2 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("BOX_NativeString(\""), TAG_Int(18)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ATTR_compiling_methods___AStringFormExpr____cstring( self) /*AStringFormExpr::_cstring*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("\")"), TAG_Int(2)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ATTR_compiling_methods___AStringFormExpr____cstring_length( self) /*AStringFormExpr::_cstring_length*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable4) /*Array::add*/;
+  variable2 = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable1 /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable1 /*prop*/,  variable0 /*v*/, variable2) /*MMMethod::compile_constructor_call*/;
+  variable1 = variable2;
+  goto return_label291;
+  return_label291: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AStringFormExpr___string_text(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AStringFormExpr::string_text (src/compiling//compiling_methods.nit:1028,2--1029:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method string_text called (src/compiling//compiling_methods.nit:1028,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void compiling_methods___AStringFormExpr___compute_string_info(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AStringFormExpr::compute_string_info (src/compiling//compiling_methods.nit:1037,2--1059:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+      val_t variable6;
+      val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  variable2 = ((compiling_methods___AStringFormExpr___string_text_t)CALL( self,COLOR_compiling_methods___AStringFormExpr___string_text))( self) /*AStringFormExpr::string_text*/;
+  variable1 = variable2;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable2 = variable3;
+  variable3 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable4 = ((array___AbstractArray___length_t)CALL( variable1 /*str*/,COLOR_abstract_collection___Collection___length))( variable1 /*str*/) /*String::length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)<UNTAG_Int(variable4));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable5 = ((string___String_____bra_t)CALL( variable1 /*str*/,COLOR_abstract_collection___Map_____bra))( variable1 /*str*/,  variable3 /*i*/) /*String::[]*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*c*/)==( TAG_Char('\\')));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = TAG_Int(UNTAG_Int( variable3 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable3 = variable5 /*i=*/;
+      variable6 = ((string___String_____bra_t)CALL( variable1 /*str*/,COLOR_abstract_collection___Map_____bra))( variable1 /*str*/,  variable3 /*i*/) /*String::[]*/;
+      variable5 = variable6;
+      variable6 = TAG_Bool(( variable5 /*c2*/)!=( TAG_Char('{')));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = TAG_Bool(( variable5 /*c2*/)!=( TAG_Char('}')));
+      }
+      variable6 = variable7;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  variable4 /*c*/) /*String::add*/;
+      }
+      variable4 =  variable5 /*c2*/ /*c=*/;
+    }
+    variable5 = TAG_Int(UNTAG_Int( variable0 /*len*/)+UNTAG_Int( TAG_Int(1)));
+    variable0 = variable5 /*len=*/;
+    ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  variable4 /*c*/) /*String::add*/;
+    variable5 = TAG_Int(UNTAG_Int( variable3 /*i*/)+UNTAG_Int( TAG_Int(1)));
+    variable3 = variable5 /*i=*/;
+    continue_294: while(0);
+  }
+  break_294: while(0);
+  ATTR_compiling_methods___AStringFormExpr____cstring( self) /*AStringFormExpr::_cstring*/ =  variable2 /*res*/;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length( self) /*AStringFormExpr::_cstring_length*/ =  variable0 /*len*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AStringExpr___string_text(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AStringExpr::string_text (src/compiling//compiling_methods.nit:1064,2--85)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AStringExpr___n_string))( self) /*AStringExpr::n_string*/;
+  variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*TString::text*/;
+  variable1 = ((parser_nodes___AStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AStringExpr___n_string))( self) /*AStringExpr::n_string*/;
+  variable1 = ((lexer___Token___text_t)CALL(variable1,COLOR_lexer___Token___text))(variable1) /*TString::text*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(2)));
+  variable0 = ((string___String___substring_t)CALL(variable0,COLOR_string___String___substring))(variable0,  TAG_Int(1), variable1) /*String::substring*/;
+  goto return_label295;
+  return_label295: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_methods___AStartStringExpr___string_text(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AStartStringExpr::string_text (src/compiling//compiling_methods.nit:1067,2--85)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AStartStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AStartStringExpr___n_string))( self) /*AStartStringExpr::n_string*/;
+  variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*TStartString::text*/;
+  variable1 = ((parser_nodes___AStartStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AStartStringExpr___n_string))( self) /*AStartStringExpr::n_string*/;
+  variable1 = ((lexer___Token___text_t)CALL(variable1,COLOR_lexer___Token___text))(variable1) /*TStartString::text*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(2)));
+  variable0 = ((string___String___substring_t)CALL(variable0,COLOR_string___String___substring))(variable0,  TAG_Int(1), variable1) /*String::substring*/;
+  goto return_label296;
+  return_label296: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_methods___AMidStringExpr___string_text(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AMidStringExpr::string_text (src/compiling//compiling_methods.nit:1070,2--85)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AMidStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AMidStringExpr___n_string))( self) /*AMidStringExpr::n_string*/;
+  variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*TMidString::text*/;
+  variable1 = ((parser_nodes___AMidStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AMidStringExpr___n_string))( self) /*AMidStringExpr::n_string*/;
+  variable1 = ((lexer___Token___text_t)CALL(variable1,COLOR_lexer___Token___text))(variable1) /*TMidString::text*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(2)));
+  variable0 = ((string___String___substring_t)CALL(variable0,COLOR_string___String___substring))(variable0,  TAG_Int(1), variable1) /*String::substring*/;
+  goto return_label297;
+  return_label297: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_methods___AEndStringExpr___string_text(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AEndStringExpr::string_text (src/compiling//compiling_methods.nit:1073,2--85)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AEndStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AEndStringExpr___n_string))( self) /*AEndStringExpr::n_string*/;
+  variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*TEndString::text*/;
+  variable1 = ((parser_nodes___AEndStringExpr___n_string_t)CALL( self,COLOR_parser_nodes___AEndStringExpr___n_string))( self) /*AEndStringExpr::n_string*/;
+  variable1 = ((lexer___Token___text_t)CALL(variable1,COLOR_lexer___Token___text))(variable1) /*TEndString::text*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(2)));
+  variable0 = ((string___String___substring_t)CALL(variable0,COLOR_string___String___substring))(variable0,  TAG_Int(1), variable1) /*String::substring*/;
+  goto return_label298;
+  return_label298: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_methods___ASuperstringExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASuperstringExpr::compile_expr (src/compiling//compiling_methods.nit:1077,2--1093:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_300; static int once_bool_variable3_300;
+  val_t variable4;
+  val_t variable5;
+  static val_t once_value_variable5_301; static int once_bool_variable5_301;
+  val_t variable6;
+  static val_t once_value_variable6_302; static int once_bool_variable6_302;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*ASuperstringExpr::stype*/;
+  if (once_bool_variable3_300) variable3 = once_value_variable3_300;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+    variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+    once_value_variable3_300 = variable3;
+    once_bool_variable3_300 = true;
+  }
+  variable2 = ((static_type___MMType___select_method_t)CALL(variable2,COLOR_static_type___MMType___select_method))(variable2, variable3) /*MMType::select_method*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[String]*/
+  variable3 = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable1 /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable1 /*prop*/,  variable0 /*v*/, variable3) /*MMMethod::compile_constructor_call*/;
+  variable2 = variable3;
+  variable4 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*ASuperstringExpr::stype*/;
+  if (once_bool_variable5_301) variable5 = once_value_variable5_301;
+  else {
+    variable5 = NEW_string___String___with_native(BOX_NativeString("append"), TAG_Int(6)); /*new String*/
+    variable5 = ((symbol___String___to_symbol_t)CALL(variable5,COLOR_symbol___String___to_symbol))(variable5) /*String::to_symbol*/;
+    once_value_variable5_301 = variable5;
+    once_bool_variable5_301 = true;
+  }
+  variable4 = ((static_type___MMType___select_method_t)CALL(variable4,COLOR_static_type___MMType___select_method))(variable4, variable5) /*MMType::select_method*/;
+  variable3 = variable4;
+  variable5 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*ASuperstringExpr::stype*/;
+  if (once_bool_variable6_302) variable6 = once_value_variable6_302;
+  else {
+    variable6 = NEW_string___String___with_native(BOX_NativeString("to_s"), TAG_Int(4)); /*new String*/
+    variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+    once_value_variable6_302 = variable6;
+    once_bool_variable6_302 = true;
+  }
+  variable5 = ((static_type___MMType___select_method_t)CALL(variable5,COLOR_static_type___MMType___select_method))(variable5, variable6) /*MMType::select_method*/;
+  variable4 = variable5;
+  variable5 = ((parser_nodes___ASuperstringExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___ASuperstringExpr___n_exprs))( self) /*ASuperstringExpr::n_exprs*/;
+  variable5 = ((list___List___iterator_t)CALL(variable5,COLOR_abstract_collection___Collection___iterator))(variable5) /*List::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((list___ListIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((list___ListIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ListIterator::item*/;
+    variable8 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable6 /*ne*/) /*CompilerVisitor::compile_expr*/;
+    variable8 = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable0 /*v*/, variable8) /*CompilerVisitor::ensure_var*/;
+    variable7 = variable8;
+    variable8 = ((typing___PExpr___stype_t)CALL( variable6 /*ne*/,COLOR_syntax_base___PExpr___stype))( variable6 /*ne*/) /*PExpr::stype*/;
+    variable9 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*ASuperstringExpr::stype*/;
+    variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable8 == variable9) || ((variable8 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable8,variable9)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))(variable8, variable9) /*MMType::==*/)))))));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable8 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+      ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  variable7 /*e*/) /*Array::add*/;
+      variable8 = ((compiling_methods___MMMethod___compile_call_t)CALL( variable4 /*prop3*/,COLOR_compiling_methods___MMMethod___compile_call))( variable4 /*prop3*/,  variable0 /*v*/, variable8) /*MMMethod::compile_call*/;
+      ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable7 /*e*/, variable8) /*CompilerVisitor::add_assignment*/;
+    }
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  variable2 /*recv*/) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  variable7 /*e*/) /*Array::add*/;
+    ((compiling_methods___MMMethod___compile_call_t)CALL( variable3 /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable3 /*prop2*/,  variable0 /*v*/, variable8) /*MMMethod::compile_call*/;
+    continue_303: while(0);
+    ((list___ListIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ListIterator::next*/;
+  }
+  break_303: while(0);
+  variable1 =  variable2 /*recv*/;
+  goto return_label299;
+  return_label299: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ANullExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ANullExpr::compile_expr (src/compiling//compiling_methods.nit:1098,2--1100:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(" NIT_NULL /*null*/"), TAG_Int(18)); /*new String*/
+  goto return_label304;
+  return_label304: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AArrayExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AArrayExpr::compile_expr (src/compiling//compiling_methods.nit:1105,2--1115:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_306; static int once_bool_variable3_306;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  static val_t once_value_variable5_307; static int once_bool_variable5_307;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*AArrayExpr::stype*/;
+  if (once_bool_variable3_306) variable3 = once_value_variable3_306;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
+    variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+    once_value_variable3_306 = variable3;
+    once_bool_variable3_306 = true;
+  }
+  variable2 = ((static_type___MMType___select_method_t)CALL(variable2,COLOR_static_type___MMType___select_method))(variable2, variable3) /*MMType::select_method*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
+  variable7 = ((list___List___length_t)CALL(variable7,COLOR_abstract_collection___Collection___length))(variable7) /*List::length*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable4) /*Array::add*/;
+  variable3 = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable1 /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable1 /*prop*/,  variable0 /*v*/, variable3) /*MMMethod::compile_constructor_call*/;
+  variable2 = variable3;
+  variable4 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*AArrayExpr::stype*/;
+  if (once_bool_variable5_307) variable5 = once_value_variable5_307;
+  else {
+    variable5 = NEW_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
+    variable5 = ((symbol___String___to_symbol_t)CALL(variable5,COLOR_symbol___String___to_symbol))(variable5) /*String::to_symbol*/;
+    once_value_variable5_307 = variable5;
+    once_bool_variable5_307 = true;
+  }
+  variable4 = ((static_type___MMType___select_method_t)CALL(variable4,COLOR_static_type___MMType___select_method))(variable4, variable5) /*MMType::select_method*/;
+  variable3 = variable4;
+  variable4 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
+  variable4 = ((list___List___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*List::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((list___ListIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((list___ListIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ListIterator::item*/;
+    variable7 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable5 /*ne*/) /*CompilerVisitor::compile_expr*/;
+    variable6 = variable7;
+    variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable2 /*recv*/) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable6 /*e*/) /*Array::add*/;
+    ((compiling_methods___MMMethod___compile_call_t)CALL( variable3 /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable3 /*prop2*/,  variable0 /*v*/, variable7) /*MMMethod::compile_call*/;
+    continue_308: while(0);
+    ((list___ListIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ListIterator::next*/;
+  }
+  break_308: while(0);
+  variable1 =  variable2 /*recv*/;
+  goto return_label305;
+  return_label305: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ARangeExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ARangeExpr::compile_expr (src/compiling//compiling_methods.nit:1120,2--1125:48)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___PExpr___stype_t)CALL( self,COLOR_syntax_base___PExpr___stype))( self) /*ARangeExpr::stype*/;
+  variable3 = ((compiling_methods___ARangeExpr___propname_t)CALL( self,COLOR_compiling_methods___ARangeExpr___propname))( self) /*ARangeExpr::propname*/;
+  variable2 = ((static_type___MMType___select_method_t)CALL(variable2,COLOR_static_type___MMType___select_method))(variable2, variable3) /*MMType::select_method*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___ARangeExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr))( self) /*ARangeExpr::n_expr*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  variable4 = ((parser_nodes___ARangeExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr2))( self) /*ARangeExpr::n_expr2*/;
+  variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable4) /*CompilerVisitor::compile_expr*/;
+  variable3 = variable4;
+  variable4 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable2 /*e*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable3 /*e2*/) /*Array::add*/;
+  variable4 = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable1 /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable1 /*prop*/,  variable0 /*v*/, variable4) /*MMMethod::compile_constructor_call*/;
+  variable1 = variable4;
+  goto return_label309;
+  return_label309: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ARangeExpr___propname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::ARangeExpr::propname (src/compiling//compiling_methods.nit:1127,2--1128:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method propname called (src/compiling//compiling_methods.nit:1127,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t compiling_methods___ACrangeExpr___propname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::ACrangeExpr::propname (src/compiling//compiling_methods.nit:1132,2--52)"};
+  val_t variable0;
+  static val_t once_value_variable0_311; static int once_bool_variable0_311;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_311) variable0 = once_value_variable0_311;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_311 = variable0;
+    once_bool_variable0_311 = true;
+  }
+  goto return_label310;
+  return_label310: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t compiling_methods___AOrangeExpr___propname(val_t  self) {
+  struct trace_t trace = {NULL, "compiling_methods::AOrangeExpr::propname (src/compiling//compiling_methods.nit:1135,2--60)"};
+  val_t variable0;
+  static val_t once_value_variable0_313; static int once_bool_variable0_313;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_313) variable0 = once_value_variable0_313;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("without_last"), TAG_Int(12)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_313 = variable0;
+    once_bool_variable0_313 = true;
+  }
+  goto return_label312;
+  return_label312: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void compiling_methods___ASuperExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASuperExpr::compile_stmt (src/compiling//compiling_methods.nit:1139,2--1142:38)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___ASuperExpr___compile_expr_t)CALL( self,COLOR_compiling_methods___PExpr___compile_expr))( self,  variable0 /*v*/) /*ASuperExpr::compile_expr*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*e*/ ==  NIT_NULL /*null*/) || (( variable1 /*e*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable1 /*e*/,COLOR_kernel___Object_____eqeq))( variable1 /*e*/,  NIT_NULL /*null*/) /*String::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 =  variable1 /*e*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASuperExpr::compile_expr (src/compiling//compiling_methods.nit:1145,2--1167:41)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params))( variable0 /*v*/) /*CompilerVisitor::method_params*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  variable2 = ((typing___ASuperExpr___init_in_superclass_t)CALL( self,COLOR_typing___ASuperExpr___init_in_superclass))( self) /*ASuperExpr::init_in_superclass*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMMethod::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((typing___ASuperExpr___init_in_superclass_t)CALL( self,COLOR_typing___ASuperExpr___init_in_superclass))( self) /*ASuperExpr::init_in_superclass*/;
+    variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMMethod::signature*/;
+    variable2 = ((static_type___MMSignature___arity_t)CALL(variable2,COLOR_static_type___MMSignature___arity))(variable2) /*MMSignature::arity*/;
+    variable1 = variable2 /*arity=*/;
+  }
+  variable3 = TAG_Int(UNTAG_Int( variable1 /*arity*/)+UNTAG_Int( TAG_Int(1)));
+  variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[String]*/
+  variable3 = variable4;
+  variable2 = variable3;
+  variable3 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params))( variable0 /*v*/) /*CompilerVisitor::method_params*/;
+  variable4 =  TAG_Int(0);
+  variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable6 = variable5;
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = variable3;
+    variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+  }
+  variable5 = variable6;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable5 = variable3;
+  variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+  variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+  goto return_label316;
+  return_label316: while(false);
+  variable3 = variable5;
+  ((array___AbstractArray___add_t)CALL( variable2 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*args*/, variable3) /*Array::add*/;
+  variable3 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
+  variable3 = ((list___List___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*List::length*/;
+  variable3 = TAG_Bool((variable3)!=( variable1 /*arity*/));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_range___Range___without_last( TAG_Int(0),  variable1 /*arity*/); /*new Range[Int]*/
+    variable3 = ((range___Range___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+      variable5 = ((compiling_methods___CompilerVisitor___method_params_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___method_params))( variable0 /*v*/) /*CompilerVisitor::method_params*/;
+      variable6 = TAG_Int(UNTAG_Int( variable4 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable7 = variable6;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = variable5;
+        variable9 = ATTR_array___AbstractArray____length(variable9) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = variable5;
+      variable8 = ATTR_array___Array____items(variable8) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label318;
+      return_label318: while(false);
+      variable5 = variable8;
+      ((array___AbstractArray___add_t)CALL( variable2 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*args*/, variable5) /*Array::add*/;
+      continue_317: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+    }
+    break_317: while(0);
+  } else { /*if*/
+    variable3 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
+    variable3 = ((list___List___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*List::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((list___ListIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ListIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((list___ListIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ListIterator::item*/;
+      variable5 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable4 /*na*/) /*CompilerVisitor::compile_expr*/;
+      ((array___AbstractArray___add_t)CALL( variable2 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*args*/, variable5) /*Array::add*/;
+      continue_319: while(0);
+      ((list___ListIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ListIterator::next*/;
+    }
+    break_319: while(0);
+  }
+  variable3 = ((typing___ASuperExpr___init_in_superclass_t)CALL( self,COLOR_typing___ASuperExpr___init_in_superclass))( self) /*ASuperExpr::init_in_superclass*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMMethod::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((typing___ASuperExpr___init_in_superclass_t)CALL( self,COLOR_typing___ASuperExpr___init_in_superclass))( self) /*ASuperExpr::init_in_superclass*/;
+    variable3 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable3,COLOR_compiling_methods___MMMethod___compile_call))(variable3,  variable0 /*v*/,  variable2 /*args*/) /*MMMethod::compile_call*/;
+    variable1 = variable3;
+    goto return_label315;
+  } else { /*if*/
+    variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASuperExpr::prop*/;
+    variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalProperty___global))(variable3) /*MMMethod::global*/;
+    variable3 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable3) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*args*/, variable3) /*Array::add*/;
+    }
+    variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASuperExpr::prop*/;
+    variable3 = ((compiling_methods___MMMethod___compile_super_call_t)CALL(variable3,COLOR_compiling_methods___MMMethod___compile_super_call))(variable3,  variable0 /*v*/,  variable2 /*args*/) /*MMMethod::compile_super_call*/;
+    variable1 = variable3;
+    goto return_label315;
+  }
+  return_label315: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AAttrExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAttrExpr::compile_expr (src/compiling//compiling_methods.nit:1173,2--1176:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable2 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrExpr::prop*/;
+  variable2 = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable2,COLOR_compiling_methods___MMAttribute___compile_access))(variable2,  variable0 /*v*/,  variable1 /*e*/) /*MMAttribute::compile_access*/;
+  variable1 = variable2;
+  goto return_label320;
+  return_label320: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_methods___AAttrAssignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAttrAssignExpr::compile_stmt (src/compiling//compiling_methods.nit:1181,2--1185:48)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrAssignExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAttrAssignExpr::n_value*/;
+  variable3 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable3) /*CompilerVisitor::compile_expr*/;
+  variable2 = variable3;
+  variable3 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrAssignExpr::prop*/;
+  variable3 = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable3,COLOR_compiling_methods___MMAttribute___compile_access))(variable3,  variable0 /*v*/,  variable1 /*e*/) /*MMAttribute::compile_access*/;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/, variable3,  variable2 /*e2*/) /*CompilerVisitor::add_assignment*/;
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AAttrReassignExpr::compile_stmt (src/compiling//compiling_methods.nit:1189,2--1195:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrReassignExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrReassignExpr::prop*/;
+  variable3 = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable3,COLOR_compiling_methods___MMAttribute___compile_access))(variable3,  variable0 /*v*/,  variable1 /*e1*/) /*MMAttribute::compile_access*/;
+  variable2 = variable3;
+  variable4 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AAttrReassignExpr::n_value*/;
+  variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable4) /*CompilerVisitor::compile_expr*/;
+  variable3 = variable4;
+  variable5 = ((typing___AReassignFormExpr___assign_method_t)CALL( self,COLOR_typing___AReassignFormExpr___assign_method))( self) /*AAttrReassignExpr::assign_method*/;
+  variable6 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable2 /*e2*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable3 /*e3*/) /*Array::add*/;
+  variable5 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable5,COLOR_compiling_methods___MMMethod___compile_call))(variable5,  variable0 /*v*/, variable6) /*MMMethod::compile_call*/;
+  variable4 = variable5;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable2 /*e2*/,  variable4 /*e4*/) /*CompilerVisitor::add_assignment*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASendExpr::compile_expr (src/compiling//compiling_methods.nit:1200,2--1213:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[String]*/
+  variable2 = variable3;
+  ((array___AbstractArray___add_t)CALL( variable2 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*cargs*/,  variable1 /*recv*/) /*Array::add*/;
+  variable3 = ((typing___AAbsSendExpr___arguments_t)CALL( self,COLOR_typing___AAbsSendExpr___arguments))( self) /*ASendExpr::arguments*/;
+  variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable4 /*a*/) /*CompilerVisitor::compile_expr*/;
+    ((array___AbstractArray___add_t)CALL( variable2 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*cargs*/, variable5) /*Array::add*/;
+    continue_324: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_324: while(0);
+  variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+  variable4 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable4,COLOR_compiling_methods___MMMethod___compile_call))(variable4,  variable0 /*v*/,  variable2 /*cargs*/) /*MMMethod::compile_call*/;
+  variable3 = variable4;
+  variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+    ((compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after))( variable0 /*v*/, variable4) /*CompilerVisitor::invoke_super_init_calls_after*/;
+  }
+  variable1 =  variable3 /*e*/;
+  goto return_label323;
+  return_label323: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void compiling_methods___ASendExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASendExpr::compile_stmt (src/compiling//compiling_methods.nit:1216,2--1220:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_methods___ASendExpr___compile_expr_t)CALL( self,COLOR_compiling_methods___PExpr___compile_expr))( self,  variable0 /*v*/) /*ASendExpr::compile_expr*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*e*/ ==  NIT_NULL /*null*/) || (( variable1 /*e*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable1 /*e*/,COLOR_kernel___Object_____eqeq))( variable1 /*e*/,  NIT_NULL /*null*/) /*String::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    variable2 = ((string___String_____plus_t)CALL( variable1 /*e*/,COLOR_string___String_____plus))( variable1 /*e*/, variable2) /*String::+*/;
+    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable2) /*CompilerVisitor::add_instr*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ASendReassignExpr::compile_expr (src/compiling//compiling_methods.nit:1226,2--1239:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable2 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable2) /*CompilerVisitor::compile_expr*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[String]*/
+  variable2 = variable3;
+  ((array___AbstractArray___add_t)CALL( variable2 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*cargs*/,  variable1 /*recv*/) /*Array::add*/;
+  variable3 = ((typing___AAbsSendExpr___arguments_t)CALL( self,COLOR_typing___AAbsSendExpr___arguments))( self) /*ASendReassignExpr::arguments*/;
+  variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable4 /*a*/) /*CompilerVisitor::compile_expr*/;
+    ((array___AbstractArray___add_t)CALL( variable2 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*cargs*/, variable5) /*Array::add*/;
+    continue_327: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_327: while(0);
+  variable4 = ((typing___ASendReassignExpr___read_prop_t)CALL( self,COLOR_typing___ASendReassignExpr___read_prop))( self) /*ASendReassignExpr::read_prop*/;
+  variable4 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable4,COLOR_compiling_methods___MMMethod___compile_call))(variable4,  variable0 /*v*/,  variable2 /*cargs*/) /*MMMethod::compile_call*/;
+  variable3 = variable4;
+  variable5 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*ASendReassignExpr::n_value*/;
+  variable5 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable5) /*CompilerVisitor::compile_expr*/;
+  variable4 = variable5;
+  variable6 = ((typing___AReassignFormExpr___assign_method_t)CALL( self,COLOR_typing___AReassignFormExpr___assign_method))( self) /*ASendReassignExpr::assign_method*/;
+  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable3 /*e2*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable4 /*e3*/) /*Array::add*/;
+  variable6 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable6,COLOR_compiling_methods___MMMethod___compile_call))(variable6,  variable0 /*v*/, variable7) /*MMMethod::compile_call*/;
+  variable5 = variable6;
+  ((array___AbstractArray___add_t)CALL( variable2 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*cargs*/,  variable5 /*e4*/) /*Array::add*/;
+  variable6 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable6 = ((compiling_methods___MMMethod___compile_call_t)CALL(variable6,COLOR_compiling_methods___MMMethod___compile_call))(variable6,  variable0 /*v*/,  variable2 /*cargs*/) /*MMMethod::compile_call*/;
+  variable1 = variable6;
+  goto return_label326;
+  return_label326: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___ANewExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::ANewExpr::compile_expr (src/compiling//compiling_methods.nit:1244,2--1250:47)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[String]*/
+  variable1 = variable2;
+  variable2 = ((typing___AAbsSendExpr___arguments_t)CALL( self,COLOR_typing___AAbsSendExpr___arguments))( self) /*ANewExpr::arguments*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/,  variable3 /*a*/) /*CompilerVisitor::compile_expr*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*cargs*/, variable4) /*Array::add*/;
+    continue_329: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_329: while(0);
+  variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ANewExpr::prop*/;
+  variable2 = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL(variable2,COLOR_compiling_methods___MMMethod___compile_constructor_call))(variable2,  variable0 /*v*/,  variable1 /*cargs*/) /*MMMethod::compile_constructor_call*/;
+  variable1 = variable2;
+  goto return_label328;
+  return_label328: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AProxyExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AProxyExpr::compile_expr (src/compiling//compiling_methods.nit:1255,2--1257:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AProxyExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AProxyExpr___n_expr))( self) /*AProxyExpr::n_expr*/;
+  variable1 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable1) /*CompilerVisitor::compile_expr*/;
+  goto return_label330;
+  return_label330: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t compiling_methods___AOnceExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "compiling_methods::AOnceExpr::compile_expr (src/compiling//compiling_methods.nit:1262,2--1277:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable0 /*v*/) /*CompilerVisitor::new_number*/;
+  variable1 = variable2;
+  variable3 = ((compiling_methods___CompilerVisitor___get_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___get_var))( variable0 /*v*/) /*CompilerVisitor::get_var*/;
+  variable2 = variable3;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("static val_t once_value_"), TAG_Int(24)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable1 /*i*/;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString("; static int once_bool_"), TAG_Int(23)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable14) /*String::append*/;
+  variable15 =  variable1 /*i*/;
+  variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable17) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable0 /*v*/, variable3) /*CompilerVisitor::add_decl*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("if (once_bool_"), TAG_Int(14)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable1 /*i*/;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(") "), TAG_Int(2)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  variable12 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(" = once_value_"), TAG_Int(14)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable14) /*String::append*/;
+  variable15 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable17) /*String::append*/;
+  variable18 =  variable1 /*i*/;
+  variable18 = ((string___String___to_s_t)CALL(variable18,COLOR_string___Object___to_s))(variable18) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable18) /*String::append*/;
+  variable19 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable20 = variable19;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable20) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString("else {"), TAG_Int(6)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable3) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___indent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable0 /*v*/) /*CompilerVisitor::indent*/;
+  ((compiling_methods___CompilerVisitor___free_var_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___free_var))( variable0 /*v*/,  variable2 /*cvar*/) /*CompilerVisitor::free_var*/;
+  variable4 = ((parser_nodes___AProxyExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AProxyExpr___n_expr))( self) /*AOnceExpr::n_expr*/;
+  variable4 = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable0 /*v*/, variable4) /*CompilerVisitor::compile_expr*/;
+  variable3 = variable4;
+  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable0 /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable0 /*v*/,  variable2 /*cvar*/,  variable3 /*e*/) /*CompilerVisitor::add_assignment*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("once_value_"), TAG_Int(11)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 =  variable1 /*i*/;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable13 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  variable14 = NEW_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString("once_bool_"), TAG_Int(10)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable2 /*cvar*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 =  variable1 /*i*/;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(" = true;"), TAG_Int(8)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable0 /*v*/) /*CompilerVisitor::unindent*/;
+  variable4 = NEW_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable0 /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable0 /*v*/, variable4) /*CompilerVisitor::add_instr*/;
+  variable1 =  variable2 /*cvar*/;
+  goto return_label331;
+  return_label331: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
diff --git a/c_src/compiling_methods._sep.h b/c_src/compiling_methods._sep.h
new file mode 100644 (file)
index 0000000..1f45675
--- /dev/null
@@ -0,0 +1,275 @@
+#ifndef compiling_methods__sep
+#define compiling_methods__sep
+#include "compiling_base._sep.h"
+#include <nit_common.h>
+extern const int SFT_compiling_methods[];
+#define COLOR_compiling_methods___CompilerVisitor____variable_index SFT_compiling_methods[0]
+#define COLOR_compiling_methods___CompilerVisitor____variable_index_max SFT_compiling_methods[1]
+#define COLOR_compiling_methods___CompilerVisitor____varnames SFT_compiling_methods[2]
+#define COLOR_compiling_methods___CompilerVisitor____has_return SFT_compiling_methods[3]
+#define COLOR_compiling_methods___CompilerVisitor____method_params SFT_compiling_methods[4]
+#define COLOR_compiling_methods___CompilerVisitor____method SFT_compiling_methods[5]
+#define COLOR_compiling_methods___CompilerVisitor____return_label SFT_compiling_methods[6]
+#define COLOR_compiling_methods___CompilerVisitor____break_label SFT_compiling_methods[7]
+#define COLOR_compiling_methods___CompilerVisitor____continue_label SFT_compiling_methods[8]
+#define COLOR_compiling_methods___CompilerVisitor____return_value SFT_compiling_methods[9]
+#define COLOR_compiling_methods___CompilerVisitor___compile_stmt SFT_compiling_methods[10]
+#define COLOR_compiling_methods___CompilerVisitor___compile_expr SFT_compiling_methods[11]
+#define COLOR_compiling_methods___CompilerVisitor___ensure_var SFT_compiling_methods[12]
+#define COLOR_compiling_methods___CompilerVisitor___add_assignment SFT_compiling_methods[13]
+#define COLOR_compiling_methods___CompilerVisitor___variable SFT_compiling_methods[14]
+#define COLOR_compiling_methods___CompilerVisitor___get_var SFT_compiling_methods[15]
+#define COLOR_compiling_methods___CompilerVisitor___free_var SFT_compiling_methods[16]
+#define COLOR_compiling_methods___CompilerVisitor___clear SFT_compiling_methods[17]
+#define COLOR_compiling_methods___CompilerVisitor___varnames SFT_compiling_methods[18]
+#define COLOR_compiling_methods___CompilerVisitor___has_return SFT_compiling_methods[19]
+#define COLOR_compiling_methods___CompilerVisitor___has_return__eq SFT_compiling_methods[20]
+#define COLOR_compiling_methods___CompilerVisitor___method_params SFT_compiling_methods[21]
+#define COLOR_compiling_methods___CompilerVisitor___method_params__eq SFT_compiling_methods[22]
+#define COLOR_compiling_methods___CompilerVisitor___method SFT_compiling_methods[23]
+#define COLOR_compiling_methods___CompilerVisitor___method__eq SFT_compiling_methods[24]
+#define COLOR_compiling_methods___CompilerVisitor___return_label SFT_compiling_methods[25]
+#define COLOR_compiling_methods___CompilerVisitor___return_label__eq SFT_compiling_methods[26]
+#define COLOR_compiling_methods___CompilerVisitor___break_label SFT_compiling_methods[27]
+#define COLOR_compiling_methods___CompilerVisitor___break_label__eq SFT_compiling_methods[28]
+#define COLOR_compiling_methods___CompilerVisitor___continue_label SFT_compiling_methods[29]
+#define COLOR_compiling_methods___CompilerVisitor___continue_label__eq SFT_compiling_methods[30]
+#define COLOR_compiling_methods___CompilerVisitor___return_value SFT_compiling_methods[31]
+#define COLOR_compiling_methods___CompilerVisitor___return_value__eq SFT_compiling_methods[32]
+#define COLOR_SUPER_compiling_methods___CompilerVisitor___init SFT_compiling_methods[33]
+#define COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after SFT_compiling_methods[34]
+#define COLOR_compiling_methods___MMMethod___compile_call SFT_compiling_methods[35]
+#define COLOR_compiling_methods___MMMethod___compile_constructor_call SFT_compiling_methods[36]
+#define COLOR_compiling_methods___MMMethod___compile_super_call SFT_compiling_methods[37]
+#define COLOR_compiling_methods___MMAttribute___compile_access SFT_compiling_methods[38]
+#define COLOR_compiling_methods___MMSrcLocalProperty___compile_property_to_c SFT_compiling_methods[39]
+#define COLOR_compiling_methods___MMSrcMethod___decl_csignature SFT_compiling_methods[40]
+#define COLOR_compiling_methods___MMSrcMethod___do_compile_inside SFT_compiling_methods[41]
+#define COLOR_compiling_methods___MMType___compile_cast SFT_compiling_methods[42]
+#define COLOR_compiling_methods___MMType___compile_type_check SFT_compiling_methods[43]
+#define COLOR_compiling_methods___AMethPropdef___do_compile_inside SFT_compiling_methods[44]
+#define COLOR_compiling_methods___PExpr___compile_expr SFT_compiling_methods[45]
+#define COLOR_compiling_methods___PExpr___prepare_compile_stmt SFT_compiling_methods[46]
+#define COLOR_compiling_methods___PExpr___compile_stmt SFT_compiling_methods[47]
+#define COLOR_compiling_methods___AControlableBlock___compile_inside_block SFT_compiling_methods[48]
+#define COLOR_compiling_methods___AStringFormExpr____cstring SFT_compiling_methods[49]
+#define COLOR_compiling_methods___AStringFormExpr____cstring_length SFT_compiling_methods[50]
+#define COLOR_compiling_methods___AStringFormExpr___string_text SFT_compiling_methods[51]
+#define COLOR_compiling_methods___AStringFormExpr___compute_string_info SFT_compiling_methods[52]
+#define COLOR_compiling_methods___ARangeExpr___propname SFT_compiling_methods[53]
+typedef void (* compiling_methods___CompilerVisitor___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___CompilerVisitor___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___CompilerVisitor___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___CompilerVisitor___ensure_var_t)(val_t  self, val_t  param0);
+val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param0);
+typedef void (* compiling_methods___CompilerVisitor___add_assignment_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_methods___CompilerVisitor___add_assignment(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___CompilerVisitor___variable_t)(val_t  self, val_t  param0);
+val_t compiling_methods___CompilerVisitor___variable(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____variable_index(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____variable_index)
+#define ATTR_compiling_methods___CompilerVisitor____variable_index_max(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____variable_index_max)
+typedef val_t (* compiling_methods___CompilerVisitor___get_var_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___get_var(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___free_var_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___free_var(val_t  self, val_t  param0);
+typedef void (* compiling_methods___CompilerVisitor___clear_t)(val_t  self);
+void compiling_methods___CompilerVisitor___clear(val_t  self);
+#define ATTR_compiling_methods___CompilerVisitor____varnames(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____varnames)
+typedef val_t (* compiling_methods___CompilerVisitor___varnames_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___varnames(val_t  self);
+#define ATTR_compiling_methods___CompilerVisitor____has_return(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____has_return)
+typedef val_t (* compiling_methods___CompilerVisitor___has_return_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___has_return(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___has_return__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___has_return__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____method_params(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____method_params)
+typedef val_t (* compiling_methods___CompilerVisitor___method_params_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___method_params(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___method_params__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___method_params__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____method(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____method)
+typedef val_t (* compiling_methods___CompilerVisitor___method_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___method(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___method__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___method__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____return_label(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____return_label)
+typedef val_t (* compiling_methods___CompilerVisitor___return_label_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___return_label(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___return_label__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___return_label__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____break_label(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____break_label)
+typedef val_t (* compiling_methods___CompilerVisitor___break_label_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___break_label(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___break_label__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___break_label__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____continue_label(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____continue_label)
+typedef val_t (* compiling_methods___CompilerVisitor___continue_label_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___continue_label(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___continue_label__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___continue_label__eq(val_t  self, val_t  param0);
+#define ATTR_compiling_methods___CompilerVisitor____return_value(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____return_value)
+typedef val_t (* compiling_methods___CompilerVisitor___return_value_t)(val_t  self);
+val_t compiling_methods___CompilerVisitor___return_value(val_t  self);
+typedef void (* compiling_methods___CompilerVisitor___return_value__eq_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___return_value__eq(val_t  self, val_t  param0);
+typedef void (* compiling_methods___CompilerVisitor___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_methods___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_compiling_methods___CompilerVisitor___init(val_t  param0);
+typedef void (* compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)(val_t  self, val_t  param0);
+void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___MMMethod___compile_call_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMMethod___compile_constructor_call_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMMethod___compile_constructor_call(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMMethod___compile_super_call_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMAttribute___compile_access_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMAttribute___compile_access(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_methods___MMSrcLocalProperty___compile_property_to_c_t)(val_t  self, val_t  param0);
+void compiling_methods___MMSrcLocalProperty___compile_property_to_c(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___MMSrcMethod___decl_csignature_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_methods___MMSrcMethod___compile_property_to_c_t)(val_t  self, val_t  param0);
+void compiling_methods___MMSrcMethod___compile_property_to_c(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___MMSrcMethod___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMReadImplementationMethod___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMReadImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMWriteImplementationMethod___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMMethSrcMethod___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMMethSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* compiling_methods___MMType___compile_cast_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_methods___MMType___compile_cast(val_t  self, val_t  param0, val_t  param1);
+typedef void (* compiling_methods___MMType___compile_type_check_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void compiling_methods___MMType___compile_type_check(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___AMethPropdef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_methods___AMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___AConcreteMethPropdef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_methods___AConcreteMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___ADeferredMethPropdef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_methods___ADeferredMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___AExternMethPropdef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___AInternMethPropdef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* compiling_methods___PExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___PExpr___compile_expr(val_t  self, val_t  param0);
+typedef void (* compiling_methods___PExpr___prepare_compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___PExpr___prepare_compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___PExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___PExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___ABlockExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___ABlockExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AVardeclExpr___prepare_compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AVardeclExpr___prepare_compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AVardeclExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AVardeclExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AReturnExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AReturnExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___ABreakExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___ABreakExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AContinueExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AContinueExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AAbortExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AAbortExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___ADoExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___ADoExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AIfExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AIfExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AIfexprExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AIfexprExpr___compile_expr(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AControlableBlock___compile_inside_block_t)(val_t  self, val_t  param0);
+void compiling_methods___AControlableBlock___compile_inside_block(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AControlableBlock___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AControlableBlock___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AWhileExpr___compile_inside_block_t)(val_t  self, val_t  param0);
+void compiling_methods___AWhileExpr___compile_inside_block(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AForExpr___compile_inside_block_t)(val_t  self, val_t  param0);
+void compiling_methods___AForExpr___compile_inside_block(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AForVardeclExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AForVardeclExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AAssertExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AAssertExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AVarExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AVarExpr___compile_expr(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AVarAssignExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AVarAssignExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AVarReassignExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AVarReassignExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ASelfExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ASelfExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AOrExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AOrExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AAndExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AAndExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ANotExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ANotExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AEeExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AEeExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AIsaExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AIsaExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ATrueExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ATrueExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AFalseExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AFalseExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AIntExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AIntExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AFloatExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AFloatExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ACharExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ACharExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AStringFormExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AStringFormExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AStringFormExpr___string_text_t)(val_t  self);
+val_t compiling_methods___AStringFormExpr___string_text(val_t  self);
+#define ATTR_compiling_methods___AStringFormExpr____cstring(recv) ATTR(recv, COLOR_compiling_methods___AStringFormExpr____cstring)
+#define ATTR_compiling_methods___AStringFormExpr____cstring_length(recv) ATTR(recv, COLOR_compiling_methods___AStringFormExpr____cstring_length)
+typedef void (* compiling_methods___AStringFormExpr___compute_string_info_t)(val_t  self);
+void compiling_methods___AStringFormExpr___compute_string_info(val_t  self);
+typedef val_t (* compiling_methods___AStringExpr___string_text_t)(val_t  self);
+val_t compiling_methods___AStringExpr___string_text(val_t  self);
+typedef val_t (* compiling_methods___AStartStringExpr___string_text_t)(val_t  self);
+val_t compiling_methods___AStartStringExpr___string_text(val_t  self);
+typedef val_t (* compiling_methods___AMidStringExpr___string_text_t)(val_t  self);
+val_t compiling_methods___AMidStringExpr___string_text(val_t  self);
+typedef val_t (* compiling_methods___AEndStringExpr___string_text_t)(val_t  self);
+val_t compiling_methods___AEndStringExpr___string_text(val_t  self);
+typedef val_t (* compiling_methods___ASuperstringExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ASuperstringExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ANullExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ANullExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AArrayExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AArrayExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ARangeExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ARangeExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ARangeExpr___propname_t)(val_t  self);
+val_t compiling_methods___ARangeExpr___propname(val_t  self);
+typedef val_t (* compiling_methods___ACrangeExpr___propname_t)(val_t  self);
+val_t compiling_methods___ACrangeExpr___propname(val_t  self);
+typedef val_t (* compiling_methods___AOrangeExpr___propname_t)(val_t  self);
+val_t compiling_methods___AOrangeExpr___propname(val_t  self);
+typedef void (* compiling_methods___ASuperExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___ASuperExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ASuperExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AAttrExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AAttrExpr___compile_expr(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AAttrAssignExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AAttrAssignExpr___compile_stmt(val_t  self, val_t  param0);
+typedef void (* compiling_methods___AAttrReassignExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ASendExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0);
+typedef void (* compiling_methods___ASendExpr___compile_stmt_t)(val_t  self, val_t  param0);
+void compiling_methods___ASendExpr___compile_stmt(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ASendReassignExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___ANewExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___ANewExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AProxyExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AProxyExpr___compile_expr(val_t  self, val_t  param0);
+typedef val_t (* compiling_methods___AOnceExpr___compile_expr_t)(val_t  self, val_t  param0);
+val_t compiling_methods___AOnceExpr___compile_expr(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/control_flow._sep.c b/c_src/control_flow._sep.c
new file mode 100644 (file)
index 0000000..49c84a0
--- /dev/null
@@ -0,0 +1,423 @@
+#include "control_flow._sep.h"
+void control_flow___MMSrcModule___do_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::MMSrcModule::do_control_flow (src/syntax//control_flow.nit:23,2--28:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_control_flow___ControlFlowVisitor___init( variable0 /*tc*/,  self); /*new ControlFlowVisitor*/
+  variable1 = variable2;
+  variable2 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
+  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable1 /*tv*/,COLOR_parser_prod___Visitor___visit))( variable1 /*tv*/, variable2) /*ControlFlowVisitor::visit*/;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___ControlFlowVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::visit (src/syntax//control_flow.nit:38,2--40:46)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((control_flow___PNode___accept_control_flow_t)CALL( variable0 /*n*/,COLOR_control_flow___PNode___accept_control_flow))( variable0 /*n*/,  self) /*PNode::accept_control_flow*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowVisitor___once_count(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::once_count (src/syntax//control_flow.nit:43,2--44:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowVisitor____once_count( self) /*ControlFlowVisitor::_once_count*/;
+}
+void control_flow___ControlFlowVisitor___once_count__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::once_count= (src/syntax//control_flow.nit:43,2--44:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowVisitor____once_count( self) /*ControlFlowVisitor::_once_count*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowVisitor___control_flow_ctx(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::control_flow_ctx (src/syntax//control_flow.nit:46,2--47:61)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self) /*ControlFlowVisitor::_control_flow_ctx*/;
+}
+void control_flow___ControlFlowVisitor___control_flow_ctx__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::control_flow_ctx= (src/syntax//control_flow.nit:46,2--47:61)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowVisitor____control_flow_ctx( self) /*ControlFlowVisitor::_control_flow_ctx*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___ControlFlowVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowVisitor::init (src/syntax//control_flow.nit:49,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowContext___prev(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::prev (src/syntax//control_flow.nit:53,2--54:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowContext____prev( self) /*ControlFlowContext::_prev*/;
+}
+val_t control_flow___ControlFlowContext___has_return(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::has_return (src/syntax//control_flow.nit:56,2--57:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowContext____has_return( self) /*ControlFlowContext::_has_return*/;
+}
+void control_flow___ControlFlowContext___has_return__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::has_return= (src/syntax//control_flow.nit:56,2--57:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowContext____has_return( self) /*ControlFlowContext::_has_return*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowContext___unreash(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::unreash (src/syntax//control_flow.nit:59,2--60:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowContext____unreash( self) /*ControlFlowContext::_unreash*/;
+}
+void control_flow___ControlFlowContext___unreash__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::unreash= (src/syntax//control_flow.nit:59,2--60:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowContext____unreash( self) /*ControlFlowContext::_unreash*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowContext___already_unreash(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::already_unreash (src/syntax//control_flow.nit:62,2--64:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowContext____already_unreash( self) /*ControlFlowContext::_already_unreash*/;
+}
+void control_flow___ControlFlowContext___already_unreash__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::already_unreash= (src/syntax//control_flow.nit:62,2--64:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowContext____already_unreash( self) /*ControlFlowContext::_already_unreash*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowContext___base_block(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::base_block (src/syntax//control_flow.nit:66,2--67:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ControlFlowContext____base_block( self) /*ControlFlowContext::_base_block*/;
+}
+void control_flow___ControlFlowContext___base_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::base_block= (src/syntax//control_flow.nit:66,2--67:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_control_flow___ControlFlowContext____base_block( self) /*ControlFlowContext::_base_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ControlFlowContext___sub(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::sub (src/syntax//control_flow.nit:69,2--71:41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_control_flow___ControlFlowContext___with( self); /*new ControlFlowContext*/
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void control_flow___ControlFlowContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::init (src/syntax//control_flow.nit:74,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowContext].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___ControlFlowContext___with(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "control_flow::ControlFlowContext::with (src/syntax//control_flow.nit:78,2--84:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowContext].i]) return;
+  ATTR_control_flow___ControlFlowContext____prev( self) /*ControlFlowContext::_prev*/ =  variable0 /*p*/;
+  variable1 = ((control_flow___ControlFlowContext___has_return_t)CALL( variable0 /*p*/,COLOR_control_flow___ControlFlowContext___has_return))( variable0 /*p*/) /*ControlFlowContext::has_return*/;
+  ATTR_control_flow___ControlFlowContext____has_return( self) /*ControlFlowContext::_has_return*/ = variable1;
+  variable1 = ((control_flow___ControlFlowContext___unreash_t)CALL( variable0 /*p*/,COLOR_control_flow___ControlFlowContext___unreash))( variable0 /*p*/) /*ControlFlowContext::unreash*/;
+  ATTR_control_flow___ControlFlowContext____unreash( self) /*ControlFlowContext::_unreash*/ = variable1;
+  variable1 = ((control_flow___ControlFlowContext___already_unreash_t)CALL( variable0 /*p*/,COLOR_control_flow___ControlFlowContext___already_unreash))( variable0 /*p*/) /*ControlFlowContext::already_unreash*/;
+  ATTR_control_flow___ControlFlowContext____already_unreash( self) /*ControlFlowContext::_already_unreash*/ = variable1;
+  variable1 = ((control_flow___ControlFlowContext___base_block_t)CALL( variable0 /*p*/,COLOR_control_flow___ControlFlowContext___base_block))( variable0 /*p*/) /*ControlFlowContext::base_block*/;
+  ATTR_control_flow___ControlFlowContext____base_block( self) /*ControlFlowContext::_base_block*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ControlFlowContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___PNode___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::PNode::accept_control_flow (src/syntax//control_flow.nit:91,2--93:29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AMethPropdef___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AMethPropdef::accept_control_flow (src/syntax//control_flow.nit:98,2--101:7)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_control_flow___ControlFlowContext___init(); /*new ControlFlowContext*/
+  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/, variable1) /*ControlFlowVisitor::control_flow_ctx=*/;
+  ((control_flow___AMethPropdef___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow))( self,  param0) /*super AMethPropdef::accept_control_flow*/;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AConcreteMethPropdef___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AConcreteMethPropdef::accept_control_flow (src/syntax//control_flow.nit:106,2--110:58)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((control_flow___AConcreteMethPropdef___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow))( self,  param0) /*super AConcreteMethPropdef::accept_control_flow*/;
+  variable1 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable1 = ((control_flow___ControlFlowContext___has_return_t)CALL(variable1,COLOR_control_flow___ControlFlowContext___has_return))(variable1) /*ControlFlowContext::has_return*/;
+  variable1 = TAG_Bool((variable1)==( TAG_Bool(false)));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((syntax_base___AMethPropdef___method_t)CALL( self,COLOR_syntax_base___AMethPropdef___method))( self) /*AConcreteMethPropdef::method*/;
+    variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMMethSrcMethod::signature*/;
+    variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Control error: Reached end of function."), TAG_Int(39)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable1) /*ControlFlowVisitor::error*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___ABlockExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ABlockExpr::accept_control_flow (src/syntax//control_flow.nit:116,2--123:12)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ABlockExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ABlockExpr___n_expr))( self) /*ABlockExpr::n_expr*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    variable3 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable3 = ((control_flow___ControlFlowContext___unreash_t)CALL(variable3,COLOR_control_flow___ControlFlowContext___unreash))(variable3) /*ControlFlowContext::unreash*/;
+    variable4 = variable3;
+    if (UNTAG_Bool(variable4)) { /* and */
+      variable4 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+      variable4 = ((control_flow___ControlFlowContext___already_unreash_t)CALL(variable4,COLOR_control_flow___ControlFlowContext___already_unreash))(variable4) /*ControlFlowContext::already_unreash*/;
+      variable4 =  TAG_Bool(!UNTAG_Bool(variable4));
+    }
+    variable3 = variable4;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+      ((control_flow___ControlFlowContext___already_unreash__eq_t)CALL(variable3,COLOR_control_flow___ControlFlowContext___already_unreash__eq))(variable3,  TAG_Bool(true)) /*ControlFlowContext::already_unreash=*/;
+      variable3 = NEW_string___String___with_native(BOX_NativeString("Warning: unreachable statement."), TAG_Int(31)); /*new String*/
+      ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable0 /*v*/,  variable2 /*e*/, variable3) /*ControlFlowVisitor::warning*/;
+    }
+    ((control_flow___ControlFlowVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*e*/) /*ControlFlowVisitor::visit*/;
+    continue_10: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_10: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AReturnExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AReturnExpr::accept_control_flow (src/syntax//control_flow.nit:129,2--133:35)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((control_flow___AReturnExpr___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow))( self,  param0) /*super AReturnExpr::accept_control_flow*/;
+  variable1 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___has_return__eq_t)CALL(variable1,COLOR_control_flow___ControlFlowContext___has_return__eq))(variable1,  TAG_Bool(true)) /*ControlFlowContext::has_return=*/;
+  variable1 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable1,COLOR_control_flow___ControlFlowContext___unreash__eq))(variable1,  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t control_flow___ABlockControler___block(val_t  self) {
+  struct trace_t trace = {NULL, "control_flow::ABlockControler::block (src/syntax//control_flow.nit:139,2--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_control_flow___ABlockControler____block( self) /*ABlockControler::_block*/;
+}
+void control_flow___ABreakExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::ABreakExpr::accept_control_flow (src/syntax//control_flow.nit:144,2--153:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((control_flow___ABreakExpr___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow))( self,  param0) /*super ABreakExpr::accept_control_flow*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable2 = ((control_flow___ControlFlowContext___base_block_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___base_block))(variable2) /*ControlFlowContext::base_block*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*block*/ ==  NIT_NULL /*null*/) || (( variable1 /*block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*block*/,COLOR_kernel___Object_____eqeq))( variable1 /*block*/,  NIT_NULL /*null*/) /*AControlableBlock::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Syntax Error: 'break' statment outside block."), TAG_Int(45)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ControlFlowVisitor::error*/;
+    goto return_label12;
+  }
+  ATTR_control_flow___ABlockControler____block( self) /*ABreakExpr::_block*/ =  variable1 /*block*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___unreash__eq))(variable2,  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AContinueExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AContinueExpr::accept_control_flow (src/syntax//control_flow.nit:158,2--167:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((control_flow___AContinueExpr___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow))( self,  param0) /*super AContinueExpr::accept_control_flow*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable2 = ((control_flow___ControlFlowContext___base_block_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___base_block))(variable2) /*ControlFlowContext::base_block*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*block*/ ==  NIT_NULL /*null*/) || (( variable1 /*block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*block*/,COLOR_kernel___Object_____eqeq))( variable1 /*block*/,  NIT_NULL /*null*/) /*AControlableBlock::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Syntax Error: 'continue' outside block."), TAG_Int(39)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ControlFlowVisitor::error*/;
+    goto return_label13;
+  }
+  ATTR_control_flow___ABlockControler____block( self) /*AContinueExpr::_block*/ =  variable1 /*block*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___unreash__eq))(variable2,  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AAbortExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AAbortExpr::accept_control_flow (src/syntax//control_flow.nit:172,2--176:35)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((control_flow___AAbortExpr___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow))( self,  param0) /*super AAbortExpr::accept_control_flow*/;
+  variable1 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___has_return__eq_t)CALL(variable1,COLOR_control_flow___ControlFlowContext___has_return__eq))(variable1,  TAG_Bool(true)) /*ControlFlowContext::has_return=*/;
+  variable1 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable1,COLOR_control_flow___ControlFlowContext___unreash__eq))(variable1,  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AIfExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AIfExpr::accept_control_flow (src/syntax//control_flow.nit:181,2--204:92)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*ControlFlowVisitor::visit*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable1 = variable2;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable2 = ((control_flow___ControlFlowContext___sub_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___sub))(variable2) /*ControlFlowContext::sub*/;
+  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/, variable2) /*ControlFlowVisitor::control_flow_ctx=*/;
+  variable2 = ((parser_nodes___AIfExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_then))( self) /*AIfExpr::n_then*/;
+  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*ControlFlowVisitor::visit*/;
+  variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/,  variable1 /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+  } else { /*if*/
+    variable3 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable2 = variable3;
+    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/,  variable1 /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+    variable3 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+    ((control_flow___ControlFlowVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable3) /*ControlFlowVisitor::visit*/;
+    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/,  variable1 /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+    variable3 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable4 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable4 = ((control_flow___ControlFlowContext___has_return_t)CALL(variable4,COLOR_control_flow___ControlFlowContext___has_return))(variable4) /*ControlFlowContext::has_return*/;
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = ((control_flow___ControlFlowContext___has_return_t)CALL( variable2 /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___has_return))( variable2 /*then_control_flow_ctx*/) /*ControlFlowContext::has_return*/;
+    }
+    variable4 = variable5;
+    ((control_flow___ControlFlowContext___has_return__eq_t)CALL(variable3,COLOR_control_flow___ControlFlowContext___has_return__eq))(variable3, variable4) /*ControlFlowContext::has_return=*/;
+    variable3 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable4 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable4 = ((control_flow___ControlFlowContext___unreash_t)CALL(variable4,COLOR_control_flow___ControlFlowContext___unreash))(variable4) /*ControlFlowContext::unreash*/;
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = ((control_flow___ControlFlowContext___unreash_t)CALL( variable2 /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash))( variable2 /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
+    }
+    variable4 = variable5;
+    ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable3,COLOR_control_flow___ControlFlowContext___unreash__eq))(variable3, variable4) /*ControlFlowContext::unreash=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AControlableBlock___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AControlableBlock::accept_control_flow (src/syntax//control_flow.nit:211,2--223:43)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable1 = variable2;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable2 = ((control_flow___ControlFlowContext___sub_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___sub))(variable2) /*ControlFlowContext::sub*/;
+  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/, variable2) /*ControlFlowVisitor::control_flow_ctx=*/;
+  variable2 = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable0 /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  ((control_flow___ControlFlowContext___base_block__eq_t)CALL(variable2,COLOR_control_flow___ControlFlowContext___base_block__eq))(variable2,  self) /*ControlFlowContext::base_block=*/;
+  ((control_flow___AControlableBlock___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow))( self,  param0) /*super AControlableBlock::accept_control_flow*/;
+  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable0 /*v*/,  variable1 /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+  tracehead = trace.prev;
+  return;
+}
+void control_flow___AOnceExpr___accept_control_flow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "control_flow::AOnceExpr::accept_control_flow (src/syntax//control_flow.nit:236,2--245:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable0 /*v*/) /*ControlFlowVisitor::once_count*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Useless once in a once expression."), TAG_Int(34)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable0 /*v*/,  self, variable1) /*ControlFlowVisitor::warning*/;
+  }
+  variable1 = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable0 /*v*/) /*ControlFlowVisitor::once_count*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
+  ((control_flow___ControlFlowVisitor___once_count__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq))( variable0 /*v*/, variable1) /*ControlFlowVisitor::once_count=*/;
+  ((control_flow___AOnceExpr___accept_control_flow_t)CALL( self,COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow))( self,  param0) /*super AOnceExpr::accept_control_flow*/;
+  variable1 = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable0 /*v*/) /*ControlFlowVisitor::once_count*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  ((control_flow___ControlFlowVisitor___once_count__eq_t)CALL( variable0 /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq))( variable0 /*v*/, variable1) /*ControlFlowVisitor::once_count=*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/control_flow._sep.h b/c_src/control_flow._sep.h
new file mode 100644 (file)
index 0000000..32bd3be
--- /dev/null
@@ -0,0 +1,135 @@
+#ifndef control_flow__sep
+#define control_flow__sep
+#include "syntax_base._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_ControlFlowVisitor[];
+
+extern const classtable_elt_t VFT_ControlFlowContext[];
+
+extern const classtable_elt_t VFT_ABlockControler[];
+
+extern const classtable_elt_t VFT_AControlableBlock[];
+extern const int SFT_control_flow[];
+#define COLOR_control_flow___MMSrcModule___do_control_flow SFT_control_flow[0]
+#define ID_ControlFlowVisitor SFT_control_flow[1]
+#define COLOR_ControlFlowVisitor SFT_control_flow[2]
+#define COLOR_control_flow___ControlFlowVisitor____once_count SFT_control_flow[3]
+#define COLOR_control_flow___ControlFlowVisitor____control_flow_ctx SFT_control_flow[4]
+#define INIT_TABLE_POS_ControlFlowVisitor SFT_control_flow[5]
+#define COLOR_control_flow___ControlFlowVisitor___once_count SFT_control_flow[6]
+#define COLOR_control_flow___ControlFlowVisitor___once_count__eq SFT_control_flow[7]
+#define COLOR_control_flow___ControlFlowVisitor___control_flow_ctx SFT_control_flow[8]
+#define COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq SFT_control_flow[9]
+#define COLOR_control_flow___ControlFlowVisitor___init SFT_control_flow[10]
+#define ID_ControlFlowContext SFT_control_flow[11]
+#define COLOR_ControlFlowContext SFT_control_flow[12]
+#define COLOR_control_flow___ControlFlowContext____prev SFT_control_flow[13]
+#define COLOR_control_flow___ControlFlowContext____has_return SFT_control_flow[14]
+#define COLOR_control_flow___ControlFlowContext____unreash SFT_control_flow[15]
+#define COLOR_control_flow___ControlFlowContext____already_unreash SFT_control_flow[16]
+#define COLOR_control_flow___ControlFlowContext____base_block SFT_control_flow[17]
+#define INIT_TABLE_POS_ControlFlowContext SFT_control_flow[18]
+#define COLOR_control_flow___ControlFlowContext___prev SFT_control_flow[19]
+#define COLOR_control_flow___ControlFlowContext___has_return SFT_control_flow[20]
+#define COLOR_control_flow___ControlFlowContext___has_return__eq SFT_control_flow[21]
+#define COLOR_control_flow___ControlFlowContext___unreash SFT_control_flow[22]
+#define COLOR_control_flow___ControlFlowContext___unreash__eq SFT_control_flow[23]
+#define COLOR_control_flow___ControlFlowContext___already_unreash SFT_control_flow[24]
+#define COLOR_control_flow___ControlFlowContext___already_unreash__eq SFT_control_flow[25]
+#define COLOR_control_flow___ControlFlowContext___base_block SFT_control_flow[26]
+#define COLOR_control_flow___ControlFlowContext___base_block__eq SFT_control_flow[27]
+#define COLOR_control_flow___ControlFlowContext___sub SFT_control_flow[28]
+#define COLOR_control_flow___ControlFlowContext___init SFT_control_flow[29]
+#define COLOR_control_flow___ControlFlowContext___with SFT_control_flow[30]
+#define COLOR_control_flow___PNode___accept_control_flow SFT_control_flow[31]
+#define COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow SFT_control_flow[32]
+#define COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow SFT_control_flow[33]
+#define COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow SFT_control_flow[34]
+#define ID_ABlockControler SFT_control_flow[35]
+#define COLOR_ABlockControler SFT_control_flow[36]
+#define COLOR_control_flow___ABlockControler____block SFT_control_flow[37]
+#define INIT_TABLE_POS_ABlockControler SFT_control_flow[38]
+#define COLOR_control_flow___ABlockControler___block SFT_control_flow[39]
+#define COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow SFT_control_flow[40]
+#define COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow SFT_control_flow[41]
+#define COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow SFT_control_flow[42]
+#define ID_AControlableBlock SFT_control_flow[43]
+#define COLOR_AControlableBlock SFT_control_flow[44]
+#define INIT_TABLE_POS_AControlableBlock SFT_control_flow[45]
+#define COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow SFT_control_flow[46]
+#define COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow SFT_control_flow[47]
+typedef void (* control_flow___MMSrcModule___do_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___MMSrcModule___do_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___ControlFlowVisitor___visit_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowVisitor___visit(val_t  self, val_t  param0);
+#define ATTR_control_flow___ControlFlowVisitor____once_count(recv) ATTR(recv, COLOR_control_flow___ControlFlowVisitor____once_count)
+typedef val_t (* control_flow___ControlFlowVisitor___once_count_t)(val_t  self);
+val_t control_flow___ControlFlowVisitor___once_count(val_t  self);
+typedef void (* control_flow___ControlFlowVisitor___once_count__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowVisitor___once_count__eq(val_t  self, val_t  param0);
+#define ATTR_control_flow___ControlFlowVisitor____control_flow_ctx(recv) ATTR(recv, COLOR_control_flow___ControlFlowVisitor____control_flow_ctx)
+typedef val_t (* control_flow___ControlFlowVisitor___control_flow_ctx_t)(val_t  self);
+val_t control_flow___ControlFlowVisitor___control_flow_ctx(val_t  self);
+typedef void (* control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowVisitor___control_flow_ctx__eq(val_t  self, val_t  param0);
+typedef void (* control_flow___ControlFlowVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void control_flow___ControlFlowVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_control_flow___ControlFlowVisitor___init(val_t  param0, val_t  param1);
+#define ATTR_control_flow___ControlFlowContext____prev(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____prev)
+typedef val_t (* control_flow___ControlFlowContext___prev_t)(val_t  self);
+val_t control_flow___ControlFlowContext___prev(val_t  self);
+#define ATTR_control_flow___ControlFlowContext____has_return(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____has_return)
+typedef val_t (* control_flow___ControlFlowContext___has_return_t)(val_t  self);
+val_t control_flow___ControlFlowContext___has_return(val_t  self);
+typedef void (* control_flow___ControlFlowContext___has_return__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowContext___has_return__eq(val_t  self, val_t  param0);
+#define ATTR_control_flow___ControlFlowContext____unreash(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____unreash)
+typedef val_t (* control_flow___ControlFlowContext___unreash_t)(val_t  self);
+val_t control_flow___ControlFlowContext___unreash(val_t  self);
+typedef void (* control_flow___ControlFlowContext___unreash__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowContext___unreash__eq(val_t  self, val_t  param0);
+#define ATTR_control_flow___ControlFlowContext____already_unreash(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____already_unreash)
+typedef val_t (* control_flow___ControlFlowContext___already_unreash_t)(val_t  self);
+val_t control_flow___ControlFlowContext___already_unreash(val_t  self);
+typedef void (* control_flow___ControlFlowContext___already_unreash__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowContext___already_unreash__eq(val_t  self, val_t  param0);
+#define ATTR_control_flow___ControlFlowContext____base_block(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____base_block)
+typedef val_t (* control_flow___ControlFlowContext___base_block_t)(val_t  self);
+val_t control_flow___ControlFlowContext___base_block(val_t  self);
+typedef void (* control_flow___ControlFlowContext___base_block__eq_t)(val_t  self, val_t  param0);
+void control_flow___ControlFlowContext___base_block__eq(val_t  self, val_t  param0);
+typedef val_t (* control_flow___ControlFlowContext___sub_t)(val_t  self);
+val_t control_flow___ControlFlowContext___sub(val_t  self);
+typedef void (* control_flow___ControlFlowContext___init_t)(val_t  self, int* init_table);
+void control_flow___ControlFlowContext___init(val_t  self, int* init_table);
+val_t NEW_control_flow___ControlFlowContext___init();
+typedef void (* control_flow___ControlFlowContext___with_t)(val_t  self, val_t  param0, int* init_table);
+void control_flow___ControlFlowContext___with(val_t  self, val_t  param0, int* init_table);
+val_t NEW_control_flow___ControlFlowContext___with(val_t  param0);
+typedef void (* control_flow___PNode___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___PNode___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AMethPropdef___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AMethPropdef___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AConcreteMethPropdef___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AConcreteMethPropdef___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___ABlockExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___ABlockExpr___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AReturnExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AReturnExpr___accept_control_flow(val_t  self, val_t  param0);
+#define ATTR_control_flow___ABlockControler____block(recv) ATTR(recv, COLOR_control_flow___ABlockControler____block)
+typedef val_t (* control_flow___ABlockControler___block_t)(val_t  self);
+val_t control_flow___ABlockControler___block(val_t  self);
+typedef void (* control_flow___ABreakExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___ABreakExpr___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AContinueExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AContinueExpr___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AAbortExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AAbortExpr___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AIfExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AIfExpr___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AControlableBlock___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AControlableBlock___accept_control_flow(val_t  self, val_t  param0);
+typedef void (* control_flow___AOnceExpr___accept_control_flow_t)(val_t  self, val_t  param0);
+void control_flow___AOnceExpr___accept_control_flow(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/environ._sep.c b/c_src/environ._sep.c
new file mode 100644 (file)
index 0000000..f376442
--- /dev/null
@@ -0,0 +1,83 @@
+#include "environ._sep.h"
+val_t environ___Symbol___environ(val_t  self) {
+  struct trace_t trace = {NULL, "environ::Symbol::environ (bin/../lib/standard//environ.nit:19,2--23:60)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  ((environ___Symbol___environ_default__eq_t)CALL( self,COLOR_environ___Symbol___environ_default__eq))( self, variable0) /*Symbol::environ_default=*/;
+  variable0 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
+  variable0 = ((string___String___to_cstring_t)CALL(variable0,COLOR_string___String___to_cstring))(variable0) /*String::to_cstring*/;
+  variable0 = ((environ___NativeString___get_environ_t)CALL(variable0,COLOR_environ___NativeString___get_environ))(variable0) /*NativeString::get_environ*/;
+  variable1 = NEW_string___String___from_cstring(variable0); /*new String*/
+  variable0 = variable1;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void environ___Symbol___environ__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "environ::Symbol::environ= (bin/../lib/standard//environ.nit:26,2--27:72)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
+  variable1 = ((string___String___to_cstring_t)CALL(variable1,COLOR_string___String___to_cstring))(variable1) /*String::to_cstring*/;
+  variable2 = ((string___String___to_cstring_t)CALL( variable0 /*v*/,COLOR_string___String___to_cstring))( variable0 /*v*/) /*String::to_cstring*/;
+  ((environ___NativeString___set_environ_t)CALL(variable1,COLOR_environ___NativeString___set_environ))(variable1, variable2,  TAG_Int(1)) /*NativeString::set_environ*/;
+  tracehead = trace.prev;
+  return;
+}
+void environ___Symbol___environ_default__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "environ::Symbol::environ_default= (bin/../lib/standard//environ.nit:29,2--30:80)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
+  variable1 = ((string___String___to_cstring_t)CALL(variable1,COLOR_string___String___to_cstring))(variable1) /*String::to_cstring*/;
+  variable2 = ((string___String___to_cstring_t)CALL( variable0 /*v*/,COLOR_string___String___to_cstring))( variable0 /*v*/) /*String::to_cstring*/;
+  ((environ___NativeString___set_environ_t)CALL(variable1,COLOR_environ___NativeString___set_environ))(variable1, variable2,  TAG_Int(0)) /*NativeString::set_environ*/;
+  tracehead = trace.prev;
+  return;
+}
+void environ___Symbol___unset(val_t  self) {
+  struct trace_t trace = {NULL, "environ::Symbol::unset (bin/../lib/standard//environ.nit:32,2--33:44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
+  variable0 = ((string___String___to_cstring_t)CALL(variable0,COLOR_string___String___to_cstring))(variable0) /*String::to_cstring*/;
+  ((environ___NativeString___unset_environ_t)CALL(variable0,COLOR_environ___NativeString___unset_environ))(variable0) /*NativeString::unset_environ*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t environ___NativeString___get_environ(val_t  self) {
+  struct trace_t trace = {NULL, "environ::NativeString::get_environ (bin/../lib/standard//environ.nit:37,1--38:98)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeString(string_NativeString_NativeString_get_environ_0(UNBOX_NativeString( self)));
+}
+void environ___NativeString___put_environ(val_t  self) {
+  struct trace_t trace = {NULL, "environ::NativeString::put_environ (bin/../lib/standard//environ.nit:39,2--84)"};
+  trace.prev = tracehead; tracehead = &trace;
+  string_NativeString_NativeString_put_environ_0(UNBOX_NativeString( self));
+  tracehead = trace.prev;
+  return;
+}
+void environ___NativeString___unset_environ(val_t  self) {
+  struct trace_t trace = {NULL, "environ::NativeString::unset_environ (bin/../lib/standard//environ.nit:40,2--88)"};
+  trace.prev = tracehead; tracehead = &trace;
+  string_NativeString_NativeString_unset_environ_0(UNBOX_NativeString( self));
+  tracehead = trace.prev;
+  return;
+}
+void environ___NativeString___set_environ(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "environ::NativeString::set_environ (bin/../lib/standard//environ.nit:41,2--123)"};
+  trace.prev = tracehead; tracehead = &trace;
+  string_NativeString_NativeString_set_environ_2(UNBOX_NativeString( self), UNBOX_NativeString( param0), UNTAG_Int( param1));
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/environ._sep.h b/c_src/environ._sep.h
new file mode 100644 (file)
index 0000000..06ed9d2
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef environ__sep
+#define environ__sep
+#include "symbol._sep.h"
+#include <nit_common.h>
+#include <environ_nit.h>
+extern const int SFT_environ[];
+#define COLOR_environ___Symbol___environ SFT_environ[0]
+#define COLOR_environ___Symbol___environ__eq SFT_environ[1]
+#define COLOR_environ___Symbol___environ_default__eq SFT_environ[2]
+#define COLOR_environ___Symbol___unset SFT_environ[3]
+#define COLOR_environ___NativeString___get_environ SFT_environ[4]
+#define COLOR_environ___NativeString___put_environ SFT_environ[5]
+#define COLOR_environ___NativeString___unset_environ SFT_environ[6]
+#define COLOR_environ___NativeString___set_environ SFT_environ[7]
+typedef val_t (* environ___Symbol___environ_t)(val_t  self);
+val_t environ___Symbol___environ(val_t  self);
+typedef void (* environ___Symbol___environ__eq_t)(val_t  self, val_t  param0);
+void environ___Symbol___environ__eq(val_t  self, val_t  param0);
+typedef void (* environ___Symbol___environ_default__eq_t)(val_t  self, val_t  param0);
+void environ___Symbol___environ_default__eq(val_t  self, val_t  param0);
+typedef void (* environ___Symbol___unset_t)(val_t  self);
+void environ___Symbol___unset(val_t  self);
+typedef val_t (* environ___NativeString___get_environ_t)(val_t  self);
+val_t environ___NativeString___get_environ(val_t  self);
+typedef void (* environ___NativeString___put_environ_t)(val_t  self);
+void environ___NativeString___put_environ(val_t  self);
+typedef void (* environ___NativeString___unset_environ_t)(val_t  self);
+void environ___NativeString___unset_environ(val_t  self);
+typedef void (* environ___NativeString___set_environ_t)(val_t  self, val_t  param0, val_t  param1);
+void environ___NativeString___set_environ(val_t  self, val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/exec._sep.c b/c_src/exec._sep.c
new file mode 100644 (file)
index 0000000..2785f2b
--- /dev/null
@@ -0,0 +1,415 @@
+#include "exec._sep.h"
+val_t exec___Process___id(val_t  self) {
+  struct trace_t trace = {NULL, "exec::Process::id (bin/../lib/standard//exec.nit:23,2--24:32)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___Process____data( self) /*Process::_data*/;
+  variable0 = ((exec___NativeProcess___id_t)CALL(variable0,COLOR_exec___NativeProcess___id))(variable0) /*NativeProcess::id*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t exec___Process___is_finished(val_t  self) {
+  struct trace_t trace = {NULL, "exec::Process::is_finished (bin/../lib/standard//exec.nit:26,2--27:51)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___Process____data( self) /*Process::_data*/;
+  variable0 = ((exec___NativeProcess___is_finished_t)CALL(variable0,COLOR_exec___NativeProcess___is_finished))(variable0) /*NativeProcess::is_finished*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void exec___Process___wait(val_t  self) {
+  struct trace_t trace = {NULL, "exec::Process::wait (bin/../lib/standard//exec.nit:29,2--33:20)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___Process____data( self) /*Process::_data*/;
+  ((exec___NativeProcess___wait_t)CALL(variable0,COLOR_exec___NativeProcess___wait))(variable0) /*NativeProcess::wait*/;
+  variable0 = ((exec___Process___is_finished_t)CALL( self,COLOR_exec___Process___is_finished))( self) /*Process::is_finished*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//exec.nit:33,3--20\n"); nit_exit(1);}
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___Process___status(val_t  self) {
+  struct trace_t trace = {NULL, "exec::Process::status (bin/../lib/standard//exec.nit:36,2--40:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((exec___Process___is_finished_t)CALL( self,COLOR_exec___Process___is_finished))( self) /*Process::is_finished*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//exec.nit:39,3--20\n"); nit_exit(1);}
+  variable0 = ATTR_exec___Process____data( self) /*Process::_data*/;
+  variable0 = ((exec___NativeProcess___status_t)CALL(variable0,COLOR_exec___NativeProcess___status))(variable0) /*NativeProcess::status*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void exec___Process___kill(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "exec::Process::kill (bin/../lib/standard//exec.nit:43,2--44:44)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_exec___Process____data( self) /*Process::_data*/;
+  ((exec___NativeProcess___kill_t)CALL(variable1,COLOR_exec___NativeProcess___kill))(variable1,  variable0 /*signal*/) /*NativeProcess::kill*/;
+  tracehead = trace.prev;
+  return;
+}
+void exec___Process___term(val_t  self) {
+  struct trace_t trace = {NULL, "exec::Process::term (bin/../lib/standard//exec.nit:46,2--47:21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ((exec___Process___kill_t)CALL( self,COLOR_exec___Process___kill))( self,  TAG_Int(15)) /*Process::kill*/;
+  tracehead = trace.prev;
+  return;
+}
+void exec___Process___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "exec::Process::init (bin/../lib/standard//exec.nit:49,2--52:31)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//exec.nit:50,24--43\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  variable1 /*arguments*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___Process___init_(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "exec::Process::init_ (bin/../lib/standard//exec.nit:55,2--58:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  NIT_NULL /*null*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___Process___execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "exec::Process::execute (bin/../lib/standard//exec.nit:61,2--74:78)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+      val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i]) return;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable3 = variable4;
+  variable4 =  TAG_Int(1);
+  ((string___String___append_t)CALL( variable3 /*args*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*args*/,  variable0 /*command*/) /*String::append*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*arguments*/ ==  NIT_NULL /*null*/) || (( variable1 /*arguments*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*arguments*/,COLOR_kernel___Object_____eqeq))( variable1 /*arguments*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___iterator_t)CALL( variable1 /*arguments*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*arguments*/) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable6)) break; /*for*/
+      variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+      ((string___String___add_t)CALL( variable3 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*args*/,  TAG_Char('\0')) /*String::add*/;
+      ((string___String___append_t)CALL( variable3 /*args*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*args*/,  variable6 /*a*/) /*String::append*/;
+      continue_9: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+    }
+    break_9: while(0);
+    variable5 = ((array___AbstractArray___length_t)CALL( variable1 /*arguments*/,COLOR_abstract_collection___Collection___length))( variable1 /*arguments*/) /*Array::length*/;
+    variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int(variable5)) /*l*/;
+  }
+  variable5 = ((string___String___to_cstring_t)CALL( variable0 /*command*/,COLOR_string___String___to_cstring))( variable0 /*command*/) /*String::to_cstring*/;
+  variable6 = ((string___String___to_cstring_t)CALL( variable3 /*args*/,COLOR_string___String___to_cstring))( variable3 /*args*/) /*String::to_cstring*/;
+  variable5 = ((exec___Process___basic_exec_execute_t)CALL( self,COLOR_exec___Process___basic_exec_execute))( self, variable5, variable6,  variable4 /*l*/,  variable2 /*pipeflags*/) /*Process::basic_exec_execute*/;
+  ATTR_exec___Process____data( self) /*Process::_data*/ = variable5;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Process].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___Process___basic_exec_execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "exec::Process::basic_exec_execute (bin/../lib/standard//exec.nit:78,2--154)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeProcess(exec_Process_Process_basic_exec_execute_4( self, UNBOX_NativeString( param0), UNBOX_NativeString( param1), UNTAG_Int( param2), UNTAG_Int( param3)));
+}
+void exec___IProcess___close(val_t  self) {
+  struct trace_t trace = {NULL, "exec::IProcess::close (bin/../lib/standard//exec.nit:87,2--30)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___IProcess____in( self) /*IProcess::_in*/;
+  ((stream___FDStream___close_t)CALL(variable0,COLOR_stream___IOS___close))(variable0) /*FDIStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___IProcess___read_char(val_t  self) {
+  struct trace_t trace = {NULL, "exec::IProcess::read_char (bin/../lib/standard//exec.nit:89,2--45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___IProcess____in( self) /*IProcess::_in*/;
+  variable0 = ((stream___FDIStream___read_char_t)CALL(variable0,COLOR_stream___IStream___read_char))(variable0) /*FDIStream::read_char*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t exec___IProcess___eof(val_t  self) {
+  struct trace_t trace = {NULL, "exec::IProcess::eof (bin/../lib/standard//exec.nit:91,2--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___IProcess____in( self) /*IProcess::_in*/;
+  variable0 = ((stream___FDIStream___eof_t)CALL(variable0,COLOR_stream___IStream___eof))(variable0) /*FDIStream::eof*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void exec___IProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "exec::IProcess::init (bin/../lib/standard//exec.nit:93,2--96:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//exec.nit:93,30--49\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  variable1 /*arguments*/,  TAG_Int(2), init_table /*YYY*/) /*IProcess::execute*/;
+  variable2 = ATTR_exec___Process____data( self) /*IProcess::_data*/;
+  variable2 = ((exec___NativeProcess___out_fd_t)CALL(variable2,COLOR_exec___NativeProcess___out_fd))(variable2) /*NativeProcess::out_fd*/;
+  variable3 = NEW_stream___FDIStream___init(variable2); /*new FDIStream*/
+  variable2 = variable3;
+  ATTR_exec___IProcess____in( self) /*IProcess::_in*/ = variable2;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___IProcess___init_(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "exec::IProcess::init_ (bin/../lib/standard//exec.nit:99,2--102:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  NIT_NULL /*null*/,  TAG_Int(2), init_table /*YYY*/) /*IProcess::execute*/;
+  variable1 = ATTR_exec___Process____data( self) /*IProcess::_data*/;
+  variable1 = ((exec___NativeProcess___out_fd_t)CALL(variable1,COLOR_exec___NativeProcess___out_fd))(variable1) /*NativeProcess::out_fd*/;
+  variable2 = NEW_stream___FDIStream___init(variable1); /*new FDIStream*/
+  variable1 = variable2;
+  ATTR_exec___IProcess____in( self) /*IProcess::_in*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___OProcess___close(val_t  self) {
+  struct trace_t trace = {NULL, "exec::OProcess::close (bin/../lib/standard//exec.nit:112,2--31)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___OProcess____out( self) /*OProcess::_out*/;
+  ((stream___IOS___close_t)CALL(variable0,COLOR_stream___IOS___close))(variable0) /*OStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___OProcess___is_writable(val_t  self) {
+  struct trace_t trace = {NULL, "exec::OProcess::is_writable (bin/../lib/standard//exec.nit:114,2--50)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___OProcess____out( self) /*OProcess::_out*/;
+  variable0 = ((stream___OStream___is_writable_t)CALL(variable0,COLOR_stream___OStream___is_writable))(variable0) /*OStream::is_writable*/;
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void exec___OProcess___write(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "exec::OProcess::write (bin/../lib/standard//exec.nit:116,2--36)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_exec___OProcess____out( self) /*OProcess::_out*/;
+  ((stream___OStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1,  variable0 /*s*/) /*OStream::write*/;
+  tracehead = trace.prev;
+  return;
+}
+void exec___OProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "exec::OProcess::init (bin/../lib/standard//exec.nit:118,2--121:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//exec.nit:118,30--49\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  variable1 /*arguments*/,  TAG_Int(1), init_table /*YYY*/) /*OProcess::execute*/;
+  variable2 = ATTR_exec___Process____data( self) /*OProcess::_data*/;
+  variable2 = ((exec___NativeProcess___in_fd_t)CALL(variable2,COLOR_exec___NativeProcess___in_fd))(variable2) /*NativeProcess::in_fd*/;
+  variable3 = NEW_stream___FDOStream___init(variable2); /*new FDOStream*/
+  variable2 = variable3;
+  ATTR_exec___OProcess____out( self) /*OProcess::_out*/ = variable2;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___OProcess___init_(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "exec::OProcess::init_ (bin/../lib/standard//exec.nit:124,2--127:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  NIT_NULL /*null*/,  TAG_Int(1), init_table /*YYY*/) /*OProcess::execute*/;
+  variable1 = ATTR_exec___Process____data( self) /*OProcess::_data*/;
+  variable1 = ((exec___NativeProcess___in_fd_t)CALL(variable1,COLOR_exec___NativeProcess___in_fd))(variable1) /*NativeProcess::in_fd*/;
+  variable2 = NEW_stream___FDOStream___init(variable1); /*new FDOStream*/
+  variable1 = variable2;
+  ATTR_exec___OProcess____out( self) /*OProcess::_out*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___IOProcess___close(val_t  self) {
+  struct trace_t trace = {NULL, "exec::IOProcess::close (bin/../lib/standard//exec.nit:137,2--140:12)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_exec___IProcess____in( self) /*IOProcess::_in*/;
+  ((stream___FDStream___close_t)CALL(variable0,COLOR_stream___IOS___close))(variable0) /*FDIStream::close*/;
+  variable0 = ATTR_exec___OProcess____out( self) /*IOProcess::_out*/;
+  ((stream___IOS___close_t)CALL(variable0,COLOR_stream___IOS___close))(variable0) /*OStream::close*/;
+  tracehead = trace.prev;
+  return;
+}
+void exec___IOProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "exec::IOProcess::init (bin/../lib/standard//exec.nit:143,2--147:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//exec.nit:143,30--49\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IOProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  variable1 /*arguments*/,  TAG_Int(3), init_table /*YYY*/) /*IOProcess::execute*/;
+  ((exec___IProcess___init_t)CALL( self,COLOR_exec___IProcess___init))( self,  param0,  param1, init_table /*YYY*/) /*IProcess::init*/;
+  ((exec___OProcess___init_t)CALL( self,COLOR_exec___OProcess___init))( self,  param0,  param1, init_table /*YYY*/) /*OProcess::init*/;
+  variable2 = ATTR_exec___Process____data( self) /*IOProcess::_data*/;
+  variable2 = ((exec___NativeProcess___out_fd_t)CALL(variable2,COLOR_exec___NativeProcess___out_fd))(variable2) /*NativeProcess::out_fd*/;
+  variable3 = NEW_stream___FDIStream___init(variable2); /*new FDIStream*/
+  variable2 = variable3;
+  ATTR_exec___IProcess____in( self) /*IOProcess::_in*/ = variable2;
+  variable2 = ATTR_exec___Process____data( self) /*IOProcess::_data*/;
+  variable2 = ((exec___NativeProcess___in_fd_t)CALL(variable2,COLOR_exec___NativeProcess___in_fd))(variable2) /*NativeProcess::in_fd*/;
+  variable3 = NEW_stream___FDOStream___init(variable2); /*new FDOStream*/
+  variable2 = variable3;
+  ATTR_exec___OProcess____out( self) /*IOProcess::_out*/ = variable2;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IOProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void exec___IOProcess___init_(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "exec::IOProcess::init_ (bin/../lib/standard//exec.nit:150,2--154:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IOProcess].i]) return;
+  ((exec___Process___execute_t)CALL( self,COLOR_exec___Process___execute))( self,  variable0 /*command*/,  NIT_NULL /*null*/,  TAG_Int(3), init_table /*YYY*/) /*IOProcess::execute*/;
+  ((exec___IProcess___init__t)CALL( self,COLOR_exec___IProcess___init_))( self,  param0, init_table /*YYY*/) /*IProcess::init_*/;
+  ((exec___OProcess___init__t)CALL( self,COLOR_exec___OProcess___init_))( self,  param0, init_table /*YYY*/) /*OProcess::init_*/;
+  variable1 = ATTR_exec___Process____data( self) /*IOProcess::_data*/;
+  variable1 = ((exec___NativeProcess___out_fd_t)CALL(variable1,COLOR_exec___NativeProcess___out_fd))(variable1) /*NativeProcess::out_fd*/;
+  variable2 = NEW_stream___FDIStream___init(variable1); /*new FDIStream*/
+  variable1 = variable2;
+  ATTR_exec___IProcess____in( self) /*IOProcess::_in*/ = variable1;
+  variable1 = ATTR_exec___Process____data( self) /*IOProcess::_data*/;
+  variable1 = ((exec___NativeProcess___in_fd_t)CALL(variable1,COLOR_exec___NativeProcess___in_fd))(variable1) /*NativeProcess::in_fd*/;
+  variable2 = NEW_stream___FDOStream___init(variable1); /*new FDOStream*/
+  variable1 = variable2;
+  ATTR_exec___OProcess____out( self) /*IOProcess::_out*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IOProcess].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___Sys___system(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "exec::Sys::system (bin/../lib/standard//exec.nit:159,2--162:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string___String___to_cstring_t)CALL( variable0 /*command*/,COLOR_string___String___to_cstring))( variable0 /*command*/) /*String::to_cstring*/;
+  variable1 = ((exec___NativeString___system_t)CALL(variable1,COLOR_exec___NativeString___system))(variable1) /*NativeString::system*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t exec___NativeString___system(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeString::system (bin/../lib/standard//exec.nit:167,2--71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(string_NativeString_NativeString_system_0(UNBOX_NativeString( self)));
+}
+val_t exec___NativeProcess___id(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::id (bin/../lib/standard//exec.nit:172,2--63)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(exec_NativeProcess_NativeProcess_id_0(UNBOX_NativeProcess( self)));
+}
+val_t exec___NativeProcess___is_finished(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::is_finished (bin/../lib/standard//exec.nit:173,2--82)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(exec_NativeProcess_NativeProcess_is_finished_0(UNBOX_NativeProcess( self)));
+}
+val_t exec___NativeProcess___status(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::status (bin/../lib/standard//exec.nit:174,2--71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(exec_NativeProcess_NativeProcess_status_0(UNBOX_NativeProcess( self)));
+}
+void exec___NativeProcess___wait(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::wait (bin/../lib/standard//exec.nit:175,2--62)"};
+  trace.prev = tracehead; tracehead = &trace;
+  exec_NativeProcess_NativeProcess_wait_0(UNBOX_NativeProcess( self));
+  tracehead = trace.prev;
+  return;
+}
+void exec___NativeProcess___kill(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::kill (bin/../lib/standard//exec.nit:176,2--70)"};
+  trace.prev = tracehead; tracehead = &trace;
+  exec_NativeProcess_NativeProcess_kill_1(UNBOX_NativeProcess( self), UNTAG_Int( param0));
+  tracehead = trace.prev;
+  return;
+}
+val_t exec___NativeProcess___in_fd(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::in_fd (bin/../lib/standard//exec.nit:178,2--69)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(exec_NativeProcess_NativeProcess_in_fd_0(UNBOX_NativeProcess( self)));
+}
+val_t exec___NativeProcess___out_fd(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::out_fd (bin/../lib/standard//exec.nit:179,2--71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(exec_NativeProcess_NativeProcess_out_fd_0(UNBOX_NativeProcess( self)));
+}
+val_t exec___NativeProcess___err_fd(val_t  self) {
+  struct trace_t trace = {NULL, "exec::NativeProcess::err_fd (bin/../lib/standard//exec.nit:180,2--71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(exec_NativeProcess_NativeProcess_err_fd_0(UNBOX_NativeProcess( self)));
+}
diff --git a/c_src/exec._sep.h b/c_src/exec._sep.h
new file mode 100644 (file)
index 0000000..95f5df6
--- /dev/null
@@ -0,0 +1,142 @@
+#ifndef exec__sep
+#define exec__sep
+#include "stream._sep.h"
+#include <nit_common.h>
+#include <exec_nit.h>
+
+extern const classtable_elt_t VFT_Process[];
+
+extern const classtable_elt_t VFT_IProcess[];
+
+extern const classtable_elt_t VFT_OProcess[];
+
+extern const classtable_elt_t VFT_IOProcess[];
+
+extern const classtable_elt_t VFT_NativeProcess[];
+struct TBOX_NativeProcess { const classtable_elt_t * vft; void * val;};
+val_t BOX_NativeProcess(void * val);
+#define UNBOX_NativeProcess(x) (((struct TBOX_NativeProcess *)(VAL2OBJ(x)))->val)
+extern const int SFT_exec[];
+#define ID_Process SFT_exec[0]
+#define COLOR_Process SFT_exec[1]
+#define COLOR_exec___Process____data SFT_exec[2]
+#define INIT_TABLE_POS_Process SFT_exec[3]
+#define COLOR_exec___Process___id SFT_exec[4]
+#define COLOR_exec___Process___is_finished SFT_exec[5]
+#define COLOR_exec___Process___wait SFT_exec[6]
+#define COLOR_exec___Process___status SFT_exec[7]
+#define COLOR_exec___Process___kill SFT_exec[8]
+#define COLOR_exec___Process___term SFT_exec[9]
+#define COLOR_exec___Process___init SFT_exec[10]
+#define COLOR_exec___Process___init_ SFT_exec[11]
+#define COLOR_exec___Process___execute SFT_exec[12]
+#define COLOR_exec___Process___basic_exec_execute SFT_exec[13]
+#define ID_IProcess SFT_exec[14]
+#define COLOR_IProcess SFT_exec[15]
+#define COLOR_exec___IProcess____in SFT_exec[16]
+#define INIT_TABLE_POS_IProcess SFT_exec[17]
+#define COLOR_exec___IProcess___init SFT_exec[18]
+#define COLOR_exec___IProcess___init_ SFT_exec[19]
+#define ID_OProcess SFT_exec[20]
+#define COLOR_OProcess SFT_exec[21]
+#define COLOR_exec___OProcess____out SFT_exec[22]
+#define INIT_TABLE_POS_OProcess SFT_exec[23]
+#define COLOR_exec___OProcess___init SFT_exec[24]
+#define COLOR_exec___OProcess___init_ SFT_exec[25]
+#define ID_IOProcess SFT_exec[26]
+#define COLOR_IOProcess SFT_exec[27]
+#define INIT_TABLE_POS_IOProcess SFT_exec[28]
+#define COLOR_exec___IOProcess___init SFT_exec[29]
+#define COLOR_exec___IOProcess___init_ SFT_exec[30]
+#define COLOR_exec___Sys___system SFT_exec[31]
+#define COLOR_exec___NativeString___system SFT_exec[32]
+#define ID_NativeProcess SFT_exec[33]
+#define COLOR_NativeProcess SFT_exec[34]
+#define INIT_TABLE_POS_NativeProcess SFT_exec[35]
+#define COLOR_exec___NativeProcess___id SFT_exec[36]
+#define COLOR_exec___NativeProcess___is_finished SFT_exec[37]
+#define COLOR_exec___NativeProcess___status SFT_exec[38]
+#define COLOR_exec___NativeProcess___wait SFT_exec[39]
+#define COLOR_exec___NativeProcess___kill SFT_exec[40]
+#define COLOR_exec___NativeProcess___in_fd SFT_exec[41]
+#define COLOR_exec___NativeProcess___out_fd SFT_exec[42]
+#define COLOR_exec___NativeProcess___err_fd SFT_exec[43]
+typedef val_t (* exec___Process___id_t)(val_t  self);
+val_t exec___Process___id(val_t  self);
+typedef val_t (* exec___Process___is_finished_t)(val_t  self);
+val_t exec___Process___is_finished(val_t  self);
+typedef void (* exec___Process___wait_t)(val_t  self);
+void exec___Process___wait(val_t  self);
+typedef val_t (* exec___Process___status_t)(val_t  self);
+val_t exec___Process___status(val_t  self);
+typedef void (* exec___Process___kill_t)(val_t  self, val_t  param0);
+void exec___Process___kill(val_t  self, val_t  param0);
+typedef void (* exec___Process___term_t)(val_t  self);
+void exec___Process___term(val_t  self);
+typedef void (* exec___Process___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void exec___Process___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_exec___Process___init(val_t  param0, val_t  param1);
+typedef void (* exec___Process___init__t)(val_t  self, val_t  param0, int* init_table);
+void exec___Process___init_(val_t  self, val_t  param0, int* init_table);
+val_t NEW_exec___Process___init_(val_t  param0);
+typedef void (* exec___Process___execute_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void exec___Process___execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_exec___Process___execute(val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_exec___Process____data(recv) ATTR(recv, COLOR_exec___Process____data)
+typedef val_t (* exec___Process___basic_exec_execute_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+val_t exec___Process___basic_exec_execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_exec___IProcess____in(recv) ATTR(recv, COLOR_exec___IProcess____in)
+typedef void (* exec___IProcess___close_t)(val_t  self);
+void exec___IProcess___close(val_t  self);
+typedef val_t (* exec___IProcess___read_char_t)(val_t  self);
+val_t exec___IProcess___read_char(val_t  self);
+typedef val_t (* exec___IProcess___eof_t)(val_t  self);
+val_t exec___IProcess___eof(val_t  self);
+typedef void (* exec___IProcess___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void exec___IProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_exec___IProcess___init(val_t  param0, val_t  param1);
+typedef void (* exec___IProcess___init__t)(val_t  self, val_t  param0, int* init_table);
+void exec___IProcess___init_(val_t  self, val_t  param0, int* init_table);
+val_t NEW_exec___IProcess___init_(val_t  param0);
+#define ATTR_exec___OProcess____out(recv) ATTR(recv, COLOR_exec___OProcess____out)
+typedef void (* exec___OProcess___close_t)(val_t  self);
+void exec___OProcess___close(val_t  self);
+typedef val_t (* exec___OProcess___is_writable_t)(val_t  self);
+val_t exec___OProcess___is_writable(val_t  self);
+typedef void (* exec___OProcess___write_t)(val_t  self, val_t  param0);
+void exec___OProcess___write(val_t  self, val_t  param0);
+typedef void (* exec___OProcess___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void exec___OProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_exec___OProcess___init(val_t  param0, val_t  param1);
+typedef void (* exec___OProcess___init__t)(val_t  self, val_t  param0, int* init_table);
+void exec___OProcess___init_(val_t  self, val_t  param0, int* init_table);
+val_t NEW_exec___OProcess___init_(val_t  param0);
+typedef void (* exec___IOProcess___close_t)(val_t  self);
+void exec___IOProcess___close(val_t  self);
+typedef void (* exec___IOProcess___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void exec___IOProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_exec___IOProcess___init(val_t  param0, val_t  param1);
+typedef void (* exec___IOProcess___init__t)(val_t  self, val_t  param0, int* init_table);
+void exec___IOProcess___init_(val_t  self, val_t  param0, int* init_table);
+val_t NEW_exec___IOProcess___init_(val_t  param0);
+typedef val_t (* exec___Sys___system_t)(val_t  self, val_t  param0);
+val_t exec___Sys___system(val_t  self, val_t  param0);
+typedef val_t (* exec___NativeString___system_t)(val_t  self);
+val_t exec___NativeString___system(val_t  self);
+typedef val_t (* exec___NativeProcess___id_t)(val_t  self);
+val_t exec___NativeProcess___id(val_t  self);
+typedef val_t (* exec___NativeProcess___is_finished_t)(val_t  self);
+val_t exec___NativeProcess___is_finished(val_t  self);
+typedef val_t (* exec___NativeProcess___status_t)(val_t  self);
+val_t exec___NativeProcess___status(val_t  self);
+typedef void (* exec___NativeProcess___wait_t)(val_t  self);
+void exec___NativeProcess___wait(val_t  self);
+typedef void (* exec___NativeProcess___kill_t)(val_t  self, val_t  param0);
+void exec___NativeProcess___kill(val_t  self, val_t  param0);
+typedef val_t (* exec___NativeProcess___in_fd_t)(val_t  self);
+val_t exec___NativeProcess___in_fd(val_t  self);
+typedef val_t (* exec___NativeProcess___out_fd_t)(val_t  self);
+val_t exec___NativeProcess___out_fd(val_t  self);
+typedef val_t (* exec___NativeProcess___err_fd_t)(val_t  self);
+val_t exec___NativeProcess___err_fd(val_t  self);
+#endif
diff --git a/c_src/file._sep.c b/c_src/file._sep.c
new file mode 100644 (file)
index 0000000..cff4729
--- /dev/null
@@ -0,0 +1,629 @@
+#include "file._sep.h"
+void file___Object___printn(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::Object::printn (bin/../lib/standard//file.nit:24,2--27:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  /* check if p<Array[Object] with p:Object */
+  if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/standard//file.nit:25,24--41\n"); nit_exit(1); } /*cast Array[Object]*/;
+  variable0 =  param0;
+  variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
+  variable2 = ((string___Collection___to_s_t)CALL( variable0 /*objects*/,COLOR_string___Object___to_s))( variable0 /*objects*/) /*Array::to_s*/;
+  ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
+  tracehead = trace.prev;
+  return;
+}
+void file___Object___print(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::Object::print (bin/../lib/standard//file.nit:30,2--36:19)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*object*/ ==  NIT_NULL /*null*/) || (( variable0 /*object*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*object*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*object*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*object*/,COLOR_kernel___Object_____eqeq))( variable0 /*object*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
+    variable2 = ((string___Object___to_s_t)CALL( variable0 /*object*/,COLOR_string___Object___to_s))( variable0 /*object*/) /*Object::to_s*/;
+    ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
+  }
+  variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t file___Object___getc(val_t  self) {
+  struct trace_t trace = {NULL, "file::Object::getc (bin/../lib/standard//file.nit:39,2--42:30)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*Object::stdin*/;
+  variable0 = ((stream___BufferedIStream___read_char_t)CALL(variable0,COLOR_stream___IStream___read_char))(variable0) /*IFStream::read_char*/;
+  variable0 = TAG_Char(UNTAG_Int(variable0));
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___Object___gets(val_t  self) {
+  struct trace_t trace = {NULL, "file::Object::gets (bin/../lib/standard//file.nit:45,2--48:24)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*Object::stdin*/;
+  variable0 = ((stream___IStream___read_line_t)CALL(variable0,COLOR_stream___IStream___read_line))(variable0) /*IFStream::read_line*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___Object___stdin(val_t  self) {
+  struct trace_t trace = {NULL, "file::Object::stdin (bin/../lib/standard//file.nit:288,1--289:45)"};
+  val_t variable0;
+  static val_t once_value_variable0_5; static int once_bool_variable0_5;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_5) variable0 = once_value_variable0_5;
+  else {
+    variable0 = NEW_file___Stdin___init(); /*new Stdin*/
+    once_value_variable0_5 = variable0;
+    once_bool_variable0_5 = true;
+  }
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___Object___stdout(val_t  self) {
+  struct trace_t trace = {NULL, "file::Object::stdout (bin/../lib/standard//file.nit:291,1--292:47)"};
+  val_t variable0;
+  static val_t once_value_variable0_7; static int once_bool_variable0_7;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_7) variable0 = once_value_variable0_7;
+  else {
+    variable0 = NEW_file___Stdout___init(); /*new Stdout*/
+    once_value_variable0_7 = variable0;
+    once_bool_variable0_7 = true;
+  }
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___Object___stderr(val_t  self) {
+  struct trace_t trace = {NULL, "file::Object::stderr (bin/../lib/standard//file.nit:294,1--295:47)"};
+  val_t variable0;
+  static val_t once_value_variable0_9; static int once_bool_variable0_9;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_9) variable0 = once_value_variable0_9;
+  else {
+    variable0 = NEW_file___Stderr___init(); /*new Stderr*/
+    once_value_variable0_9 = variable0;
+    once_bool_variable0_9 = true;
+  }
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___FStream___path(val_t  self) {
+  struct trace_t trace = {NULL, "file::FStream::path (bin/../lib/standard//file.nit:57,2--58:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_file___FStream____path( self) /*FStream::_path*/;
+}
+val_t file___FStream___file_stat(val_t  self) {
+  struct trace_t trace = {NULL, "file::FStream::file_stat (bin/../lib/standard//file.nit:63,2--64:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_file___FStream____file( self) /*FStream::_file*/;
+  variable0 = ((file___NativeFile___file_stat_t)CALL(variable0,COLOR_file___NativeFile___file_stat))(variable0) /*NativeFile::file_stat*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void file___IFStream___reopen(val_t  self) {
+  struct trace_t trace = {NULL, "file::IFStream::reopen (bin/../lib/standard//file.nit:73,2--79:15)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IFStream::eof*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { /*if*/
+    ((file___IFStream___close_t)CALL( self,COLOR_stream___IOS___close))( self) /*IFStream::close*/;
+  }
+  variable0 = ATTR_file___FStream____path( self) /*IFStream::_path*/;
+  variable0 = ((string___String___to_cstring_t)CALL(variable0,COLOR_string___String___to_cstring))(variable0) /*String::to_cstring*/;
+  variable0 = ((file___NativeFileCapable___io_open_read_t)CALL( self,COLOR_file___NativeFileCapable___io_open_read))( self, variable0) /*IFStream::io_open_read*/;
+  ATTR_file___FStream____file( self) /*IFStream::_file*/ = variable0;
+  ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ =  TAG_Bool(false);
+  ATTR_stream___BufferedIStream____buffer_pos( self) /*IFStream::_buffer_pos*/ =  TAG_Int(0);
+  variable0 = ATTR_stream___BufferedIStream____buffer( self) /*IFStream::_buffer*/;
+  ((array___AbstractArray___clear_t)CALL(variable0,COLOR_abstract_collection___RemovableCollection___clear))(variable0) /*String::clear*/;
+  tracehead = trace.prev;
+  return;
+}
+void file___IFStream___close(val_t  self) {
+  struct trace_t trace = {NULL, "file::IFStream::close (bin/../lib/standard//file.nit:82,2--85:21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_file___FStream____file( self) /*IFStream::_file*/;
+  variable1 = ((file___NativeFile___io_close_t)CALL(variable1,COLOR_file___NativeFile___io_close))(variable1) /*NativeFile::io_close*/;
+  variable0 = variable1;
+  ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ =  TAG_Bool(true);
+  tracehead = trace.prev;
+  return;
+}
+void file___IFStream___fill_buffer(val_t  self) {
+  struct trace_t trace = {NULL, "file::IFStream::fill_buffer (bin/../lib/standard//file.nit:88,2--97:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_file___FStream____file( self) /*IFStream::_file*/;
+  variable2 = ATTR_stream___BufferedIStream____buffer( self) /*IFStream::_buffer*/;
+  variable2 = ATTR_string___String____items(variable2) /*String::_items*/;
+  variable3 = ATTR_stream___BufferedIStream____buffer( self) /*IFStream::_buffer*/;
+  variable3 = ATTR_string___String____capacity(variable3) /*String::_capacity*/;
+  variable1 = ((file___NativeFile___io_read_t)CALL(variable1,COLOR_file___NativeFile___io_read))(variable1, variable2, variable3) /*NativeFile::io_read*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)<=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ =  TAG_Bool(true);
+    variable0 =  TAG_Int(0) /*nb=*/;
+  }
+  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*IFStream::_buffer*/;
+  ATTR_array___AbstractArray____length(variable1) /*String::_length*/ =  variable0 /*nb*/;
+  ATTR_stream___BufferedIStream____buffer_pos( self) /*IFStream::_buffer_pos*/ =  TAG_Int(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t file___IFStream___end_reached(val_t  self) {
+  struct trace_t trace = {NULL, "file::IFStream::end_reached (bin/../lib/standard//file.nit:100,2--101:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/;
+}
+void file___IFStream___open(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "file::IFStream::open (bin/../lib/standard//file.nit:103,2--109:38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i]) return;
+  ATTR_file___FStream____path( self) /*IFStream::_path*/ =  variable0 /*path*/;
+  ((stream___BufferedIStream___prepare_buffer_t)CALL( self,COLOR_stream___BufferedIStream___prepare_buffer))( self,  TAG_Int(10)) /*IFStream::prepare_buffer*/;
+  variable1 = ATTR_file___FStream____path( self) /*IFStream::_path*/;
+  variable1 = ((string___String___to_cstring_t)CALL(variable1,COLOR_string___String___to_cstring))(variable1) /*String::to_cstring*/;
+  variable1 = ((file___NativeFileCapable___io_open_read_t)CALL( self,COLOR_file___NativeFileCapable___io_open_read))( self, variable1) /*IFStream::io_open_read*/;
+  ATTR_file___FStream____file( self) /*IFStream::_file*/ = variable1;
+  variable1 = ATTR_file___FStream____file( self) /*IFStream::_file*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*NativeFile::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'cant_open_file'  failed: bin/../lib/standard//file.nit:109,3--38\n"); nit_exit(1);}
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___IFStream___without_file(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "file::IFStream::without_file (bin/../lib/standard//file.nit:112,2--26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___OFStream___write(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::OFStream::write (bin/../lib/standard//file.nit:120,2--124:37)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//file.nit:123,3--18\n"); nit_exit(1);}
+  variable1 = ((string___String___to_cstring_t)CALL( variable0 /*s*/,COLOR_string___String___to_cstring))( variable0 /*s*/) /*String::to_cstring*/;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  ((file___OFStream___write_native_t)CALL( self,COLOR_file___OFStream___write_native))( self, variable1, variable2) /*OFStream::write_native*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t file___OFStream___is_writable(val_t  self) {
+  struct trace_t trace = {NULL, "file::OFStream::is_writable (bin/../lib/standard//file.nit:127,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void file___OFStream___close(val_t  self) {
+  struct trace_t trace = {NULL, "file::OFStream::close (bin/../lib/standard//file.nit:129,2--132:19)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_file___FStream____file( self) /*OFStream::_file*/;
+  variable1 = ((file___NativeFile___io_close_t)CALL(variable1,COLOR_file___NativeFile___io_close))(variable1) /*NativeFile::io_close*/;
+  variable0 = variable1;
+  ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ =  TAG_Bool(false);
+  tracehead = trace.prev;
+  return;
+}
+void file___OFStream___write_native(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "file::OFStream::write_native (bin/../lib/standard//file.nit:138,2--145:54)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//file.nit:141,3--18\n"); nit_exit(1);}
+  variable3 = ATTR_file___FStream____file( self) /*OFStream::_file*/;
+  variable3 = ((file___NativeFile___io_write_t)CALL(variable3,COLOR_file___NativeFile___io_write))(variable3,  variable0 /*native*/,  variable1 /*len*/) /*NativeFile::io_write*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable2 /*err*/)!=( variable1 /*len*/));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Object]*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("Problem in writing : "), TAG_Int(21)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable4) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*err*/) /*Array::add*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable5) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable1 /*len*/) /*Array::add*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable6) /*Array::add*/;
+    ((file___Object___printn_t)CALL( self,COLOR_file___Object___printn))( self, variable3) /*OFStream::printn*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void file___OFStream___open(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "file::OFStream::open (bin/../lib/standard//file.nit:149,2--155:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i]) return;
+  variable1 = ((string___String___to_cstring_t)CALL( variable0 /*path*/,COLOR_string___String___to_cstring))( variable0 /*path*/) /*String::to_cstring*/;
+  variable1 = ((file___NativeFileCapable___io_open_write_t)CALL( self,COLOR_file___NativeFileCapable___io_open_write))( self, variable1) /*OFStream::io_open_write*/;
+  ATTR_file___FStream____file( self) /*OFStream::_file*/ = variable1;
+  variable1 = ATTR_file___FStream____file( self) /*OFStream::_file*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*NativeFile::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'cant_open_file'  failed: bin/../lib/standard//file.nit:153,3--38\n"); nit_exit(1);}
+  ATTR_file___FStream____path( self) /*OFStream::_path*/ =  variable0 /*path*/;
+  ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ =  TAG_Bool(true);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___OFStream___without_file(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "file::OFStream::without_file (bin/../lib/standard//file.nit:158,2--26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___Stdin___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "file::Stdin::init (bin/../lib/standard//file.nit:165,2--168:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdin].i]) return;
+  ((file___IFStream___without_file_t)CALL( self,COLOR_file___IFStream___without_file))( self, init_table /*YYY*/) /*IFStream::without_file*/;
+  variable0 = ((file___NativeFileCapable___native_stdin_t)CALL( self,COLOR_file___NativeFileCapable___native_stdin))( self) /*Stdin::native_stdin*/;
+  ATTR_file___FStream____file( self) /*Stdin::_file*/ = variable0;
+  variable0 = NEW_string___String___with_native(BOX_NativeString("/dev/stdin"), TAG_Int(10)); /*new String*/
+  ATTR_file___FStream____path( self) /*Stdin::_path*/ = variable0;
+  ((stream___BufferedIStream___prepare_buffer_t)CALL( self,COLOR_stream___BufferedIStream___prepare_buffer))( self,  TAG_Int(1)) /*Stdin::prepare_buffer*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdin].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___Stdout___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "file::Stdout::init (bin/../lib/standard//file.nit:174,2--177:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdout].i]) return;
+  ((file___OFStream___without_file_t)CALL( self,COLOR_file___OFStream___without_file))( self, init_table /*YYY*/) /*OFStream::without_file*/;
+  variable0 = ((file___NativeFileCapable___native_stdout_t)CALL( self,COLOR_file___NativeFileCapable___native_stdout))( self) /*Stdout::native_stdout*/;
+  ATTR_file___FStream____file( self) /*Stdout::_file*/ = variable0;
+  variable0 = NEW_string___String___with_native(BOX_NativeString("/dev/stdout"), TAG_Int(11)); /*new String*/
+  ATTR_file___FStream____path( self) /*Stdout::_path*/ = variable0;
+  ATTR_file___OFStream____writable( self) /*Stdout::_writable*/ =  TAG_Bool(true);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdout].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void file___Stderr___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "file::Stderr::init (bin/../lib/standard//file.nit:183,2--186:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stderr].i]) return;
+  ((file___OFStream___without_file_t)CALL( self,COLOR_file___OFStream___without_file))( self, init_table /*YYY*/) /*OFStream::without_file*/;
+  variable0 = ((file___NativeFileCapable___native_stderr_t)CALL( self,COLOR_file___NativeFileCapable___native_stderr))( self) /*Stderr::native_stderr*/;
+  ATTR_file___FStream____file( self) /*Stderr::_file*/ = variable0;
+  variable0 = NEW_string___String___with_native(BOX_NativeString("/dev/stderr"), TAG_Int(11)); /*new String*/
+  ATTR_file___FStream____path( self) /*Stderr::_path*/ = variable0;
+  ATTR_file___OFStream____writable( self) /*Stderr::_writable*/ =  TAG_Bool(true);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stderr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t file___String___file_exists(val_t  self) {
+  struct trace_t trace = {NULL, "file::String::file_exists (bin/../lib/standard//file.nit:193,2--194:56)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
+  variable0 = ((file___NativeString___file_exists_t)CALL(variable0,COLOR_file___NativeString___file_exists))(variable0) /*NativeString::file_exists*/;
+  goto return_label25;
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___String___file_stat(val_t  self) {
+  struct trace_t trace = {NULL, "file::String::file_stat (bin/../lib/standard//file.nit:196,2--56)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
+  variable0 = ((file___NativeString___file_stat_t)CALL(variable0,COLOR_file___NativeString___file_stat))(variable0) /*NativeString::file_stat*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___String___strip_extension(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::String::strip_extension (bin/../lib/standard//file.nit:198,2--203:13)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string___String___has_suffix_t)CALL( self,COLOR_string___String___has_suffix))( self,  variable0 /*ext*/) /*String::has_suffix*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*ext*/,COLOR_abstract_collection___Collection___length))( variable0 /*ext*/) /*String::length*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int(variable2));
+    variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self,  TAG_Int(0), variable1) /*String::substring*/;
+    goto return_label27;
+  }
+  variable1 =  self;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t file___String___basename(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::String::basename (bin/../lib/standard//file.nit:206,2--213:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable2 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self,  TAG_Char('/'), variable2) /*String::last_index_of_from*/;
+  variable1 = variable2;
+  variable2 =  self;
+  variable3 = TAG_Bool(UNTAG_Int( variable1 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( TAG_Int(1)));
+    variable3 = ((string___String___substring_from_t)CALL( self,COLOR_string___String___substring_from))( self, variable3) /*String::substring_from*/;
+    variable2 = variable3 /*n=*/;
+  }
+  variable3 = ((file___String___strip_extension_t)CALL( variable2 /*n*/,COLOR_file___String___strip_extension))( variable2 /*n*/,  variable0 /*ext*/) /*String::strip_extension*/;
+  variable1 = variable3;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t file___String___dirname(val_t  self) {
+  struct trace_t trace = {NULL, "file::String::dirname (bin/../lib/standard//file.nit:216,2--222:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  variable1 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self,  TAG_Char('/'), variable1) /*String::last_index_of_from*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self,  TAG_Int(0),  variable0 /*pos*/) /*String::substring*/;
+    variable0 = variable1;
+    goto return_label29;
+  } else { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable0 = variable1;
+    goto return_label29;
+  }
+  return_label29: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t file___String___file_path(val_t  self) {
+  struct trace_t trace = {NULL, "file::String::file_path (bin/../lib/standard//file.nit:226,2--233:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
+  variable0 = variable1;
+  variable2 = TAG_Int(UNTAG_Int( variable0 /*l*/)-UNTAG_Int( TAG_Int(1)));
+  variable2 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self,  TAG_Char('/'), variable2) /*String::last_index_of_from*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self,  TAG_Int(0),  variable1 /*pos*/) /*String::substring*/;
+    variable0 = variable2;
+    goto return_label30;
+  }
+  variable2 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable0 = variable2;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void file___String___mkdir(val_t  self) {
+  struct trace_t trace = {NULL, "file::String::mkdir (bin/../lib/standard//file.nit:236,2--250:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable1 = ((string_search___String___split_with_t)CALL( self,COLOR_string_search___String___split_with))( self, variable1) /*String::split_with*/;
+  variable0 = variable1;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*dirs*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*dirs*/) /*Array::is_empty*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label31;
+  }
+  variable2 =  TAG_Int(0);
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = ATTR_array___AbstractArray____length( variable0 /*dirs*/) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = ATTR_array___Array____items( variable0 /*dirs*/) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label32;
+  return_label32: while(false);
+  variable2 = variable3;
+  variable2 = ((array___AbstractArray___is_empty_t)CALL(variable2,COLOR_abstract_collection___Collection___is_empty))(variable2) /*String::is_empty*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((string___String___add_t)CALL( variable1 /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*path*/,  TAG_Char('/')) /*String::add*/;
+  }
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*dirs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*dirs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*d*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*d*/) /*String::is_empty*/;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      goto continue_33;
+    }
+    ((string___String___append_t)CALL( variable1 /*path*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*path*/,  variable3 /*d*/) /*String::append*/;
+    ((string___String___add_t)CALL( variable1 /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*path*/,  TAG_Char('/')) /*String::add*/;
+    variable4 = ((string___String___to_cstring_t)CALL( variable1 /*path*/,COLOR_string___String___to_cstring))( variable1 /*path*/) /*String::to_cstring*/;
+    ((file___NativeString___file_mkdir_t)CALL(variable4,COLOR_file___NativeString___file_mkdir))(variable4) /*NativeString::file_mkdir*/;
+    continue_33: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_33: while(0);
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t file___NativeString___file_exists(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeString::file_exists (bin/../lib/standard//file.nit:256,2--90)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(string_NativeString_NativeString_file_exists_0(UNBOX_NativeString( self)));
+}
+val_t file___NativeString___file_stat(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeString::file_stat (bin/../lib/standard//file.nit:257,2--90)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_FileStat(string_NativeString_NativeString_file_stat_0(UNBOX_NativeString( self)));
+}
+val_t file___NativeString___file_mkdir(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeString::file_mkdir (bin/../lib/standard//file.nit:258,2--88)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(string_NativeString_NativeString_file_mkdir_0(UNBOX_NativeString( self)));
+}
+val_t file___FileStat___mode(val_t  self) {
+  struct trace_t trace = {NULL, "file::FileStat::mode (bin/../lib/standard//file.nit:263,1--264:57)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_FileStat_FileStat_mode_0(UNBOX_FileStat( self)));
+}
+val_t file___FileStat___atime(val_t  self) {
+  struct trace_t trace = {NULL, "file::FileStat::atime (bin/../lib/standard//file.nit:265,2--59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_FileStat_FileStat_atime_0(UNBOX_FileStat( self)));
+}
+val_t file___FileStat___ctime(val_t  self) {
+  struct trace_t trace = {NULL, "file::FileStat::ctime (bin/../lib/standard//file.nit:266,2--59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_FileStat_FileStat_ctime_0(UNBOX_FileStat( self)));
+}
+val_t file___FileStat___mtime(val_t  self) {
+  struct trace_t trace = {NULL, "file::FileStat::mtime (bin/../lib/standard//file.nit:267,2--59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_FileStat_FileStat_mtime_0(UNBOX_FileStat( self)));
+}
+val_t file___FileStat___size(val_t  self) {
+  struct trace_t trace = {NULL, "file::FileStat::size (bin/../lib/standard//file.nit:268,2--57)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_FileStat_FileStat_size_0(UNBOX_FileStat( self)));
+}
+val_t file___NativeFile___io_read(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "file::NativeFile::io_read (bin/../lib/standard//file.nit:274,2--96)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_NativeFile_NativeFile_io_read_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
+}
+val_t file___NativeFile___io_write(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "file::NativeFile::io_write (bin/../lib/standard//file.nit:275,2--98)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_NativeFile_NativeFile_io_write_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
+}
+val_t file___NativeFile___io_close(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeFile::io_close (bin/../lib/standard//file.nit:276,2--69)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(file_NativeFile_NativeFile_io_close_0(UNBOX_NativeFile( self)));
+}
+val_t file___NativeFile___file_stat(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeFile::file_stat (bin/../lib/standard//file.nit:277,2--76)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_FileStat(file_NativeFile_NativeFile_file_stat_0(UNBOX_NativeFile( self)));
+}
+val_t file___NativeFileCapable___io_open_read(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::NativeFileCapable::io_open_read (bin/../lib/standard//file.nit:281,2--118)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_read_1( self, UNBOX_NativeString( param0)));
+}
+val_t file___NativeFileCapable___io_open_write(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "file::NativeFileCapable::io_open_write (bin/../lib/standard//file.nit:282,2--120)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_write_1( self, UNBOX_NativeString( param0)));
+}
+val_t file___NativeFileCapable___native_stdin(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeFileCapable::native_stdin (bin/../lib/standard//file.nit:283,2--98)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdin_0( self));
+}
+val_t file___NativeFileCapable___native_stdout(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeFileCapable::native_stdout (bin/../lib/standard//file.nit:284,2--100)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdout_0( self));
+}
+val_t file___NativeFileCapable___native_stderr(val_t  self) {
+  struct trace_t trace = {NULL, "file::NativeFileCapable::native_stderr (bin/../lib/standard//file.nit:285,2--100)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stderr_0( self));
+}
diff --git a/c_src/file._sep.h b/c_src/file._sep.h
new file mode 100644 (file)
index 0000000..144a2ae
--- /dev/null
@@ -0,0 +1,212 @@
+#ifndef file__sep
+#define file__sep
+#include "stream._sep.h"
+#include "string_search._sep.h"
+#include <nit_common.h>
+#include <file_nit.h>
+
+extern const classtable_elt_t VFT_FStream[];
+
+extern const classtable_elt_t VFT_IFStream[];
+
+extern const classtable_elt_t VFT_OFStream[];
+
+extern const classtable_elt_t VFT_Stdin[];
+
+extern const classtable_elt_t VFT_Stdout[];
+
+extern const classtable_elt_t VFT_Stderr[];
+
+extern const classtable_elt_t VFT_FileStat[];
+struct TBOX_FileStat { const classtable_elt_t * vft; void * val;};
+val_t BOX_FileStat(void * val);
+#define UNBOX_FileStat(x) (((struct TBOX_FileStat *)(VAL2OBJ(x)))->val)
+
+extern const classtable_elt_t VFT_NativeFile[];
+struct TBOX_NativeFile { const classtable_elt_t * vft; void * val;};
+val_t BOX_NativeFile(void * val);
+#define UNBOX_NativeFile(x) (((struct TBOX_NativeFile *)(VAL2OBJ(x)))->val)
+
+extern const classtable_elt_t VFT_NativeFileCapable[];
+extern const int SFT_file[];
+#define COLOR_file___Object___printn SFT_file[0]
+#define COLOR_file___Object___print SFT_file[1]
+#define COLOR_file___Object___getc SFT_file[2]
+#define COLOR_file___Object___gets SFT_file[3]
+#define COLOR_file___Object___stdin SFT_file[4]
+#define COLOR_file___Object___stdout SFT_file[5]
+#define COLOR_file___Object___stderr SFT_file[6]
+#define ID_FStream SFT_file[7]
+#define COLOR_FStream SFT_file[8]
+#define COLOR_file___FStream____path SFT_file[9]
+#define COLOR_file___FStream____file SFT_file[10]
+#define INIT_TABLE_POS_FStream SFT_file[11]
+#define COLOR_file___FStream___path SFT_file[12]
+#define COLOR_file___FStream___file_stat SFT_file[13]
+#define ID_IFStream SFT_file[14]
+#define COLOR_IFStream SFT_file[15]
+#define COLOR_file___IFStream____end_reached SFT_file[16]
+#define INIT_TABLE_POS_IFStream SFT_file[17]
+#define COLOR_file___IFStream___reopen SFT_file[18]
+#define COLOR_file___IFStream___open SFT_file[19]
+#define COLOR_file___IFStream___without_file SFT_file[20]
+#define ID_OFStream SFT_file[21]
+#define COLOR_OFStream SFT_file[22]
+#define COLOR_file___OFStream____writable SFT_file[23]
+#define INIT_TABLE_POS_OFStream SFT_file[24]
+#define COLOR_file___OFStream___write_native SFT_file[25]
+#define COLOR_file___OFStream___open SFT_file[26]
+#define COLOR_file___OFStream___without_file SFT_file[27]
+#define ID_Stdin SFT_file[28]
+#define COLOR_Stdin SFT_file[29]
+#define INIT_TABLE_POS_Stdin SFT_file[30]
+#define COLOR_file___Stdin___init SFT_file[31]
+#define ID_Stdout SFT_file[32]
+#define COLOR_Stdout SFT_file[33]
+#define INIT_TABLE_POS_Stdout SFT_file[34]
+#define COLOR_file___Stdout___init SFT_file[35]
+#define ID_Stderr SFT_file[36]
+#define COLOR_Stderr SFT_file[37]
+#define INIT_TABLE_POS_Stderr SFT_file[38]
+#define COLOR_file___Stderr___init SFT_file[39]
+#define COLOR_file___String___file_exists SFT_file[40]
+#define COLOR_file___String___file_stat SFT_file[41]
+#define COLOR_file___String___strip_extension SFT_file[42]
+#define COLOR_file___String___basename SFT_file[43]
+#define COLOR_file___String___dirname SFT_file[44]
+#define COLOR_file___String___file_path SFT_file[45]
+#define COLOR_file___String___mkdir SFT_file[46]
+#define COLOR_file___NativeString___file_exists SFT_file[47]
+#define COLOR_file___NativeString___file_stat SFT_file[48]
+#define COLOR_file___NativeString___file_mkdir SFT_file[49]
+#define ID_FileStat SFT_file[50]
+#define COLOR_FileStat SFT_file[51]
+#define INIT_TABLE_POS_FileStat SFT_file[52]
+#define COLOR_file___FileStat___mode SFT_file[53]
+#define COLOR_file___FileStat___atime SFT_file[54]
+#define COLOR_file___FileStat___ctime SFT_file[55]
+#define COLOR_file___FileStat___mtime SFT_file[56]
+#define COLOR_file___FileStat___size SFT_file[57]
+#define ID_NativeFile SFT_file[58]
+#define COLOR_NativeFile SFT_file[59]
+#define INIT_TABLE_POS_NativeFile SFT_file[60]
+#define COLOR_file___NativeFile___io_read SFT_file[61]
+#define COLOR_file___NativeFile___io_write SFT_file[62]
+#define COLOR_file___NativeFile___io_close SFT_file[63]
+#define COLOR_file___NativeFile___file_stat SFT_file[64]
+#define ID_NativeFileCapable SFT_file[65]
+#define COLOR_NativeFileCapable SFT_file[66]
+#define INIT_TABLE_POS_NativeFileCapable SFT_file[67]
+#define COLOR_file___NativeFileCapable___io_open_read SFT_file[68]
+#define COLOR_file___NativeFileCapable___io_open_write SFT_file[69]
+#define COLOR_file___NativeFileCapable___native_stdin SFT_file[70]
+#define COLOR_file___NativeFileCapable___native_stdout SFT_file[71]
+#define COLOR_file___NativeFileCapable___native_stderr SFT_file[72]
+typedef void (* file___Object___printn_t)(val_t  self, val_t  param0);
+void file___Object___printn(val_t  self, val_t  param0);
+typedef void (* file___Object___print_t)(val_t  self, val_t  param0);
+void file___Object___print(val_t  self, val_t  param0);
+typedef val_t (* file___Object___getc_t)(val_t  self);
+val_t file___Object___getc(val_t  self);
+typedef val_t (* file___Object___gets_t)(val_t  self);
+val_t file___Object___gets(val_t  self);
+typedef val_t (* file___Object___stdin_t)(val_t  self);
+val_t file___Object___stdin(val_t  self);
+typedef val_t (* file___Object___stdout_t)(val_t  self);
+val_t file___Object___stdout(val_t  self);
+typedef val_t (* file___Object___stderr_t)(val_t  self);
+val_t file___Object___stderr(val_t  self);
+#define ATTR_file___FStream____path(recv) ATTR(recv, COLOR_file___FStream____path)
+typedef val_t (* file___FStream___path_t)(val_t  self);
+val_t file___FStream___path(val_t  self);
+#define ATTR_file___FStream____file(recv) ATTR(recv, COLOR_file___FStream____file)
+typedef val_t (* file___FStream___file_stat_t)(val_t  self);
+val_t file___FStream___file_stat(val_t  self);
+typedef void (* file___IFStream___reopen_t)(val_t  self);
+void file___IFStream___reopen(val_t  self);
+typedef void (* file___IFStream___close_t)(val_t  self);
+void file___IFStream___close(val_t  self);
+typedef void (* file___IFStream___fill_buffer_t)(val_t  self);
+void file___IFStream___fill_buffer(val_t  self);
+#define ATTR_file___IFStream____end_reached(recv) ATTR(recv, COLOR_file___IFStream____end_reached)
+typedef val_t (* file___IFStream___end_reached_t)(val_t  self);
+val_t file___IFStream___end_reached(val_t  self);
+typedef void (* file___IFStream___open_t)(val_t  self, val_t  param0, int* init_table);
+void file___IFStream___open(val_t  self, val_t  param0, int* init_table);
+val_t NEW_file___IFStream___open(val_t  param0);
+typedef void (* file___IFStream___without_file_t)(val_t  self, int* init_table);
+void file___IFStream___without_file(val_t  self, int* init_table);
+val_t NEW_file___IFStream___without_file();
+typedef void (* file___OFStream___write_t)(val_t  self, val_t  param0);
+void file___OFStream___write(val_t  self, val_t  param0);
+typedef val_t (* file___OFStream___is_writable_t)(val_t  self);
+val_t file___OFStream___is_writable(val_t  self);
+typedef void (* file___OFStream___close_t)(val_t  self);
+void file___OFStream___close(val_t  self);
+#define ATTR_file___OFStream____writable(recv) ATTR(recv, COLOR_file___OFStream____writable)
+typedef void (* file___OFStream___write_native_t)(val_t  self, val_t  param0, val_t  param1);
+void file___OFStream___write_native(val_t  self, val_t  param0, val_t  param1);
+typedef void (* file___OFStream___open_t)(val_t  self, val_t  param0, int* init_table);
+void file___OFStream___open(val_t  self, val_t  param0, int* init_table);
+val_t NEW_file___OFStream___open(val_t  param0);
+typedef void (* file___OFStream___without_file_t)(val_t  self, int* init_table);
+void file___OFStream___without_file(val_t  self, int* init_table);
+val_t NEW_file___OFStream___without_file();
+typedef void (* file___Stdin___init_t)(val_t  self, int* init_table);
+void file___Stdin___init(val_t  self, int* init_table);
+val_t NEW_file___Stdin___init();
+typedef void (* file___Stdout___init_t)(val_t  self, int* init_table);
+void file___Stdout___init(val_t  self, int* init_table);
+val_t NEW_file___Stdout___init();
+typedef void (* file___Stderr___init_t)(val_t  self, int* init_table);
+void file___Stderr___init(val_t  self, int* init_table);
+val_t NEW_file___Stderr___init();
+typedef val_t (* file___String___file_exists_t)(val_t  self);
+val_t file___String___file_exists(val_t  self);
+typedef val_t (* file___String___file_stat_t)(val_t  self);
+val_t file___String___file_stat(val_t  self);
+typedef val_t (* file___String___strip_extension_t)(val_t  self, val_t  param0);
+val_t file___String___strip_extension(val_t  self, val_t  param0);
+typedef val_t (* file___String___basename_t)(val_t  self, val_t  param0);
+val_t file___String___basename(val_t  self, val_t  param0);
+typedef val_t (* file___String___dirname_t)(val_t  self);
+val_t file___String___dirname(val_t  self);
+typedef val_t (* file___String___file_path_t)(val_t  self);
+val_t file___String___file_path(val_t  self);
+typedef void (* file___String___mkdir_t)(val_t  self);
+void file___String___mkdir(val_t  self);
+typedef val_t (* file___NativeString___file_exists_t)(val_t  self);
+val_t file___NativeString___file_exists(val_t  self);
+typedef val_t (* file___NativeString___file_stat_t)(val_t  self);
+val_t file___NativeString___file_stat(val_t  self);
+typedef val_t (* file___NativeString___file_mkdir_t)(val_t  self);
+val_t file___NativeString___file_mkdir(val_t  self);
+typedef val_t (* file___FileStat___mode_t)(val_t  self);
+val_t file___FileStat___mode(val_t  self);
+typedef val_t (* file___FileStat___atime_t)(val_t  self);
+val_t file___FileStat___atime(val_t  self);
+typedef val_t (* file___FileStat___ctime_t)(val_t  self);
+val_t file___FileStat___ctime(val_t  self);
+typedef val_t (* file___FileStat___mtime_t)(val_t  self);
+val_t file___FileStat___mtime(val_t  self);
+typedef val_t (* file___FileStat___size_t)(val_t  self);
+val_t file___FileStat___size(val_t  self);
+typedef val_t (* file___NativeFile___io_read_t)(val_t  self, val_t  param0, val_t  param1);
+val_t file___NativeFile___io_read(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* file___NativeFile___io_write_t)(val_t  self, val_t  param0, val_t  param1);
+val_t file___NativeFile___io_write(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* file___NativeFile___io_close_t)(val_t  self);
+val_t file___NativeFile___io_close(val_t  self);
+typedef val_t (* file___NativeFile___file_stat_t)(val_t  self);
+val_t file___NativeFile___file_stat(val_t  self);
+typedef val_t (* file___NativeFileCapable___io_open_read_t)(val_t  self, val_t  param0);
+val_t file___NativeFileCapable___io_open_read(val_t  self, val_t  param0);
+typedef val_t (* file___NativeFileCapable___io_open_write_t)(val_t  self, val_t  param0);
+val_t file___NativeFileCapable___io_open_write(val_t  self, val_t  param0);
+typedef val_t (* file___NativeFileCapable___native_stdin_t)(val_t  self);
+val_t file___NativeFileCapable___native_stdin(val_t  self);
+typedef val_t (* file___NativeFileCapable___native_stdout_t)(val_t  self);
+val_t file___NativeFileCapable___native_stdout(val_t  self);
+typedef val_t (* file___NativeFileCapable___native_stderr_t)(val_t  self);
+val_t file___NativeFileCapable___native_stderr(val_t  self);
+#endif
diff --git a/c_src/genericity._sep.c b/c_src/genericity._sep.c
new file mode 100644 (file)
index 0000000..42d38b5
--- /dev/null
@@ -0,0 +1,1004 @@
+#include "genericity._sep.h"
+val_t genericity___MMLocalClass___get_formal(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::get_formal (src/metamodel//genericity.nit:25,2--28:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((genericity___MMLocalClass___formals_types_t)CALL( self,COLOR_genericity___MMLocalClass___formals_types))( self) /*MMLocalClass::formals_types*/;
+  variable2 =  variable0 /*pos*/;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = variable1;
+    variable4 = ATTR_array___AbstractArray____length(variable4) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = variable1;
+  variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label1;
+  return_label1: while(false);
+  variable1 = variable3;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void genericity___MMLocalClass___register_formal(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::register_formal (src/metamodel//genericity.nit:31,2--37:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((genericity___MMTypeFormalParameter___def_class_t)CALL( variable0 /*f*/,COLOR_genericity___MMTypeFormalParameter___def_class))( variable0 /*f*/) /*MMTypeFormalParameter::def_class*/;
+  variable1 = TAG_Bool((variable1 ==  self) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  self) /*MMLocalClass::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:35,3--28\n"); nit_exit(1);}
+  variable1 = ((genericity___MMTypeFormalParameter___position_t)CALL( variable0 /*f*/,COLOR_genericity___MMTypeFormalParameter___position))( variable0 /*f*/) /*MMTypeFormalParameter::position*/;
+  variable2 = ATTR_genericity___MMLocalClass____formals_types( self) /*MMLocalClass::_formals_types*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable1 = TAG_Bool((variable1)==(variable2));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:36,3--44\n"); nit_exit(1);}
+  variable1 = ATTR_genericity___MMLocalClass____formals_types( self) /*MMLocalClass::_formals_types*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*f*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMLocalClass___get_instantiate_type(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::get_instantiate_type (src/metamodel//genericity.nit:43,2--51:10)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_genericity___MMLocalClass____types( self) /*MMLocalClass::_types*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((genericity___MMTypeGeneric___params_equals_t)CALL( variable2 /*g*/,COLOR_genericity___MMTypeGeneric___params_equals))( variable2 /*g*/,  variable0 /*t*/) /*MMTypeGeneric::params_equals*/;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  variable2 /*g*/;
+      goto return_label3;
+    }
+    continue_4: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_4: while(0);
+  variable2 = NEW_genericity___MMTypeGeneric___init( self,  variable0 /*t*/); /*new MMTypeGeneric*/
+  variable1 = variable2;
+  variable2 = ATTR_genericity___MMLocalClass____types( self) /*MMLocalClass::_types*/;
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable1 /*g*/) /*Array::add*/;
+  variable1 =  variable1 /*g*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMLocalClass___formals_types(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::formals_types (src/metamodel//genericity.nit:57,2--77:23)"};
+  val_t variable0;
+    val_t variable1;
+      val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_genericity___MMLocalClass____formals_types( self) /*MMLocalClass::_formals_types*/;
+  variable0 = ((array___AbstractArray___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Array::is_empty*/;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
+    if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:62,4--38\n"); nit_exit(1);}
+    variable0 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___arity))( self) /*MMLocalClass::arity*/;
+    variable1 = NEW_range___Range___without_last( TAG_Int(0), variable0); /*new Range[Int]*/
+    variable0 = variable1;
+    variable0 = ((range___Range___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable1 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable1)) break; /*for*/
+      variable1 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+      variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable3) /*MMGlobalClass::intro*/;
+      variable3 = ((genericity___MMLocalClass___get_formal_t)CALL(variable3,COLOR_genericity___MMLocalClass___get_formal))(variable3,  variable1 /*i*/) /*MMLocalClass::get_formal*/;
+      variable2 = variable3;
+      variable4 = ((type_formal___MMTypeFormal___name_t)CALL( variable2 /*oft*/,COLOR_type_formal___MMTypeFormal___name))( variable2 /*oft*/) /*MMTypeFormalParameter::name*/;
+      variable5 = NEW_genericity___MMTypeFormalParameter___init(variable4,  variable1 /*i*/,  self); /*new MMTypeFormalParameter*/
+      variable4 = variable5;
+      variable3 = variable4;
+      ((genericity___MMLocalClass___register_formal_t)CALL( self,COLOR_genericity___MMLocalClass___register_formal))( self,  variable3 /*ft*/) /*MMLocalClass::register_formal*/;
+      continue_6: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
+    }
+    break_6: while(0);
+    variable0 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___arity))( self) /*MMLocalClass::arity*/;
+    variable1 = NEW_range___Range___without_last( TAG_Int(0), variable0); /*new Range[Int]*/
+    variable0 = variable1;
+    variable0 = ((range___Range___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable1 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable1)) break; /*for*/
+      variable1 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+      variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable3) /*MMGlobalClass::intro*/;
+      variable3 = ((genericity___MMLocalClass___get_formal_t)CALL(variable3,COLOR_genericity___MMLocalClass___get_formal))(variable3,  variable1 /*i*/) /*MMLocalClass::get_formal*/;
+      variable2 = variable3;
+      variable4 = ATTR_genericity___MMLocalClass____formals_types( self) /*MMLocalClass::_formals_types*/;
+      variable5 =  variable1 /*i*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = variable4;
+        variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+        variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable6 = variable4;
+      variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+      variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+      goto return_label8;
+      return_label8: while(false);
+      variable4 = variable6;
+      variable3 = variable4;
+      variable4 = ((type_formal___MMTypeFormal___bound_t)CALL( variable2 /*oft*/,COLOR_type_formal___MMTypeFormal___bound))( variable2 /*oft*/) /*MMTypeFormalParameter::bound*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+      variable4 = ((static_type___MMType___for_module_t)CALL(variable4,COLOR_static_type___MMType___for_module))(variable4, variable5) /*MMType::for_module*/;
+      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL( variable3 /*ft*/,COLOR_genericity___MMTypeFormalParameter___bound__eq))( variable3 /*ft*/, variable4) /*MMTypeFormalParameter::bound=*/;
+      continue_7: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
+    }
+    break_7: while(0);
+  }
+  variable0 = ATTR_genericity___MMLocalClass____formals_types( self) /*MMLocalClass::_formals_types*/;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMLocalClass___get_type(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::get_type (src/metamodel//genericity.nit:80,2--86:15)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = ((genericity___MMLocalClass___is_generic_t)CALL( self,COLOR_genericity___MMLocalClass___is_generic))( self) /*MMLocalClass::is_generic*/;
+  }
+  variable0 = variable1;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ((genericity___MMLocalClass___formals_types_t)CALL( self,COLOR_genericity___MMLocalClass___formals_types))( self) /*MMLocalClass::formals_types*/;
+    variable0 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL( self,COLOR_genericity___MMLocalClass___get_instantiate_type))( self, variable0) /*MMLocalClass::get_instantiate_type*/;
+    ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/ = variable0;
+    variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
+    goto return_label9;
+  } else { /*if*/
+    variable0 = ((genericity___MMLocalClass___get_type_t)CALL( self,COLOR_SUPER_genericity___MMLocalClass___get_type))( self) /*super MMLocalClass::get_type*/;
+    goto return_label9;
+  }
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMLocalClass___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMLocalClass::is_generic (src/metamodel//genericity.nit:90,2--91:42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___arity))( self) /*MMLocalClass::arity*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMSignature___adaptation_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMSignature::adaptation_to (src/metamodel//genericity.nit:95,2--113:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+      val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*r*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*r*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*r*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  self;
+    goto return_label11;
+  }
+  variable2 = ((static_type___MMType___module_t)CALL( variable0 /*r*/,COLOR_static_type___MMType___module))( variable0 /*r*/) /*MMType::module*/;
+  variable1 = variable2;
+  variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*p*/ ==  NIT_NULL /*null*/) || (( variable2 /*p*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))( variable2 /*p*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_array___Array___init(); /*new Array[MMType]*/
+    variable2 = variable3 /*p=*/;
+    variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+      variable5 = ((static_type___MMType___for_module_t)CALL( variable4 /*i*/,COLOR_static_type___MMType___for_module))( variable4 /*i*/,  variable1 /*mod*/) /*MMType::for_module*/;
+      variable5 = ((static_type___MMType___adapt_to_t)CALL(variable5,COLOR_static_type___MMType___adapt_to))(variable5,  variable0 /*r*/) /*MMType::adapt_to*/;
+      ((array___AbstractArray___add_t)CALL( variable2 /*p*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*p*/, variable5) /*Array::add*/;
+      continue_12: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+    }
+    break_12: while(0);
+  }
+  variable4 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*rv*/ ==  NIT_NULL /*null*/) || (( variable3 /*rv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*rv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*rv*/,COLOR_kernel___Object_____eqeq))( variable3 /*rv*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((static_type___MMType___for_module_t)CALL( variable3 /*rv*/,COLOR_static_type___MMType___for_module))( variable3 /*rv*/,  variable1 /*mod*/) /*MMType::for_module*/;
+    variable4 = ((static_type___MMType___adapt_to_t)CALL(variable4,COLOR_static_type___MMType___adapt_to))(variable4,  variable0 /*r*/) /*MMType::adapt_to*/;
+    variable3 = variable4 /*rv=*/;
+  }
+  variable4 = NEW_static_type___MMSignature___init( variable2 /*p*/,  variable3 /*rv*/,  variable0 /*r*/); /*new MMSignature*/
+  variable1 = variable4;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMLocalProperty___recv(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMLocalProperty::recv (src/metamodel//genericity.nit:121,2--124:23)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMLocalProperty::signature*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:123,3--26\n"); nit_exit(1);}
+  variable0 = ((genericity___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMLocalProperty::signature*/;
+  variable0 = ((static_type___MMSignature___recv_t)CALL(variable0,COLOR_static_type___MMSignature___recv))(variable0) /*MMSignature::recv*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void genericity___MMLocalProperty___recv__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMLocalProperty::recv= (src/metamodel//genericity.nit:127,2--132:19)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*rec*/ ==  NIT_NULL /*null*/) || (( variable0 /*rec*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*rec*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*rec*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*rec*/,COLOR_kernel___Object_____eqeq))( variable0 /*rec*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:129,3--20\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:131,3--33\n"); nit_exit(1);}
+  ATTR_genericity___MMLocalProperty____recv_alone( self) /*MMLocalProperty::_recv_alone*/ =  variable0 /*rec*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMLocalProperty___signature(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMLocalProperty::signature (src/metamodel//genericity.nit:135,2--160:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*sig*/ ==  NIT_NULL /*null*/) || (( variable0 /*sig*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*sig*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*sig*/,COLOR_kernel___Object_____eqeq))( variable0 /*sig*/,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable0 =  variable0 /*sig*/;
+    goto return_label15;
+  }
+  variable1 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_MMConcreteProperty, ID_MMConcreteProperty)) /*cast MMConcreteProperty*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable0 =  NIT_NULL /*null*/;
+    goto return_label15;
+  }
+  variable2 = ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
+  variable1 = variable2;
+  variable3 = ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable1 /*sp*/ ==  NIT_NULL /*null*/) || (( variable1 /*sp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*sp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*sp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*sp*/,COLOR_kernel___Object_____eqeq))( variable1 /*sp*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((genericity___MMLocalProperty___signature_t)CALL( variable2 /*impl*/,COLOR_static_type___MMLocalProperty___signature))( variable2 /*impl*/) /*MMConcreteProperty::signature*/;
+    ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/ = variable3;
+    variable3 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:150,4--34\n"); nit_exit(1);}
+  } else { /*if*/
+    variable3 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*sp*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*sp*/) /*MMLocalProperty::signature*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:153,4--30\n"); nit_exit(1);}
+    variable3 = ATTR_genericity___MMLocalProperty____recv_alone( self) /*MMLocalProperty::_recv_alone*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:154,4--29\n"); nit_exit(1);}
+    variable3 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*sp*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*sp*/) /*MMLocalProperty::signature*/;
+    variable4 = ATTR_genericity___MMLocalProperty____recv_alone( self) /*MMLocalProperty::_recv_alone*/;
+    variable3 = ((genericity___MMSignature___adaptation_to_t)CALL(variable3,COLOR_genericity___MMSignature___adaptation_to))(variable3, variable4) /*MMSignature::adaptation_to*/;
+    ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/ = variable3;
+  }
+  variable3 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:158,3--33\n"); nit_exit(1);}
+  variable3 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable0 = variable3;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMLocalProperty___adapt_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMLocalProperty::adapt_property (src/metamodel//genericity.nit:163,2--172:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*t*/ ==  NIT_NULL /*null*/) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:167,3--18\n"); nit_exit(1);}
+  variable2 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+  variable2 = ((genericity___MMLocalClass___get_type_t)CALL(variable2,COLOR_static_type___MMLocalClass___get_type))(variable2) /*MMLocalClass::get_type*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable0 /*t*/ ==  variable1 /*recv*/) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, variable1 /*recv*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/,  variable1 /*recv*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  self;
+    goto return_label16;
+  } else { /*if*/
+    variable2 = ((inheritance___MMLocalProperty___inherit_to_t)CALL( self,COLOR_inheritance___MMLocalProperty___inherit_to))( self,  variable0 /*t*/) /*MMLocalProperty::inherit_to*/;
+    variable1 = variable2;
+    goto return_label16;
+  }
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void genericity___MMLocalProperty___inherit_from(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "genericity::MMLocalProperty::inherit_from (src/metamodel//genericity.nit:176,2--179:17)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  ((genericity___MMLocalProperty___inherit_from_t)CALL( self,COLOR_SUPER_genericity___MMLocalProperty___inherit_from))( self,  param0,  param1) /*super MMLocalProperty::inherit_from*/;
+  ATTR_genericity___MMLocalProperty____recv_alone( self) /*MMLocalProperty::_recv_alone*/ =  variable1 /*t*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMType___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMType::is_generic (src/metamodel//genericity.nit:184,2--185:22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_generic called (src/metamodel//genericity.nit:184,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t genericity___MMTypeFormal___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormal::is_generic (src/metamodel//genericity.nit:189,2--50)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+  variable0 = ((genericity___MMType___is_generic_t)CALL(variable0,COLOR_genericity___MMType___is_generic))(variable0) /*MMType::is_generic*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeSimpleClass___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeSimpleClass::is_generic (src/metamodel//genericity.nit:193,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeGeneric___params(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::params (src/metamodel//genericity.nit:198,2--199:36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+}
+val_t genericity___MMTypeGeneric___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::is_generic (src/metamodel//genericity.nit:202,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeGeneric___is_supertype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::is_supertype (src/metamodel//genericity.nit:204,2--212:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMType___local_class_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___local_class))( variable0 /*t*/) /*MMType::local_class*/;
+  variable1 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable1) /*MMLocalClass::cshe*/;
+  variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+  variable1 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable1,COLOR_partial_order___PartialOrderElement_____leq))(variable1, variable2) /*PartialOrderElement::<=*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+    variable2 = ((static_type___MMType___upcast_for_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___upcast_for))( variable0 /*t*/, variable2) /*MMType::upcast_for*/;
+    variable1 = variable2;
+    variable2 = TAG_Bool(( variable1 /*u*/==NIT_NULL) || VAL_ISA( variable1 /*u*/, COLOR_MMTypeGeneric, ID_MMTypeGeneric)) /*cast MMTypeGeneric*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((genericity___MMTypeGeneric___is_subtype_t)CALL( self,COLOR_genericity___MMTypeGeneric___is_subtype))( self,  variable1 /*u*/) /*MMTypeGeneric::is_subtype*/;
+      variable1 = variable2;
+      goto return_label21;
+    }
+  }
+  variable1 =  TAG_Bool(false);
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___upcast_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::upcast_for (src/metamodel//genericity.nit:215,2--221:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((genericity___MMTypeGeneric___upcast_for_t)CALL( self,COLOR_SUPER_genericity___MMTypeGeneric___upcast_for))( self,  param0) /*super MMTypeGeneric::upcast_for*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  self) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  self) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((static_type___MMType___adapt_to_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___adapt_to))( variable1 /*t*/,  self) /*MMType::adapt_to*/;
+    variable1 = variable2 /*t=*/;
+  }
+  variable1 =  variable1 /*t*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::for_module (src/metamodel//genericity.nit:224,2--236:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+      val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  variable2 = ((static_type___MMTypeClass___module_t)CALL( self,COLOR_static_type___MMType___module))( self) /*MMTypeGeneric::module*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  variable0 /*mod*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*mod*/) /*MMModule::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = NEW_array___Array___init(); /*new Array[MMType]*/
+    variable2 = variable3;
+    variable3 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+      variable5 = ((static_type___MMType___for_module_t)CALL( variable4 /*p*/,COLOR_static_type___MMType___for_module))( variable4 /*p*/,  variable0 /*mod*/) /*MMType::for_module*/;
+      ((array___AbstractArray___add_t)CALL( variable2 /*parms*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*parms*/, variable5) /*Array::add*/;
+      continue_24: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+    }
+    break_24: while(0);
+    variable4 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+    variable4 = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___for_module))(variable4,  variable0 /*mod*/) /*MMLocalClass::for_module*/;
+    variable3 = variable4;
+    variable4 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL( variable3 /*b*/,COLOR_genericity___MMLocalClass___get_instantiate_type))( variable3 /*b*/,  variable2 /*parms*/) /*MMLocalClass::get_instantiate_type*/;
+    variable1 = variable4 /*t=*/;
+  }
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:235,3--18\n"); nit_exit(1);}
+  variable1 =  variable1 /*t*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::adapt_to (src/metamodel//genericity.nit:239,2--246:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[MMType]*/
+  variable1 = variable2;
+  variable2 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((static_type___MMType___adapt_to_t)CALL( variable3 /*i*/,COLOR_static_type___MMType___adapt_to))( variable3 /*i*/,  variable0 /*r*/) /*MMType::adapt_to*/;
+    ((array___AbstractArray___add_t)CALL( variable1 /*rv*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*rv*/, variable4) /*Array::add*/;
+    continue_26: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_26: while(0);
+  variable3 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+  variable3 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable3,COLOR_genericity___MMLocalClass___get_instantiate_type))(variable3,  variable1 /*rv*/) /*MMLocalClass::get_instantiate_type*/;
+  variable2 = variable3;
+  variable1 =  variable2 /*l*/;
+  goto return_label25;
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::params_equals (src/metamodel//genericity.nit:249,2--261:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*t*/,COLOR_abstract_collection___Collection___length))( variable0 /*t*/) /*Array::length*/;
+  variable2 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+  variable1 = TAG_Bool((variable1)!=(variable2));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label27;
+  }
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*t*/,COLOR_abstract_collection___Collection___length))( variable0 /*t*/) /*Array::length*/;
+  variable2 = NEW_range___Range___without_last( TAG_Int(0), variable1); /*new Range[Int]*/
+  variable1 = variable2;
+  variable1 = ((range___Range___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label29;
+    return_label29: while(false);
+    variable3 = variable5;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:255,4--28\n"); nit_exit(1);}
+    variable3 =  variable2 /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = ATTR_array___AbstractArray____length( variable0 /*t*/) /*Array::_length*/;
+      variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable4 = ATTR_array___Array____items( variable0 /*t*/) /*Array::_items*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+    goto return_label30;
+    return_label30: while(false);
+    variable3 = variable4;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:256,4--22\n"); nit_exit(1);}
+    variable3 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label31;
+    return_label31: while(false);
+    variable3 = variable5;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = ATTR_array___AbstractArray____length( variable0 /*t*/) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = ATTR_array___Array____items( variable0 /*t*/) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label32;
+    return_label32: while(false);
+    variable4 = variable5;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 == variable4) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3,variable4)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, variable4) /*MMType::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label27;
+    }
+    continue_28: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_28: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___select_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::select_property (src/metamodel//genericity.nit:264,2--280:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+      val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*g*/ ==  NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label33;
+  }
+  variable1 = ATTR_genericity___MMTypeGeneric____props( self) /*MMTypeGeneric::_props*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*g*/) /*Map::has_key*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+    variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+    if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:270,4--30\n"); nit_exit(1);}
+    variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeGeneric::_local_class*/;
+    variable2 = ((inheritance___MMLocalClass_____bra_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass_____bra))(variable2,  variable0 /*g*/) /*MMLocalClass::[]*/;
+    variable1 = variable2;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*p*/ ==  NIT_NULL /*null*/) || (( variable1 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*p*/,COLOR_kernel___Object_____eqeq))( variable1 /*p*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable3 = ((genericity___MMLocalProperty___adapt_property_t)CALL( variable1 /*p*/,COLOR_genericity___MMLocalProperty___adapt_property))( variable1 /*p*/,  self) /*MMLocalProperty::adapt_property*/;
+      variable2 = variable3;
+      variable3 = ATTR_genericity___MMTypeGeneric____props( self) /*MMTypeGeneric::_props*/;
+      ((abstract_collection___Map_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3,  variable0 /*g*/,  variable2 /*p2*/) /*Map::[]=*/;
+      variable1 =  variable2 /*p2*/;
+      goto return_label33;
+    } else { /*if*/
+      if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:277,5--16\n"); nit_exit(1);}
+    }
+  }
+  variable1 = ATTR_genericity___MMTypeGeneric____props( self) /*MMTypeGeneric::_props*/;
+  variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*g*/) /*Map::[]*/;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeGeneric___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::to_s (src/metamodel//genericity.nit:283,2--285:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((genericity___MMTypeGeneric___to_s_t)CALL( self,COLOR_SUPER_genericity___MMTypeGeneric___to_s))( self) /*super MMTypeGeneric::to_s*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  variable7 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable7 = ((string___Collection___join_t)CALL(variable7,COLOR_string___Collection___join))(variable7, variable8) /*Array::join*/;
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeGeneric___is_subtype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::is_subtype (src/metamodel//genericity.nit:288,2--298:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Array::length*/;
+  variable2 = NEW_range___Range___without_last( TAG_Int(0), variable1); /*new Range[Int]*/
+  variable1 = variable2;
+  variable1 = ((range___Range___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = ((genericity___MMTypeGeneric___params_t)CALL( variable0 /*t*/,COLOR_genericity___MMTypeGeneric___params))( variable0 /*t*/) /*MMTypeGeneric::params*/;
+    variable4 =  variable2 /*i*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = variable3;
+      variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable5 = variable3;
+    variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+    goto return_label37;
+    return_label37: while(false);
+    variable3 = variable5;
+    variable4 = ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/;
+    variable5 =  variable2 /*i*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable7 = variable6;
+    if (UNTAG_Bool(variable7)) { /* and */
+      variable7 = variable4;
+      variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+    }
+    variable6 = variable7;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable6 = variable4;
+    variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+    variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+    goto return_label38;
+    return_label38: while(false);
+    variable4 = variable6;
+    variable3 = ((static_type___MMType_____l_t)CALL(variable3,COLOR_static_type___MMType_____l))(variable3, variable4) /*MMType::<*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label35;
+    }
+    continue_36: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_36: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void genericity___MMTypeGeneric___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "genericity::MMTypeGeneric::init (src/metamodel//genericity.nit:301,2--304:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeGeneric].i]) return;
+  ((static_type___MMTypeClass___init_t)CALL( self,COLOR_static_type___MMTypeClass___init))( self,  variable0 /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
+  ATTR_genericity___MMTypeGeneric____params( self) /*MMTypeGeneric::_params*/ =  variable1 /*p*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeGeneric].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMTypeFormalParameter___def_class(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::def_class (src/metamodel//genericity.nit:310,2--311:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_genericity___MMTypeFormalParameter____def_class( self) /*MMTypeFormalParameter::_def_class*/;
+}
+val_t genericity___MMTypeFormalParameter___position(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::position (src/metamodel//genericity.nit:313,2--314:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_genericity___MMTypeFormalParameter____position( self) /*MMTypeFormalParameter::_position*/;
+}
+val_t genericity___MMTypeFormalParameter___module(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::module (src/metamodel//genericity.nit:316,2--46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_genericity___MMTypeFormalParameter____def_class( self) /*MMTypeFormalParameter::_def_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeFormalParameter___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::for_module (src/metamodel//genericity.nit:318,2--325:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  variable2 = ((genericity___MMTypeFormalParameter___module_t)CALL( self,COLOR_static_type___MMType___module))( self) /*MMTypeFormalParameter::module*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  variable0 /*mod*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*mod*/) /*MMModule::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_genericity___MMTypeFormalParameter____def_class( self) /*MMTypeFormalParameter::_def_class*/;
+    variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___global))(variable2) /*MMLocalClass::global*/;
+    variable2 = ((abstractmetamodel___MMModule_____bra_t)CALL( variable0 /*mod*/,COLOR_abstractmetamodel___MMModule_____bra))( variable0 /*mod*/, variable2) /*MMModule::[]*/;
+    variable3 = ((genericity___MMTypeFormalParameter___position_t)CALL( self,COLOR_genericity___MMTypeFormalParameter___position))( self) /*MMTypeFormalParameter::position*/;
+    variable2 = ((genericity___MMLocalClass___get_formal_t)CALL(variable2,COLOR_genericity___MMLocalClass___get_formal))(variable2, variable3) /*MMLocalClass::get_formal*/;
+    variable1 = variable2 /*t=*/;
+  }
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:324,3--18\n"); nit_exit(1);}
+  variable1 =  variable1 /*t*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeFormalParameter___upcast_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::upcast_for (src/metamodel//genericity.nit:328,2--40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void genericity___MMTypeFormalParameter___bound__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::bound= (src/metamodel//genericity.nit:330,3--333:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormalParameter::_bound*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:332,3--23\n"); nit_exit(1);}
+  ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormalParameter::_bound*/ =  variable0 /*t*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMTypeFormalParameter___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::adapt_to (src/metamodel//genericity.nit:336,2--343:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((genericity___MMTypeFormalParameter___def_class_t)CALL( self,COLOR_genericity___MMTypeFormalParameter___def_class))( self) /*MMTypeFormalParameter::def_class*/;
+  variable2 = ((static_type___MMType___upcast_for_t)CALL( variable0 /*r*/,COLOR_static_type___MMType___upcast_for))( variable0 /*r*/, variable2) /*MMType::upcast_for*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*old_r*/==NIT_NULL) || VAL_ISA( variable1 /*old_r*/, COLOR_MMTypeGeneric, ID_MMTypeGeneric)) /*cast MMTypeGeneric*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:340,3--32\n"); nit_exit(1);}
+  variable3 = ((genericity___MMTypeGeneric___params_t)CALL( variable1 /*old_r*/,COLOR_genericity___MMTypeGeneric___params))( variable1 /*old_r*/) /*MMTypeGeneric::params*/;
+  variable4 = ((genericity___MMTypeFormalParameter___position_t)CALL( self,COLOR_genericity___MMTypeFormalParameter___position))( self) /*MMTypeFormalParameter::position*/;
+  variable5 = variable4;
+  variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable7 = variable6;
+  if (UNTAG_Bool(variable7)) { /* and */
+    variable7 = variable3;
+    variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+    variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+  }
+  variable6 = variable7;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable6 = variable3;
+  variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+  variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+  goto return_label45;
+  return_label45: while(false);
+  variable3 = variable6;
+  variable2 = variable3;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*reduct*/ ==  NIT_NULL /*null*/) || (( variable2 /*reduct*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*reduct*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*reduct*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*reduct*/,COLOR_kernel___Object_____eqeq))( variable2 /*reduct*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:342,3--23\n"); nit_exit(1);}
+  variable1 =  variable2 /*reduct*/;
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void genericity___MMTypeFormalParameter___with_bound(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::with_bound (src/metamodel//genericity.nit:346,2--349:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormalParameter].i]) return;
+  ((genericity___MMTypeFormalParameter___init_t)CALL( self,COLOR_genericity___MMTypeFormalParameter___init))( self,  variable0 /*n*/,  variable1 /*p*/,  variable2 /*intro*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
+  ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormalParameter::_bound*/ =  variable3 /*b*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormalParameter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void genericity___MMTypeFormalParameter___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "genericity::MMTypeFormalParameter::init (src/metamodel//genericity.nit:352,2--357:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormalParameter].i]) return;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//genericity.nit:354,3--18\n"); nit_exit(1);}
+  ATTR_type_formal___MMTypeFormal____name( self) /*MMTypeFormalParameter::_name*/ =  variable0 /*n*/;
+  ATTR_genericity___MMTypeFormalParameter____position( self) /*MMTypeFormalParameter::_position*/ =  variable1 /*p*/;
+  ATTR_genericity___MMTypeFormalParameter____def_class( self) /*MMTypeFormalParameter::_def_class*/ =  variable2 /*intro*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormalParameter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t genericity___MMTypeNone___is_generic(val_t  self) {
+  struct trace_t trace = {NULL, "genericity::MMTypeNone::is_generic (src/metamodel//genericity.nit:362,2--38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label48;
+  return_label48: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t genericity___MMTypeNone___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeNone::for_module (src/metamodel//genericity.nit:363,3--43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t genericity___MMTypeNone___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "genericity::MMTypeNone::adapt_to (src/metamodel//genericity.nit:364,3--39)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
diff --git a/c_src/genericity._sep.h b/c_src/genericity._sep.h
new file mode 100644 (file)
index 0000000..4b084b7
--- /dev/null
@@ -0,0 +1,132 @@
+#ifndef genericity__sep
+#define genericity__sep
+#include "type_formal._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMTypeGeneric[];
+
+extern const classtable_elt_t VFT_MMTypeFormalParameter[];
+extern const int SFT_genericity[];
+#define COLOR_genericity___MMLocalClass____types SFT_genericity[0]
+#define COLOR_genericity___MMLocalClass____formals_types SFT_genericity[1]
+#define COLOR_genericity___MMLocalClass___get_formal SFT_genericity[2]
+#define COLOR_genericity___MMLocalClass___register_formal SFT_genericity[3]
+#define COLOR_genericity___MMLocalClass___get_instantiate_type SFT_genericity[4]
+#define COLOR_genericity___MMLocalClass___formals_types SFT_genericity[5]
+#define COLOR_SUPER_genericity___MMLocalClass___get_type SFT_genericity[6]
+#define COLOR_genericity___MMLocalClass___is_generic SFT_genericity[7]
+#define COLOR_genericity___MMSignature___adaptation_to SFT_genericity[8]
+#define COLOR_genericity___MMLocalProperty____recv_alone SFT_genericity[9]
+#define COLOR_genericity___MMLocalProperty___recv SFT_genericity[10]
+#define COLOR_genericity___MMLocalProperty___recv__eq SFT_genericity[11]
+#define COLOR_genericity___MMLocalProperty___adapt_property SFT_genericity[12]
+#define COLOR_SUPER_genericity___MMLocalProperty___inherit_from SFT_genericity[13]
+#define COLOR_genericity___MMType___is_generic SFT_genericity[14]
+#define ID_MMTypeGeneric SFT_genericity[15]
+#define COLOR_MMTypeGeneric SFT_genericity[16]
+#define COLOR_genericity___MMTypeGeneric____params SFT_genericity[17]
+#define COLOR_genericity___MMTypeGeneric____props SFT_genericity[18]
+#define INIT_TABLE_POS_MMTypeGeneric SFT_genericity[19]
+#define COLOR_genericity___MMTypeGeneric___params SFT_genericity[20]
+#define COLOR_SUPER_genericity___MMTypeGeneric___upcast_for SFT_genericity[21]
+#define COLOR_genericity___MMTypeGeneric___params_equals SFT_genericity[22]
+#define COLOR_SUPER_genericity___MMTypeGeneric___to_s SFT_genericity[23]
+#define COLOR_genericity___MMTypeGeneric___is_subtype SFT_genericity[24]
+#define COLOR_genericity___MMTypeGeneric___init SFT_genericity[25]
+#define ID_MMTypeFormalParameter SFT_genericity[26]
+#define COLOR_MMTypeFormalParameter SFT_genericity[27]
+#define COLOR_genericity___MMTypeFormalParameter____def_class SFT_genericity[28]
+#define COLOR_genericity___MMTypeFormalParameter____position SFT_genericity[29]
+#define INIT_TABLE_POS_MMTypeFormalParameter SFT_genericity[30]
+#define COLOR_genericity___MMTypeFormalParameter___def_class SFT_genericity[31]
+#define COLOR_genericity___MMTypeFormalParameter___position SFT_genericity[32]
+#define COLOR_genericity___MMTypeFormalParameter___bound__eq SFT_genericity[33]
+#define COLOR_genericity___MMTypeFormalParameter___with_bound SFT_genericity[34]
+#define COLOR_genericity___MMTypeFormalParameter___init SFT_genericity[35]
+typedef val_t (* genericity___MMLocalClass___get_formal_t)(val_t  self, val_t  param0);
+val_t genericity___MMLocalClass___get_formal(val_t  self, val_t  param0);
+typedef void (* genericity___MMLocalClass___register_formal_t)(val_t  self, val_t  param0);
+void genericity___MMLocalClass___register_formal(val_t  self, val_t  param0);
+#define ATTR_genericity___MMLocalClass____types(recv) ATTR(recv, COLOR_genericity___MMLocalClass____types)
+typedef val_t (* genericity___MMLocalClass___get_instantiate_type_t)(val_t  self, val_t  param0);
+val_t genericity___MMLocalClass___get_instantiate_type(val_t  self, val_t  param0);
+#define ATTR_genericity___MMLocalClass____formals_types(recv) ATTR(recv, COLOR_genericity___MMLocalClass____formals_types)
+typedef val_t (* genericity___MMLocalClass___formals_types_t)(val_t  self);
+val_t genericity___MMLocalClass___formals_types(val_t  self);
+typedef val_t (* genericity___MMLocalClass___get_type_t)(val_t  self);
+val_t genericity___MMLocalClass___get_type(val_t  self);
+typedef val_t (* genericity___MMLocalClass___is_generic_t)(val_t  self);
+val_t genericity___MMLocalClass___is_generic(val_t  self);
+typedef val_t (* genericity___MMSignature___adaptation_to_t)(val_t  self, val_t  param0);
+val_t genericity___MMSignature___adaptation_to(val_t  self, val_t  param0);
+#define ATTR_genericity___MMLocalProperty____recv_alone(recv) ATTR(recv, COLOR_genericity___MMLocalProperty____recv_alone)
+typedef val_t (* genericity___MMLocalProperty___recv_t)(val_t  self);
+val_t genericity___MMLocalProperty___recv(val_t  self);
+typedef void (* genericity___MMLocalProperty___recv__eq_t)(val_t  self, val_t  param0);
+void genericity___MMLocalProperty___recv__eq(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMLocalProperty___signature_t)(val_t  self);
+val_t genericity___MMLocalProperty___signature(val_t  self);
+typedef val_t (* genericity___MMLocalProperty___adapt_property_t)(val_t  self, val_t  param0);
+val_t genericity___MMLocalProperty___adapt_property(val_t  self, val_t  param0);
+typedef void (* genericity___MMLocalProperty___inherit_from_t)(val_t  self, val_t  param0, val_t  param1);
+void genericity___MMLocalProperty___inherit_from(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* genericity___MMType___is_generic_t)(val_t  self);
+val_t genericity___MMType___is_generic(val_t  self);
+typedef val_t (* genericity___MMTypeFormal___is_generic_t)(val_t  self);
+val_t genericity___MMTypeFormal___is_generic(val_t  self);
+typedef val_t (* genericity___MMTypeSimpleClass___is_generic_t)(val_t  self);
+val_t genericity___MMTypeSimpleClass___is_generic(val_t  self);
+#define ATTR_genericity___MMTypeGeneric____params(recv) ATTR(recv, COLOR_genericity___MMTypeGeneric____params)
+typedef val_t (* genericity___MMTypeGeneric___params_t)(val_t  self);
+val_t genericity___MMTypeGeneric___params(val_t  self);
+#define ATTR_genericity___MMTypeGeneric____props(recv) ATTR(recv, COLOR_genericity___MMTypeGeneric____props)
+typedef val_t (* genericity___MMTypeGeneric___is_generic_t)(val_t  self);
+val_t genericity___MMTypeGeneric___is_generic(val_t  self);
+typedef val_t (* genericity___MMTypeGeneric___is_supertype_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___is_supertype(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___upcast_for_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___upcast_for(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___for_module_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___for_module(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___adapt_to_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___adapt_to(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___params_equals_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___select_property_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___select_property(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeGeneric___to_s_t)(val_t  self);
+val_t genericity___MMTypeGeneric___to_s(val_t  self);
+typedef val_t (* genericity___MMTypeGeneric___is_subtype_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeGeneric___is_subtype(val_t  self, val_t  param0);
+typedef void (* genericity___MMTypeGeneric___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void genericity___MMTypeGeneric___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_genericity___MMTypeGeneric___init(val_t  param0, val_t  param1);
+#define ATTR_genericity___MMTypeFormalParameter____def_class(recv) ATTR(recv, COLOR_genericity___MMTypeFormalParameter____def_class)
+typedef val_t (* genericity___MMTypeFormalParameter___def_class_t)(val_t  self);
+val_t genericity___MMTypeFormalParameter___def_class(val_t  self);
+#define ATTR_genericity___MMTypeFormalParameter____position(recv) ATTR(recv, COLOR_genericity___MMTypeFormalParameter____position)
+typedef val_t (* genericity___MMTypeFormalParameter___position_t)(val_t  self);
+val_t genericity___MMTypeFormalParameter___position(val_t  self);
+typedef val_t (* genericity___MMTypeFormalParameter___module_t)(val_t  self);
+val_t genericity___MMTypeFormalParameter___module(val_t  self);
+typedef val_t (* genericity___MMTypeFormalParameter___for_module_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeFormalParameter___for_module(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeFormalParameter___upcast_for_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeFormalParameter___upcast_for(val_t  self, val_t  param0);
+typedef void (* genericity___MMTypeFormalParameter___bound__eq_t)(val_t  self, val_t  param0);
+void genericity___MMTypeFormalParameter___bound__eq(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeFormalParameter___adapt_to_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeFormalParameter___adapt_to(val_t  self, val_t  param0);
+typedef void (* genericity___MMTypeFormalParameter___with_bound_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void genericity___MMTypeFormalParameter___with_bound(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_genericity___MMTypeFormalParameter___with_bound(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* genericity___MMTypeFormalParameter___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void genericity___MMTypeFormalParameter___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_genericity___MMTypeFormalParameter___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* genericity___MMTypeNone___is_generic_t)(val_t  self);
+val_t genericity___MMTypeNone___is_generic(val_t  self);
+typedef val_t (* genericity___MMTypeNone___for_module_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeNone___for_module(val_t  self, val_t  param0);
+typedef val_t (* genericity___MMTypeNone___adapt_to_t)(val_t  self, val_t  param0);
+val_t genericity___MMTypeNone___adapt_to(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/hash._sep.c b/c_src/hash._sep.c
new file mode 100644 (file)
index 0000000..17e041a
--- /dev/null
@@ -0,0 +1,946 @@
+#include "hash._sep.h"
+val_t hash___Object___hash(val_t  self) {
+  struct trace_t trace = {NULL, "hash::Object::hash (bin/../lib/standard//hash.nit:21,2--25:39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Int((int) self);
+  variable0 = TAG_Int(UNTAG_Int(variable0)/UNTAG_Int( TAG_Int(8)));
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___String___hash(val_t  self) {
+  struct trace_t trace = {NULL, "hash::String::hash (bin/../lib/standard//hash.nit:29,2--39:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(5381);
+  variable2 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
+  variable1 = variable2;
+  variable3 = ATTR_string___String____items( self) /*String::_items*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = TAG_Int(UNTAG_Int( variable0 /*h*/)*UNTAG_Int( TAG_Int(32)));
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( variable0 /*h*/));
+    variable4 = TAG_Char(UNBOX_NativeString( variable2 /*it*/)[UNTAG_Int( variable1 /*i*/)]);
+    variable4 = TAG_Int((unsigned char)UNTAG_Char(variable4));
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int(variable4));
+    variable0 = variable3 /*h=*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_2: while(0);
+  }
+  break_2: while(0);
+  variable0 =  variable0 /*h*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___Int___hash(val_t  self) {
+  struct trace_t trace = {NULL, "hash::Int::hash (bin/../lib/standard//hash.nit:45,2--31)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  self;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___Char___hash(val_t  self) {
+  struct trace_t trace = {NULL, "hash::Char::hash (bin/../lib/standard//hash.nit:49,2--32)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___Bool___hash(val_t  self) {
+  struct trace_t trace = {NULL, "hash::Bool::hash (bin/../lib/standard//hash.nit:53,2--58:11)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (UNTAG_Bool( self)) { /*if*/
+    variable0 =  TAG_Int(1);
+    goto return_label5;
+  } else { /*if*/
+    variable0 =  TAG_Int(0);
+    goto return_label5;
+  }
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashCollection___length(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashCollection::length (bin/../lib/standard//hash.nit:69,2--33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
+}
+val_t hash___HashCollection___first_item(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashCollection::first_item (bin/../lib/standard//hash.nit:71,2--29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
+}
+val_t hash___HashCollection___index_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashCollection::index_at (bin/../lib/standard//hash.nit:80,2--106:7)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*k*/ ==  NIT_NULL /*null*/) || (( variable0 /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*k*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))( variable0 /*k*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:84,3--18\n"); nit_exit(1);}
+  variable2 = ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/;
+  variable2 = TAG_Bool(( variable0 /*k*/ == variable2) || (( variable0 /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*k*/,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))( variable0 /*k*/, variable2) /*Object::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_hash___HashCollection____last_accessed_index( self) /*HashCollection::_last_accessed_index*/;
+    variable1 = variable2;
+    goto return_label6;
+  }
+  variable3 = ((hash___Object___hash_t)CALL( variable0 /*k*/,COLOR_hash___Object___hash))( variable0 /*k*/) /*Object::hash*/;
+  variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)%UNTAG_Int(variable4));
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*base*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = TAG_Int(-UNTAG_Int( variable2 /*base*/));
+    variable2 = variable3 /*base=*/;
+  }
+  variable3 =  variable2 /*base*/;
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable5 = UNBOX_NativeArray( variable1 /*arr*/)[UNTAG_Int( variable3 /*cur*/)];
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*c*/ ==  NIT_NULL /*null*/) || (( variable4 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*c*/,COLOR_kernel___Object_____eqeq))( variable4 /*c*/,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+    variable6 = variable5;
+    if (!UNTAG_Bool(variable6)) { /* or */
+      variable6 = ((hash___HashNode___key_t)CALL( variable4 /*c*/,COLOR_hash___HashNode___key))( variable4 /*c*/) /*HashNode::key*/;
+      variable6 = TAG_Bool((variable6 ==  variable0 /*k*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, variable0 /*k*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  variable0 /*k*/) /*Object::==*/)))));
+    }
+    variable5 = variable6;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      ATTR_hash___HashCollection____last_accessed_index( self) /*HashCollection::_last_accessed_index*/ =  variable3 /*cur*/;
+      ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ =  variable0 /*k*/;
+      variable1 =  variable3 /*cur*/;
+      goto return_label6;
+    }
+    variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*cur*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*cur*/)<UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+      variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
+      variable3 = variable5 /*cur=*/;
+    }
+    variable5 = TAG_Bool(( variable3 /*cur*/)!=( variable2 /*base*/));
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'no_loop'  failed: bin/../lib/standard//hash.nit:104,4--30\n"); nit_exit(1);}
+    continue_7: while(0);
+  }
+  break_7: while(0);
+  fprintf(stderr, "Aborted: bin/../lib/standard//hash.nit:106,3--7\n"); nit_exit(1);
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void hash___HashCollection___store(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "hash::HashCollection::store (bin/../lib/standard//hash.nit:109,2--128:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ =  variable1 /*node*/;
+  } else { /*if*/
+    variable2 = ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/;
+    ((hash___HashNode___next_item__eq_t)CALL(variable2,COLOR_hash___HashNode___next_item__eq))(variable2,  variable1 /*node*/) /*HashNode::next_item=*/;
+  }
+  variable2 = ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/;
+  ((hash___HashNode___prev_item__eq_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___prev_item__eq))( variable1 /*node*/, variable2) /*HashNode::prev_item=*/;
+  ((hash___HashNode___next_item__eq_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___next_item__eq))( variable1 /*node*/,  NIT_NULL /*null*/) /*HashNode::next_item=*/;
+  ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ =  variable1 /*node*/;
+  variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  variable2 = UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*index*/)];
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:122,3--30\n"); nit_exit(1);}
+  variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*index*/)]= variable1 /*node*/;
+  variable3 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
+  variable2 = variable3;
+  variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)+UNTAG_Int( TAG_Int(1)));
+  ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = variable3;
+  variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)+UNTAG_Int( TAG_Int(5)));
+  variable3 = TAG_Int(UNTAG_Int(variable3)*UNTAG_Int( TAG_Int(150)));
+  variable3 = TAG_Int(UNTAG_Int(variable3)/UNTAG_Int( TAG_Int(100)));
+  variable2 = variable3 /*l=*/;
+  variable3 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*l*/)>=UNTAG_Int(variable3));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)*UNTAG_Int( TAG_Int(2)));
+    ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self, variable3) /*HashCollection::enlarge*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashCollection___remove_index(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashCollection::remove_index (bin/../lib/standard//hash.nit:132,2--167:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int(variable2));
+  }
+  variable1 = variable2;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'correct_index'  failed: bin/../lib/standard//hash.nit:134,3--48\n"); nit_exit(1);}
+  variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  variable2 = UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*i*/)];
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ ==  NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/,  NIT_NULL /*null*/) /*HashNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert 'has_couple'  failed: bin/../lib/standard//hash.nit:136,3--33\n"); nit_exit(1);}
+  variable3 = ((hash___HashNode___prev_item_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___prev_item))( variable1 /*node*/) /*HashNode::prev_item*/;
+  variable2 = variable3;
+  variable4 = ((hash___HashNode___next_item_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___next_item))( variable1 /*node*/) /*HashNode::next_item*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*prev*/ ==  NIT_NULL /*null*/) || (( variable2 /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*prev*/,COLOR_kernel___Object_____eqeq))( variable2 /*prev*/,  NIT_NULL /*null*/) /*HashNode::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((hash___HashNode___next_item__eq_t)CALL( variable2 /*prev*/,COLOR_hash___HashNode___next_item__eq))( variable2 /*prev*/,  variable3 /*next*/) /*HashNode::next_item=*/;
+  } else { /*if*/
+    ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ =  variable3 /*next*/;
+  }
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*next*/ ==  NIT_NULL /*null*/) || (( variable3 /*next*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*next*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*next*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*next*/,COLOR_kernel___Object_____eqeq))( variable3 /*next*/,  NIT_NULL /*null*/) /*HashNode::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((hash___HashNode___prev_item__eq_t)CALL( variable3 /*next*/,COLOR_hash___HashNode___prev_item__eq))( variable3 /*next*/,  variable2 /*prev*/) /*HashNode::prev_item=*/;
+  } else { /*if*/
+    ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ =  variable2 /*prev*/;
+  }
+  variable4 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  UNBOX_NativeArray(variable4)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
+  ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = TAG_Int(UNTAG_Int(ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/)-UNTAG_Int( TAG_Int(1)));
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+      variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1)));
+      variable0 = variable4 /*i=*/;
+    }
+    variable5 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+    variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable0 /*i*/)];
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*n*/ ==  NIT_NULL /*null*/) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      goto return_label9;
+    }
+    variable6 = ((hash___HashNode___key_t)CALL( variable4 /*n*/,COLOR_hash___HashNode___key))( variable4 /*n*/) /*HashNode::key*/;
+    variable6 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable6) /*HashCollection::index_at*/;
+    variable5 = variable6;
+    variable6 = TAG_Bool(( variable0 /*i*/)!=( variable5 /*i2*/));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+      UNBOX_NativeArray(variable6)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
+      variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+      variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*i2*/)];
+      variable6 = TAG_Bool((variable6 ==  NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:166,5--29\n"); nit_exit(1);}
+      variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+      UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*i2*/)]= variable4 /*n*/;
+    }
+    continue_10: while(0);
+  }
+  break_10: while(0);
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashCollection___raz(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashCollection::raz (bin/../lib/standard//hash.nit:172,2--182:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  variable0 = variable1;
+  while (true) { /*while*/
+    variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    variable1 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+    UNBOX_NativeArray(variable1)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_12: while(0);
+  }
+  break_12: while(0);
+  ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ =  TAG_Int(0);
+  ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ =  NIT_NULL /*null*/;
+  ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ =  NIT_NULL /*null*/;
+  ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ =  NIT_NULL /*null*/;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashCollection___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashCollection::enlarge (bin/../lib/standard//hash.nit:185,2--217:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable1 = variable2;
+  variable2 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1)));
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1)));
+    variable0 = variable2 /*cap=*/;
+  }
+  variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<=UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label13;
+  }
+  ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/ =  variable0 /*cap*/;
+  ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ =  NIT_NULL /*null*/;
+  variable3 = BOX_NativeArray((val_t*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(val_t))));
+  variable2 = variable3;
+  ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/ =  variable2 /*new_array*/;
+  variable4 = TAG_Int(UNTAG_Int( variable0 /*cap*/)-UNTAG_Int( TAG_Int(1)));
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    UNBOX_NativeArray( variable2 /*new_array*/)[UNTAG_Int( variable3 /*i*/)]= NIT_NULL /*null*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_14: while(0);
+  }
+  break_14: while(0);
+  variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
+  variable4 = TAG_Bool(UNTAG_Int(variable4)<=UNTAG_Int( variable1 /*old_cap*/));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    goto return_label13;
+  }
+  variable5 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
+  variable4 = variable5;
+  variable6 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
+  variable5 = variable6;
+  while (true) { /*while*/
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*node*/ ==  NIT_NULL /*null*/) || (( variable5 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*node*/,COLOR_kernel___Object_____eqeq))( variable5 /*node*/,  NIT_NULL /*null*/) /*HashNode::==*/)))))));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    variable7 = ((hash___HashNode___key_t)CALL( variable5 /*node*/,COLOR_hash___HashNode___key))( variable5 /*node*/) /*HashNode::key*/;
+    variable7 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable7) /*HashCollection::index_at*/;
+    variable6 = variable7;
+    variable7 = UNBOX_NativeArray( variable4 /*new_array*/)[UNTAG_Int( variable6 /*ind*/)];
+    variable7 = TAG_Bool((variable7 ==  NIT_NULL /*null*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7,  NIT_NULL /*null*/) /*HashNode::==*/)))));
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:213,4--32\n"); nit_exit(1);}
+    UNBOX_NativeArray( variable4 /*new_array*/)[UNTAG_Int( variable6 /*ind*/)]= variable5 /*node*/;
+    variable7 = ((hash___HashNode___next_item_t)CALL( variable5 /*node*/,COLOR_hash___HashNode___next_item))( variable5 /*node*/) /*HashNode::next_item*/;
+    variable5 = variable7 /*node=*/;
+    continue_15: while(0);
+  }
+  break_15: while(0);
+  ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ =  NIT_NULL /*null*/;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashNode___key(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashNode::key (bin/../lib/standard//hash.nit:222,2--12)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method key called (bin/../lib/standard//hash.nit:222,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t hash___HashNode___next_item(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashNode::next_item (bin/../lib/standard//hash.nit:224,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/;
+}
+void hash___HashNode___next_item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashNode::next_item= (bin/../lib/standard//hash.nit:224,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashNode___prev_item(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashNode::prev_item (bin/../lib/standard//hash.nit:225,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/;
+}
+void hash___HashNode___prev_item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashNode::prev_item= (bin/../lib/standard//hash.nit:225,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashMap___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMap::iterator (bin/../lib/standard//hash.nit:232,2--83)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_hash___HashMapIterator___init( self); /*new HashMapIterator[K, V]*/
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashMap___first(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMap::first (bin/../lib/standard//hash.nit:234,2--237:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashCollection____length( self) /*HashMap::_length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:236,3--20\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashCollection____first_item( self) /*HashMap::_first_item*/;
+  variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*HashMapNode::second*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashMap___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMap::is_empty (bin/../lib/standard//hash.nit:240,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashCollection____length( self) /*HashMap::_length*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashMap___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::count (bin/../lib/standard//hash.nit:242,2--251:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = ATTR_hash___HashCollection____capacity( self) /*HashMap::_capacity*/;
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int(variable3));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable4 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+    variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable2 /*i*/)];
+    variable3 = variable4;
+    variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*c*/ ==  NIT_NULL /*null*/) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = ((abstract_collection___Couple___second_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___second))( variable3 /*c*/) /*HashMapNode::second*/;
+      variable5 = TAG_Bool((variable5 ==  variable0 /*item*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  variable0 /*item*/) /*Object::==*/)))));
+    }
+    variable4 = variable5;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_20: while(0);
+  }
+  break_20: while(0);
+  variable1 =  variable1 /*nb*/;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t hash___HashMap___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::has (bin/../lib/standard//hash.nit:254,2--262:14)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable2 = ATTR_hash___HashCollection____capacity( self) /*HashMap::_capacity*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+    variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
+    variable2 = variable3;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ ==  NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+    variable4 = variable3;
+    if (UNTAG_Bool(variable4)) { /* and */
+      variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*HashMapNode::second*/;
+      variable4 = TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))));
+    }
+    variable3 = variable4;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label21;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_22: while(0);
+  }
+  break_22: while(0);
+  variable1 =  TAG_Bool(false);
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t hash___HashMap___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::has_only (bin/../lib/standard//hash.nit:265,2--273:13)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable2 = ATTR_hash___HashCollection____capacity( self) /*HashMap::_capacity*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+    variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
+    variable2 = variable3;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ ==  NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+    variable4 = variable3;
+    if (UNTAG_Bool(variable4)) { /* and */
+      variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*HashMapNode::second*/;
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))))));
+    }
+    variable3 = variable4;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label23;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_24: while(0);
+  }
+  break_24: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void hash___HashMap_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "hash::HashMap::[]= (bin/../lib/standard//hash.nit:276,2--285:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*key*/ ==  NIT_NULL /*null*/) || (( variable0 /*key*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*key*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*key*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*key*/,COLOR_kernel___Object_____eqeq))( variable0 /*key*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:278,3--20\n"); nit_exit(1);}
+  variable3 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*key*/) /*HashMap::index_at*/;
+  variable2 = variable3;
+  variable4 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+  variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable2 /*i*/)];
+  variable3 = variable4;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*c*/ ==  NIT_NULL /*null*/) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((abstract_collection___Couple___first__eq_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___first__eq))( variable3 /*c*/,  variable0 /*key*/) /*HashMapNode::first=*/;
+    ((abstract_collection___Couple___second__eq_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___second__eq))( variable3 /*c*/,  variable1 /*v*/) /*HashMapNode::second=*/;
+  } else { /*if*/
+    variable4 = NEW_hash___HashMapNode___init( variable0 /*key*/,  variable1 /*v*/); /*new HashMapNode[K, V]*/
+    ((hash___HashCollection___store_t)CALL( self,COLOR_hash___HashCollection___store))( self,  variable2 /*i*/, variable4) /*HashMap::store*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashMap___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::remove (bin/../lib/standard//hash.nit:289,2--298:9)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable2 = ATTR_hash___HashCollection____capacity( self) /*HashMap::_capacity*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+    variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
+    variable2 = variable3;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ ==  NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+    variable4 = variable3;
+    if (UNTAG_Bool(variable4)) { /* and */
+      variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*HashMapNode::second*/;
+      variable4 = TAG_Bool((variable4 ==  variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*item*/) /*Object::==*/)))));
+    }
+    variable3 = variable4;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self,  variable1 /*i*/) /*HashMap::remove_index*/;
+      goto return_label26;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_27: while(0);
+  }
+  break_27: while(0);
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashMap___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::remove_at (bin/../lib/standard//hash.nit:302,2--55)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*key*/) /*HashMap::index_at*/;
+  ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self, variable1) /*HashMap::remove_index*/;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashMap___clear(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMap::clear (bin/../lib/standard//hash.nit:304,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ((hash___HashCollection___raz_t)CALL( self,COLOR_hash___HashCollection___raz))( self) /*HashMap::raz*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashMap___couple_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMap::couple_at (bin/../lib/standard//hash.nit:306,2--56)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_hash___HashCollection____array( self) /*HashMap::_array*/;
+  variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*key*/) /*HashMap::index_at*/;
+  variable1 = UNBOX_NativeArray(variable1)[UNTAG_Int(variable2)];
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void hash___HashMap___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashMap::init (bin/../lib/standard//hash.nit:308,2--312:11)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMap].i]) return;
+  ATTR_hash___HashCollection____capacity( self) /*HashMap::_capacity*/ =  TAG_Int(0);
+  ATTR_hash___HashCollection____length( self) /*HashMap::_length*/ =  TAG_Int(0);
+  ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self,  TAG_Int(0)) /*HashMap::enlarge*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMap].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashMapNode___key(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMapNode::key (bin/../lib/standard//hash.nit:319,2--31)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstract_collection___Couple___first_t)CALL( self,COLOR_abstract_collection___Couple___first))( self) /*HashMapNode::first*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void hash___HashMapNode___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashMapNode::init (bin/../lib/standard//hash.nit:322,2--325:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i]) return;
+  ((abstract_collection___Couple___first__eq_t)CALL( self,COLOR_abstract_collection___Couple___first__eq))( self,  variable0 /*k*/) /*HashMapNode::first=*/;
+  ((abstract_collection___Couple___second__eq_t)CALL( self,COLOR_abstract_collection___Couple___second__eq))( self,  variable1 /*v*/) /*HashMapNode::second=*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashMapIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::is_ok (bin/../lib/standard//hash.nit:331,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*HashMapNode::==*/)))))));
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashMapIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::item (bin/../lib/standard//hash.nit:333,2--336:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:335,3--14\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
+  variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*HashMapNode::second*/;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void hash___HashMapIterator___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::item= (bin/../lib/standard//hash.nit:339,2--342:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:341,3--14\n"); nit_exit(1);}
+  variable1 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
+  ((abstract_collection___Couple___second__eq_t)CALL(variable1,COLOR_abstract_collection___Couple___second__eq))(variable1,  variable0 /*value*/) /*HashMapNode::second=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashMapIterator___key(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::key (bin/../lib/standard//hash.nit:345,2--348:20)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:347,3--14\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
+  variable0 = ((abstract_collection___Couple___first_t)CALL(variable0,COLOR_abstract_collection___Couple___first))(variable0) /*HashMapNode::first*/;
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void hash___HashMapIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::next (bin/../lib/standard//hash.nit:351,2--354:25)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:353,3--14\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
+  variable0 = ((hash___HashNode___next_item_t)CALL(variable0,COLOR_hash___HashNode___next_item))(variable0) /*HashMapNode::next_item*/;
+  ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashMapIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashMapIterator::init (bin/../lib/standard//hash.nit:363,2--366:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i]) return;
+  ATTR_hash___HashMapIterator____map( self) /*HashMapIterator::_map*/ =  variable0 /*map*/;
+  variable1 = ((hash___HashCollection___first_item_t)CALL( variable0 /*map*/,COLOR_hash___HashCollection___first_item))( variable0 /*map*/) /*HashMap::first_item*/;
+  ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashSet___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSet::is_empty (bin/../lib/standard//hash.nit:374,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashCollection____length( self) /*HashSet::_length*/;
+  variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashSet___first(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSet::first (bin/../lib/standard//hash.nit:376,2--379:24)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashCollection____length( self) /*HashSet::_length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:378,3--20\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashCollection____first_item( self) /*HashSet::_first_item*/;
+  variable0 = ((hash___HashSetNode___key_t)CALL(variable0,COLOR_hash___HashNode___key))(variable0) /*HashSetNode::key*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashSet___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashSet::has (bin/../lib/standard//hash.nit:382,2--384:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_hash___HashCollection____array( self) /*HashSet::_array*/;
+  variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*item*/) /*HashSet::index_at*/;
+  variable1 = UNBOX_NativeArray(variable1)[UNTAG_Int(variable2)];
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*HashSetNode::==*/)))))));
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void hash___HashSet___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashSet::add (bin/../lib/standard//hash.nit:387,2--394:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*item*/) /*HashSet::index_at*/;
+  variable1 = variable2;
+  variable3 = ATTR_hash___HashCollection____array( self) /*HashSet::_array*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
+  variable2 = variable3;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ ==  NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/,  NIT_NULL /*null*/) /*HashSetNode::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((hash___HashSetNode___key__eq_t)CALL( variable2 /*c*/,COLOR_hash___HashSetNode___key__eq))( variable2 /*c*/,  variable0 /*item*/) /*HashSetNode::key=*/;
+  } else { /*if*/
+    variable3 = NEW_hash___HashSetNode___init( variable0 /*item*/); /*new HashSetNode[E]*/
+    ((hash___HashCollection___store_t)CALL( self,COLOR_hash___HashCollection___store))( self,  variable1 /*i*/, variable3) /*HashSet::store*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashSet___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashSet::remove (bin/../lib/standard//hash.nit:398,2--54)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self,  variable0 /*item*/) /*HashSet::index_at*/;
+  ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self, variable1) /*HashSet::remove_index*/;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashSet___clear(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSet::clear (bin/../lib/standard//hash.nit:400,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ((hash___HashCollection___raz_t)CALL( self,COLOR_hash___HashCollection___raz))( self) /*HashSet::raz*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashSet___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSet::iterator (bin/../lib/standard//hash.nit:402,2--58)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_hash___HashSetIterator___init( self); /*new HashSetIterator[E]*/
+  goto return_label46;
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void hash___HashSet___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashSet::init (bin/../lib/standard//hash.nit:404,2--408:11)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i]) return;
+  ATTR_hash___HashCollection____capacity( self) /*HashSet::_capacity*/ =  TAG_Int(0);
+  ATTR_hash___HashCollection____length( self) /*HashSet::_length*/ =  TAG_Int(0);
+  ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self,  TAG_Int(0)) /*HashSet::enlarge*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashSetNode___key(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSetNode::key (bin/../lib/standard//hash.nit:416,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/;
+}
+void hash___HashSetNode___key__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "hash::HashSetNode::key= (bin/../lib/standard//hash.nit:416,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashSetNode___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashSetNode::init (bin/../lib/standard//hash.nit:418,2--420:10)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i]) return;
+  ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/ =  variable0 /*e*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t hash___HashSetIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSetIterator::is_ok (bin/../lib/standard//hash.nit:426,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*HashSetNode::==*/)))))));
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t hash___HashSetIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSetIterator::item (bin/../lib/standard//hash.nit:428,2--431:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((hash___HashSetIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashSetIterator::is_ok*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:430,3--14\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
+  variable0 = ((hash___HashSetNode___key_t)CALL(variable0,COLOR_hash___HashNode___key))(variable0) /*HashSetNode::key*/;
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void hash___HashSetIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "hash::HashSetIterator::next (bin/../lib/standard//hash.nit:434,2--437:25)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((hash___HashSetIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashSetIterator::is_ok*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//hash.nit:436,3--14\n"); nit_exit(1);}
+  variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
+  variable0 = ((hash___HashNode___next_item_t)CALL(variable0,COLOR_hash___HashNode___next_item))(variable0) /*HashSetNode::next_item*/;
+  ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+void hash___HashSetIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "hash::HashSetIterator::init (bin/../lib/standard//hash.nit:446,2--449:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i]) return;
+  ATTR_hash___HashSetIterator____set( self) /*HashSetIterator::_set*/ =  variable0 /*set*/;
+  variable1 = ((hash___HashCollection___first_item_t)CALL( variable0 /*set*/,COLOR_hash___HashCollection___first_item))( variable0 /*set*/) /*HashSet::first_item*/;
+  ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/hash._sep.h b/c_src/hash._sep.h
new file mode 100644 (file)
index 0000000..b206cb0
--- /dev/null
@@ -0,0 +1,203 @@
+#ifndef hash__sep
+#define hash__sep
+#include "string._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_HashCollection[];
+
+extern const classtable_elt_t VFT_HashNode[];
+
+extern const classtable_elt_t VFT_HashMap[];
+
+extern const classtable_elt_t VFT_HashMapNode[];
+
+extern const classtable_elt_t VFT_HashMapIterator[];
+
+extern const classtable_elt_t VFT_HashSet[];
+
+extern const classtable_elt_t VFT_HashSetNode[];
+
+extern const classtable_elt_t VFT_HashSetIterator[];
+extern const int SFT_hash[];
+#define COLOR_hash___Object___hash SFT_hash[0]
+#define ID_HashCollection SFT_hash[1]
+#define COLOR_HashCollection SFT_hash[2]
+#define COLOR_hash___HashCollection____array SFT_hash[3]
+#define COLOR_hash___HashCollection____capacity SFT_hash[4]
+#define COLOR_hash___HashCollection____length SFT_hash[5]
+#define COLOR_hash___HashCollection____first_item SFT_hash[6]
+#define COLOR_hash___HashCollection____last_item SFT_hash[7]
+#define COLOR_hash___HashCollection____last_accessed_index SFT_hash[8]
+#define COLOR_hash___HashCollection____last_accessed_key SFT_hash[9]
+#define INIT_TABLE_POS_HashCollection SFT_hash[10]
+#define COLOR_hash___HashCollection___first_item SFT_hash[11]
+#define COLOR_hash___HashCollection___index_at SFT_hash[12]
+#define COLOR_hash___HashCollection___store SFT_hash[13]
+#define COLOR_hash___HashCollection___remove_index SFT_hash[14]
+#define COLOR_hash___HashCollection___raz SFT_hash[15]
+#define COLOR_hash___HashCollection___enlarge SFT_hash[16]
+#define ID_HashNode SFT_hash[17]
+#define COLOR_HashNode SFT_hash[18]
+#define COLOR_hash___HashNode____next_item SFT_hash[19]
+#define COLOR_hash___HashNode____prev_item SFT_hash[20]
+#define INIT_TABLE_POS_HashNode SFT_hash[21]
+#define COLOR_hash___HashNode___key SFT_hash[22]
+#define COLOR_hash___HashNode___next_item SFT_hash[23]
+#define COLOR_hash___HashNode___next_item__eq SFT_hash[24]
+#define COLOR_hash___HashNode___prev_item SFT_hash[25]
+#define COLOR_hash___HashNode___prev_item__eq SFT_hash[26]
+#define ID_HashMap SFT_hash[27]
+#define COLOR_HashMap SFT_hash[28]
+#define INIT_TABLE_POS_HashMap SFT_hash[29]
+#define COLOR_hash___HashMap___init SFT_hash[30]
+#define ID_HashMapNode SFT_hash[31]
+#define COLOR_HashMapNode SFT_hash[32]
+#define INIT_TABLE_POS_HashMapNode SFT_hash[33]
+#define COLOR_hash___HashMapNode___init SFT_hash[34]
+#define ID_HashMapIterator SFT_hash[35]
+#define COLOR_HashMapIterator SFT_hash[36]
+#define COLOR_hash___HashMapIterator____map SFT_hash[37]
+#define COLOR_hash___HashMapIterator____node SFT_hash[38]
+#define INIT_TABLE_POS_HashMapIterator SFT_hash[39]
+#define COLOR_hash___HashMapIterator___init SFT_hash[40]
+#define ID_HashSet SFT_hash[41]
+#define COLOR_HashSet SFT_hash[42]
+#define INIT_TABLE_POS_HashSet SFT_hash[43]
+#define COLOR_hash___HashSet___init SFT_hash[44]
+#define ID_HashSetNode SFT_hash[45]
+#define COLOR_HashSetNode SFT_hash[46]
+#define COLOR_hash___HashSetNode____key SFT_hash[47]
+#define INIT_TABLE_POS_HashSetNode SFT_hash[48]
+#define COLOR_hash___HashSetNode___key__eq SFT_hash[49]
+#define COLOR_hash___HashSetNode___init SFT_hash[50]
+#define ID_HashSetIterator SFT_hash[51]
+#define COLOR_HashSetIterator SFT_hash[52]
+#define COLOR_hash___HashSetIterator____set SFT_hash[53]
+#define COLOR_hash___HashSetIterator____node SFT_hash[54]
+#define INIT_TABLE_POS_HashSetIterator SFT_hash[55]
+#define COLOR_hash___HashSetIterator___init SFT_hash[56]
+typedef val_t (* hash___Object___hash_t)(val_t  self);
+val_t hash___Object___hash(val_t  self);
+typedef val_t (* hash___String___hash_t)(val_t  self);
+val_t hash___String___hash(val_t  self);
+typedef val_t (* hash___Int___hash_t)(val_t  self);
+val_t hash___Int___hash(val_t  self);
+typedef val_t (* hash___Char___hash_t)(val_t  self);
+val_t hash___Char___hash(val_t  self);
+typedef val_t (* hash___Bool___hash_t)(val_t  self);
+val_t hash___Bool___hash(val_t  self);
+#define ATTR_hash___HashCollection____array(recv) ATTR(recv, COLOR_hash___HashCollection____array)
+#define ATTR_hash___HashCollection____capacity(recv) ATTR(recv, COLOR_hash___HashCollection____capacity)
+#define ATTR_hash___HashCollection____length(recv) ATTR(recv, COLOR_hash___HashCollection____length)
+typedef val_t (* hash___HashCollection___length_t)(val_t  self);
+val_t hash___HashCollection___length(val_t  self);
+#define ATTR_hash___HashCollection____first_item(recv) ATTR(recv, COLOR_hash___HashCollection____first_item)
+typedef val_t (* hash___HashCollection___first_item_t)(val_t  self);
+val_t hash___HashCollection___first_item(val_t  self);
+#define ATTR_hash___HashCollection____last_item(recv) ATTR(recv, COLOR_hash___HashCollection____last_item)
+#define ATTR_hash___HashCollection____last_accessed_index(recv) ATTR(recv, COLOR_hash___HashCollection____last_accessed_index)
+#define ATTR_hash___HashCollection____last_accessed_key(recv) ATTR(recv, COLOR_hash___HashCollection____last_accessed_key)
+typedef val_t (* hash___HashCollection___index_at_t)(val_t  self, val_t  param0);
+val_t hash___HashCollection___index_at(val_t  self, val_t  param0);
+typedef void (* hash___HashCollection___store_t)(val_t  self, val_t  param0, val_t  param1);
+void hash___HashCollection___store(val_t  self, val_t  param0, val_t  param1);
+typedef void (* hash___HashCollection___remove_index_t)(val_t  self, val_t  param0);
+void hash___HashCollection___remove_index(val_t  self, val_t  param0);
+typedef void (* hash___HashCollection___raz_t)(val_t  self);
+void hash___HashCollection___raz(val_t  self);
+typedef void (* hash___HashCollection___enlarge_t)(val_t  self, val_t  param0);
+void hash___HashCollection___enlarge(val_t  self, val_t  param0);
+typedef val_t (* hash___HashNode___key_t)(val_t  self);
+val_t hash___HashNode___key(val_t  self);
+#define ATTR_hash___HashNode____next_item(recv) ATTR(recv, COLOR_hash___HashNode____next_item)
+typedef val_t (* hash___HashNode___next_item_t)(val_t  self);
+val_t hash___HashNode___next_item(val_t  self);
+typedef void (* hash___HashNode___next_item__eq_t)(val_t  self, val_t  param0);
+void hash___HashNode___next_item__eq(val_t  self, val_t  param0);
+#define ATTR_hash___HashNode____prev_item(recv) ATTR(recv, COLOR_hash___HashNode____prev_item)
+typedef val_t (* hash___HashNode___prev_item_t)(val_t  self);
+val_t hash___HashNode___prev_item(val_t  self);
+typedef void (* hash___HashNode___prev_item__eq_t)(val_t  self, val_t  param0);
+void hash___HashNode___prev_item__eq(val_t  self, val_t  param0);
+typedef val_t (* hash___HashMap___iterator_t)(val_t  self);
+val_t hash___HashMap___iterator(val_t  self);
+typedef val_t (* hash___HashMap___first_t)(val_t  self);
+val_t hash___HashMap___first(val_t  self);
+typedef val_t (* hash___HashMap___is_empty_t)(val_t  self);
+val_t hash___HashMap___is_empty(val_t  self);
+typedef val_t (* hash___HashMap___count_t)(val_t  self, val_t  param0);
+val_t hash___HashMap___count(val_t  self, val_t  param0);
+typedef val_t (* hash___HashMap___has_t)(val_t  self, val_t  param0);
+val_t hash___HashMap___has(val_t  self, val_t  param0);
+typedef val_t (* hash___HashMap___has_only_t)(val_t  self, val_t  param0);
+val_t hash___HashMap___has_only(val_t  self, val_t  param0);
+typedef void (* hash___HashMap_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void hash___HashMap_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef void (* hash___HashMap___remove_t)(val_t  self, val_t  param0);
+void hash___HashMap___remove(val_t  self, val_t  param0);
+typedef void (* hash___HashMap___remove_at_t)(val_t  self, val_t  param0);
+void hash___HashMap___remove_at(val_t  self, val_t  param0);
+typedef void (* hash___HashMap___clear_t)(val_t  self);
+void hash___HashMap___clear(val_t  self);
+typedef val_t (* hash___HashMap___couple_at_t)(val_t  self, val_t  param0);
+val_t hash___HashMap___couple_at(val_t  self, val_t  param0);
+typedef void (* hash___HashMap___init_t)(val_t  self, int* init_table);
+void hash___HashMap___init(val_t  self, int* init_table);
+val_t NEW_hash___HashMap___init();
+typedef val_t (* hash___HashMapNode___key_t)(val_t  self);
+val_t hash___HashMapNode___key(val_t  self);
+typedef void (* hash___HashMapNode___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void hash___HashMapNode___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_hash___HashMapNode___init(val_t  param0, val_t  param1);
+typedef val_t (* hash___HashMapIterator___is_ok_t)(val_t  self);
+val_t hash___HashMapIterator___is_ok(val_t  self);
+typedef val_t (* hash___HashMapIterator___item_t)(val_t  self);
+val_t hash___HashMapIterator___item(val_t  self);
+typedef void (* hash___HashMapIterator___item__eq_t)(val_t  self, val_t  param0);
+void hash___HashMapIterator___item__eq(val_t  self, val_t  param0);
+typedef val_t (* hash___HashMapIterator___key_t)(val_t  self);
+val_t hash___HashMapIterator___key(val_t  self);
+typedef void (* hash___HashMapIterator___next_t)(val_t  self);
+void hash___HashMapIterator___next(val_t  self);
+#define ATTR_hash___HashMapIterator____map(recv) ATTR(recv, COLOR_hash___HashMapIterator____map)
+#define ATTR_hash___HashMapIterator____node(recv) ATTR(recv, COLOR_hash___HashMapIterator____node)
+typedef void (* hash___HashMapIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void hash___HashMapIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_hash___HashMapIterator___init(val_t  param0);
+typedef val_t (* hash___HashSet___is_empty_t)(val_t  self);
+val_t hash___HashSet___is_empty(val_t  self);
+typedef val_t (* hash___HashSet___first_t)(val_t  self);
+val_t hash___HashSet___first(val_t  self);
+typedef val_t (* hash___HashSet___has_t)(val_t  self, val_t  param0);
+val_t hash___HashSet___has(val_t  self, val_t  param0);
+typedef void (* hash___HashSet___add_t)(val_t  self, val_t  param0);
+void hash___HashSet___add(val_t  self, val_t  param0);
+typedef void (* hash___HashSet___remove_t)(val_t  self, val_t  param0);
+void hash___HashSet___remove(val_t  self, val_t  param0);
+typedef void (* hash___HashSet___clear_t)(val_t  self);
+void hash___HashSet___clear(val_t  self);
+typedef val_t (* hash___HashSet___iterator_t)(val_t  self);
+val_t hash___HashSet___iterator(val_t  self);
+typedef void (* hash___HashSet___init_t)(val_t  self, int* init_table);
+void hash___HashSet___init(val_t  self, int* init_table);
+val_t NEW_hash___HashSet___init();
+#define ATTR_hash___HashSetNode____key(recv) ATTR(recv, COLOR_hash___HashSetNode____key)
+typedef val_t (* hash___HashSetNode___key_t)(val_t  self);
+val_t hash___HashSetNode___key(val_t  self);
+typedef void (* hash___HashSetNode___key__eq_t)(val_t  self, val_t  param0);
+void hash___HashSetNode___key__eq(val_t  self, val_t  param0);
+typedef void (* hash___HashSetNode___init_t)(val_t  self, val_t  param0, int* init_table);
+void hash___HashSetNode___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_hash___HashSetNode___init(val_t  param0);
+typedef val_t (* hash___HashSetIterator___is_ok_t)(val_t  self);
+val_t hash___HashSetIterator___is_ok(val_t  self);
+typedef val_t (* hash___HashSetIterator___item_t)(val_t  self);
+val_t hash___HashSetIterator___item(val_t  self);
+typedef void (* hash___HashSetIterator___next_t)(val_t  self);
+void hash___HashSetIterator___next(val_t  self);
+#define ATTR_hash___HashSetIterator____set(recv) ATTR(recv, COLOR_hash___HashSetIterator____set)
+#define ATTR_hash___HashSetIterator____node(recv) ATTR(recv, COLOR_hash___HashSetIterator____node)
+typedef void (* hash___HashSetIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void hash___HashSetIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_hash___HashSetIterator___init(val_t  param0);
+#endif
diff --git a/c_src/inheritance._sep.c b/c_src/inheritance._sep.c
new file mode 100644 (file)
index 0000000..11ff936
--- /dev/null
@@ -0,0 +1,1261 @@
+#include "inheritance._sep.h"
+val_t inheritance___MMModule___type_any(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMModule::type_any (src/metamodel//inheritance.nit:24,2--28:24)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_1; static int once_bool_variable1_1;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable1_1) variable1 = once_value_variable1_1;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_1 = variable1;
+    once_bool_variable1_1 = true;
+  }
+  variable1 = ((abstractmetamodel___MMModule___class_by_name_t)CALL( self,COLOR_abstractmetamodel___MMModule___class_by_name))( self, variable1) /*MMModule::class_by_name*/;
+  variable0 = variable1;
+  variable1 = ((static_type___MMLocalClass___get_type_t)CALL( variable0 /*c_name*/,COLOR_static_type___MMLocalClass___get_type))( variable0 /*c_name*/) /*MMLocalClass::get_type*/;
+  variable0 = variable1;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void inheritance___MMModule___import_global_classes(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMModule::import_global_classes (src/metamodel//inheritance.nit:31,2--40:43)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalClass, HashSet[MMLocalClass]]*/
+  variable0 = variable1;
+  variable1 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMModule::mhe*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:35,3--20\n"); nit_exit(1);}
+  variable1 = ((abstractmetamodel___MMModule___mhe_t)CALL( self,COLOR_abstractmetamodel___MMModule___mhe))( self) /*MMModule::mhe*/;
+  variable1 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable1,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable1) /*PartialOrderElement::direct_greaters*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((abstractmetamodel___MMModule___global_classes_t)CALL( variable2 /*mod*/,COLOR_abstractmetamodel___MMModule___global_classes))( variable2 /*mod*/) /*MMModule::global_classes*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+      variable5 = ((abstractmetamodel___MMModule___global_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___global_classes))( self) /*MMModule::global_classes*/;
+      variable5 = ((array___AbstractArray___has_t)CALL(variable5,COLOR_abstract_collection___Collection___has))(variable5,  variable4 /*glob*/) /*Array::has*/;
+      if (UNTAG_Bool(variable5)) { /*if*/
+        goto continue_4;
+      }
+      variable5 = ATTR_abstractmetamodel___MMModule____global_classes( self) /*MMModule::_global_classes*/;
+      ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*glob*/) /*Array::add*/;
+      variable5 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
+      variable6 = ((abstractmetamodel___MMGlobalClass___name_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___name))( variable4 /*glob*/) /*MMGlobalClass::name*/;
+      ((abstract_collection___Map_____braeq_t)CALL(variable5,COLOR_abstract_collection___Map_____braeq))(variable5, variable6,  variable4 /*glob*/) /*Map::[]=*/;
+      continue_4: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+    }
+    break_4: while(0);
+    continue_3: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_3: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMModule___import_local_classes(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMModule::import_local_classes (src/metamodel//inheritance.nit:46,2--51:46)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMModule____global_classes( self) /*MMModule::_global_classes*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable1 = ((array___ArrayIterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable1)) break; /*for*/
+    variable1 = ((array___ArrayIterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*ArrayIterator::item*/;
+    variable2 = ((abstractmetamodel___MMModule_____bra_t)CALL( self,COLOR_abstractmetamodel___MMModule_____bra))( self,  variable1 /*g*/) /*MMModule::[]*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      goto continue_6;
+    }
+    variable3 = NEW_inheritance___MMImplicitLocalClass___init( self,  variable1 /*g*/); /*new MMImplicitLocalClass*/
+    variable2 = variable3;
+    continue_6: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*ArrayIterator::next*/;
+  }
+  break_6: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___compute_super_classes(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::compute_super_classes (src/metamodel//inheritance.nit:64,2--87:26)"};
+  val_t variable0;
+      val_t variable1;
+      val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((inheritance___MMLocalClass___computed_super_classes_t)CALL( self,COLOR_inheritance___MMLocalClass___computed_super_classes))( self) /*MMLocalClass::computed_super_classes*/;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    goto return_label7;
+  } else { /*if*/
+    variable0 = ATTR_inheritance___MMLocalClass____computing_super( self) /*MMLocalClass::_computing_super*/;
+    if (UNTAG_Bool(variable0)) { /*if*/
+      variable0 = ((file___Object___stderr_t)CALL( self,COLOR_file___Object___stderr))( self) /*MMLocalClass::stderr*/;
+      variable1 = NEW_string___String___init(); /*new String*/
+      variable2 = NEW_string___String___with_native(BOX_NativeString("Fatal error: Inheritance loop for class "), TAG_Int(40)); /*new String*/
+      variable3 = variable2;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+      variable4 =  self;
+      variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+      variable5 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+      ((file___OFStream___write_t)CALL(variable0,COLOR_stream___OStream___write))(variable0, variable1) /*OFStream::write*/;
+      exit(UNTAG_Int( TAG_Int(1)));
+    }
+  }
+  ATTR_inheritance___MMLocalClass____computing_super( self) /*MMLocalClass::_computing_super*/ =  TAG_Bool(true);
+  variable1 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  variable0 = variable1;
+  ((inheritance___MMLocalClass___add_explicit_classes_t)CALL( self,COLOR_inheritance___MMLocalClass___add_explicit_classes))( self,  variable0 /*supers*/) /*MMLocalClass::add_explicit_classes*/;
+  ((inheritance___MMLocalClass___add_super_classes_t)CALL( self,COLOR_inheritance___MMLocalClass___add_super_classes))( self,  variable0 /*supers*/) /*MMLocalClass::add_super_classes*/;
+  ((inheritance___MMLocalClass___add_default_any_class_t)CALL( self,COLOR_inheritance___MMLocalClass___add_default_any_class))( self,  variable0 /*supers*/) /*MMLocalClass::add_default_any_class*/;
+  ((inheritance___MMLocalClass___compute_super_parents_t)CALL( self,COLOR_inheritance___MMLocalClass___compute_super_parents))( self,  variable0 /*supers*/) /*MMLocalClass::compute_super_parents*/;
+  variable2 = NEW_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
+  variable1 = variable2;
+  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable1 /*set*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable1 /*set*/,  variable0 /*supers*/) /*HashSet::add_all*/;
+  variable3 = ((array___Collection___to_a_t)CALL( variable1 /*set*/,COLOR_array___Collection___to_a))( variable1 /*set*/) /*HashSet::to_a*/;
+  variable2 = variable3;
+  variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+  ((abstractmetamodel___MMModule___set_supers_class_t)CALL(variable3,COLOR_abstractmetamodel___MMModule___set_supers_class))(variable3,  self,  variable2 /*u*/) /*MMModule::set_supers_class*/;
+  variable3 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:85,3--22\n"); nit_exit(1);}
+  variable3 = ATTR_abstractmetamodel___MMLocalClass____cshe( self) /*MMLocalClass::_cshe*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:86,3--22\n"); nit_exit(1);}
+  ATTR_inheritance___MMLocalClass____computing_super( self) /*MMLocalClass::_computing_super*/ =  TAG_Bool(false);
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___compute_ancestors(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::compute_ancestors (src/metamodel//inheritance.nit:90,2--104:36)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+      val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((inheritance___MMLocalClass___computed_super_classes_t)CALL( self,COLOR_inheritance___MMLocalClass___computed_super_classes))( self) /*MMLocalClass::computed_super_classes*/;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:93,3--31\n"); nit_exit(1);}
+  variable0 = ((inheritance___MMLocalClass___computed_ancestors_t)CALL( self,COLOR_inheritance___MMLocalClass___computed_ancestors))( self) /*MMLocalClass::computed_ancestors*/;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    goto return_label8;
+  }
+  variable1 = ((inheritance___MMLocalClass___build_ancestors_t)CALL( self,COLOR_inheritance___MMLocalClass___build_ancestors))( self) /*MMLocalClass::build_ancestors*/;
+  variable1 = ((inheritance___MMLocalClass___group_ancestors_t)CALL( self,COLOR_inheritance___MMLocalClass___group_ancestors))( self, variable1) /*MMLocalClass::group_ancestors*/;
+  variable0 = variable1;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[MMLocalClass, MMAncestor]*/
+  ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/ = variable1;
+  variable1 = ((abstract_collection___Map___iterator_t)CALL( variable0 /*ancestors*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*ancestors*/) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*MapIterator::item*/;
+    variable3 = ((abstract_collection___Collection___length_t)CALL( variable2 /*set*/,COLOR_abstract_collection___Collection___length))( variable2 /*set*/) /*Set::length*/;
+    variable3 = TAG_Bool((variable3)==( TAG_Int(1)));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = ((abstract_collection___Collection___first_t)CALL( variable2 /*set*/,COLOR_abstract_collection___Collection___first))( variable2 /*set*/) /*Set::first*/;
+      ((static_type___MMLocalClass___add_ancestor_t)CALL( self,COLOR_static_type___MMLocalClass___add_ancestor))( self, variable3) /*MMLocalClass::add_ancestor*/;
+    } else { /*if*/
+      variable4 = ((inheritance___MMLocalClass___merge_ancestors_t)CALL( self,COLOR_inheritance___MMLocalClass___merge_ancestors))( self,  variable2 /*set*/) /*MMLocalClass::merge_ancestors*/;
+      variable3 = variable4;
+      variable4 = ((inheritance___MMLocalClass___merge_ancestors_t)CALL( self,COLOR_inheritance___MMLocalClass___merge_ancestors))( self,  variable2 /*set*/) /*MMLocalClass::merge_ancestors*/;
+      ((static_type___MMLocalClass___add_ancestor_t)CALL( self,COLOR_static_type___MMLocalClass___add_ancestor))( self, variable4) /*MMLocalClass::add_ancestor*/;
+    }
+    continue_9: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*MapIterator::next*/;
+  }
+  break_9: while(0);
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___inherit_global_properties(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::inherit_global_properties (src/metamodel//inheritance.nit:109,2--141:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+        val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Set::==*/)))))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    goto return_label10;
+  }
+  variable0 = NEW_hash___HashSet___init(); /*new HashSet[MMGlobalProperty]*/
+  ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/ = variable0;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, Array[MMGlobalProperty]]*/
+  ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/ = variable0;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalProperty, MMLocalProperty]*/
+  ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/ = variable0;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
+  variable0 = variable1;
+  variable2 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMLocalClass___che_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___che))( self) /*MMLocalClass::che*/;
+  variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable2) /*PartialOrderElement::direct_greaters*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable3 /*c*/) /*MMLocalClass::global_properties*/;
+    variable4 = ((abstract_collection___Collection___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Set::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+      variable6 = ((abstract_collection___Collection___has_t)CALL( variable1 /*set*/,COLOR_abstract_collection___Collection___has))( variable1 /*set*/,  variable5 /*glob*/) /*Set::has*/;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        goto continue_12;
+      }
+      ((abstract_collection___SimpleCollection___add_t)CALL( variable1 /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*set*/,  variable5 /*glob*/) /*Set::add*/;
+      variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable5 /*glob*/) /*MMGlobalProperty::is_init*/;
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable5 /*glob*/) /*MMGlobalProperty::intro*/;
+        variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable7) /*MMConcreteProperty::local_class*/;
+        variable7 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___global))(variable7) /*MMLocalClass::global*/;
+        variable8 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
+        variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable7 == variable8) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7,variable8)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7, variable8) /*MMGlobalClass::==*/)))))));
+      }
+      variable6 = variable7;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        goto continue_12;
+      }
+      variable7 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable5 /*glob*/) /*MMGlobalProperty::intro*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalProperty___name))(variable7) /*MMConcreteProperty::name*/;
+      variable6 = variable7;
+      variable7 = NIT_NULL /*decl variable conf_set*/;
+      variable8 = ((abstract_collection___Map___has_key_t)CALL( variable0 /*names*/,COLOR_abstract_collection___Map___has_key))( variable0 /*names*/,  variable6 /*gname*/) /*Map::has_key*/;
+      if (UNTAG_Bool(variable8)) { /*if*/
+        variable8 = ((abstract_collection___Map_____bra_t)CALL( variable0 /*names*/,COLOR_abstract_collection___Map_____bra))( variable0 /*names*/,  variable6 /*gname*/) /*Map::[]*/;
+        variable7 = variable8 /*conf_set=*/;
+      } else { /*if*/
+        variable8 = NEW_array___Array___init(); /*new Array[MMGlobalProperty]*/
+        variable7 = variable8 /*conf_set=*/;
+        ((abstract_collection___Map_____braeq_t)CALL( variable0 /*names*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*names*/,  variable6 /*gname*/,  variable7 /*conf_set*/) /*Map::[]=*/;
+      }
+      ((array___AbstractArray___add_t)CALL( variable7 /*conf_set*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*conf_set*/,  variable5 /*glob*/) /*Array::add*/;
+      continue_12: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+    }
+    break_12: while(0);
+    continue_11: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_11: while(0);
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___add_direct_parent(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::add_direct_parent (src/metamodel//inheritance.nit:146,2--149:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_inheritance___MMLocalClass____direct_parents( self) /*MMLocalClass::_direct_parents*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*p*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMLocalClass___computed_super_classes(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::computed_super_classes (src/metamodel//inheritance.nit:152,2--155:40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = ATTR_abstractmetamodel___MMLocalClass____cshe( self) /*MMLocalClass::_cshe*/;
+    variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  }
+  variable0 = variable1;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t inheritance___MMLocalClass___computed_ancestors(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::computed_ancestors (src/metamodel//inheritance.nit:158,2--161:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t inheritance___MMLocalClass___ancestor_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::ancestor_for (src/metamodel//inheritance.nit:164,2--184:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMLocalClass___ancestors_t)CALL( self,COLOR_static_type___MMLocalClass___ancestors))( self) /*MMLocalClass::ancestors*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:168,3--26\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*c*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*c*/) /*Map::[]*/;
+    goto return_label16;
+  }
+  variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___for_module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___for_module))( variable0 /*c*/, variable2) /*MMLocalClass::for_module*/;
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
+  variable2 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable2,COLOR_partial_order___PartialOrderElement_____leq))(variable2,  variable1 /*a*/) /*PartialOrderElement::<=*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:174,3--18\n"); nit_exit(1);}
+  variable2 = NIT_NULL /*decl variable ra*/;
+  variable3 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable3 = ((abstract_collection___Map___has_key_t)CALL(variable3,COLOR_abstract_collection___Map___has_key))(variable3,  variable1 /*a*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+    variable3 = ((abstract_collection___Map_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable1 /*a*/) /*Map::[]*/;
+    variable2 = variable3 /*ra=*/;
+  } else { /*if*/
+    variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable0 /*c*/) /*MMLocalClass::global*/;
+    variable4 = ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
+    variable3 = TAG_Bool((variable3 == variable4) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3,variable4)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, variable4) /*MMGlobalClass::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = NEW_inheritance___MMRefineAncestor___init( self,  variable0 /*c*/); /*new MMRefineAncestor*/
+      variable2 = variable3 /*ra=*/;
+    } else { /*if*/
+      variable3 = ((static_type___MMLocalClass___get_type_t)CALL( self,COLOR_static_type___MMLocalClass___get_type))( self) /*MMLocalClass::get_type*/;
+      variable4 = ((static_type___MMLocalClass___get_type_t)CALL( variable0 /*c*/,COLOR_static_type___MMLocalClass___get_type))( variable0 /*c*/) /*MMLocalClass::get_type*/;
+      variable5 = NEW_inheritance___MMSpecAncestor___init(variable3, variable4); /*new MMSpecAncestor*/
+      variable3 = variable5;
+      variable2 = variable3 /*ra=*/;
+    }
+  }
+  variable3 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3,  variable0 /*c*/,  variable2 /*ra*/) /*Map::[]=*/;
+  variable1 =  variable2 /*ra*/;
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t inheritance___MMLocalClass_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::[] (src/metamodel//inheritance.nit:187,2--193:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((inheritance___MMLocalClass_____bra_t)CALL( self,COLOR_SUPER_inheritance___MMLocalClass_____bra))( self,  variable0 /*glob*/) /*super MMLocalClass::[]*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*prop*/ ==  NIT_NULL /*null*/) || (( variable1 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*prop*/,COLOR_kernel___Object_____eqeq))( variable1 /*prop*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
+    variable3 = ((abstract_collection___Collection___has_t)CALL(variable3,COLOR_abstract_collection___Collection___has))(variable3,  variable0 /*glob*/) /*Set::has*/;
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((inheritance___MMLocalClass___inherit_local_property_t)CALL( self,COLOR_inheritance___MMLocalClass___inherit_local_property))( self,  variable0 /*glob*/) /*MMLocalClass::inherit_local_property*/;
+    variable1 = variable2 /*prop=*/;
+  }
+  variable1 =  variable1 /*prop*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void inheritance___MMLocalClass___add_default_any_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::add_default_any_class (src/metamodel//inheritance.nit:196,2--203:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    static val_t once_value_variable3_19; static int once_bool_variable3_19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*supers*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*supers*/) /*Array::is_empty*/;
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+    if (once_bool_variable3_19) variable3 = once_value_variable3_19;
+    else {
+      variable3 = NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+      variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+      once_value_variable3_19 = variable3;
+      once_bool_variable3_19 = true;
+    }
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable3) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable3) /*Symbol::==*/)))))));
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+    variable2 = ((inheritance___MMModule___type_any_t)CALL(variable2,COLOR_inheritance___MMModule___type_any))(variable2) /*MMModule::type_any*/;
+    variable1 = variable2;
+    variable2 = ((static_type___MMType___local_class_t)CALL( variable1 /*t_any*/,COLOR_static_type___MMType___local_class))( variable1 /*t_any*/) /*MMType::local_class*/;
+    ((array___AbstractArray___add_t)CALL( variable0 /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*supers*/, variable2) /*Array::add*/;
+    variable3 = NEW_inheritance___MMDefaultAncestor___init( self,  variable1 /*t_any*/); /*new MMDefaultAncestor*/
+    variable2 = variable3;
+    ((inheritance___MMLocalClass___add_direct_parent_t)CALL( self,COLOR_inheritance___MMLocalClass___add_direct_parent))( self,  variable2 /*default*/) /*MMLocalClass::add_direct_parent*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___add_super_classes(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::add_super_classes (src/metamodel//inheritance.nit:207,2--216:18)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:210,3--22\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable1 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable1,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable1) /*PartialOrderElement::direct_greaters*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable2 /*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable2 /*ref*/) /*MMLocalClass::cshe*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:212,4--26\n"); nit_exit(1);}
+    variable3 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable2 /*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable2 /*ref*/) /*MMLocalClass::cshe*/;
+    variable3 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable3,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable3) /*PartialOrderElement::direct_greaters*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+      variable6 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
+      variable6 = ((abstractmetamodel___MMLocalClass___for_module_t)CALL( variable4 /*sup*/,COLOR_abstractmetamodel___MMLocalClass___for_module))( variable4 /*sup*/, variable6) /*MMLocalClass::for_module*/;
+      variable5 = variable6;
+      variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*cla*/ ==  NIT_NULL /*null*/) || (( variable5 /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*cla*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*cla*/,COLOR_kernel___Object_____eqeq))( variable5 /*cla*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:215,5--22\n"); nit_exit(1);}
+      ((array___AbstractArray___add_t)CALL( variable0 /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*supers*/,  variable5 /*cla*/) /*Array::add*/;
+      continue_22: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+    }
+    break_22: while(0);
+    continue_21: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_21: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___add_explicit_classes(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::add_explicit_classes (src/metamodel//inheritance.nit:221,2--225:27)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_inheritance___MMLocalClass____direct_parents( self) /*MMLocalClass::_direct_parents*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((static_type___MMAncestor___local_class_t)CALL( variable2 /*p*/,COLOR_static_type___MMAncestor___local_class))( variable2 /*p*/) /*MMAncestor::local_class*/;
+    ((array___AbstractArray___add_t)CALL( variable0 /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*supers*/, variable3) /*Array::add*/;
+    continue_24: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_24: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMLocalClass___compute_super_parents(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::compute_super_parents (src/metamodel//inheritance.nit:229,2--234:26)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*supers*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*supers*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*p*/ ==  NIT_NULL /*null*/) || (( variable2 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))( variable2 /*p*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:233,4--19\n"); nit_exit(1);}
+    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable2 /*p*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable2 /*p*/) /*MMLocalClass::compute_super_classes*/;
+    continue_26: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_26: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMLocalClass___build_ancestors(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::build_ancestors (src/metamodel//inheritance.nit:238,2--253:22)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  variable0 = variable1;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PartialOrderElement::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:243,3--22\n"); nit_exit(1);}
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
+  variable1 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable1,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable1) /*PartialOrderElement::direct_greaters*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*p*/ ==  self) || (( variable2 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*p*/, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))( variable2 /*p*/,  self) /*MMLocalClass::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:245,4--19\n"); nit_exit(1);}
+    variable4 = NEW_inheritance___MMRefineAncestor___init( self,  variable2 /*p*/); /*new MMRefineAncestor*/
+    variable3 = variable4;
+    ((inheritance___MMAncestor___add_in_t)CALL( variable3 /*anc*/,COLOR_inheritance___MMAncestor___add_in))( variable3 /*anc*/,  variable0 /*all_ancestors*/) /*MMRefineAncestor::add_in*/;
+    continue_28: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_28: while(0);
+  variable1 = ATTR_inheritance___MMLocalClass____direct_parents( self) /*MMLocalClass::_direct_parents*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((static_type___MMAncestor___local_class_t)CALL( variable2 /*anc*/,COLOR_static_type___MMAncestor___local_class))( variable2 /*anc*/) /*MMAncestor::local_class*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  self) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  self) /*MMLocalClass::==*/)))))));
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:250,4--33\n"); nit_exit(1);}
+    ((inheritance___MMAncestor___add_in_t)CALL( variable2 /*anc*/,COLOR_inheritance___MMAncestor___add_in))( variable2 /*anc*/,  variable0 /*all_ancestors*/) /*MMAncestor::add_in*/;
+    continue_29: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_29: while(0);
+  variable0 =  variable0 /*all_ancestors*/;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t inheritance___MMLocalClass___group_ancestors(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::group_ancestors (src/metamodel//inheritance.nit:256,2--275:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_hash___HashMap___init(); /*new HashMap[MMLocalClass, Set[MMAncestor]]*/
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*all*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*all*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable5 = ((static_type___MMAncestor___local_class_t)CALL( variable3 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable3 /*a*/) /*MMAncestor::local_class*/;
+    variable4 = variable5;
+    variable5 = NIT_NULL /*decl variable set*/;
+    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable4 /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable4 /*c*/) /*MMLocalClass::compute_ancestors*/;
+    variable6 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable1 /*map*/,COLOR_abstract_collection___Map___has_key))( variable1 /*map*/,  variable4 /*c*/) /*HashMap::has_key*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable1 /*map*/,COLOR_abstract_collection___Map_____bra))( variable1 /*map*/,  variable4 /*c*/) /*HashMap::[]*/;
+      variable5 = variable6 /*set=*/;
+    } else { /*if*/
+      variable6 = NEW_hash___HashSet___init(); /*new HashSet[MMAncestor]*/
+      variable5 = variable6 /*set=*/;
+      ((hash___HashMap_____braeq_t)CALL( variable1 /*map*/,COLOR_abstract_collection___Map_____braeq))( variable1 /*map*/,  variable4 /*c*/,  variable5 /*set*/) /*HashMap::[]=*/;
+    }
+    ((abstract_collection___SimpleCollection___add_t)CALL( variable5 /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*set*/,  variable3 /*a*/) /*Set::add*/;
+    continue_31: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_31: while(0);
+  variable1 =  variable1 /*map*/;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t inheritance___MMLocalClass___merge_ancestors(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::merge_ancestors (src/metamodel//inheritance.nit:278,2--308:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_hash___HashSet___init(); /*new HashSet[MMAncestor]*/
+  variable1 = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  variable2 = variable3;
+  variable3 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*set*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*set*/) /*Set::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+    variable6 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*set*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*set*/) /*Set::iterator*/;
+    variable5 = variable6;
+    variable6 =  TAG_Bool(true);
+    while (true) { /*while*/
+      variable7 = ((abstract_collection___Iterator___is_ok_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable5 /*it*/) /*Iterator::is_ok*/;
+      variable8 = variable7;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 =  variable6 /*search*/;
+      }
+      variable7 = variable8;
+      if (!UNTAG_Bool(variable7)) break; /* while*/
+      variable8 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+      variable8 = TAG_Bool(( variable4 /*t*/ == variable8) || (( variable4 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*t*/,variable8)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))( variable4 /*t*/, variable8) /*MMAncestor::==*/)))));
+      variable7 = variable8;
+      variable8 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+      variable8 = ((hash___HashSet___has_t)CALL( variable1 /*marks*/,COLOR_abstract_collection___Collection___has))( variable1 /*marks*/, variable8) /*HashSet::has*/;
+      variable7 = variable8 /*a=*/;
+      variable8 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+      variable8 = ((static_type___MMAncestor___stype_t)CALL(variable8,COLOR_static_type___MMAncestor___stype))(variable8) /*MMAncestor::stype*/;
+      variable9 = ((static_type___MMAncestor___stype_t)CALL( variable4 /*t*/,COLOR_static_type___MMAncestor___stype))( variable4 /*t*/) /*MMAncestor::stype*/;
+      variable8 = ((static_type___MMType_____l_t)CALL(variable8,COLOR_static_type___MMType_____l))(variable8, variable9) /*MMType::<*/;
+      variable7 = variable8 /*a=*/;
+      variable8 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+      variable8 = TAG_Bool(( variable4 /*t*/ == variable8) || (( variable4 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*t*/,variable8)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))( variable4 /*t*/, variable8) /*MMAncestor::==*/)))));
+      variable9 = variable8;
+      if (!UNTAG_Bool(variable9)) { /* or */
+        variable9 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+        variable9 = ((hash___HashSet___has_t)CALL( variable1 /*marks*/,COLOR_abstract_collection___Collection___has))( variable1 /*marks*/, variable9) /*HashSet::has*/;
+      }
+      variable8 = variable9;
+      variable8 =  TAG_Bool(!UNTAG_Bool(variable8));
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = ((abstract_collection___Iterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*Iterator::item*/;
+        variable8 = ((static_type___MMAncestor___stype_t)CALL(variable8,COLOR_static_type___MMAncestor___stype))(variable8) /*MMAncestor::stype*/;
+        variable9 = ((static_type___MMAncestor___stype_t)CALL( variable4 /*t*/,COLOR_static_type___MMAncestor___stype))( variable4 /*t*/) /*MMAncestor::stype*/;
+        variable8 = ((static_type___MMType_____l_t)CALL(variable8,COLOR_static_type___MMType_____l))(variable8, variable9) /*MMType::<*/;
+      }
+      if (UNTAG_Bool(variable8)) { /*if*/
+        ((hash___HashSet___add_t)CALL( variable1 /*marks*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*marks*/,  variable4 /*t*/) /*HashSet::add*/;
+        variable6 =  TAG_Bool(false) /*search=*/;
+      }
+      ((abstract_collection___Iterator___next_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___next))( variable5 /*it*/) /*Iterator::next*/;
+      continue_34: while(0);
+    }
+    break_34: while(0);
+    variable7 = ((hash___HashSet___has_t)CALL( variable1 /*marks*/,COLOR_abstract_collection___Collection___has))( variable1 /*marks*/,  variable4 /*t*/) /*HashSet::has*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7)))) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  variable4 /*t*/) /*Array::add*/;
+    }
+    continue_33: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+  }
+  break_33: while(0);
+  variable3 = ((array___AbstractArray___length_t)CALL( variable2 /*res*/,COLOR_abstract_collection___Collection___length))( variable2 /*res*/) /*Array::length*/;
+  variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((file___Object___stderr_t)CALL( self,COLOR_file___Object___stderr))( self) /*MMLocalClass::stderr*/;
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Fatal error: Incompatibles ancestors for "), TAG_Int(41)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
+    variable8 = variable7;
+    variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+    variable11 = ((string___Collection___join_t)CALL( variable2 /*res*/,COLOR_string___Collection___join))( variable2 /*res*/, variable11) /*Array::join*/;
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+    ((file___OFStream___write_t)CALL(variable3,COLOR_stream___OStream___write))(variable3, variable4) /*OFStream::write*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable3 = ((abstract_collection___IndexedCollection___first_t)CALL( variable2 /*res*/,COLOR_abstract_collection___Collection___first))( variable2 /*res*/) /*Array::first*/;
+  variable1 = variable3;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t inheritance___MMLocalClass___inherit_local_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalClass::inherit_local_property (src/metamodel//inheritance.nit:311,2--339:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*glob*/) /*Map::has_key*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:316,3--51\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*glob*/ ==  NIT_NULL /*null*/) || (( variable0 /*glob*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))( variable0 /*glob*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:317,3--21\n"); nit_exit(1);}
+  variable2 = ((inheritance___MMGlobalProperty___get_compatible_concrete_properties_for_t)CALL( variable0 /*glob*/,COLOR_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for))( variable0 /*glob*/,  self) /*MMGlobalProperty::get_compatible_concrete_properties_for*/;
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable1 /*impls*/,COLOR_abstract_collection___Collection___length))( variable1 /*impls*/) /*Array::length*/;
+  variable2 = TAG_Bool((variable2)!=( TAG_Int(1)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((file___Object___stderr_t)CALL( self,COLOR_file___Object___stderr))( self) /*MMLocalClass::stderr*/;
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Fatal error: inherit_local_property error\n"), TAG_Int(42)); /*new String*/
+    ((file___OFStream___write_t)CALL(variable2,COLOR_stream___OStream___write))(variable2, variable3) /*OFStream::write*/;
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    variable9 =  self;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable11) /*String::append*/;
+    variable12 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable0 /*glob*/) /*MMGlobalProperty::intro*/;
+    variable12 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable12,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable12) /*MMConcreteProperty::full_name*/;
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable15) /*String::append*/;
+    ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable2) /*MMLocalClass::print*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL( variable1 /*impls*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*impls*/) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable3)) break; /*for*/
+      variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("   "), TAG_Int(3)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable3 /*i*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable3 /*i*/) /*MMConcreteProperty::full_name*/;
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable4) /*MMLocalClass::print*/;
+      continue_36: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+    }
+    break_36: while(0);
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy))( variable0 /*glob*/) /*MMGlobalProperty::concrete_property_hierarchy*/;
+    variable5 = ((partial_order___PartialOrder___first_t)CALL(variable5,COLOR_abstract_collection___Collection___first))(variable5) /*PartialOrder::first*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable2) /*MMLocalClass::print*/;
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy))( variable0 /*glob*/) /*MMGlobalProperty::concrete_property_hierarchy*/;
+    variable5 = ((partial_order___PartialOrder___to_dot_t)CALL(variable5,COLOR_partial_order___PartialOrder___to_dot))(variable5) /*PartialOrder::to_dot*/;
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable2) /*MMLocalClass::print*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable3 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*impls*/,COLOR_abstract_collection___Collection___first))( variable1 /*impls*/) /*Array::first*/;
+  variable2 = variable3;
+  variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable2 /*impl*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable2 /*impl*/) /*MMConcreteProperty::local_class*/;
+  variable4 = ((inheritance___MMLocalClass___ancestor_for_t)CALL( self,COLOR_inheritance___MMLocalClass___ancestor_for))( self, variable4) /*MMLocalClass::ancestor_for*/;
+  variable3 = variable4;
+  variable4 = ((static_type___MMAncestor___local_class_t)CALL( variable3 /*ac*/,COLOR_static_type___MMAncestor___local_class))( variable3 /*ac*/) /*MMAncestor::local_class*/;
+  ((inheritance___MMLocalClass___inherit_global_properties_t)CALL(variable4,COLOR_inheritance___MMLocalClass___inherit_global_properties))(variable4) /*MMLocalClass::inherit_global_properties*/;
+  variable5 = ((static_type___MMAncestor___stype_t)CALL( variable3 /*ac*/,COLOR_static_type___MMAncestor___stype))( variable3 /*ac*/) /*MMAncestor::stype*/;
+  variable4 = variable5;
+  variable5 = ((static_type___MMType___local_class_t)CALL( variable4 /*a*/,COLOR_static_type___MMType___local_class))( variable4 /*a*/) /*MMType::local_class*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  self) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  self) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:335,3--30\n"); nit_exit(1);}
+  variable6 = ((static_type___MMType___select_property_t)CALL( variable4 /*a*/,COLOR_static_type___MMType___select_property))( variable4 /*a*/,  variable0 /*glob*/) /*MMType::select_property*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*sup*/ ==  NIT_NULL /*null*/) || (( variable5 /*sup*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*sup*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*sup*/,COLOR_kernel___Object_____eqeq))( variable5 /*sup*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))))));
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:337,3--20\n"); nit_exit(1);}
+  variable7 = ((static_type___MMLocalClass___get_type_t)CALL( self,COLOR_static_type___MMLocalClass___get_type))( self) /*MMLocalClass::get_type*/;
+  variable7 = ((inheritance___MMLocalProperty___inherit_to_t)CALL( variable5 /*sup*/,COLOR_inheritance___MMLocalProperty___inherit_to))( variable5 /*sup*/, variable7) /*MMLocalProperty::inherit_to*/;
+  variable6 = variable7;
+  variable1 =  variable6 /*prop*/;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t inheritance___MMConcreteProperty___is_deferred(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMConcreteProperty::is_deferred (src/metamodel//inheritance.nit:344,2--345:39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t inheritance___MMGlobalProperty___get_compatible_concrete_properties_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMGlobalProperty::get_compatible_concrete_properties_for (src/metamodel//inheritance.nit:349,2--373:41)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/;
+  variable1 = variable2;
+  variable2 = ((partial_order___PartialOrder___length_t)CALL( variable1 /*impl_hier*/,COLOR_abstract_collection___Collection___length))( variable1 /*impl_hier*/) /*PartialOrder::length*/;
+  variable2 = TAG_Bool((variable2)==( TAG_Int(1)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMConcreteProperty]*/
+    variable3 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+    variable1 = variable2;
+    goto return_label38;
+  }
+  variable3 = NEW_array___ArraySet___init(); /*new ArraySet[MMConcreteProperty]*/
+  variable2 = variable3;
+  variable4 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable0 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable0 /*cla*/) /*MMLocalClass::che*/;
+  variable3 = variable4;
+  if (UNTAG_Bool( TAG_Bool(true))) { /*if*/
+    variable4 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable0 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable0 /*cla*/) /*MMLocalClass::che*/;
+    variable4 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable4) /*PartialOrderElement::direct_greaters*/;
+    variable4 = ((array___AbstractArray___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+      variable7 = ((inheritance___MMLocalClass_____bra_t)CALL( variable5 /*sc*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable5 /*sc*/,  self) /*MMLocalClass::[]*/;
+      variable6 = variable7;
+      variable7 = TAG_Bool(( variable6 /*p*/ ==  NIT_NULL /*null*/) || (( variable6 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*p*/,COLOR_kernel___Object_____eqeq))( variable6 /*p*/,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))));
+      if (UNTAG_Bool(variable7)) { /*if*/
+        goto continue_39;
+      }
+      variable8 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable6 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable6 /*p*/) /*MMLocalProperty::concrete_property*/;
+      variable7 = variable8;
+      ((array___ArraySet___add_t)CALL( variable2 /*impls*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*impls*/,  variable7 /*impl*/) /*ArraySet::add*/;
+      continue_39: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+    }
+    break_39: while(0);
+  } else { /*if*/
+    variable4 = ((partial_order___PartialOrder___iterator_t)CALL( variable1 /*impl_hier*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*impl_hier*/) /*PartialOrder::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+      variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable5 /*impl*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable5 /*impl*/) /*MMConcreteProperty::local_class*/;
+      variable6 = variable7;
+      variable7 = ((partial_order___PartialOrderElement_____l_t)CALL( variable3 /*clache*/,COLOR_partial_order___PartialOrderElement_____l))( variable3 /*clache*/,  variable6 /*bc*/) /*PartialOrderElement::<*/;
+      if (UNTAG_Bool(variable7)) { /*if*/
+        ((array___ArraySet___add_t)CALL( variable2 /*impls*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*impls*/,  variable5 /*impl*/) /*ArraySet::add*/;
+      }
+      continue_40: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+    }
+    break_40: while(0);
+  }
+  variable4 = ((partial_order___PartialOrder___select_smallests_t)CALL( variable1 /*impl_hier*/,COLOR_partial_order___PartialOrder___select_smallests))( variable1 /*impl_hier*/,  variable2 /*impls*/) /*PartialOrder::select_smallests*/;
+  variable1 = variable4;
+  goto return_label38;
+  return_label38: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void inheritance___MMLocalProperty___inherit_global(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalProperty::inherit_global (src/metamodel//inheritance.nit:378,2--383:97)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((abstractmetamodel___MMLocalProperty___set_global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___set_global))( self,  variable0 /*g*/) /*MMLocalProperty::set_global*/;
+  variable1 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( self) /*MMLocalProperty::concrete_property*/;
+  variable2 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
+  variable2 = ((inheritance___MMGlobalProperty___get_compatible_concrete_properties_for_t)CALL( variable0 /*g*/,COLOR_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for))( variable0 /*g*/, variable2) /*MMGlobalProperty::get_compatible_concrete_properties_for*/;
+  ((abstractmetamodel___MMGlobalProperty___add_concrete_property_t)CALL( variable0 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___add_concrete_property))( variable0 /*g*/, variable1, variable2) /*MMGlobalProperty::add_concrete_property*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMLocalProperty___inherit_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalProperty::inherit_to (src/metamodel//inheritance.nit:386,2--387:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method inherit_to called (src/metamodel//inheritance.nit:386,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void inheritance___MMLocalProperty___inherit_from(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "inheritance::MMLocalProperty::inherit_from (src/metamodel//inheritance.nit:389,2--395:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:392,3--28\n"); nit_exit(1);}
+  ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/ =  variable0 /*s*/;
+  variable2 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*s*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*s*/) /*MMLocalProperty::global*/;
+    ((abstractmetamodel___MMLocalProperty___set_global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___set_global))( self, variable2) /*MMLocalProperty::set_global*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMMethod___inherit_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMMethod::inherit_to (src/metamodel//inheritance.nit:402,2--403:37)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_inheritance___MMImplicitMethod___init( self,  variable0 /*t*/); /*new MMImplicitMethod*/
+  goto return_label43;
+  return_label43: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void inheritance___MMImplicitProperty___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMImplicitProperty::init (src/metamodel//inheritance.nit:410,2--414:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitProperty].i]) return;
+  variable2 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable0 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable0 /*prop*/) /*MMLocalProperty::name*/;
+  variable3 = ((static_type___MMType___local_class_t)CALL( variable1 /*bt*/,COLOR_static_type___MMType___local_class))( variable1 /*bt*/) /*MMType::local_class*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable0 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable0 /*prop*/) /*MMLocalProperty::concrete_property*/;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self, variable2, variable3, variable4, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ((inheritance___MMLocalProperty___inherit_from_t)CALL( self,COLOR_inheritance___MMLocalProperty___inherit_from))( self,  variable0 /*prop*/,  variable1 /*bt*/) /*MMImplicitProperty::inherit_from*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitProperty].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMImplicitMethod___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMImplicitMethod::init (src/metamodel//inheritance.nit:421,2--20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitMethod].i]) return;
+  ((inheritance___MMImplicitProperty___init_t)CALL( self,COLOR_inheritance___MMImplicitProperty___init))( self,  param0,  param1, init_table /*YYY*/) /*MMImplicitProperty::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitMethod].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMAttribute___inherit_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMAttribute::inherit_to (src/metamodel//inheritance.nit:425,2--427:39)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_inheritance___MMImplicitAttribute___init( self,  variable0 /*t*/); /*new MMImplicitAttribute*/
+  goto return_label46;
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void inheritance___MMImplicitAttribute___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMImplicitAttribute::init (src/metamodel//inheritance.nit:434,2--20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitAttribute].i]) return;
+  ((inheritance___MMImplicitProperty___init_t)CALL( self,COLOR_inheritance___MMImplicitProperty___init))( self,  param0,  param1, init_table /*YYY*/) /*MMImplicitProperty::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitAttribute].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMAncestor___add_in(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "inheritance::MMAncestor::add_in (src/metamodel//inheritance.nit:438,2--456:43)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+        val_t variable7;
+        val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'ancestor'  failed: src/metamodel//inheritance.nit:441,3--32\n"); nit_exit(1);}
+  variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable1 = ((static_type___MMType___local_class_t)CALL(variable1,COLOR_static_type___MMType___local_class))(variable1) /*MMType::local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert 'local_class'  failed: src/metamodel//inheritance.nit:442,3--47\n"); nit_exit(1);}
+  ((array___AbstractArray___add_t)CALL( variable0 /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*tab*/,  self) /*Array::add*/;
+  variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable1 = ((static_type___MMType___local_class_t)CALL(variable1,COLOR_static_type___MMType___local_class))(variable1) /*MMType::local_class*/;
+  ((inheritance___MMLocalClass___compute_ancestors_t)CALL(variable1,COLOR_inheritance___MMLocalClass___compute_ancestors))(variable1) /*MMLocalClass::compute_ancestors*/;
+  variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable1 = ((static_type___MMType___local_class_t)CALL(variable1,COLOR_static_type___MMType___local_class))(variable1) /*MMType::local_class*/;
+  variable1 = ((static_type___MMLocalClass___ancestors_t)CALL(variable1,COLOR_static_type___MMLocalClass___ancestors))(variable1) /*MMLocalClass::ancestors*/;
+  variable1 = ((abstract_collection___Map___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*MapIterator::item*/;
+    variable4 = ((static_type___MMAncestor___stype_t)CALL( variable2 /*anc*/,COLOR_static_type___MMAncestor___stype))( variable2 /*anc*/) /*MMAncestor::stype*/;
+    variable5 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+    variable5 = ((static_type___MMType___module_t)CALL(variable5,COLOR_static_type___MMType___module))(variable5) /*MMType::module*/;
+    variable4 = ((static_type___MMType___for_module_t)CALL(variable4,COLOR_static_type___MMType___for_module))(variable4, variable5) /*MMType::for_module*/;
+    variable3 = variable4;
+    variable5 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+    variable5 = ((static_type___MMType___adapt_to_t)CALL( variable3 /*aaa*/,COLOR_static_type___MMType___adapt_to))( variable3 /*aaa*/, variable5) /*MMType::adapt_to*/;
+    variable6 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
+    variable6 = ((static_type___MMType___module_t)CALL(variable6,COLOR_static_type___MMType___module))(variable6) /*MMType::module*/;
+    variable5 = ((static_type___MMType___for_module_t)CALL(variable5,COLOR_static_type___MMType___for_module))(variable5, variable6) /*MMType::for_module*/;
+    variable4 = variable5;
+    variable5 = ((static_type___MMType___local_class_t)CALL( variable4 /*a*/,COLOR_static_type___MMType___local_class))( variable4 /*a*/) /*MMType::local_class*/;
+    variable6 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
+    variable6 = ((static_type___MMType___local_class_t)CALL(variable6,COLOR_static_type___MMType___local_class))(variable6) /*MMType::local_class*/;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 == variable6) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5, variable6) /*MMLocalClass::==*/)))))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable6 = ((array___AbstractArray___iterator_t)CALL( variable0 /*tab*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*tab*/) /*Array::iterator*/;
+      variable5 = variable6;
+      variable6 =  TAG_Bool(true);
+      while (true) { /*while*/
+        variable7 = ((array___ArrayIterator___is_ok_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable5 /*it*/) /*ArrayIterator::is_ok*/;
+        variable8 = variable7;
+        if (UNTAG_Bool(variable8)) { /* and */
+          variable8 =  variable6 /*b*/;
+        }
+        variable7 = variable8;
+        if (!UNTAG_Bool(variable7)) break; /* while*/
+        variable7 = ((array___ArrayIterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*ArrayIterator::item*/;
+        variable7 = ((static_type___MMAncestor___inheriter_t)CALL(variable7,COLOR_static_type___MMAncestor___inheriter))(variable7) /*MMAncestor::inheriter*/;
+        variable8 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
+        variable7 = TAG_Bool((variable7 == variable8) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7,variable8)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7, variable8) /*MMType::==*/)))));
+        variable8 = variable7;
+        if (UNTAG_Bool(variable8)) { /* and */
+          variable8 = ((array___ArrayIterator___item_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___item))( variable5 /*it*/) /*ArrayIterator::item*/;
+          variable8 = ((static_type___MMAncestor___stype_t)CALL(variable8,COLOR_static_type___MMAncestor___stype))(variable8) /*MMAncestor::stype*/;
+          variable8 = TAG_Bool((variable8 ==  variable4 /*a*/) || ((variable8 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable8, variable4 /*a*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))(variable8,  variable4 /*a*/) /*MMType::==*/)))));
+        }
+        variable7 = variable8;
+        variable6 =  TAG_Bool(!UNTAG_Bool(variable7)) /*b=*/;
+        ((array___ArrayIterator___next_t)CALL( variable5 /*it*/,COLOR_abstract_collection___Iterator___next))( variable5 /*it*/) /*ArrayIterator::next*/;
+        continue_50: while(0);
+      }
+      break_50: while(0);
+      if (UNTAG_Bool( variable6 /*b*/)) { /*if*/
+        variable7 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
+        variable8 = NEW_inheritance___MMSpecAncestor___init(variable7,  variable4 /*a*/); /*new MMSpecAncestor*/
+        variable7 = variable8;
+        ((array___AbstractArray___add_t)CALL( variable0 /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*tab*/, variable7) /*Array::add*/;
+      }
+    }
+    continue_49: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*MapIterator::next*/;
+  }
+  break_49: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void inheritance___MMImplicitLocalClass___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMImplicitLocalClass::init (src/metamodel//inheritance.nit:468,2--473:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitLocalClass].i]) return;
+  variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable1 /*g*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable1 /*g*/) /*MMGlobalClass::intro*/;
+  variable2 = variable3;
+  variable3 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable2 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable2 /*cla*/) /*MMLocalClass::name*/;
+  variable4 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable2 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable2 /*cla*/) /*MMLocalClass::arity*/;
+  ((abstractmetamodel___MMLocalClass___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___init))( self, variable3, variable4, init_table /*YYY*/) /*MMLocalClass::init*/;
+  ((abstractmetamodel___MMModule___add_local_class_t)CALL( variable0 /*mod*/,COLOR_abstractmetamodel___MMModule___add_local_class))( variable0 /*mod*/,  self) /*MMModule::add_local_class*/;
+  ((abstractmetamodel___MMLocalClass___set_global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___set_global))( self,  variable1 /*g*/) /*MMImplicitLocalClass::set_global*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitLocalClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMRefineAncestor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMRefineAncestor::local_class (src/metamodel//inheritance.nit:479,2--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_inheritance___MMRefineAncestor____local_class( self) /*MMRefineAncestor::_local_class*/;
+}
+void inheritance___MMRefineAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMRefineAncestor::init (src/metamodel//inheritance.nit:481,2--485:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMRefineAncestor].i]) return;
+  ATTR_inheritance___MMRefineAncestor____local_class( self) /*MMRefineAncestor::_local_class*/ =  variable1 /*a*/;
+  variable2 = ((static_type___MMLocalClass___get_type_t)CALL( variable0 /*b*/,COLOR_static_type___MMLocalClass___get_type))( variable0 /*b*/) /*MMLocalClass::get_type*/;
+  ((static_type___MMAncestor___inheriter__eq_t)CALL( self,COLOR_static_type___MMAncestor___inheriter__eq))( self, variable2) /*MMRefineAncestor::inheriter=*/;
+  variable2 = ATTR_inheritance___MMRefineAncestor____local_class( self) /*MMRefineAncestor::_local_class*/;
+  variable2 = ((static_type___MMLocalClass___get_type_t)CALL(variable2,COLOR_static_type___MMLocalClass___get_type))(variable2) /*MMLocalClass::get_type*/;
+  ((static_type___MMAncestor___stype__eq_t)CALL( self,COLOR_static_type___MMAncestor___stype__eq))( self, variable2) /*MMRefineAncestor::stype=*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMRefineAncestor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMSpecAncestor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMSpecAncestor::local_class (src/metamodel//inheritance.nit:492,2--51)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMSpecAncestor::stype*/;
+  variable0 = ((static_type___MMType___local_class_t)CALL(variable0,COLOR_static_type___MMType___local_class))(variable0) /*MMType::local_class*/;
+  goto return_label53;
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void inheritance___MMSpecAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMSpecAncestor::init (src/metamodel//inheritance.nit:494,2--497:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSpecAncestor].i]) return;
+  ATTR_static_type___MMAncestor____inheriter( self) /*MMSpecAncestor::_inheriter*/ =  variable0 /*inheriter*/;
+  ATTR_static_type___MMAncestor____stype( self) /*MMSpecAncestor::_stype*/ =  variable1 /*stype*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSpecAncestor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t inheritance___MMDefaultAncestor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "inheritance::MMDefaultAncestor::local_class (src/metamodel//inheritance.nit:503,2--51)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMDefaultAncestor::stype*/;
+  variable0 = ((static_type___MMType___local_class_t)CALL(variable0,COLOR_static_type___MMType___local_class))(variable0) /*MMType::local_class*/;
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void inheritance___MMDefaultAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "inheritance::MMDefaultAncestor::init (src/metamodel//inheritance.nit:505,2--511:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDefaultAncestor].i]) return;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*b*/ ==  NIT_NULL /*null*/) || (( variable0 /*b*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*b*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*b*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*b*/,COLOR_kernel___Object_____eqeq))( variable0 /*b*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:507,3--18\n"); nit_exit(1);}
+  variable2 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*b*/) /*MMLocalClass::module*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:508,3--25\n"); nit_exit(1);}
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*anc*/ ==  NIT_NULL /*null*/) || (( variable1 /*anc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*anc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*anc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*anc*/,COLOR_kernel___Object_____eqeq))( variable1 /*anc*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//inheritance.nit:509,3--20\n"); nit_exit(1);}
+  variable2 = ((static_type___MMLocalClass___get_type_t)CALL( variable0 /*b*/,COLOR_static_type___MMLocalClass___get_type))( variable0 /*b*/) /*MMLocalClass::get_type*/;
+  ((static_type___MMAncestor___inheriter__eq_t)CALL( self,COLOR_static_type___MMAncestor___inheriter__eq))( self, variable2) /*MMDefaultAncestor::inheriter=*/;
+  ((static_type___MMAncestor___stype__eq_t)CALL( self,COLOR_static_type___MMAncestor___stype__eq))( self,  variable1 /*anc*/) /*MMDefaultAncestor::stype=*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDefaultAncestor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/inheritance._sep.h b/c_src/inheritance._sep.h
new file mode 100644 (file)
index 0000000..a3c2979
--- /dev/null
@@ -0,0 +1,160 @@
+#ifndef inheritance__sep
+#define inheritance__sep
+#include "static_type._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMImplicitProperty[];
+
+extern const classtable_elt_t VFT_MMImplicitMethod[];
+
+extern const classtable_elt_t VFT_MMImplicitAttribute[];
+
+extern const classtable_elt_t VFT_MMImplicitLocalClass[];
+
+extern const classtable_elt_t VFT_MMRefineAncestor[];
+
+extern const classtable_elt_t VFT_MMSpecAncestor[];
+
+extern const classtable_elt_t VFT_MMDefaultAncestor[];
+extern const int SFT_inheritance[];
+#define COLOR_inheritance___MMModule___type_any SFT_inheritance[0]
+#define COLOR_inheritance___MMModule___import_global_classes SFT_inheritance[1]
+#define COLOR_inheritance___MMModule___import_local_classes SFT_inheritance[2]
+#define COLOR_inheritance___MMLocalClass____direct_parents SFT_inheritance[3]
+#define COLOR_inheritance___MMLocalClass____computing_super SFT_inheritance[4]
+#define COLOR_inheritance___MMLocalClass___compute_super_classes SFT_inheritance[5]
+#define COLOR_inheritance___MMLocalClass___compute_ancestors SFT_inheritance[6]
+#define COLOR_inheritance___MMLocalClass___inherit_global_properties SFT_inheritance[7]
+#define COLOR_inheritance___MMLocalClass___add_direct_parent SFT_inheritance[8]
+#define COLOR_inheritance___MMLocalClass___computed_super_classes SFT_inheritance[9]
+#define COLOR_inheritance___MMLocalClass___computed_ancestors SFT_inheritance[10]
+#define COLOR_inheritance___MMLocalClass___ancestor_for SFT_inheritance[11]
+#define COLOR_SUPER_inheritance___MMLocalClass_____bra SFT_inheritance[12]
+#define COLOR_inheritance___MMLocalClass___add_default_any_class SFT_inheritance[13]
+#define COLOR_inheritance___MMLocalClass___add_super_classes SFT_inheritance[14]
+#define COLOR_inheritance___MMLocalClass___add_explicit_classes SFT_inheritance[15]
+#define COLOR_inheritance___MMLocalClass___compute_super_parents SFT_inheritance[16]
+#define COLOR_inheritance___MMLocalClass___build_ancestors SFT_inheritance[17]
+#define COLOR_inheritance___MMLocalClass___group_ancestors SFT_inheritance[18]
+#define COLOR_inheritance___MMLocalClass___merge_ancestors SFT_inheritance[19]
+#define COLOR_inheritance___MMLocalClass___inherit_local_property SFT_inheritance[20]
+#define COLOR_inheritance___MMConcreteProperty___is_deferred SFT_inheritance[21]
+#define COLOR_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for SFT_inheritance[22]
+#define COLOR_inheritance___MMLocalProperty___inherit_global SFT_inheritance[23]
+#define COLOR_inheritance___MMLocalProperty___inherit_to SFT_inheritance[24]
+#define COLOR_inheritance___MMLocalProperty___inherit_from SFT_inheritance[25]
+#define ID_MMImplicitProperty SFT_inheritance[26]
+#define COLOR_MMImplicitProperty SFT_inheritance[27]
+#define INIT_TABLE_POS_MMImplicitProperty SFT_inheritance[28]
+#define COLOR_inheritance___MMImplicitProperty___init SFT_inheritance[29]
+#define ID_MMImplicitMethod SFT_inheritance[30]
+#define COLOR_MMImplicitMethod SFT_inheritance[31]
+#define INIT_TABLE_POS_MMImplicitMethod SFT_inheritance[32]
+#define COLOR_inheritance___MMImplicitMethod___init SFT_inheritance[33]
+#define ID_MMImplicitAttribute SFT_inheritance[34]
+#define COLOR_MMImplicitAttribute SFT_inheritance[35]
+#define INIT_TABLE_POS_MMImplicitAttribute SFT_inheritance[36]
+#define COLOR_inheritance___MMImplicitAttribute___init SFT_inheritance[37]
+#define COLOR_inheritance___MMAncestor___add_in SFT_inheritance[38]
+#define ID_MMImplicitLocalClass SFT_inheritance[39]
+#define COLOR_MMImplicitLocalClass SFT_inheritance[40]
+#define INIT_TABLE_POS_MMImplicitLocalClass SFT_inheritance[41]
+#define COLOR_inheritance___MMImplicitLocalClass___init SFT_inheritance[42]
+#define ID_MMRefineAncestor SFT_inheritance[43]
+#define COLOR_MMRefineAncestor SFT_inheritance[44]
+#define COLOR_inheritance___MMRefineAncestor____local_class SFT_inheritance[45]
+#define INIT_TABLE_POS_MMRefineAncestor SFT_inheritance[46]
+#define COLOR_inheritance___MMRefineAncestor___init SFT_inheritance[47]
+#define ID_MMSpecAncestor SFT_inheritance[48]
+#define COLOR_MMSpecAncestor SFT_inheritance[49]
+#define INIT_TABLE_POS_MMSpecAncestor SFT_inheritance[50]
+#define COLOR_inheritance___MMSpecAncestor___init SFT_inheritance[51]
+#define ID_MMDefaultAncestor SFT_inheritance[52]
+#define COLOR_MMDefaultAncestor SFT_inheritance[53]
+#define INIT_TABLE_POS_MMDefaultAncestor SFT_inheritance[54]
+#define COLOR_inheritance___MMDefaultAncestor___init SFT_inheritance[55]
+typedef val_t (* inheritance___MMModule___type_any_t)(val_t  self);
+val_t inheritance___MMModule___type_any(val_t  self);
+typedef void (* inheritance___MMModule___import_global_classes_t)(val_t  self);
+void inheritance___MMModule___import_global_classes(val_t  self);
+typedef void (* inheritance___MMModule___import_local_classes_t)(val_t  self);
+void inheritance___MMModule___import_local_classes(val_t  self);
+#define ATTR_inheritance___MMLocalClass____direct_parents(recv) ATTR(recv, COLOR_inheritance___MMLocalClass____direct_parents)
+#define ATTR_inheritance___MMLocalClass____computing_super(recv) ATTR(recv, COLOR_inheritance___MMLocalClass____computing_super)
+typedef void (* inheritance___MMLocalClass___compute_super_classes_t)(val_t  self);
+void inheritance___MMLocalClass___compute_super_classes(val_t  self);
+typedef void (* inheritance___MMLocalClass___compute_ancestors_t)(val_t  self);
+void inheritance___MMLocalClass___compute_ancestors(val_t  self);
+typedef void (* inheritance___MMLocalClass___inherit_global_properties_t)(val_t  self);
+void inheritance___MMLocalClass___inherit_global_properties(val_t  self);
+typedef void (* inheritance___MMLocalClass___add_direct_parent_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalClass___add_direct_parent(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalClass___computed_super_classes_t)(val_t  self);
+val_t inheritance___MMLocalClass___computed_super_classes(val_t  self);
+typedef val_t (* inheritance___MMLocalClass___computed_ancestors_t)(val_t  self);
+val_t inheritance___MMLocalClass___computed_ancestors(val_t  self);
+typedef val_t (* inheritance___MMLocalClass___ancestor_for_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalClass___ancestor_for(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalClass_____bra_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalClass_____bra(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalClass___add_default_any_class_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalClass___add_default_any_class(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalClass___add_super_classes_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalClass___add_super_classes(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalClass___add_explicit_classes_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalClass___add_explicit_classes(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalClass___compute_super_parents_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalClass___compute_super_parents(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalClass___build_ancestors_t)(val_t  self);
+val_t inheritance___MMLocalClass___build_ancestors(val_t  self);
+typedef val_t (* inheritance___MMLocalClass___group_ancestors_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalClass___group_ancestors(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalClass___merge_ancestors_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalClass___merge_ancestors(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalClass___inherit_local_property_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalClass___inherit_local_property(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMConcreteProperty___is_deferred_t)(val_t  self);
+val_t inheritance___MMConcreteProperty___is_deferred(val_t  self);
+typedef val_t (* inheritance___MMGlobalProperty___get_compatible_concrete_properties_for_t)(val_t  self, val_t  param0);
+val_t inheritance___MMGlobalProperty___get_compatible_concrete_properties_for(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalProperty___inherit_global_t)(val_t  self, val_t  param0);
+void inheritance___MMLocalProperty___inherit_global(val_t  self, val_t  param0);
+typedef val_t (* inheritance___MMLocalProperty___inherit_to_t)(val_t  self, val_t  param0);
+val_t inheritance___MMLocalProperty___inherit_to(val_t  self, val_t  param0);
+typedef void (* inheritance___MMLocalProperty___inherit_from_t)(val_t  self, val_t  param0, val_t  param1);
+void inheritance___MMLocalProperty___inherit_from(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* inheritance___MMMethod___inherit_to_t)(val_t  self, val_t  param0);
+val_t inheritance___MMMethod___inherit_to(val_t  self, val_t  param0);
+typedef void (* inheritance___MMImplicitProperty___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMImplicitProperty___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMImplicitProperty___init(val_t  param0, val_t  param1);
+typedef void (* inheritance___MMImplicitMethod___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMImplicitMethod___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMImplicitMethod___init(val_t  param0, val_t  param1);
+typedef val_t (* inheritance___MMAttribute___inherit_to_t)(val_t  self, val_t  param0);
+val_t inheritance___MMAttribute___inherit_to(val_t  self, val_t  param0);
+typedef void (* inheritance___MMImplicitAttribute___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMImplicitAttribute___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMImplicitAttribute___init(val_t  param0, val_t  param1);
+typedef void (* inheritance___MMAncestor___add_in_t)(val_t  self, val_t  param0);
+void inheritance___MMAncestor___add_in(val_t  self, val_t  param0);
+typedef void (* inheritance___MMImplicitLocalClass___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMImplicitLocalClass___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMImplicitLocalClass___init(val_t  param0, val_t  param1);
+#define ATTR_inheritance___MMRefineAncestor____local_class(recv) ATTR(recv, COLOR_inheritance___MMRefineAncestor____local_class)
+typedef val_t (* inheritance___MMRefineAncestor___local_class_t)(val_t  self);
+val_t inheritance___MMRefineAncestor___local_class(val_t  self);
+typedef void (* inheritance___MMRefineAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMRefineAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMRefineAncestor___init(val_t  param0, val_t  param1);
+typedef val_t (* inheritance___MMSpecAncestor___local_class_t)(val_t  self);
+val_t inheritance___MMSpecAncestor___local_class(val_t  self);
+typedef void (* inheritance___MMSpecAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMSpecAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMSpecAncestor___init(val_t  param0, val_t  param1);
+typedef val_t (* inheritance___MMDefaultAncestor___local_class_t)(val_t  self);
+val_t inheritance___MMDefaultAncestor___local_class(val_t  self);
+typedef void (* inheritance___MMDefaultAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void inheritance___MMDefaultAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_inheritance___MMDefaultAncestor___init(val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/kernel._sep.c b/c_src/kernel._sep.c
new file mode 100644 (file)
index 0000000..0b467b7
--- /dev/null
@@ -0,0 +1,855 @@
+#include "kernel._sep.h"
+val_t kernel___Object___object_id(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Object::object_id (bin/../lib/standard//kernel.nit:26,2--27:20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int((int) self);
+}
+val_t kernel___Object___is_same_type(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Object::is_same_type (bin/../lib/standard//kernel.nit:29,2--30:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool((VAL2VFT( self)==VAL2VFT( param0)));
+}
+val_t kernel___Object_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Object::== (bin/../lib/standard//kernel.nit:32,2--35:53)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(IS_EQUAL_NN( self, variable0 /*other*/));
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Object_____neq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Object::!= (bin/../lib/standard//kernel.nit:37,2--40:58)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( self ==  variable0 /*other*/) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self, variable0 /*other*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self,  variable0 /*other*/) /*Object::==*/)))));
+  variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void kernel___Object___output(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Object::output (bin/../lib/standard//kernel.nit:42,2--47:12)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  printf("%c", (unsigned char)UNTAG_Char( TAG_Char('<')));
+  variable0 = TAG_Int((int) self);
+  printf("%d\n", UNTAG_Int(variable0));
+  printf("%c", (unsigned char)UNTAG_Char( TAG_Char('>')));
+  tracehead = trace.prev;
+  return;
+}
+void kernel___Object___exit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Object::exit (bin/../lib/standard//kernel.nit:50,2--36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  exit(UNTAG_Int( param0));
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Object___sys(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Object::sys (bin/../lib/standard//kernel.nit:51,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return (G_sys);
+}
+void kernel___Sys___main(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Sys::main (bin/../lib/standard//kernel.nit:56,2--57:10)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Comparable_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::< (bin/../lib/standard//kernel.nit:69,2--70:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method < called (bin/../lib/standard//kernel.nit:69,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t kernel___Comparable_____leq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::<= (bin/../lib/standard//kernel.nit:72,2--73:55)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/,  self) /*Comparable::<*/;
+  variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Comparable_____geq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::>= (bin/../lib/standard//kernel.nit:75,2--76:55)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self,  variable0 /*other*/) /*Comparable::<*/;
+  variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Comparable_____g(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::> (bin/../lib/standard//kernel.nit:78,2--79:50)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/,  self) /*Comparable::<*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Comparable_____leqg(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::<=> (bin/../lib/standard//kernel.nit:81,2--89:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self,  variable0 /*other*/) /*Comparable::<*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    goto return_label7;
+  } else { /*if*/
+    variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*other*/,COLOR_kernel___Comparable_____l))( variable0 /*other*/,  self) /*Comparable::<*/;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 =  TAG_Int(1);
+      goto return_label7;
+    } else { /*if*/
+      variable1 =  TAG_Int(0);
+      goto return_label7;
+    }
+  }
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Comparable___is_between(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "kernel::Comparable::is_between (bin/../lib/standard//kernel.nit:93,2--96:32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((kernel___Comparable_____leq_t)CALL( variable0 /*c*/,COLOR_kernel___Comparable_____leq))( variable0 /*c*/,  self) /*Comparable::<=*/;
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((kernel___Comparable_____leq_t)CALL( self,COLOR_kernel___Comparable_____leq))( self,  variable1 /*d*/) /*Comparable::<=*/;
+  }
+  variable2 = variable3;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t kernel___Comparable___max(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::max (bin/../lib/standard//kernel.nit:99,2--105:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self,  variable0 /*other*/) /*Comparable::<*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  variable0 /*other*/;
+    goto return_label9;
+  } else { /*if*/
+    variable1 =  self;
+    goto return_label9;
+  }
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Comparable___min(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Comparable::min (bin/../lib/standard//kernel.nit:109,2--115:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((kernel___Comparable_____l_t)CALL( variable0 /*c*/,COLOR_kernel___Comparable_____l))( variable0 /*c*/,  self) /*Comparable::<*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  variable0 /*c*/;
+    goto return_label10;
+  } else { /*if*/
+    variable1 =  self;
+    goto return_label10;
+  }
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Discrete___succ(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Discrete::succ (bin/../lib/standard//kernel.nit:126,2--127:36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((kernel___Discrete_____plus_t)CALL( self,COLOR_kernel___Discrete_____plus))( self,  TAG_Int(1)) /*Discrete::+*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t kernel___Discrete___prec(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Discrete::prec (bin/../lib/standard//kernel.nit:129,2--130:36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((kernel___Discrete_____minus_t)CALL( self,COLOR_kernel___Discrete_____minus))( self,  TAG_Int(1)) /*Discrete::-*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t kernel___Discrete_____plus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Discrete::+ (bin/../lib/standard//kernel.nit:132,2--133:22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method + called (bin/../lib/standard//kernel.nit:132,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t kernel___Discrete_____minus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Discrete::- (bin/../lib/standard//kernel.nit:135,2--136:22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method - called (bin/../lib/standard//kernel.nit:135,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t kernel___Discrete___distance(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Discrete::distance (bin/../lib/standard//kernel.nit:138,2--160:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NIT_NULL /*decl variable cursor*/;
+  variable2 = NIT_NULL /*decl variable stop*/;
+  variable3 = ((kernel___Comparable_____l_t)CALL( self,COLOR_kernel___Comparable_____l))( self,  variable0 /*d*/) /*Discrete::<*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable1 =  self /*cursor=*/;
+    variable2 =  variable0 /*d*/ /*stop=*/;
+  } else { /*if*/
+    variable3 = ((kernel___Comparable_____g_t)CALL( self,COLOR_kernel___Comparable_____g))( self,  variable0 /*d*/) /*Discrete::>*/;
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  variable0 /*d*/ /*cursor=*/;
+      variable2 =  self /*stop=*/;
+    } else { /*if*/
+      variable1 =  TAG_Int(0);
+      goto return_label13;
+    }
+  }
+  variable3 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable4 = ((kernel___Comparable_____l_t)CALL( variable1 /*cursor*/,COLOR_kernel___Comparable_____l))( variable1 /*cursor*/,  variable2 /*stop*/) /*Discrete::<*/;
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 = ((kernel___Discrete___succ_t)CALL( variable1 /*cursor*/,COLOR_kernel___Discrete___succ))( variable1 /*cursor*/) /*Discrete::succ*/;
+    variable1 = variable4 /*cursor=*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*nb*/;
+    continue_14: while(0);
+  }
+  break_14: while(0);
+  variable1 =  variable3 /*nb*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Bool___object_id(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Bool::object_id (bin/../lib/standard//kernel.nit:174,2--21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Bool( self));
+}
+val_t kernel___Bool_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Bool::== (bin/../lib/standard//kernel.nit:175,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)==( param0));
+}
+val_t kernel___Bool_____neq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Bool::!= (bin/../lib/standard//kernel.nit:176,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)!=( param0));
+}
+void kernel___Bool___output(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Bool::output (bin/../lib/standard//kernel.nit:177,2--18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  (void)printf(UNTAG_Bool( self)?"true\n":"false\n");
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Float___object_id(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Float::object_id (bin/../lib/standard//kernel.nit:183,2--21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int((int)UNBOX_Float( self));
+}
+void kernel___Float___output(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Float::output (bin/../lib/standard//kernel.nit:184,2--18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  printf("%f\n", UNBOX_Float( self));
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Float_____leq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::<= (bin/../lib/standard//kernel.nit:186,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNBOX_Float( self)<=UNBOX_Float( param0));
+}
+val_t kernel___Float_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::< (bin/../lib/standard//kernel.nit:187,2--23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNBOX_Float( self)<UNBOX_Float( param0));
+}
+val_t kernel___Float_____geq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::>= (bin/../lib/standard//kernel.nit:188,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNBOX_Float( self)>=UNBOX_Float( param0));
+}
+val_t kernel___Float_____g(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::> (bin/../lib/standard//kernel.nit:189,2--23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNBOX_Float( self)>UNBOX_Float( param0));
+}
+val_t kernel___Float_____plus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::+ (bin/../lib/standard//kernel.nit:190,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(UNBOX_Float( self)+UNBOX_Float( param0));
+}
+val_t kernel___Float___unary__minus(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Float::unary - (bin/../lib/standard//kernel.nit:191,2--14)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(-UNBOX_Float( self));
+}
+val_t kernel___Float_____minus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::- (bin/../lib/standard//kernel.nit:192,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(UNBOX_Float( self)-UNBOX_Float( param0));
+}
+val_t kernel___Float_____star(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::* (bin/../lib/standard//kernel.nit:193,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(UNBOX_Float( self)*UNBOX_Float( param0));
+}
+val_t kernel___Float_____slash(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Float::/ (bin/../lib/standard//kernel.nit:194,2--24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(UNBOX_Float( self)/UNBOX_Float( param0));
+}
+val_t kernel___Float___to_i(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Float::to_i (bin/../lib/standard//kernel.nit:196,2--197:15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int((int)UNBOX_Float( self));
+}
+val_t kernel___Int___object_id(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::object_id (bin/../lib/standard//kernel.nit:206,2--21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return  self;
+}
+val_t kernel___Int_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::== (bin/../lib/standard//kernel.nit:207,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)==( param0));
+}
+val_t kernel___Int_____neq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::!= (bin/../lib/standard//kernel.nit:208,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)!=( param0));
+}
+void kernel___Int___output(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::output (bin/../lib/standard//kernel.nit:209,2--18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  printf("%d\n", UNTAG_Int( self));
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Int_____leq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::<= (bin/../lib/standard//kernel.nit:211,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Int( self)<=UNTAG_Int( param0));
+}
+val_t kernel___Int_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::< (bin/../lib/standard//kernel.nit:212,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Int( self)<UNTAG_Int( param0));
+}
+val_t kernel___Int_____geq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::>= (bin/../lib/standard//kernel.nit:213,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Int( self)>=UNTAG_Int( param0));
+}
+val_t kernel___Int_____g(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::> (bin/../lib/standard//kernel.nit:214,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Int( self)>UNTAG_Int( param0));
+}
+val_t kernel___Int_____plus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::+ (bin/../lib/standard//kernel.nit:215,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)+UNTAG_Int( param0));
+}
+val_t kernel___Int___unary__minus(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::unary - (bin/../lib/standard//kernel.nit:216,2--12)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(-UNTAG_Int( self));
+}
+val_t kernel___Int_____minus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::- (bin/../lib/standard//kernel.nit:217,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)-UNTAG_Int( param0));
+}
+val_t kernel___Int_____star(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::* (bin/../lib/standard//kernel.nit:218,2--20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)*UNTAG_Int( param0));
+}
+val_t kernel___Int_____slash(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::/ (bin/../lib/standard//kernel.nit:219,2--20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)/UNTAG_Int( param0));
+}
+val_t kernel___Int_____percent(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::% (bin/../lib/standard//kernel.nit:220,2--20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)%UNTAG_Int( param0));
+}
+val_t kernel___Int___lshift(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::lshift (bin/../lib/standard//kernel.nit:221,2--25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)<<UNTAG_Int( param0));
+}
+val_t kernel___Int___rshift(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::rshift (bin/../lib/standard//kernel.nit:222,2--25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)>>UNTAG_Int( param0));
+}
+val_t kernel___Int___to_f(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::to_f (bin/../lib/standard//kernel.nit:224,2--225:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float((float)UNTAG_Int( self));
+}
+val_t kernel___Int___succ(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::succ (bin/../lib/standard//kernel.nit:227,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)+1);
+}
+val_t kernel___Int___prec(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::prec (bin/../lib/standard//kernel.nit:228,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Int( self)-1);
+}
+val_t kernel___Int___distance(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::distance (bin/../lib/standard//kernel.nit:229,2--235:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = TAG_Int(UNTAG_Int( self)-UNTAG_Int( variable0 /*i*/));
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*d*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable1 /*d*/;
+    goto return_label15;
+  } else { /*if*/
+    variable2 = TAG_Int(-UNTAG_Int( variable1 /*d*/));
+    variable1 = variable2;
+    goto return_label15;
+  }
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Int_____leqg(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::<=> (bin/../lib/standard//kernel.nit:239,2--246:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*other*/));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    goto return_label16;
+  } else { /*if*/
+    variable1 = TAG_Bool(UNTAG_Int( variable0 /*other*/)<UNTAG_Int( self));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 =  TAG_Int(1);
+      goto return_label16;
+    } else { /*if*/
+      variable1 =  TAG_Int(0);
+      goto return_label16;
+    }
+  }
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Int___is_between(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "kernel::Int::is_between (bin/../lib/standard//kernel.nit:250,2--255:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*c*/));
+  variable3 = variable2;
+  if (!UNTAG_Bool(variable3)) { /* or */
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*d*/)<UNTAG_Int( self));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 =  TAG_Bool(false);
+    goto return_label17;
+  } else { /*if*/
+    variable2 =  TAG_Bool(true);
+    goto return_label17;
+  }
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t kernel___Int___max(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::max (bin/../lib/standard//kernel.nit:259,2--264:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( variable0 /*other*/));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  variable0 /*other*/;
+    goto return_label18;
+  } else { /*if*/
+    variable1 =  self;
+    goto return_label18;
+  }
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Int___min(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::min (bin/../lib/standard//kernel.nit:268,2--273:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*c*/)<UNTAG_Int( self));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  variable0 /*c*/;
+    goto return_label19;
+  } else { /*if*/
+    variable1 =  self;
+    goto return_label19;
+  }
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Int___ascii(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::ascii (bin/../lib/standard//kernel.nit:277,2--278:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNTAG_Int( self));
+}
+val_t kernel___Int___digit_count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Int::digit_count (bin/../lib/standard//kernel.nit:280,2--300:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Int((int)0) /*decl variable d*/;
+  variable2 = TAG_Int((int)0) /*decl variable n*/;
+  variable3 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable1 =  TAG_Int(1) /*d=*/;
+    variable3 = TAG_Int(-UNTAG_Int( self));
+    variable2 = variable3 /*n=*/;
+  } else { /*if*/
+    variable3 = TAG_Bool(( self)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 =  TAG_Int(1);
+      goto return_label20;
+    } else { /*if*/
+      variable1 =  TAG_Int(0) /*d=*/;
+      variable2 =  self /*n=*/;
+    }
+  }
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*n*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*d*/;
+    variable3 = TAG_Int(UNTAG_Int( variable2 /*n*/)/UNTAG_Int( variable0 /*b*/));
+    variable2 = variable3 /*n=*/;
+    continue_21: while(0);
+  }
+  break_21: while(0);
+  variable1 =  variable1 /*d*/;
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Int___to_c(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Int::to_c (bin/../lib/standard//kernel.nit:303,2--312:41)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Bool(UNTAG_Int( self)>=UNTAG_Int( TAG_Int(0)));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = TAG_Bool(UNTAG_Int( self)<=UNTAG_Int( TAG_Int(36)));
+  }
+  variable0 = variable1;
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: bin/../lib/standard//kernel.nit:308,3--33\n"); nit_exit(1);}
+  variable0 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(10)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
+    variable0 = TAG_Int(UNTAG_Int( self)+UNTAG_Int(variable0));
+    variable0 = TAG_Char(UNTAG_Int(variable0));
+    goto return_label22;
+  } else { /*if*/
+    variable0 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(10)));
+    variable0 = TAG_Int(UNTAG_Int( self)+UNTAG_Int(variable0));
+    variable0 = TAG_Char(UNTAG_Int(variable0));
+    goto return_label22;
+  }
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t kernel___Char___object_id(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::object_id (bin/../lib/standard//kernel.nit:324,2--21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(UNTAG_Char( self));
+}
+val_t kernel___Char_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::== (bin/../lib/standard//kernel.nit:325,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)==( param0));
+}
+val_t kernel___Char_____neq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::!= (bin/../lib/standard//kernel.nit:326,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(( self)!=( param0));
+}
+void kernel___Char___output(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::output (bin/../lib/standard//kernel.nit:327,2--18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  printf("%c", (unsigned char)UNTAG_Char( self));
+  tracehead = trace.prev;
+  return;
+}
+val_t kernel___Char_____leq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::<= (bin/../lib/standard//kernel.nit:329,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( param0));
+}
+val_t kernel___Char_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::< (bin/../lib/standard//kernel.nit:330,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Char( self)<UNTAG_Char( param0));
+}
+val_t kernel___Char_____geq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::>= (bin/../lib/standard//kernel.nit:331,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( param0));
+}
+val_t kernel___Char_____g(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::> (bin/../lib/standard//kernel.nit:332,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Bool(UNTAG_Char( self)>UNTAG_Char( param0));
+}
+val_t kernel___Char___succ(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::succ (bin/../lib/standard//kernel.nit:334,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNTAG_Char( self)+1);
+}
+val_t kernel___Char___prec(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::prec (bin/../lib/standard//kernel.nit:335,2--16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNTAG_Char( self)-1);
+}
+val_t kernel___Char___distance(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::distance (bin/../lib/standard//kernel.nit:337,2--343:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = TAG_Int((unsigned char)UNTAG_Char( self));
+  variable3 = TAG_Int((unsigned char)UNTAG_Char( variable0 /*c*/));
+  variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int(variable3));
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*d*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable1 /*d*/;
+    goto return_label23;
+  } else { /*if*/
+    variable2 = TAG_Int(-UNTAG_Int( variable1 /*d*/));
+    variable1 = variable2;
+    goto return_label23;
+  }
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t kernel___Char___to_i(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::to_i (bin/../lib/standard//kernel.nit:347,2--356:47)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Bool(( self)==( TAG_Char('-')));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    goto return_label24;
+  } else { /*if*/
+    variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('0')));
+    variable1 = variable0;
+    if (UNTAG_Bool(variable1)) { /* and */
+      variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('9')));
+    }
+    variable0 = variable1;
+    if (UNTAG_Bool(variable0)) { /*if*/
+      variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
+      variable1 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('0')));
+      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
+      goto return_label24;
+    } else { /*if*/
+      variable0 = ((kernel___Char___to_lower_t)CALL( self,COLOR_kernel___Char___to_lower))( self) /*Char::to_lower*/;
+      variable0 = TAG_Int((unsigned char)UNTAG_Char(variable0));
+      variable1 = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(10)));
+      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
+      goto return_label24;
+    }
+  }
+  return_label24: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t kernel___Char___ascii(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::ascii (bin/../lib/standard//kernel.nit:360,2--361:16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int((unsigned char)UNTAG_Char( self));
+}
+val_t kernel___Char_____plus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::+ (bin/../lib/standard//kernel.nit:363,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNTAG_Char( self)+UNTAG_Char( param0));
+}
+val_t kernel___Char_____minus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "kernel::Char::- (bin/../lib/standard//kernel.nit:364,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNTAG_Char( self)-UNTAG_Char( param0));
+}
+val_t kernel___Char___to_lower(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::to_lower (bin/../lib/standard//kernel.nit:366,2--372:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('A')));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('Z')));
+  }
+  variable0 = variable1;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
+    variable1 = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int(variable1));
+    variable0 = TAG_Char(UNTAG_Int(variable0));
+    goto return_label25;
+  } else { /*if*/
+    variable0 =  self;
+    goto return_label25;
+  }
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t kernel___Char___to_upper(val_t  self) {
+  struct trace_t trace = {NULL, "kernel::Char::to_upper (bin/../lib/standard//kernel.nit:376,2--382:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = TAG_Bool(UNTAG_Char( self)>=UNTAG_Char( TAG_Char('a')));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = TAG_Bool(UNTAG_Char( self)<=UNTAG_Char( TAG_Char('z')));
+  }
+  variable0 = variable1;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
+    variable1 = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int(variable1));
+    variable0 = TAG_Char(UNTAG_Int(variable0));
+    goto return_label26;
+  } else { /*if*/
+    variable0 =  self;
+    goto return_label26;
+  }
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
diff --git a/c_src/kernel._sep.h b/c_src/kernel._sep.h
new file mode 100644 (file)
index 0000000..dc68a15
--- /dev/null
@@ -0,0 +1,263 @@
+#ifndef kernel__sep
+#define kernel__sep
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Object[];
+
+extern const classtable_elt_t VFT_Sys[];
+
+extern const classtable_elt_t VFT_Comparable[];
+
+extern const classtable_elt_t VFT_Discrete[];
+
+extern const classtable_elt_t VFT_Bool[];
+
+extern const classtable_elt_t VFT_Float[];
+struct TBOX_Float { const classtable_elt_t * vft; float val;};
+val_t BOX_Float(float val);
+#define UNBOX_Float(x) (((struct TBOX_Float *)(VAL2OBJ(x)))->val)
+
+extern const classtable_elt_t VFT_Int[];
+
+extern const classtable_elt_t VFT_Char[];
+
+extern const classtable_elt_t VFT_Pointer[];
+struct TBOX_Pointer { const classtable_elt_t * vft; void * val;};
+val_t BOX_Pointer(void * val);
+#define UNBOX_Pointer(x) (((struct TBOX_Pointer *)(VAL2OBJ(x)))->val)
+extern const int SFT_kernel[];
+#define ID_Object SFT_kernel[0]
+#define COLOR_Object SFT_kernel[1]
+#define INIT_TABLE_POS_Object SFT_kernel[2]
+#define COLOR_kernel___Object___object_id SFT_kernel[3]
+#define COLOR_kernel___Object___is_same_type SFT_kernel[4]
+#define COLOR_kernel___Object_____eqeq SFT_kernel[5]
+#define COLOR_kernel___Object_____neq SFT_kernel[6]
+#define COLOR_kernel___Object___output SFT_kernel[7]
+#define COLOR_kernel___Object___exit SFT_kernel[8]
+#define COLOR_kernel___Object___sys SFT_kernel[9]
+#define ID_Sys SFT_kernel[10]
+#define COLOR_Sys SFT_kernel[11]
+#define INIT_TABLE_POS_Sys SFT_kernel[12]
+#define COLOR_kernel___Sys___main SFT_kernel[13]
+#define ID_Comparable SFT_kernel[14]
+#define COLOR_Comparable SFT_kernel[15]
+#define INIT_TABLE_POS_Comparable SFT_kernel[16]
+#define COLOR_kernel___Comparable_____l SFT_kernel[17]
+#define COLOR_kernel___Comparable_____leq SFT_kernel[18]
+#define COLOR_kernel___Comparable_____geq SFT_kernel[19]
+#define COLOR_kernel___Comparable_____g SFT_kernel[20]
+#define COLOR_kernel___Comparable_____leqg SFT_kernel[21]
+#define COLOR_kernel___Comparable___is_between SFT_kernel[22]
+#define COLOR_kernel___Comparable___max SFT_kernel[23]
+#define COLOR_kernel___Comparable___min SFT_kernel[24]
+#define ID_Discrete SFT_kernel[25]
+#define COLOR_Discrete SFT_kernel[26]
+#define INIT_TABLE_POS_Discrete SFT_kernel[27]
+#define COLOR_kernel___Discrete___succ SFT_kernel[28]
+#define COLOR_kernel___Discrete___prec SFT_kernel[29]
+#define COLOR_kernel___Discrete_____plus SFT_kernel[30]
+#define COLOR_kernel___Discrete_____minus SFT_kernel[31]
+#define COLOR_kernel___Discrete___distance SFT_kernel[32]
+#define ID_Bool SFT_kernel[33]
+#define COLOR_Bool SFT_kernel[34]
+#define INIT_TABLE_POS_Bool SFT_kernel[35]
+#define ID_Float SFT_kernel[36]
+#define COLOR_Float SFT_kernel[37]
+#define INIT_TABLE_POS_Float SFT_kernel[38]
+#define COLOR_kernel___Float_____leq SFT_kernel[39]
+#define COLOR_kernel___Float_____l SFT_kernel[40]
+#define COLOR_kernel___Float_____geq SFT_kernel[41]
+#define COLOR_kernel___Float_____g SFT_kernel[42]
+#define COLOR_kernel___Float_____plus SFT_kernel[43]
+#define COLOR_kernel___Float___unary__minus SFT_kernel[44]
+#define COLOR_kernel___Float_____minus SFT_kernel[45]
+#define COLOR_kernel___Float_____star SFT_kernel[46]
+#define COLOR_kernel___Float_____slash SFT_kernel[47]
+#define COLOR_kernel___Float___to_i SFT_kernel[48]
+#define ID_Int SFT_kernel[49]
+#define COLOR_Int SFT_kernel[50]
+#define INIT_TABLE_POS_Int SFT_kernel[51]
+#define COLOR_kernel___Int___unary__minus SFT_kernel[52]
+#define COLOR_kernel___Int_____star SFT_kernel[53]
+#define COLOR_kernel___Int_____slash SFT_kernel[54]
+#define COLOR_kernel___Int_____percent SFT_kernel[55]
+#define COLOR_kernel___Int___lshift SFT_kernel[56]
+#define COLOR_kernel___Int___rshift SFT_kernel[57]
+#define COLOR_kernel___Int___to_f SFT_kernel[58]
+#define COLOR_kernel___Int___ascii SFT_kernel[59]
+#define COLOR_kernel___Int___digit_count SFT_kernel[60]
+#define COLOR_kernel___Int___to_c SFT_kernel[61]
+#define ID_Char SFT_kernel[62]
+#define COLOR_Char SFT_kernel[63]
+#define INIT_TABLE_POS_Char SFT_kernel[64]
+#define COLOR_kernel___Char___to_i SFT_kernel[65]
+#define COLOR_kernel___Char___ascii SFT_kernel[66]
+#define COLOR_kernel___Char___to_lower SFT_kernel[67]
+#define COLOR_kernel___Char___to_upper SFT_kernel[68]
+#define ID_Pointer SFT_kernel[69]
+#define COLOR_Pointer SFT_kernel[70]
+#define INIT_TABLE_POS_Pointer SFT_kernel[71]
+typedef val_t (* kernel___Object___object_id_t)(val_t  self);
+val_t kernel___Object___object_id(val_t  self);
+typedef val_t (* kernel___Object___is_same_type_t)(val_t  self, val_t  param0);
+val_t kernel___Object___is_same_type(val_t  self, val_t  param0);
+typedef val_t (* kernel___Object_____eqeq_t)(val_t  self, val_t  param0);
+val_t kernel___Object_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Object_____neq_t)(val_t  self, val_t  param0);
+val_t kernel___Object_____neq(val_t  self, val_t  param0);
+typedef void (* kernel___Object___output_t)(val_t  self);
+void kernel___Object___output(val_t  self);
+typedef void (* kernel___Object___exit_t)(val_t  self, val_t  param0);
+void kernel___Object___exit(val_t  self, val_t  param0);
+typedef val_t (* kernel___Object___sys_t)(val_t  self);
+val_t kernel___Object___sys(val_t  self);
+typedef void (* kernel___Sys___main_t)(val_t  self);
+void kernel___Sys___main(val_t  self);
+typedef val_t (* kernel___Comparable_____l_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable_____l(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable_____leq_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable_____leq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable_____geq_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable_____geq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable_____g_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable_____g(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable_____leqg_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable_____leqg(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable___is_between_t)(val_t  self, val_t  param0, val_t  param1);
+val_t kernel___Comparable___is_between(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* kernel___Comparable___max_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable___max(val_t  self, val_t  param0);
+typedef val_t (* kernel___Comparable___min_t)(val_t  self, val_t  param0);
+val_t kernel___Comparable___min(val_t  self, val_t  param0);
+typedef val_t (* kernel___Discrete___succ_t)(val_t  self);
+val_t kernel___Discrete___succ(val_t  self);
+typedef val_t (* kernel___Discrete___prec_t)(val_t  self);
+val_t kernel___Discrete___prec(val_t  self);
+typedef val_t (* kernel___Discrete_____plus_t)(val_t  self, val_t  param0);
+val_t kernel___Discrete_____plus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Discrete_____minus_t)(val_t  self, val_t  param0);
+val_t kernel___Discrete_____minus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Discrete___distance_t)(val_t  self, val_t  param0);
+val_t kernel___Discrete___distance(val_t  self, val_t  param0);
+typedef val_t (* kernel___Bool___object_id_t)(val_t  self);
+val_t kernel___Bool___object_id(val_t  self);
+typedef val_t (* kernel___Bool_____eqeq_t)(val_t  self, val_t  param0);
+val_t kernel___Bool_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Bool_____neq_t)(val_t  self, val_t  param0);
+val_t kernel___Bool_____neq(val_t  self, val_t  param0);
+typedef void (* kernel___Bool___output_t)(val_t  self);
+void kernel___Bool___output(val_t  self);
+typedef val_t (* kernel___Float___object_id_t)(val_t  self);
+val_t kernel___Float___object_id(val_t  self);
+typedef void (* kernel___Float___output_t)(val_t  self);
+void kernel___Float___output(val_t  self);
+typedef val_t (* kernel___Float_____leq_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____leq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____l_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____l(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____geq_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____geq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____g_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____g(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____plus_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____plus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float___unary__minus_t)(val_t  self);
+val_t kernel___Float___unary__minus(val_t  self);
+typedef val_t (* kernel___Float_____minus_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____minus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____star_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____star(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float_____slash_t)(val_t  self, val_t  param0);
+val_t kernel___Float_____slash(val_t  self, val_t  param0);
+typedef val_t (* kernel___Float___to_i_t)(val_t  self);
+val_t kernel___Float___to_i(val_t  self);
+typedef val_t (* kernel___Int___object_id_t)(val_t  self);
+val_t kernel___Int___object_id(val_t  self);
+typedef val_t (* kernel___Int_____eqeq_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____neq_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____neq(val_t  self, val_t  param0);
+typedef void (* kernel___Int___output_t)(val_t  self);
+void kernel___Int___output(val_t  self);
+typedef val_t (* kernel___Int_____leq_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____leq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____l_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____l(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____geq_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____geq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____g_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____g(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____plus_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____plus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___unary__minus_t)(val_t  self);
+val_t kernel___Int___unary__minus(val_t  self);
+typedef val_t (* kernel___Int_____minus_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____minus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____star_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____star(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____slash_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____slash(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____percent_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____percent(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___lshift_t)(val_t  self, val_t  param0);
+val_t kernel___Int___lshift(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___rshift_t)(val_t  self, val_t  param0);
+val_t kernel___Int___rshift(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___to_f_t)(val_t  self);
+val_t kernel___Int___to_f(val_t  self);
+typedef val_t (* kernel___Int___succ_t)(val_t  self);
+val_t kernel___Int___succ(val_t  self);
+typedef val_t (* kernel___Int___prec_t)(val_t  self);
+val_t kernel___Int___prec(val_t  self);
+typedef val_t (* kernel___Int___distance_t)(val_t  self, val_t  param0);
+val_t kernel___Int___distance(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int_____leqg_t)(val_t  self, val_t  param0);
+val_t kernel___Int_____leqg(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___is_between_t)(val_t  self, val_t  param0, val_t  param1);
+val_t kernel___Int___is_between(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* kernel___Int___max_t)(val_t  self, val_t  param0);
+val_t kernel___Int___max(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___min_t)(val_t  self, val_t  param0);
+val_t kernel___Int___min(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___ascii_t)(val_t  self);
+val_t kernel___Int___ascii(val_t  self);
+typedef val_t (* kernel___Int___digit_count_t)(val_t  self, val_t  param0);
+val_t kernel___Int___digit_count(val_t  self, val_t  param0);
+typedef val_t (* kernel___Int___to_c_t)(val_t  self);
+val_t kernel___Int___to_c(val_t  self);
+typedef val_t (* kernel___Char___object_id_t)(val_t  self);
+val_t kernel___Char___object_id(val_t  self);
+typedef val_t (* kernel___Char_____eqeq_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char_____neq_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____neq(val_t  self, val_t  param0);
+typedef void (* kernel___Char___output_t)(val_t  self);
+void kernel___Char___output(val_t  self);
+typedef val_t (* kernel___Char_____leq_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____leq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char_____l_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____l(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char_____geq_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____geq(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char_____g_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____g(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char___succ_t)(val_t  self);
+val_t kernel___Char___succ(val_t  self);
+typedef val_t (* kernel___Char___prec_t)(val_t  self);
+val_t kernel___Char___prec(val_t  self);
+typedef val_t (* kernel___Char___distance_t)(val_t  self, val_t  param0);
+val_t kernel___Char___distance(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char___to_i_t)(val_t  self);
+val_t kernel___Char___to_i(val_t  self);
+typedef val_t (* kernel___Char___ascii_t)(val_t  self);
+val_t kernel___Char___ascii(val_t  self);
+typedef val_t (* kernel___Char_____plus_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____plus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char_____minus_t)(val_t  self, val_t  param0);
+val_t kernel___Char_____minus(val_t  self, val_t  param0);
+typedef val_t (* kernel___Char___to_lower_t)(val_t  self);
+val_t kernel___Char___to_lower(val_t  self);
+typedef val_t (* kernel___Char___to_upper_t)(val_t  self);
+val_t kernel___Char___to_upper(val_t  self);
+#endif
diff --git a/c_src/lexer._sep.c b/c_src/lexer._sep.c
new file mode 100644 (file)
index 0000000..52f168e
--- /dev/null
@@ -0,0 +1,9299 @@
+#include "lexer._sep.h"
+val_t lexer___Token___text(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::text (src/parser//lexer.nit:8,5--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___Token____text( self) /*Token::_text*/;
+}
+void lexer___Token___text__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "lexer::Token::text= (src/parser//lexer.nit:8,5--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_lexer___Token____text( self) /*Token::_text*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___Token___filename(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::filename (src/parser//lexer.nit:9,5--35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___Token____filename( self) /*Token::_filename*/;
+}
+val_t lexer___Token___line(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::line (src/parser//lexer.nit:10,5--28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___Token____line( self) /*Token::_line*/;
+}
+val_t lexer___Token___pos(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::pos (src/parser//lexer.nit:11,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___Token____pos( self) /*Token::_pos*/;
+}
+val_t lexer___Token___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::parser_index (src/parser//lexer.nit:13,5--26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method parser_index called (src/parser//lexer.nit:13,5)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t lexer___Token___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Token::to_s (src/parser//lexer.nit:15,5--16:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("'"), TAG_Int(1)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ATTR_lexer___Token____text( self) /*Token::_text*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("'"), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t lexer___TEol___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TEol::parser_index (src/parser//lexer.nit:21,5--23:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TEol___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TEol::init (src/parser//lexer.nit:26,5--31:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEol].i]) return;
+  ATTR_lexer___Token____text( self) /*TEol::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TEol::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TEol::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TEol::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEol].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TComment___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TComment::parser_index (src/parser//lexer.nit:36,5--38:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TComment___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TComment::init (src/parser//lexer.nit:41,5--46:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TComment].i]) return;
+  ATTR_lexer___Token____text( self) /*TComment::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TComment::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TComment::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TComment::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TComment].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwpackage___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwpackage::parser_index (src/parser//lexer.nit:51,5--53:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(2);
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwpackage___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwpackage::init (src/parser//lexer.nit:56,5--61:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_7; static int once_bool_variable3_7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwpackage].i]) return;
+  if (once_bool_variable3_7) variable3 = once_value_variable3_7;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("package"), TAG_Int(7)); /*new String*/
+    once_value_variable3_7 = variable3;
+    once_bool_variable3_7 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwpackage::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwpackage::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwpackage::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwpackage::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwpackage].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwimport___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwimport::parser_index (src/parser//lexer.nit:66,5--68:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(3);
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwimport___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwimport::init (src/parser//lexer.nit:71,5--76:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_10; static int once_bool_variable3_10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwimport].i]) return;
+  if (once_bool_variable3_10) variable3 = once_value_variable3_10;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("import"), TAG_Int(6)); /*new String*/
+    once_value_variable3_10 = variable3;
+    once_bool_variable3_10 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwimport::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwimport::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwimport::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwimport::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwimport].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwclass___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwclass::parser_index (src/parser//lexer.nit:81,5--83:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(4);
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwclass___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwclass::init (src/parser//lexer.nit:86,5--91:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_13; static int once_bool_variable3_13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwclass].i]) return;
+  if (once_bool_variable3_13) variable3 = once_value_variable3_13;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("class"), TAG_Int(5)); /*new String*/
+    once_value_variable3_13 = variable3;
+    once_bool_variable3_13 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwclass::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwclass::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwclass::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwclass::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwclass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwabstract___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwabstract::parser_index (src/parser//lexer.nit:96,5--98:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(5);
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwabstract___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwabstract::init (src/parser//lexer.nit:101,5--106:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_16; static int once_bool_variable3_16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwabstract].i]) return;
+  if (once_bool_variable3_16) variable3 = once_value_variable3_16;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("abstract"), TAG_Int(8)); /*new String*/
+    once_value_variable3_16 = variable3;
+    once_bool_variable3_16 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwabstract::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwabstract::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwabstract::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwabstract::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwabstract].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwinterface___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwinterface::parser_index (src/parser//lexer.nit:111,5--113:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(6);
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwinterface___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwinterface::init (src/parser//lexer.nit:116,5--121:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_19; static int once_bool_variable3_19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwinterface].i]) return;
+  if (once_bool_variable3_19) variable3 = once_value_variable3_19;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("interface"), TAG_Int(9)); /*new String*/
+    once_value_variable3_19 = variable3;
+    once_bool_variable3_19 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwinterface::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwinterface::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwinterface::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwinterface::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwinterface].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwuniversal___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwuniversal::parser_index (src/parser//lexer.nit:126,5--128:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(7);
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwuniversal___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwuniversal::init (src/parser//lexer.nit:131,5--136:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_22; static int once_bool_variable3_22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwuniversal].i]) return;
+  if (once_bool_variable3_22) variable3 = once_value_variable3_22;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("universal"), TAG_Int(9)); /*new String*/
+    once_value_variable3_22 = variable3;
+    once_bool_variable3_22 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwuniversal::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwuniversal::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwuniversal::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwuniversal::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwuniversal].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwspecial___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwspecial::parser_index (src/parser//lexer.nit:141,5--143:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(8);
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwspecial___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwspecial::init (src/parser//lexer.nit:146,5--151:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_25; static int once_bool_variable3_25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwspecial].i]) return;
+  if (once_bool_variable3_25) variable3 = once_value_variable3_25;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("special"), TAG_Int(7)); /*new String*/
+    once_value_variable3_25 = variable3;
+    once_bool_variable3_25 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwspecial::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwspecial::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwspecial::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwspecial::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwspecial].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwend___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwend::parser_index (src/parser//lexer.nit:156,5--158:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(9);
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwend___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwend::init (src/parser//lexer.nit:161,5--166:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_28; static int once_bool_variable3_28;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwend].i]) return;
+  if (once_bool_variable3_28) variable3 = once_value_variable3_28;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("end"), TAG_Int(3)); /*new String*/
+    once_value_variable3_28 = variable3;
+    once_bool_variable3_28 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwend::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwend::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwend::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwend::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwend].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwmeth___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwmeth::parser_index (src/parser//lexer.nit:171,5--173:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(10);
+  goto return_label29;
+  return_label29: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwmeth___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwmeth::init (src/parser//lexer.nit:176,5--181:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_31; static int once_bool_variable3_31;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwmeth].i]) return;
+  if (once_bool_variable3_31) variable3 = once_value_variable3_31;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("meth"), TAG_Int(4)); /*new String*/
+    once_value_variable3_31 = variable3;
+    once_bool_variable3_31 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwmeth::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwmeth::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwmeth::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwmeth::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwmeth].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwtype___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwtype::parser_index (src/parser//lexer.nit:186,5--188:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(11);
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwtype___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwtype::init (src/parser//lexer.nit:191,5--196:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_34; static int once_bool_variable3_34;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwtype].i]) return;
+  if (once_bool_variable3_34) variable3 = once_value_variable3_34;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("type"), TAG_Int(4)); /*new String*/
+    once_value_variable3_34 = variable3;
+    once_bool_variable3_34 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwtype::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwtype::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwtype::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwtype::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwtype].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwattr___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwattr::parser_index (src/parser//lexer.nit:201,5--203:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(12);
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwattr___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwattr::init (src/parser//lexer.nit:206,5--211:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_37; static int once_bool_variable3_37;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwattr].i]) return;
+  if (once_bool_variable3_37) variable3 = once_value_variable3_37;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("attr"), TAG_Int(4)); /*new String*/
+    once_value_variable3_37 = variable3;
+    once_bool_variable3_37 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwattr::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwattr::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwattr::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwattr::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwattr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwinit___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwinit::parser_index (src/parser//lexer.nit:216,5--218:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(13);
+  goto return_label38;
+  return_label38: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwinit___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwinit::init (src/parser//lexer.nit:221,5--226:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_40; static int once_bool_variable3_40;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwinit].i]) return;
+  if (once_bool_variable3_40) variable3 = once_value_variable3_40;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+    once_value_variable3_40 = variable3;
+    once_bool_variable3_40 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwinit::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwinit::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwinit::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwinit::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwinit].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwredef___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwredef::parser_index (src/parser//lexer.nit:231,5--233:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(14);
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwredef___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwredef::init (src/parser//lexer.nit:236,5--241:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_43; static int once_bool_variable3_43;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwredef].i]) return;
+  if (once_bool_variable3_43) variable3 = once_value_variable3_43;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("redef"), TAG_Int(5)); /*new String*/
+    once_value_variable3_43 = variable3;
+    once_bool_variable3_43 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwredef::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwredef::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwredef::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwredef::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwredef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwis___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwis::parser_index (src/parser//lexer.nit:246,5--248:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(15);
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwis___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwis::init (src/parser//lexer.nit:251,5--256:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_46; static int once_bool_variable3_46;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwis].i]) return;
+  if (once_bool_variable3_46) variable3 = once_value_variable3_46;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("is"), TAG_Int(2)); /*new String*/
+    once_value_variable3_46 = variable3;
+    once_bool_variable3_46 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwis::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwis::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwis::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwis::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwis].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwdo___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwdo::parser_index (src/parser//lexer.nit:261,5--263:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(16);
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwdo___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwdo::init (src/parser//lexer.nit:266,5--271:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_49; static int once_bool_variable3_49;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwdo].i]) return;
+  if (once_bool_variable3_49) variable3 = once_value_variable3_49;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("do"), TAG_Int(2)); /*new String*/
+    once_value_variable3_49 = variable3;
+    once_bool_variable3_49 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwdo::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwdo::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwdo::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwdo::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwdo].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwreadable___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwreadable::parser_index (src/parser//lexer.nit:276,5--278:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(17);
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwreadable___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwreadable::init (src/parser//lexer.nit:281,5--286:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_52; static int once_bool_variable3_52;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwreadable].i]) return;
+  if (once_bool_variable3_52) variable3 = once_value_variable3_52;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("readable"), TAG_Int(8)); /*new String*/
+    once_value_variable3_52 = variable3;
+    once_bool_variable3_52 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwreadable::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwreadable::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwreadable::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwreadable::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwreadable].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwwritable___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwwritable::parser_index (src/parser//lexer.nit:291,5--293:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(18);
+  goto return_label53;
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwwritable___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwwritable::init (src/parser//lexer.nit:296,5--301:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_55; static int once_bool_variable3_55;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwwritable].i]) return;
+  if (once_bool_variable3_55) variable3 = once_value_variable3_55;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("writable"), TAG_Int(8)); /*new String*/
+    once_value_variable3_55 = variable3;
+    once_bool_variable3_55 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwwritable::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwwritable::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwwritable::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwwritable::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwwritable].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwvar___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwvar::parser_index (src/parser//lexer.nit:306,5--308:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(19);
+  goto return_label56;
+  return_label56: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwvar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwvar::init (src/parser//lexer.nit:311,5--316:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_58; static int once_bool_variable3_58;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwvar].i]) return;
+  if (once_bool_variable3_58) variable3 = once_value_variable3_58;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("var"), TAG_Int(3)); /*new String*/
+    once_value_variable3_58 = variable3;
+    once_bool_variable3_58 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwvar::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwvar::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwvar::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwvar::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwvar].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwintern___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwintern::parser_index (src/parser//lexer.nit:321,5--323:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(20);
+  goto return_label59;
+  return_label59: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwintern___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwintern::init (src/parser//lexer.nit:326,5--331:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_61; static int once_bool_variable3_61;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwintern].i]) return;
+  if (once_bool_variable3_61) variable3 = once_value_variable3_61;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("intern"), TAG_Int(6)); /*new String*/
+    once_value_variable3_61 = variable3;
+    once_bool_variable3_61 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwintern::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwintern::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwintern::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwintern::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwintern].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwextern___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwextern::parser_index (src/parser//lexer.nit:336,5--338:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(21);
+  goto return_label62;
+  return_label62: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwextern___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwextern::init (src/parser//lexer.nit:341,5--346:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_64; static int once_bool_variable3_64;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwextern].i]) return;
+  if (once_bool_variable3_64) variable3 = once_value_variable3_64;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("extern"), TAG_Int(6)); /*new String*/
+    once_value_variable3_64 = variable3;
+    once_bool_variable3_64 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwextern::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwextern::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwextern::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwextern::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwextern].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwprotected___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwprotected::parser_index (src/parser//lexer.nit:351,5--353:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(22);
+  goto return_label65;
+  return_label65: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwprotected___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwprotected::init (src/parser//lexer.nit:356,5--361:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_67; static int once_bool_variable3_67;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwprotected].i]) return;
+  if (once_bool_variable3_67) variable3 = once_value_variable3_67;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("protected"), TAG_Int(9)); /*new String*/
+    once_value_variable3_67 = variable3;
+    once_bool_variable3_67 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwprotected::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwprotected::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwprotected::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwprotected::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwprotected].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwprivate___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwprivate::parser_index (src/parser//lexer.nit:366,5--368:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(23);
+  goto return_label68;
+  return_label68: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwprivate___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwprivate::init (src/parser//lexer.nit:371,5--376:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_70; static int once_bool_variable3_70;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwprivate].i]) return;
+  if (once_bool_variable3_70) variable3 = once_value_variable3_70;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("private"), TAG_Int(7)); /*new String*/
+    once_value_variable3_70 = variable3;
+    once_bool_variable3_70 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwprivate::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwprivate::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwprivate::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwprivate::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwprivate].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwintrude___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwintrude::parser_index (src/parser//lexer.nit:381,5--383:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(24);
+  goto return_label71;
+  return_label71: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwintrude___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwintrude::init (src/parser//lexer.nit:386,5--391:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_73; static int once_bool_variable3_73;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwintrude].i]) return;
+  if (once_bool_variable3_73) variable3 = once_value_variable3_73;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("intrude"), TAG_Int(7)); /*new String*/
+    once_value_variable3_73 = variable3;
+    once_bool_variable3_73 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwintrude::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwintrude::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwintrude::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwintrude::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwintrude].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwif___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwif::parser_index (src/parser//lexer.nit:396,5--398:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(25);
+  goto return_label74;
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwif___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwif::init (src/parser//lexer.nit:401,5--406:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_76; static int once_bool_variable3_76;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwif].i]) return;
+  if (once_bool_variable3_76) variable3 = once_value_variable3_76;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("if"), TAG_Int(2)); /*new String*/
+    once_value_variable3_76 = variable3;
+    once_bool_variable3_76 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwif::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwif::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwif::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwif::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwif].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwthen___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwthen::parser_index (src/parser//lexer.nit:411,5--413:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(26);
+  goto return_label77;
+  return_label77: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwthen___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwthen::init (src/parser//lexer.nit:416,5--421:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_79; static int once_bool_variable3_79;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwthen].i]) return;
+  if (once_bool_variable3_79) variable3 = once_value_variable3_79;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("then"), TAG_Int(4)); /*new String*/
+    once_value_variable3_79 = variable3;
+    once_bool_variable3_79 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwthen::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwthen::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwthen::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwthen::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwthen].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwelse___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwelse::parser_index (src/parser//lexer.nit:426,5--428:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(27);
+  goto return_label80;
+  return_label80: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwelse___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwelse::init (src/parser//lexer.nit:431,5--436:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_82; static int once_bool_variable3_82;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwelse].i]) return;
+  if (once_bool_variable3_82) variable3 = once_value_variable3_82;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("else"), TAG_Int(4)); /*new String*/
+    once_value_variable3_82 = variable3;
+    once_bool_variable3_82 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwelse::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwelse::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwelse::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwelse::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwelse].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwwhile___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwwhile::parser_index (src/parser//lexer.nit:441,5--443:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(28);
+  goto return_label83;
+  return_label83: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwwhile___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwwhile::init (src/parser//lexer.nit:446,5--451:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_85; static int once_bool_variable3_85;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwwhile].i]) return;
+  if (once_bool_variable3_85) variable3 = once_value_variable3_85;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("while"), TAG_Int(5)); /*new String*/
+    once_value_variable3_85 = variable3;
+    once_bool_variable3_85 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwwhile::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwwhile::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwwhile::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwwhile::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwwhile].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwfor___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwfor::parser_index (src/parser//lexer.nit:456,5--458:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(29);
+  goto return_label86;
+  return_label86: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwfor___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwfor::init (src/parser//lexer.nit:461,5--466:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_88; static int once_bool_variable3_88;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwfor].i]) return;
+  if (once_bool_variable3_88) variable3 = once_value_variable3_88;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("for"), TAG_Int(3)); /*new String*/
+    once_value_variable3_88 = variable3;
+    once_bool_variable3_88 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwfor::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwfor::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwfor::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwfor::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwfor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwin___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwin::parser_index (src/parser//lexer.nit:471,5--473:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(30);
+  goto return_label89;
+  return_label89: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwin___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwin::init (src/parser//lexer.nit:476,5--481:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_91; static int once_bool_variable3_91;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwin].i]) return;
+  if (once_bool_variable3_91) variable3 = once_value_variable3_91;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("in"), TAG_Int(2)); /*new String*/
+    once_value_variable3_91 = variable3;
+    once_bool_variable3_91 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwin::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwin::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwin::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwin::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwin].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwand___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwand::parser_index (src/parser//lexer.nit:486,5--488:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(31);
+  goto return_label92;
+  return_label92: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwand___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwand::init (src/parser//lexer.nit:491,5--496:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_94; static int once_bool_variable3_94;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwand].i]) return;
+  if (once_bool_variable3_94) variable3 = once_value_variable3_94;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("and"), TAG_Int(3)); /*new String*/
+    once_value_variable3_94 = variable3;
+    once_bool_variable3_94 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwand::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwand::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwand::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwand::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwand].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwor___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwor::parser_index (src/parser//lexer.nit:501,5--503:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(32);
+  goto return_label95;
+  return_label95: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwor___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwor::init (src/parser//lexer.nit:506,5--511:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_97; static int once_bool_variable3_97;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwor].i]) return;
+  if (once_bool_variable3_97) variable3 = once_value_variable3_97;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("or"), TAG_Int(2)); /*new String*/
+    once_value_variable3_97 = variable3;
+    once_bool_variable3_97 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwor::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwor::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwor::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwor::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwnot___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwnot::parser_index (src/parser//lexer.nit:516,5--518:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(33);
+  goto return_label98;
+  return_label98: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwnot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwnot::init (src/parser//lexer.nit:521,5--526:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_100; static int once_bool_variable3_100;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnot].i]) return;
+  if (once_bool_variable3_100) variable3 = once_value_variable3_100;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("not"), TAG_Int(3)); /*new String*/
+    once_value_variable3_100 = variable3;
+    once_bool_variable3_100 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwnot::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwnot::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwnot::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwnot::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnot].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwreturn___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwreturn::parser_index (src/parser//lexer.nit:531,5--533:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(34);
+  goto return_label101;
+  return_label101: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwreturn___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwreturn::init (src/parser//lexer.nit:536,5--541:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_103; static int once_bool_variable3_103;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwreturn].i]) return;
+  if (once_bool_variable3_103) variable3 = once_value_variable3_103;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("return"), TAG_Int(6)); /*new String*/
+    once_value_variable3_103 = variable3;
+    once_bool_variable3_103 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwreturn::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwreturn::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwreturn::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwreturn::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwreturn].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwcontinue___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwcontinue::parser_index (src/parser//lexer.nit:546,5--548:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(35);
+  goto return_label104;
+  return_label104: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwcontinue___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwcontinue::init (src/parser//lexer.nit:551,5--556:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_106; static int once_bool_variable3_106;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwcontinue].i]) return;
+  if (once_bool_variable3_106) variable3 = once_value_variable3_106;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("continue"), TAG_Int(8)); /*new String*/
+    once_value_variable3_106 = variable3;
+    once_bool_variable3_106 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwcontinue::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwcontinue::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwcontinue::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwcontinue::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwcontinue].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwbreak___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwbreak::parser_index (src/parser//lexer.nit:561,5--563:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(36);
+  goto return_label107;
+  return_label107: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwbreak___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwbreak::init (src/parser//lexer.nit:566,5--571:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_109; static int once_bool_variable3_109;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwbreak].i]) return;
+  if (once_bool_variable3_109) variable3 = once_value_variable3_109;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("break"), TAG_Int(5)); /*new String*/
+    once_value_variable3_109 = variable3;
+    once_bool_variable3_109 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwbreak::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwbreak::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwbreak::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwbreak::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwbreak].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwabort___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwabort::parser_index (src/parser//lexer.nit:576,5--578:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(37);
+  goto return_label110;
+  return_label110: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwabort___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwabort::init (src/parser//lexer.nit:581,5--586:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_112; static int once_bool_variable3_112;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwabort].i]) return;
+  if (once_bool_variable3_112) variable3 = once_value_variable3_112;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("abort"), TAG_Int(5)); /*new String*/
+    once_value_variable3_112 = variable3;
+    once_bool_variable3_112 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwabort::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwabort::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwabort::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwabort::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwabort].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwassert___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwassert::parser_index (src/parser//lexer.nit:591,5--593:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(38);
+  goto return_label113;
+  return_label113: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwassert___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwassert::init (src/parser//lexer.nit:596,5--601:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_115; static int once_bool_variable3_115;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwassert].i]) return;
+  if (once_bool_variable3_115) variable3 = once_value_variable3_115;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("assert"), TAG_Int(6)); /*new String*/
+    once_value_variable3_115 = variable3;
+    once_bool_variable3_115 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwassert::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwassert::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwassert::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwassert::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwassert].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwnew___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwnew::parser_index (src/parser//lexer.nit:606,5--608:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(39);
+  goto return_label116;
+  return_label116: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwnew___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwnew::init (src/parser//lexer.nit:611,5--616:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_118; static int once_bool_variable3_118;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnew].i]) return;
+  if (once_bool_variable3_118) variable3 = once_value_variable3_118;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("new"), TAG_Int(3)); /*new String*/
+    once_value_variable3_118 = variable3;
+    once_bool_variable3_118 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwnew::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwnew::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwnew::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwnew::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnew].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwisa___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwisa::parser_index (src/parser//lexer.nit:621,5--623:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(40);
+  goto return_label119;
+  return_label119: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwisa___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwisa::init (src/parser//lexer.nit:626,5--631:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_121; static int once_bool_variable3_121;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwisa].i]) return;
+  if (once_bool_variable3_121) variable3 = once_value_variable3_121;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("isa"), TAG_Int(3)); /*new String*/
+    once_value_variable3_121 = variable3;
+    once_bool_variable3_121 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwisa::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwisa::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwisa::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwisa::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwisa].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwonce___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwonce::parser_index (src/parser//lexer.nit:636,5--638:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(41);
+  goto return_label122;
+  return_label122: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwonce___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwonce::init (src/parser//lexer.nit:641,5--646:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_124; static int once_bool_variable3_124;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwonce].i]) return;
+  if (once_bool_variable3_124) variable3 = once_value_variable3_124;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("once"), TAG_Int(4)); /*new String*/
+    once_value_variable3_124 = variable3;
+    once_bool_variable3_124 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwonce::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwonce::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwonce::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwonce::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwonce].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwsuper___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwsuper::parser_index (src/parser//lexer.nit:651,5--653:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(42);
+  goto return_label125;
+  return_label125: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwsuper___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwsuper::init (src/parser//lexer.nit:656,5--661:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_127; static int once_bool_variable3_127;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwsuper].i]) return;
+  if (once_bool_variable3_127) variable3 = once_value_variable3_127;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("super"), TAG_Int(5)); /*new String*/
+    once_value_variable3_127 = variable3;
+    once_bool_variable3_127 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwsuper::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwsuper::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwsuper::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwsuper::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwsuper].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwself___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwself::parser_index (src/parser//lexer.nit:666,5--668:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(43);
+  goto return_label128;
+  return_label128: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwself___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwself::init (src/parser//lexer.nit:671,5--676:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_130; static int once_bool_variable3_130;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwself].i]) return;
+  if (once_bool_variable3_130) variable3 = once_value_variable3_130;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
+    once_value_variable3_130 = variable3;
+    once_bool_variable3_130 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwself::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwself::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwself::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwself::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwself].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwtrue___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwtrue::parser_index (src/parser//lexer.nit:681,5--683:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(44);
+  goto return_label131;
+  return_label131: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwtrue___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwtrue::init (src/parser//lexer.nit:686,5--691:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_133; static int once_bool_variable3_133;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwtrue].i]) return;
+  if (once_bool_variable3_133) variable3 = once_value_variable3_133;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("true"), TAG_Int(4)); /*new String*/
+    once_value_variable3_133 = variable3;
+    once_bool_variable3_133 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwtrue::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwtrue::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwtrue::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwtrue::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwtrue].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwfalse___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwfalse::parser_index (src/parser//lexer.nit:696,5--698:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(45);
+  goto return_label134;
+  return_label134: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwfalse___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwfalse::init (src/parser//lexer.nit:701,5--706:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_136; static int once_bool_variable3_136;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwfalse].i]) return;
+  if (once_bool_variable3_136) variable3 = once_value_variable3_136;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("false"), TAG_Int(5)); /*new String*/
+    once_value_variable3_136 = variable3;
+    once_bool_variable3_136 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwfalse::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwfalse::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwfalse::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwfalse::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwfalse].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TKwnull___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TKwnull::parser_index (src/parser//lexer.nit:711,5--713:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(46);
+  goto return_label137;
+  return_label137: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TKwnull___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TKwnull::init (src/parser//lexer.nit:716,5--721:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_139; static int once_bool_variable3_139;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnull].i]) return;
+  if (once_bool_variable3_139) variable3 = once_value_variable3_139;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("null"), TAG_Int(4)); /*new String*/
+    once_value_variable3_139 = variable3;
+    once_bool_variable3_139 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TKwnull::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TKwnull::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TKwnull::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TKwnull::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TKwnull].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TOpar___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TOpar::parser_index (src/parser//lexer.nit:726,5--728:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(47);
+  goto return_label140;
+  return_label140: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TOpar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TOpar::init (src/parser//lexer.nit:731,5--736:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_142; static int once_bool_variable3_142;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TOpar].i]) return;
+  if (once_bool_variable3_142) variable3 = once_value_variable3_142;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+    once_value_variable3_142 = variable3;
+    once_bool_variable3_142 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TOpar::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TOpar::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TOpar::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TOpar::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TOpar].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TCpar___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TCpar::parser_index (src/parser//lexer.nit:741,5--743:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(48);
+  goto return_label143;
+  return_label143: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TCpar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TCpar::init (src/parser//lexer.nit:746,5--751:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_145; static int once_bool_variable3_145;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TCpar].i]) return;
+  if (once_bool_variable3_145) variable3 = once_value_variable3_145;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    once_value_variable3_145 = variable3;
+    once_bool_variable3_145 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TCpar::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TCpar::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TCpar::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TCpar::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TCpar].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TObra___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TObra::parser_index (src/parser//lexer.nit:756,5--758:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(49);
+  goto return_label146;
+  return_label146: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TObra___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TObra::init (src/parser//lexer.nit:761,5--766:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_148; static int once_bool_variable3_148;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TObra].i]) return;
+  if (once_bool_variable3_148) variable3 = once_value_variable3_148;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+    once_value_variable3_148 = variable3;
+    once_bool_variable3_148 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TObra::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TObra::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TObra::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TObra::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TObra].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TCbra___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TCbra::parser_index (src/parser//lexer.nit:771,5--773:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(50);
+  goto return_label149;
+  return_label149: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TCbra___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TCbra::init (src/parser//lexer.nit:776,5--781:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_151; static int once_bool_variable3_151;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TCbra].i]) return;
+  if (once_bool_variable3_151) variable3 = once_value_variable3_151;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
+    once_value_variable3_151 = variable3;
+    once_bool_variable3_151 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TCbra::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TCbra::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TCbra::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TCbra::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TCbra].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TComma___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TComma::parser_index (src/parser//lexer.nit:786,5--788:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(51);
+  goto return_label152;
+  return_label152: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TComma___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TComma::init (src/parser//lexer.nit:791,5--796:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_154; static int once_bool_variable3_154;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TComma].i]) return;
+  if (once_bool_variable3_154) variable3 = once_value_variable3_154;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+    once_value_variable3_154 = variable3;
+    once_bool_variable3_154 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TComma::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TComma::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TComma::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TComma::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TComma].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TColumn___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TColumn::parser_index (src/parser//lexer.nit:801,5--803:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(52);
+  goto return_label155;
+  return_label155: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TColumn___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TColumn::init (src/parser//lexer.nit:806,5--811:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_157; static int once_bool_variable3_157;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TColumn].i]) return;
+  if (once_bool_variable3_157) variable3 = once_value_variable3_157;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
+    once_value_variable3_157 = variable3;
+    once_bool_variable3_157 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TColumn::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TColumn::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TColumn::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TColumn::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TColumn].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TQuad___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TQuad::parser_index (src/parser//lexer.nit:816,5--818:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(53);
+  goto return_label158;
+  return_label158: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TQuad___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TQuad::init (src/parser//lexer.nit:821,5--826:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_160; static int once_bool_variable3_160;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TQuad].i]) return;
+  if (once_bool_variable3_160) variable3 = once_value_variable3_160;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    once_value_variable3_160 = variable3;
+    once_bool_variable3_160 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TQuad::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TQuad::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TQuad::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TQuad::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TQuad].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TAssign___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TAssign::parser_index (src/parser//lexer.nit:831,5--833:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(54);
+  goto return_label161;
+  return_label161: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TAssign___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TAssign::init (src/parser//lexer.nit:836,5--841:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_163; static int once_bool_variable3_163;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TAssign].i]) return;
+  if (once_bool_variable3_163) variable3 = once_value_variable3_163;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
+    once_value_variable3_163 = variable3;
+    once_bool_variable3_163 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TAssign::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TAssign::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TAssign::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TAssign::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TAssign].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TPluseq___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TPluseq::parser_index (src/parser//lexer.nit:846,5--848:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(55);
+  goto return_label164;
+  return_label164: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TPluseq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TPluseq::init (src/parser//lexer.nit:851,5--856:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_166; static int once_bool_variable3_166;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPluseq].i]) return;
+  if (once_bool_variable3_166) variable3 = once_value_variable3_166;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("+="), TAG_Int(2)); /*new String*/
+    once_value_variable3_166 = variable3;
+    once_bool_variable3_166 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TPluseq::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TPluseq::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TPluseq::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TPluseq::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPluseq].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TMinuseq___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TMinuseq::parser_index (src/parser//lexer.nit:861,5--863:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(56);
+  goto return_label167;
+  return_label167: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TMinuseq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TMinuseq::init (src/parser//lexer.nit:866,5--871:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_169; static int once_bool_variable3_169;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMinuseq].i]) return;
+  if (once_bool_variable3_169) variable3 = once_value_variable3_169;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("-="), TAG_Int(2)); /*new String*/
+    once_value_variable3_169 = variable3;
+    once_bool_variable3_169 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TMinuseq::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TMinuseq::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TMinuseq::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TMinuseq::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMinuseq].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TDotdotdot___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TDotdotdot::parser_index (src/parser//lexer.nit:876,5--878:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(57);
+  goto return_label170;
+  return_label170: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TDotdotdot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TDotdotdot::init (src/parser//lexer.nit:881,5--886:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_172; static int once_bool_variable3_172;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDotdotdot].i]) return;
+  if (once_bool_variable3_172) variable3 = once_value_variable3_172;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("..."), TAG_Int(3)); /*new String*/
+    once_value_variable3_172 = variable3;
+    once_bool_variable3_172 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TDotdotdot::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TDotdotdot::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TDotdotdot::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TDotdotdot::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDotdotdot].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TDotdot___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TDotdot::parser_index (src/parser//lexer.nit:891,5--893:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(58);
+  goto return_label173;
+  return_label173: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TDotdot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TDotdot::init (src/parser//lexer.nit:896,5--901:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_175; static int once_bool_variable3_175;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDotdot].i]) return;
+  if (once_bool_variable3_175) variable3 = once_value_variable3_175;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(".."), TAG_Int(2)); /*new String*/
+    once_value_variable3_175 = variable3;
+    once_bool_variable3_175 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TDotdot::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TDotdot::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TDotdot::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TDotdot::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDotdot].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TDot___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TDot::parser_index (src/parser//lexer.nit:906,5--908:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(59);
+  goto return_label176;
+  return_label176: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TDot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TDot::init (src/parser//lexer.nit:911,5--916:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_178; static int once_bool_variable3_178;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDot].i]) return;
+  if (once_bool_variable3_178) variable3 = once_value_variable3_178;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    once_value_variable3_178 = variable3;
+    once_bool_variable3_178 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TDot::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TDot::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TDot::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TDot::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TDot].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TPlus___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TPlus::parser_index (src/parser//lexer.nit:921,5--923:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(60);
+  goto return_label179;
+  return_label179: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TPlus___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TPlus::init (src/parser//lexer.nit:926,5--931:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_181; static int once_bool_variable3_181;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPlus].i]) return;
+  if (once_bool_variable3_181) variable3 = once_value_variable3_181;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+    once_value_variable3_181 = variable3;
+    once_bool_variable3_181 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TPlus::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TPlus::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TPlus::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TPlus::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPlus].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TMinus___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TMinus::parser_index (src/parser//lexer.nit:936,5--938:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(61);
+  goto return_label182;
+  return_label182: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TMinus___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TMinus::init (src/parser//lexer.nit:941,5--946:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_184; static int once_bool_variable3_184;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMinus].i]) return;
+  if (once_bool_variable3_184) variable3 = once_value_variable3_184;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+    once_value_variable3_184 = variable3;
+    once_bool_variable3_184 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TMinus::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TMinus::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TMinus::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TMinus::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMinus].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TStar___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TStar::parser_index (src/parser//lexer.nit:951,5--953:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(62);
+  goto return_label185;
+  return_label185: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TStar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TStar::init (src/parser//lexer.nit:956,5--961:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_187; static int once_bool_variable3_187;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStar].i]) return;
+  if (once_bool_variable3_187) variable3 = once_value_variable3_187;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+    once_value_variable3_187 = variable3;
+    once_bool_variable3_187 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TStar::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TStar::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TStar::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TStar::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStar].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TSlash___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TSlash::parser_index (src/parser//lexer.nit:966,5--968:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(63);
+  goto return_label188;
+  return_label188: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TSlash___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TSlash::init (src/parser//lexer.nit:971,5--976:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_190; static int once_bool_variable3_190;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TSlash].i]) return;
+  if (once_bool_variable3_190) variable3 = once_value_variable3_190;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+    once_value_variable3_190 = variable3;
+    once_bool_variable3_190 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TSlash::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TSlash::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TSlash::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TSlash::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TSlash].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TPercent___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TPercent::parser_index (src/parser//lexer.nit:981,5--983:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(64);
+  goto return_label191;
+  return_label191: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TPercent___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TPercent::init (src/parser//lexer.nit:986,5--991:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_193; static int once_bool_variable3_193;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPercent].i]) return;
+  if (once_bool_variable3_193) variable3 = once_value_variable3_193;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+    once_value_variable3_193 = variable3;
+    once_bool_variable3_193 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TPercent::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TPercent::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TPercent::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TPercent::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TPercent].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TEq___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TEq::parser_index (src/parser//lexer.nit:996,5--998:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(65);
+  goto return_label194;
+  return_label194: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TEq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TEq::init (src/parser//lexer.nit:1001,5--1006:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_196; static int once_bool_variable3_196;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEq].i]) return;
+  if (once_bool_variable3_196) variable3 = once_value_variable3_196;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+    once_value_variable3_196 = variable3;
+    once_bool_variable3_196 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TEq::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TEq::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TEq::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TEq::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEq].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TNe___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TNe::parser_index (src/parser//lexer.nit:1011,5--1013:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(66);
+  goto return_label197;
+  return_label197: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TNe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TNe::init (src/parser//lexer.nit:1016,5--1021:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_199; static int once_bool_variable3_199;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TNe].i]) return;
+  if (once_bool_variable3_199) variable3 = once_value_variable3_199;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+    once_value_variable3_199 = variable3;
+    once_bool_variable3_199 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TNe::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TNe::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TNe::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TNe::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TNe].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TLt___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TLt::parser_index (src/parser//lexer.nit:1026,5--1028:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(67);
+  goto return_label200;
+  return_label200: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TLt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TLt::init (src/parser//lexer.nit:1031,5--1036:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_202; static int once_bool_variable3_202;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TLt].i]) return;
+  if (once_bool_variable3_202) variable3 = once_value_variable3_202;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+    once_value_variable3_202 = variable3;
+    once_bool_variable3_202 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TLt::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TLt::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TLt::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TLt::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TLt].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TLe___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TLe::parser_index (src/parser//lexer.nit:1041,5--1043:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(68);
+  goto return_label203;
+  return_label203: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TLe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TLe::init (src/parser//lexer.nit:1046,5--1051:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_205; static int once_bool_variable3_205;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TLe].i]) return;
+  if (once_bool_variable3_205) variable3 = once_value_variable3_205;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+    once_value_variable3_205 = variable3;
+    once_bool_variable3_205 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TLe::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TLe::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TLe::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TLe::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TLe].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TGt___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TGt::parser_index (src/parser//lexer.nit:1056,5--1058:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(69);
+  goto return_label206;
+  return_label206: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TGt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TGt::init (src/parser//lexer.nit:1061,5--1066:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_208; static int once_bool_variable3_208;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TGt].i]) return;
+  if (once_bool_variable3_208) variable3 = once_value_variable3_208;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+    once_value_variable3_208 = variable3;
+    once_bool_variable3_208 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TGt::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TGt::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TGt::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TGt::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TGt].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TGe___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TGe::parser_index (src/parser//lexer.nit:1071,5--1073:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(70);
+  goto return_label209;
+  return_label209: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TGe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TGe::init (src/parser//lexer.nit:1076,5--1081:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_211; static int once_bool_variable3_211;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TGe].i]) return;
+  if (once_bool_variable3_211) variable3 = once_value_variable3_211;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+    once_value_variable3_211 = variable3;
+    once_bool_variable3_211 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TGe::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TGe::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TGe::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TGe::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TGe].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TStarship___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TStarship::parser_index (src/parser//lexer.nit:1086,5--1088:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(71);
+  goto return_label212;
+  return_label212: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TStarship___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TStarship::init (src/parser//lexer.nit:1091,5--1096:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  static val_t once_value_variable3_214; static int once_bool_variable3_214;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStarship].i]) return;
+  if (once_bool_variable3_214) variable3 = once_value_variable3_214;
+  else {
+    variable3 = NEW_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
+    once_value_variable3_214 = variable3;
+    once_bool_variable3_214 = true;
+  }
+  ATTR_lexer___Token____text( self) /*TStarship::_text*/ = variable3;
+  ATTR_lexer___Token____filename( self) /*TStarship::_filename*/ =  variable0 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TStarship::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TStarship::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStarship].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TClassid___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TClassid::parser_index (src/parser//lexer.nit:1101,5--1103:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(72);
+  goto return_label215;
+  return_label215: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TClassid___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TClassid::init (src/parser//lexer.nit:1106,5--1111:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TClassid].i]) return;
+  ATTR_lexer___Token____text( self) /*TClassid::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TClassid::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TClassid::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TClassid::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TClassid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TId___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TId::parser_index (src/parser//lexer.nit:1116,5--1118:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(73);
+  goto return_label217;
+  return_label217: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TId___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TId::init (src/parser//lexer.nit:1121,5--1126:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TId].i]) return;
+  ATTR_lexer___Token____text( self) /*TId::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TId::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TId::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TId::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TId].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TAttrid___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TAttrid::parser_index (src/parser//lexer.nit:1131,5--1133:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(74);
+  goto return_label219;
+  return_label219: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TAttrid___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TAttrid::init (src/parser//lexer.nit:1136,5--1141:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TAttrid].i]) return;
+  ATTR_lexer___Token____text( self) /*TAttrid::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TAttrid::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TAttrid::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TAttrid::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TAttrid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TNumber___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TNumber::parser_index (src/parser//lexer.nit:1146,5--1148:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(75);
+  goto return_label221;
+  return_label221: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TNumber___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TNumber::init (src/parser//lexer.nit:1151,5--1156:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TNumber].i]) return;
+  ATTR_lexer___Token____text( self) /*TNumber::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TNumber::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TNumber::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TNumber::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TNumber].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TFloat___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TFloat::parser_index (src/parser//lexer.nit:1161,5--1163:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(76);
+  goto return_label223;
+  return_label223: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TFloat___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TFloat::init (src/parser//lexer.nit:1166,5--1171:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TFloat].i]) return;
+  ATTR_lexer___Token____text( self) /*TFloat::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TFloat::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TFloat::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TFloat::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TFloat].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TChar___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TChar::parser_index (src/parser//lexer.nit:1176,5--1178:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(77);
+  goto return_label225;
+  return_label225: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TChar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TChar::init (src/parser//lexer.nit:1181,5--1186:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TChar].i]) return;
+  ATTR_lexer___Token____text( self) /*TChar::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TChar::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TChar::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TChar::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TChar].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TString___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TString::parser_index (src/parser//lexer.nit:1191,5--1193:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(78);
+  goto return_label227;
+  return_label227: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TString::init (src/parser//lexer.nit:1196,5--1201:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TString].i]) return;
+  ATTR_lexer___Token____text( self) /*TString::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TString::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TString::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TString::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TString].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TStartString___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TStartString::parser_index (src/parser//lexer.nit:1206,5--1208:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(79);
+  goto return_label229;
+  return_label229: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TStartString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TStartString::init (src/parser//lexer.nit:1211,5--1216:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStartString].i]) return;
+  ATTR_lexer___Token____text( self) /*TStartString::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TStartString::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TStartString::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TStartString::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TStartString].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TMidString___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TMidString::parser_index (src/parser//lexer.nit:1221,5--1223:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(80);
+  goto return_label231;
+  return_label231: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TMidString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TMidString::init (src/parser//lexer.nit:1226,5--1231:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMidString].i]) return;
+  ATTR_lexer___Token____text( self) /*TMidString::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TMidString::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TMidString::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TMidString::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TMidString].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___TEndString___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::TEndString::parser_index (src/parser//lexer.nit:1236,5--1238:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(81);
+  goto return_label233;
+  return_label233: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___TEndString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::TEndString::init (src/parser//lexer.nit:1241,5--1246:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEndString].i]) return;
+  ATTR_lexer___Token____text( self) /*TEndString::_text*/ =  variable0 /*text*/;
+  ATTR_lexer___Token____filename( self) /*TEndString::_filename*/ =  variable1 /*fname*/;
+  ATTR_lexer___Token____line( self) /*TEndString::_line*/ =  variable2 /*line*/;
+  ATTR_lexer___Token____pos( self) /*TEndString::_pos*/ =  variable3 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TEndString].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___EOF___parser_index(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::EOF::parser_index (src/parser//lexer.nit:1252,5--1254:14)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(82);
+  goto return_label235;
+  return_label235: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___EOF___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::EOF::init (src/parser//lexer.nit:1257,5--1262:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_EOF].i]) return;
+  ATTR_lexer___Token____filename( self) /*EOF::_filename*/ =  variable0 /*fname*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  ATTR_lexer___Token____text( self) /*EOF::_text*/ = variable3;
+  ATTR_lexer___Token____line( self) /*EOF::_line*/ =  variable1 /*line*/;
+  ATTR_lexer___Token____pos( self) /*EOF::_pos*/ =  variable2 /*pos*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_EOF].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___PError___message(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::PError::message (src/parser//lexer.nit:1267,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___PError____message( self) /*PError::_message*/;
+}
+void lexer___PError___message__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "lexer::PError::message= (src/parser//lexer.nit:1267,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_lexer___PError____message( self) /*PError::_message*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void lexer___PError___init_error(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::PError::init_error (src/parser//lexer.nit:1269,5--1272:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PError].i]) return;
+  ((lexer___EOF___init_t)CALL( self,COLOR_lexer___EOF___init))( self,  variable0 /*fname*/,  variable1 /*line*/,  variable2 /*pos*/, init_table /*YYY*/) /*PError::init*/;
+  ATTR_lexer___PError____message( self) /*PError::_message*/ =  variable3 /*message*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PError].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___Lexer___filename(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::filename (src/parser//lexer.nit:1286,2--1287:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+}
+val_t lexer___Lexer___state_initial(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::state_initial (src/parser//lexer.nit:1313,2--1314:44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  goto return_label238;
+  return_label238: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___Lexer___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "lexer::Lexer::init (src/parser//lexer.nit:1316,2--1325:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Lexer].i]) return;
+  ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/ =  variable1 /*fname*/;
+  variable2 = NEW_string___String___init(); /*new String*/
+  ATTR_lexer___Lexer____text( self) /*Lexer::_text*/ = variable2;
+  ATTR_lexer___Lexer____stream( self) /*Lexer::_stream*/ =  variable0 /*stream*/;
+  variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/ = variable2;
+  variable2 = NEW_string___String___init(); /*new String*/
+  ATTR_lexer___Lexer____stream_buf( self) /*Lexer::_stream_buf*/ = variable2;
+  ((lexer___Lexer___build_goto_table_t)CALL( self,COLOR_lexer___Lexer___build_goto_table))( self) /*Lexer::build_goto_table*/;
+  ((lexer___Lexer___build_accept_table_t)CALL( self,COLOR_lexer___Lexer___build_accept_table))( self) /*Lexer::build_accept_table*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Lexer].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___Lexer___peek(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::peek (src/parser//lexer.nit:1328,2--1334:15)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  while (true) { /*while*/
+    variable0 = ATTR_lexer___Lexer____token( self) /*Lexer::_token*/;
+    variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Token::==*/)))));
+    if (!UNTAG_Bool(variable0)) break; /* while*/
+    variable0 = ((lexer___Lexer___get_token_t)CALL( self,COLOR_lexer___Lexer___get_token))( self) /*Lexer::get_token*/;
+    ATTR_lexer___Lexer____token( self) /*Lexer::_token*/ = variable0;
+    continue_241: while(0);
+  }
+  break_241: while(0);
+  variable0 = ATTR_lexer___Lexer____token( self) /*Lexer::_token*/;
+  goto return_label240;
+  return_label240: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t lexer___Lexer___next(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::next (src/parser//lexer.nit:1337,2--1345:15)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_lexer___Lexer____token( self) /*Lexer::_token*/;
+  variable0 = variable1;
+  while (true) { /*while*/
+    variable1 = TAG_Bool(( variable0 /*result*/ ==  NIT_NULL /*null*/) || (( variable0 /*result*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*result*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*result*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*result*/,COLOR_kernel___Object_____eqeq))( variable0 /*result*/,  NIT_NULL /*null*/) /*Token::==*/)))));
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    variable1 = ((lexer___Lexer___get_token_t)CALL( self,COLOR_lexer___Lexer___get_token))( self) /*Lexer::get_token*/;
+    variable0 = variable1 /*result=*/;
+    continue_243: while(0);
+  }
+  break_243: while(0);
+  ATTR_lexer___Lexer____token( self) /*Lexer::_token*/ =  NIT_NULL /*null*/;
+  variable0 =  variable0 /*result*/;
+  goto return_label242;
+  return_label242: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t lexer___Lexer___get_token(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::get_token (src/parser//lexer.nit:1348,2--2033:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+        val_t variable15;
+        val_t variable16;
+          val_t variable17;
+          val_t variable18;
+          val_t variable19;
+          val_t variable20;
+          val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  variable2 = ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/;
+  variable1 = variable2;
+  variable3 = ATTR_lexer___Lexer____line( self) /*Lexer::_line*/;
+  variable2 = variable3;
+  variable4 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable3 = variable4;
+  variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable4 = variable5;
+  variable6 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable5 = variable6;
+  variable7 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable6 = variable7;
+  variable8 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable7 = variable8;
+  variable9 = ATTR_lexer___Lexer____goto_table( self) /*Lexer::_goto_table*/;
+  variable10 = ATTR_lexer___Lexer____state( self) /*Lexer::_state*/;
+  variable11 = variable10;
+  variable12 = TAG_Bool(UNTAG_Int( variable11 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable13 = variable12;
+  if (UNTAG_Bool(variable13)) { /* and */
+    variable13 = variable9;
+    variable13 = ATTR_array___AbstractArray____length(variable13) /*Array::_length*/;
+    variable13 = TAG_Bool(UNTAG_Int( variable11 /*index*/)<UNTAG_Int(variable13));
+  }
+  variable12 = variable13;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable12 = variable9;
+  variable12 = ATTR_array___Array____items(variable12) /*Array::_items*/;
+  variable12 = UNBOX_NativeArray(variable12)[UNTAG_Int( variable11 /*index*/)];
+  goto return_label245;
+  return_label245: while(false);
+  variable9 = variable12;
+  variable8 = variable9;
+  variable10 = ATTR_lexer___Lexer____accept_table( self) /*Lexer::_accept_table*/;
+  variable11 = ATTR_lexer___Lexer____state( self) /*Lexer::_state*/;
+  variable12 = variable11;
+  variable13 = TAG_Bool(UNTAG_Int( variable12 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable14 = variable13;
+  if (UNTAG_Bool(variable14)) { /* and */
+    variable14 = variable10;
+    variable14 = ATTR_array___AbstractArray____length(variable14) /*Array::_length*/;
+    variable14 = TAG_Bool(UNTAG_Int( variable12 /*index*/)<UNTAG_Int(variable14));
+  }
+  variable13 = variable14;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable13 = variable10;
+  variable13 = ATTR_array___Array____items(variable13) /*Array::_items*/;
+  variable13 = UNBOX_NativeArray(variable13)[UNTAG_Int( variable12 /*index*/)];
+  goto return_label246;
+  return_label246: while(false);
+  variable10 = variable13;
+  variable9 = variable10;
+  variable10 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+  ((array___AbstractArray___clear_t)CALL(variable10,COLOR_abstract_collection___RemovableCollection___clear))(variable10) /*String::clear*/;
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable11 = ((lexer___Lexer___get_char_t)CALL( self,COLOR_lexer___Lexer___get_char))( self) /*Lexer::get_char*/;
+    variable10 = variable11;
+    variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    variable11 = TAG_Bool(( variable10 /*c*/)!=(variable11));
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 = TAG_Bool(( variable10 /*c*/)==( TAG_Int(10)));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable11 = ATTR_lexer___Lexer____cr( self) /*Lexer::_cr*/;
+        if (UNTAG_Bool(variable11)) { /*if*/
+          ATTR_lexer___Lexer____cr( self) /*Lexer::_cr*/ =  TAG_Bool(false);
+        } else { /*if*/
+          variable11 = ATTR_lexer___Lexer____line( self) /*Lexer::_line*/;
+          variable11 = TAG_Int(UNTAG_Int(variable11)+UNTAG_Int( TAG_Int(1)));
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ = variable11;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  TAG_Int(0);
+        }
+      } else { /*if*/
+        variable11 = TAG_Bool(( variable10 /*c*/)==( TAG_Int(13)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable11 = ATTR_lexer___Lexer____line( self) /*Lexer::_line*/;
+          variable11 = TAG_Int(UNTAG_Int(variable11)+UNTAG_Int( TAG_Int(1)));
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ = variable11;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  TAG_Int(0);
+          ATTR_lexer___Lexer____cr( self) /*Lexer::_cr*/ =  TAG_Bool(true);
+        } else { /*if*/
+          variable11 = ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/;
+          variable11 = TAG_Int(UNTAG_Int(variable11)+UNTAG_Int( TAG_Int(1)));
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ = variable11;
+          ATTR_lexer___Lexer____cr( self) /*Lexer::_cr*/ =  TAG_Bool(false);
+        }
+      }
+      variable11 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+      variable12 = TAG_Char(UNTAG_Int( variable10 /*c*/));
+      ((string___String___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable12) /*String::add*/;
+      variable11 =  TAG_Bool(true);
+      while (true) { /*while*/
+        variable12 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+        variable12 = TAG_Bool(UNTAG_Int( variable0 /*dfa_state*/)<UNTAG_Int(variable12));
+        variable13 = variable12;
+        if (!UNTAG_Bool(variable13)) { /* or */
+          variable13 =  variable11 /*first_loop*/;
+        }
+        variable12 = variable13;
+        if (!UNTAG_Bool(variable12)) break; /* while*/
+        variable12 =  variable0 /*dfa_state*/;
+        variable13 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+        variable13 = TAG_Bool(UNTAG_Int( variable0 /*dfa_state*/)<UNTAG_Int(variable13));
+        if (UNTAG_Bool(variable13)) { /*if*/
+          variable13 = TAG_Int(-UNTAG_Int( TAG_Int(2)));
+          variable13 = TAG_Int(UNTAG_Int(variable13)-UNTAG_Int( variable0 /*dfa_state*/));
+          variable12 = variable13 /*old_state=*/;
+        }
+        variable13 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+        variable0 = variable13 /*dfa_state=*/;
+        variable14 =  variable12 /*old_state*/;
+        variable15 = TAG_Bool(UNTAG_Int( variable14 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable16 = variable15;
+        if (UNTAG_Bool(variable16)) { /* and */
+          variable16 = ATTR_array___AbstractArray____length( variable8 /*goto_table*/) /*Array::_length*/;
+          variable16 = TAG_Bool(UNTAG_Int( variable14 /*index*/)<UNTAG_Int(variable16));
+        }
+        variable15 = variable16;
+        if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable15 = ATTR_array___Array____items( variable8 /*goto_table*/) /*Array::_items*/;
+        variable15 = UNBOX_NativeArray(variable15)[UNTAG_Int( variable14 /*index*/)];
+        goto return_label249;
+        return_label249: while(false);
+        variable14 = variable15;
+        variable13 = variable14;
+        variable14 =  TAG_Int(0);
+        variable16 = ((array___AbstractArray___length_t)CALL( variable13 /*tmp1*/,COLOR_abstract_collection___Collection___length))( variable13 /*tmp1*/) /*Array::length*/;
+        variable16 = TAG_Int(UNTAG_Int(variable16)-UNTAG_Int( TAG_Int(1)));
+        variable15 = variable16;
+        while (true) { /*while*/
+          variable16 = TAG_Bool(UNTAG_Int( variable14 /*low*/)<=UNTAG_Int( variable15 /*high*/));
+          if (!UNTAG_Bool(variable16)) break; /* while*/
+          variable17 = TAG_Int(UNTAG_Int( variable14 /*low*/)+UNTAG_Int( variable15 /*high*/));
+          variable17 = TAG_Int(UNTAG_Int(variable17)/UNTAG_Int( TAG_Int(2)));
+          variable16 = variable17;
+          variable18 =  variable16 /*middle*/;
+          variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable20 = variable19;
+          if (UNTAG_Bool(variable20)) { /* and */
+            variable20 = ATTR_array___AbstractArray____length( variable13 /*tmp1*/) /*Array::_length*/;
+            variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
+          }
+          variable19 = variable20;
+          if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable19 = ATTR_array___Array____items( variable13 /*tmp1*/) /*Array::_items*/;
+          variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
+          goto return_label251;
+          return_label251: while(false);
+          variable18 = variable19;
+          variable17 = variable18;
+          variable18 =  TAG_Int(0);
+          variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable20 = variable19;
+          if (UNTAG_Bool(variable20)) { /* and */
+            variable20 = ATTR_array___AbstractArray____length( variable17 /*tmp2*/) /*Array::_length*/;
+            variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
+          }
+          variable19 = variable20;
+          if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable19 = ATTR_array___Array____items( variable17 /*tmp2*/) /*Array::_items*/;
+          variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
+          goto return_label252;
+          return_label252: while(false);
+          variable18 = variable19;
+          variable18 = TAG_Bool(UNTAG_Int( variable10 /*c*/)<UNTAG_Int(variable18));
+          if (UNTAG_Bool(variable18)) { /*if*/
+            variable18 = TAG_Int(UNTAG_Int( variable16 /*middle*/)-UNTAG_Int( TAG_Int(1)));
+            variable15 = variable18 /*high=*/;
+          } else { /*if*/
+            variable18 =  TAG_Int(1);
+            variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable20 = variable19;
+            if (UNTAG_Bool(variable20)) { /* and */
+              variable20 = ATTR_array___AbstractArray____length( variable17 /*tmp2*/) /*Array::_length*/;
+              variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
+            }
+            variable19 = variable20;
+            if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable19 = ATTR_array___Array____items( variable17 /*tmp2*/) /*Array::_items*/;
+            variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
+            goto return_label253;
+            return_label253: while(false);
+            variable18 = variable19;
+            variable18 = TAG_Bool(UNTAG_Int( variable10 /*c*/)>UNTAG_Int(variable18));
+            if (UNTAG_Bool(variable18)) { /*if*/
+              variable18 = TAG_Int(UNTAG_Int( variable16 /*middle*/)+UNTAG_Int( TAG_Int(1)));
+              variable14 = variable18 /*low=*/;
+            } else { /*if*/
+              variable18 =  TAG_Int(2);
+              variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              variable20 = variable19;
+              if (UNTAG_Bool(variable20)) { /* and */
+               variable20 = ATTR_array___AbstractArray____length( variable17 /*tmp2*/) /*Array::_length*/;
+               variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
+              }
+              variable19 = variable20;
+              if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+              variable19 = ATTR_array___Array____items( variable17 /*tmp2*/) /*Array::_items*/;
+              variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
+              goto return_label254;
+              return_label254: while(false);
+              variable18 = variable19;
+              variable0 = variable18 /*dfa_state=*/;
+              variable18 = TAG_Int(UNTAG_Int( variable15 /*high*/)+UNTAG_Int( TAG_Int(1)));
+              variable14 = variable18 /*low=*/;
+            }
+          }
+          continue_250: while(0);
+        }
+        break_250: while(0);
+        variable11 =  TAG_Bool(false) /*first_loop=*/;
+        continue_248: while(0);
+      }
+      break_248: while(0);
+    } else { /*if*/
+      variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+      variable0 = variable11 /*dfa_state=*/;
+    }
+    variable11 = TAG_Bool(UNTAG_Int( variable0 /*dfa_state*/)>=UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 =  variable0 /*dfa_state*/;
+      variable12 = TAG_Bool(UNTAG_Int( variable11 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable13 = variable12;
+      if (UNTAG_Bool(variable13)) { /* and */
+        variable13 = ATTR_array___AbstractArray____length( variable9 /*accept*/) /*Array::_length*/;
+        variable13 = TAG_Bool(UNTAG_Int( variable11 /*index*/)<UNTAG_Int(variable13));
+      }
+      variable12 = variable13;
+      if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable12 = ATTR_array___Array____items( variable9 /*accept*/) /*Array::_items*/;
+      variable12 = UNBOX_NativeArray(variable12)[UNTAG_Int( variable11 /*index*/)];
+      goto return_label255;
+      return_label255: while(false);
+      variable11 = variable12;
+      variable12 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+      variable11 = TAG_Bool((variable11)!=(variable12));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable3 =  variable0 /*dfa_state*/ /*accept_state=*/;
+        variable11 =  variable0 /*dfa_state*/;
+        variable12 = TAG_Bool(UNTAG_Int( variable11 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable13 = variable12;
+        if (UNTAG_Bool(variable13)) { /* and */
+          variable13 = ATTR_array___AbstractArray____length( variable9 /*accept*/) /*Array::_length*/;
+          variable13 = TAG_Bool(UNTAG_Int( variable11 /*index*/)<UNTAG_Int(variable13));
+        }
+        variable12 = variable13;
+        if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable12 = ATTR_array___Array____items( variable9 /*accept*/) /*Array::_items*/;
+        variable12 = UNBOX_NativeArray(variable12)[UNTAG_Int( variable11 /*index*/)];
+        goto return_label256;
+        return_label256: while(false);
+        variable11 = variable12;
+        variable4 = variable11 /*accept_token=*/;
+        variable11 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+        variable11 = ((array___AbstractArray___length_t)CALL(variable11,COLOR_abstract_collection___Collection___length))(variable11) /*String::length*/;
+        variable5 = variable11 /*accept_length=*/;
+        variable11 = ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/;
+        variable6 = variable11 /*accept_pos=*/;
+        variable11 = ATTR_lexer___Lexer____line( self) /*Lexer::_line*/;
+        variable7 = variable11 /*accept_line=*/;
+      }
+    } else { /*if*/
+      variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+      variable11 = TAG_Bool(( variable3 /*accept_state*/)!=(variable11));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(0)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  NIT_NULL /*null*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(1)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TEol___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TEol*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(2)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TComment___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TComment*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(3)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwpackage___init(variable12, variable13, variable14); /*new TKwpackage*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(4)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwimport___init(variable12, variable13, variable14); /*new TKwimport*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(5)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwclass___init(variable12, variable13, variable14); /*new TKwclass*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(6)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwabstract___init(variable12, variable13, variable14); /*new TKwabstract*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(7)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwinterface___init(variable12, variable13, variable14); /*new TKwinterface*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(8)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwuniversal___init(variable12, variable13, variable14); /*new TKwuniversal*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(9)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwspecial___init(variable12, variable13, variable14); /*new TKwspecial*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(10)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwend___init(variable12, variable13, variable14); /*new TKwend*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(11)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwmeth___init(variable12, variable13, variable14); /*new TKwmeth*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(12)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwtype___init(variable12, variable13, variable14); /*new TKwtype*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(13)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwattr___init(variable12, variable13, variable14); /*new TKwattr*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(14)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwinit___init(variable12, variable13, variable14); /*new TKwinit*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(15)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwredef___init(variable12, variable13, variable14); /*new TKwredef*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(16)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwis___init(variable12, variable13, variable14); /*new TKwis*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(17)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwdo___init(variable12, variable13, variable14); /*new TKwdo*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(18)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwreadable___init(variable12, variable13, variable14); /*new TKwreadable*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(19)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwwritable___init(variable12, variable13, variable14); /*new TKwwritable*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(20)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwvar___init(variable12, variable13, variable14); /*new TKwvar*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(21)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwintern___init(variable12, variable13, variable14); /*new TKwintern*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(22)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwextern___init(variable12, variable13, variable14); /*new TKwextern*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(23)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwprotected___init(variable12, variable13, variable14); /*new TKwprotected*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(24)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwprivate___init(variable12, variable13, variable14); /*new TKwprivate*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(25)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwintrude___init(variable12, variable13, variable14); /*new TKwintrude*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(26)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwif___init(variable12, variable13, variable14); /*new TKwif*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(27)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwthen___init(variable12, variable13, variable14); /*new TKwthen*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(28)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwelse___init(variable12, variable13, variable14); /*new TKwelse*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(29)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwwhile___init(variable12, variable13, variable14); /*new TKwwhile*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(30)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwfor___init(variable12, variable13, variable14); /*new TKwfor*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(31)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwin___init(variable12, variable13, variable14); /*new TKwin*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(32)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwand___init(variable12, variable13, variable14); /*new TKwand*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(33)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwor___init(variable12, variable13, variable14); /*new TKwor*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(34)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwnot___init(variable12, variable13, variable14); /*new TKwnot*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(35)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwreturn___init(variable12, variable13, variable14); /*new TKwreturn*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(36)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwcontinue___init(variable12, variable13, variable14); /*new TKwcontinue*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(37)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwbreak___init(variable12, variable13, variable14); /*new TKwbreak*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(38)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwabort___init(variable12, variable13, variable14); /*new TKwabort*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(39)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwassert___init(variable12, variable13, variable14); /*new TKwassert*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(40)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwnew___init(variable12, variable13, variable14); /*new TKwnew*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(41)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwisa___init(variable12, variable13, variable14); /*new TKwisa*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(42)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwonce___init(variable12, variable13, variable14); /*new TKwonce*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(43)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwsuper___init(variable12, variable13, variable14); /*new TKwsuper*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(44)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwself___init(variable12, variable13, variable14); /*new TKwself*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(45)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwtrue___init(variable12, variable13, variable14); /*new TKwtrue*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(46)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwfalse___init(variable12, variable13, variable14); /*new TKwfalse*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(47)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TKwnull___init(variable12, variable13, variable14); /*new TKwnull*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(48)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TOpar___init(variable12, variable13, variable14); /*new TOpar*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(49)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TCpar___init(variable12, variable13, variable14); /*new TCpar*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(50)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TObra___init(variable12, variable13, variable14); /*new TObra*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(51)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TCbra___init(variable12, variable13, variable14); /*new TCbra*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(52)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TComma___init(variable12, variable13, variable14); /*new TComma*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(53)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TColumn___init(variable12, variable13, variable14); /*new TColumn*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(54)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TQuad___init(variable12, variable13, variable14); /*new TQuad*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(55)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TAssign___init(variable12, variable13, variable14); /*new TAssign*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(56)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TPluseq___init(variable12, variable13, variable14); /*new TPluseq*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(57)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TMinuseq___init(variable12, variable13, variable14); /*new TMinuseq*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(58)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TDotdotdot___init(variable12, variable13, variable14); /*new TDotdotdot*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(59)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TDotdot___init(variable12, variable13, variable14); /*new TDotdot*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(60)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TDot___init(variable12, variable13, variable14); /*new TDot*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(61)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TPlus___init(variable12, variable13, variable14); /*new TPlus*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(62)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TMinus___init(variable12, variable13, variable14); /*new TMinus*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(63)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TStar___init(variable12, variable13, variable14); /*new TStar*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(64)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TSlash___init(variable12, variable13, variable14); /*new TSlash*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(65)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TPercent___init(variable12, variable13, variable14); /*new TPercent*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(66)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TEq___init(variable12, variable13, variable14); /*new TEq*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(67)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TNe___init(variable12, variable13, variable14); /*new TNe*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(68)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TLt___init(variable12, variable13, variable14); /*new TLt*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(69)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TLe___init(variable12, variable13, variable14); /*new TLe*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(70)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TGt___init(variable12, variable13, variable14); /*new TGt*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(71)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TGe___init(variable12, variable13, variable14); /*new TGe*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(72)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___TStarship___init(variable12, variable13, variable14); /*new TStarship*/
+          variable12 = variable15;
+          variable11 = variable12;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(73)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TClassid___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TClassid*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(74)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TId___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TId*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(75)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TAttrid___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TAttrid*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(76)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TNumber___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TNumber*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(77)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TFloat___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TFloat*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(78)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TChar___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TChar*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(79)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TString___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TString*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(80)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TStartString___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TStartString*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(81)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TMidString___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TMidString*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+        variable11 = TAG_Bool(( variable4 /*accept_token*/)==( TAG_Int(82)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable12 = ((string___String___substring_t)CALL(variable12,COLOR_string___String___substring))(variable12,  TAG_Int(0),  variable5 /*accept_length*/) /*String::substring*/;
+          variable11 = variable12;
+          variable13 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable14 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable16 = NEW_lexer___TEndString___init( variable11 /*token_text*/, variable13, variable14, variable15); /*new TEndString*/
+          variable13 = variable16;
+          variable12 = variable13;
+          ((lexer___Lexer___push_back_t)CALL( self,COLOR_lexer___Lexer___push_back))( self,  variable5 /*accept_length*/) /*Lexer::push_back*/;
+          ATTR_lexer___Lexer____pos( self) /*Lexer::_pos*/ =  variable6 /*accept_pos*/;
+          ATTR_lexer___Lexer____line( self) /*Lexer::_line*/ =  variable7 /*accept_line*/;
+          variable0 =  variable12 /*token*/;
+          goto return_label244;
+        }
+      } else { /*if*/
+        variable11 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+        variable11 = ((array___AbstractArray___length_t)CALL(variable11,COLOR_abstract_collection___Collection___length))(variable11) /*String::length*/;
+        variable11 = TAG_Bool(UNTAG_Int(variable11)>UNTAG_Int( TAG_Int(0)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_string___String___init(); /*new String*/
+          variable16 = NEW_string___String___with_native(BOX_NativeString("Unknown token: "), TAG_Int(15)); /*new String*/
+          variable17 = variable16;
+          ((string___String___append_t)CALL(variable15,COLOR_abstract_collection___IndexedCollection___append))(variable15, variable17) /*String::append*/;
+          variable18 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+          variable19 = variable18;
+          ((string___String___append_t)CALL(variable15,COLOR_abstract_collection___IndexedCollection___append))(variable15, variable19) /*String::append*/;
+          variable20 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+          variable21 = variable20;
+          ((string___String___append_t)CALL(variable15,COLOR_abstract_collection___IndexedCollection___append))(variable15, variable21) /*String::append*/;
+          variable16 = NEW_lexer___PError___init_error(variable12, variable13, variable14, variable15); /*new PError*/
+          variable12 = variable16;
+          variable11 = variable12;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        } else { /*if*/
+          variable12 = ATTR_lexer___Lexer____filename( self) /*Lexer::_filename*/;
+          variable13 = TAG_Int(UNTAG_Int( variable2 /*start_line*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = TAG_Int(UNTAG_Int( variable1 /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
+          variable15 = NEW_lexer___EOF___init(variable12, variable13, variable14); /*new EOF*/
+          variable12 = variable15;
+          variable11 = variable12;
+          variable0 =  variable11 /*token*/;
+          goto return_label244;
+        }
+      }
+    }
+    continue_247: while(0);
+  }
+  break_247: while(0);
+  variable0 =  NIT_NULL /*null*/;
+  goto return_label244;
+  return_label244: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t lexer___Lexer___get_char(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::get_char (src/parser//lexer.nit:2036,2--2059:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_lexer___Lexer____eof( self) /*Lexer::_eof*/;
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    goto return_label257;
+  }
+  variable0 = TAG_Int((int)0) /*decl variable result*/;
+  variable2 = ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*sp*/)>=UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = ATTR_lexer___Lexer____stream_buf( self) /*Lexer::_stream_buf*/;
+    variable4 = ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/;
+    variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3, variable4) /*String::[]*/;
+    variable2 = variable3;
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*sp*/)-UNTAG_Int( TAG_Int(1)));
+    ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/ = variable3;
+    variable3 = TAG_Int((unsigned char)UNTAG_Char( variable2 /*res*/));
+    variable0 = variable3 /*result=*/;
+  } else { /*if*/
+    variable2 = ATTR_lexer___Lexer____stream( self) /*Lexer::_stream*/;
+    variable2 = ((stream___IStream___read_char_t)CALL(variable2,COLOR_stream___IStream___read_char))(variable2) /*IStream::read_char*/;
+    variable0 = variable2 /*result=*/;
+  }
+  variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = TAG_Bool(( variable0 /*result*/)==(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ATTR_lexer___Lexer____eof( self) /*Lexer::_eof*/ =  TAG_Bool(true);
+  }
+  variable0 =  variable0 /*result*/;
+  goto return_label257;
+  return_label257: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___Lexer___push_back(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "lexer::Lexer::push_back (src/parser//lexer.nit:2062,2--2072:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*String::length*/;
+  variable1 = variable2;
+  variable3 = TAG_Int(UNTAG_Int( variable1 /*length*/)-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)>=UNTAG_Int( variable0 /*accept_length*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    ATTR_lexer___Lexer____eof( self) /*Lexer::_eof*/ =  TAG_Bool(false);
+    variable3 = ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1)));
+    ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/ = variable3;
+    variable3 = ATTR_lexer___Lexer____stream_buf( self) /*Lexer::_stream_buf*/;
+    variable4 = ATTR_lexer___Lexer____stream_pos( self) /*Lexer::_stream_pos*/;
+    variable5 = ATTR_lexer___Lexer____text( self) /*Lexer::_text*/;
+    variable5 = ((string___String_____bra_t)CALL(variable5,COLOR_abstract_collection___Map_____bra))(variable5,  variable2 /*i*/) /*String::[]*/;
+    ((string___String_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3, variable4, variable5) /*String::[]=*/;
+    variable3 = TAG_Int(UNTAG_Int( variable2 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable2 = variable3 /*i=*/;
+    continue_259: while(0);
+  }
+  break_259: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void lexer___Lexer___build_goto_table(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::build_goto_table (src/parser//lexer.nit:2077,2--3222:18)"};
+  val_t variable0;
+  static val_t once_value_variable0_261; static int once_bool_variable0_261;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+    val_t variable20;
+    val_t variable21;
+    val_t variable22;
+    val_t variable23;
+    val_t variable24;
+    val_t variable25;
+    val_t variable26;
+    val_t variable27;
+    val_t variable28;
+    val_t variable29;
+    val_t variable30;
+    val_t variable31;
+    val_t variable32;
+    val_t variable33;
+    val_t variable34;
+    val_t variable35;
+    val_t variable36;
+    val_t variable37;
+    val_t variable38;
+    val_t variable39;
+    val_t variable40;
+    val_t variable41;
+    val_t variable42;
+    val_t variable43;
+    val_t variable44;
+    val_t variable45;
+    val_t variable46;
+    val_t variable47;
+    val_t variable48;
+    val_t variable49;
+    val_t variable50;
+    val_t variable51;
+    val_t variable52;
+    val_t variable53;
+    val_t variable54;
+    val_t variable55;
+    val_t variable56;
+    val_t variable57;
+    val_t variable58;
+    val_t variable59;
+    val_t variable60;
+    val_t variable61;
+    val_t variable62;
+    val_t variable63;
+    val_t variable64;
+    val_t variable65;
+    val_t variable66;
+    val_t variable67;
+    val_t variable68;
+    val_t variable69;
+    val_t variable70;
+    val_t variable71;
+    val_t variable72;
+    val_t variable73;
+    val_t variable74;
+    val_t variable75;
+    val_t variable76;
+    val_t variable77;
+    val_t variable78;
+    val_t variable79;
+    val_t variable80;
+    val_t variable81;
+    val_t variable82;
+    val_t variable83;
+    val_t variable84;
+    val_t variable85;
+    val_t variable86;
+    val_t variable87;
+    val_t variable88;
+    val_t variable89;
+    val_t variable90;
+    val_t variable91;
+    val_t variable92;
+    val_t variable93;
+    val_t variable94;
+    val_t variable95;
+    val_t variable96;
+    val_t variable97;
+    val_t variable98;
+    val_t variable99;
+    val_t variable100;
+    val_t variable101;
+    val_t variable102;
+    val_t variable103;
+    val_t variable104;
+    val_t variable105;
+    val_t variable106;
+    val_t variable107;
+    val_t variable108;
+    val_t variable109;
+    val_t variable110;
+    val_t variable111;
+    val_t variable112;
+    val_t variable113;
+    val_t variable114;
+    val_t variable115;
+    val_t variable116;
+    val_t variable117;
+    val_t variable118;
+    val_t variable119;
+    val_t variable120;
+    val_t variable121;
+    val_t variable122;
+    val_t variable123;
+    val_t variable124;
+    val_t variable125;
+    val_t variable126;
+    val_t variable127;
+    val_t variable128;
+    val_t variable129;
+    val_t variable130;
+    val_t variable131;
+    val_t variable132;
+    val_t variable133;
+    val_t variable134;
+    val_t variable135;
+    val_t variable136;
+    val_t variable137;
+    val_t variable138;
+    val_t variable139;
+    val_t variable140;
+    val_t variable141;
+    val_t variable142;
+    val_t variable143;
+    val_t variable144;
+    val_t variable145;
+    val_t variable146;
+    val_t variable147;
+    val_t variable148;
+    val_t variable149;
+    val_t variable150;
+    val_t variable151;
+    val_t variable152;
+    val_t variable153;
+    val_t variable154;
+    val_t variable155;
+    val_t variable156;
+    val_t variable157;
+    val_t variable158;
+    val_t variable159;
+    val_t variable160;
+    val_t variable161;
+    val_t variable162;
+    val_t variable163;
+    val_t variable164;
+    val_t variable165;
+    val_t variable166;
+    val_t variable167;
+    val_t variable168;
+    val_t variable169;
+    val_t variable170;
+    val_t variable171;
+    val_t variable172;
+    val_t variable173;
+    val_t variable174;
+    val_t variable175;
+    val_t variable176;
+    val_t variable177;
+    val_t variable178;
+    val_t variable179;
+    val_t variable180;
+    val_t variable181;
+    val_t variable182;
+    val_t variable183;
+    val_t variable184;
+    val_t variable185;
+    val_t variable186;
+    val_t variable187;
+    val_t variable188;
+    val_t variable189;
+    val_t variable190;
+    val_t variable191;
+    val_t variable192;
+    val_t variable193;
+    val_t variable194;
+    val_t variable195;
+    val_t variable196;
+    val_t variable197;
+    val_t variable198;
+    val_t variable199;
+    val_t variable200;
+    val_t variable201;
+    val_t variable202;
+    val_t variable203;
+    val_t variable204;
+    val_t variable205;
+    val_t variable206;
+    val_t variable207;
+    val_t variable208;
+    val_t variable209;
+    val_t variable210;
+    val_t variable211;
+    val_t variable212;
+    val_t variable213;
+    val_t variable214;
+    val_t variable215;
+    val_t variable216;
+    val_t variable217;
+    val_t variable218;
+    val_t variable219;
+    val_t variable220;
+    val_t variable221;
+    val_t variable222;
+    val_t variable223;
+    val_t variable224;
+    val_t variable225;
+    val_t variable226;
+    val_t variable227;
+    val_t variable228;
+    val_t variable229;
+    val_t variable230;
+    val_t variable231;
+    val_t variable232;
+    val_t variable233;
+    val_t variable234;
+    val_t variable235;
+    val_t variable236;
+    val_t variable237;
+    val_t variable238;
+    val_t variable239;
+    val_t variable240;
+    val_t variable241;
+    val_t variable242;
+    val_t variable243;
+    val_t variable244;
+    val_t variable245;
+    val_t variable246;
+    val_t variable247;
+    val_t variable248;
+    val_t variable249;
+    val_t variable250;
+    val_t variable251;
+    val_t variable252;
+    val_t variable253;
+    val_t variable254;
+    val_t variable255;
+    val_t variable256;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_261) variable0 = once_value_variable0_261;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Array[Array[Int]]]]*/
+    variable1 = NEW_array___Array___with_capacity(TAG_Int(253)); /*new Array[Array[Array[Int]]]*/
+    variable2 = NEW_array___Array___with_capacity(TAG_Int(48)); /*new Array[Array[Int]]*/
+    variable3 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+    variable4 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable4) /*Array::add*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable5) /*Array::add*/;
+    variable6 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable6) /*Array::add*/;
+    variable7 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable7) /*Array::add*/;
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(6)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable8) /*Array::add*/;
+    variable9 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(7)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable9) /*Array::add*/;
+    variable10 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(8)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable10) /*Array::add*/;
+    variable11 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable11) /*Array::add*/;
+    variable12 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable12) /*Array::add*/;
+    variable13 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable13) /*Array::add*/;
+    variable14 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable14) /*Array::add*/;
+    variable15 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable15) /*Array::add*/;
+    variable16 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable16) /*Array::add*/;
+    variable17 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(45)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(45)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable17) /*Array::add*/;
+    variable18 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable18) /*Array::add*/;
+    variable19 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable19) /*Array::add*/;
+    variable20 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable20) /*Array::add*/;
+    variable21 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable21) /*Array::add*/;
+    variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable22) /*Array::add*/;
+    variable23 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable23) /*Array::add*/;
+    variable24 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable24) /*Array::add*/;
+    variable25 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable25) /*Array::add*/;
+    variable26 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable26) /*Array::add*/;
+    variable27 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(25)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable27) /*Array::add*/;
+    variable28 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable28) /*Array::add*/;
+    variable29 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(27)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable29) /*Array::add*/;
+    variable30 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable30) /*Array::add*/;
+    variable31 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable31) /*Array::add*/;
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(30)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(36)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(45)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable50) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+    variable3 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
+    variable4 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable4) /*Array::add*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable5) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable3) /*Array::add*/;
+    variable4 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable4) /*Array::add*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable6 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable6) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable5) /*Array::add*/;
+    variable6 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable7 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(32)) /*Array::add*/;
+    variable8 = TAG_Int(-UNTAG_Int( TAG_Int(3)));
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6, variable7) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable6) /*Array::add*/;
+    variable7 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable7) /*Array::add*/;
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
+    variable9 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable9) /*Array::add*/;
+    variable10 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable10) /*Array::add*/;
+    variable11 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable11) /*Array::add*/;
+    variable12 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(49)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable12) /*Array::add*/;
+    variable13 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable13) /*Array::add*/;
+    variable14 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable14) /*Array::add*/;
+    variable15 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable15) /*Array::add*/;
+    variable16 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable16) /*Array::add*/;
+    variable17 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable17) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable8) /*Array::add*/;
+    variable9 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable10 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable10) /*Array::add*/;
+    variable11 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable11) /*Array::add*/;
+    variable12 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable12) /*Array::add*/;
+    variable13 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(54)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable13) /*Array::add*/;
+    variable14 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable14) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable9) /*Array::add*/;
+    variable10 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable10) /*Array::add*/;
+    variable11 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable12 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable12) /*Array::add*/;
+    variable13 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable13) /*Array::add*/;
+    variable14 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable14) /*Array::add*/;
+    variable15 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(56)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable15) /*Array::add*/;
+    variable16 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable16) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable11) /*Array::add*/;
+    variable12 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable12) /*Array::add*/;
+    variable13 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable13) /*Array::add*/;
+    variable14 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable14) /*Array::add*/;
+    variable15 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable16 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15, variable16) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable15) /*Array::add*/;
+    variable16 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable16) /*Array::add*/;
+    variable17 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable18 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17, variable18) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable17) /*Array::add*/;
+    variable18 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
+    variable19 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18, variable19) /*Array::add*/;
+    variable20 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18, variable20) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable18) /*Array::add*/;
+    variable19 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable19) /*Array::add*/;
+    variable20 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
+    variable21 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20, variable21) /*Array::add*/;
+    variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20, variable22) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable20) /*Array::add*/;
+    variable21 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21, variable22) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable21) /*Array::add*/;
+    variable22 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable23 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(63)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable22) /*Array::add*/;
+    variable23 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable24 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(64)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23, variable24) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable23) /*Array::add*/;
+    variable24 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable25 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24, variable25) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable24) /*Array::add*/;
+    variable25 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable26 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(66)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25, variable26) /*Array::add*/;
+    variable27 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25, variable27) /*Array::add*/;
+    variable28 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25, variable28) /*Array::add*/;
+    variable29 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(69)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25, variable29) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable25) /*Array::add*/;
+    variable26 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable26) /*Array::add*/;
+    variable27 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable27) /*Array::add*/;
+    variable28 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable29 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28, variable29) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable28) /*Array::add*/;
+    variable29 = NEW_array___Array___with_capacity(TAG_Int(11)); /*new Array[Array[Int]]*/
+    variable30 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable30) /*Array::add*/;
+    variable31 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable31) /*Array::add*/;
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(76)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable40) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable29) /*Array::add*/;
+    variable30 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable31 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(95)) /*Array::add*/;
+    variable32 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable32) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable31) /*Array::add*/;
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(79)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable34) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable30) /*Array::add*/;
+    variable31 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(95)) /*Array::add*/;
+    variable33 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable33) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(81)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable37) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable31) /*Array::add*/;
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(95)) /*Array::add*/;
+    variable34 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable34) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable36) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(107)) /*Array::add*/;
+    variable35 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable35) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(85)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable40) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(95)) /*Array::add*/;
+    variable36 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35, variable36) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(87)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable39) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(95)) /*Array::add*/;
+    variable37 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable37) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35, variable37) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(95)) /*Array::add*/;
+    variable38 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable38) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(89)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(95)) /*Array::add*/;
+    variable39 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable39) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable41) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(100)) /*Array::add*/;
+    variable40 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable40) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(94)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(95)) /*Array::add*/;
+    variable41 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable41) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(95)) /*Array::add*/;
+    variable42 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41, variable42) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(100)) /*Array::add*/;
+    variable43 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable43) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41, variable44) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(100)) /*Array::add*/;
+    variable44 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable44) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable49) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Array[Int]]*/
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(95)) /*Array::add*/;
+    variable45 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable50) /*Array::add*/;
+    variable51 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable51) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(109)) /*Array::add*/;
+    variable46 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable46) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44, variable47) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(95)) /*Array::add*/;
+    variable47 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable47) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable48) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(103)) /*Array::add*/;
+    variable48 = TAG_Int(-UNTAG_Int( TAG_Int(43)));
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable48) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable50) /*Array::add*/;
+    variable51 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable51) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable50) /*Array::add*/;
+    variable51 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable51) /*Array::add*/;
+    variable52 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable52) /*Array::add*/;
+    variable53 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable53) /*Array::add*/;
+    variable54 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable54) /*Array::add*/;
+    variable55 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable55) /*Array::add*/;
+    variable56 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable56) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable47) /*Array::add*/;
+    variable48 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable48) /*Array::add*/;
+    variable49 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable51 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(255)) /*Array::add*/;
+    variable52 = TAG_Int(-UNTAG_Int( TAG_Int(8)));
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51, variable52) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50, variable51) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable50) /*Array::add*/;
+    variable51 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable51) /*Array::add*/;
+    variable52 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable53 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52, variable53) /*Array::add*/;
+    variable54 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52, variable54) /*Array::add*/;
+    variable55 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52, variable55) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable52) /*Array::add*/;
+    variable53 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable53) /*Array::add*/;
+    variable54 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable55 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(255)) /*Array::add*/;
+    variable56 = TAG_Int(-UNTAG_Int( TAG_Int(9)));
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55, variable56) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54, variable55) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable54) /*Array::add*/;
+    variable55 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable55) /*Array::add*/;
+    variable56 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable57 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56, variable57) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable56) /*Array::add*/;
+    variable57 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable58 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(255)) /*Array::add*/;
+    variable59 = TAG_Int(-UNTAG_Int( TAG_Int(11)));
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58, variable59) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57, variable58) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable57) /*Array::add*/;
+    variable58 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable58) /*Array::add*/;
+    variable59 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable59) /*Array::add*/;
+    variable60 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable60) /*Array::add*/;
+    variable61 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable62 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable61,COLOR_abstract_collection___SimpleCollection___add))(variable61, variable62) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable61) /*Array::add*/;
+    variable62 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable63 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62, variable63) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable62) /*Array::add*/;
+    variable63 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable64 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63, variable64) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable63) /*Array::add*/;
+    variable64 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable64) /*Array::add*/;
+    variable65 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable66 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable65,COLOR_abstract_collection___SimpleCollection___add))(variable65, variable66) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable65) /*Array::add*/;
+    variable66 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable66) /*Array::add*/;
+    variable67 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable67) /*Array::add*/;
+    variable68 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable69 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(122)) /*Array::add*/;
+    variable70 = TAG_Int(-UNTAG_Int( TAG_Int(25)));
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69, variable70) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable68,COLOR_abstract_collection___SimpleCollection___add))(variable68, variable69) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable68) /*Array::add*/;
+    variable69 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable70 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70,  TAG_Int(122)) /*Array::add*/;
+    variable71 = TAG_Int(-UNTAG_Int( TAG_Int(25)));
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70, variable71) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69, variable70) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable69) /*Array::add*/;
+    variable70 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable71 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(122)) /*Array::add*/;
+    variable72 = TAG_Int(-UNTAG_Int( TAG_Int(25)));
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71, variable72) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70, variable71) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable70) /*Array::add*/;
+    variable71 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable72 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(122)) /*Array::add*/;
+    variable73 = TAG_Int(-UNTAG_Int( TAG_Int(25)));
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable73) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71, variable72) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable71) /*Array::add*/;
+    variable72 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable73 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable73) /*Array::add*/;
+    variable74 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable74) /*Array::add*/;
+    variable75 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable75) /*Array::add*/;
+    variable76 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable76) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable72) /*Array::add*/;
+    variable73 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable74 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(122)) /*Array::add*/;
+    variable75 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74, variable75) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73, variable74) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable73) /*Array::add*/;
+    variable74 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable75 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(122)) /*Array::add*/;
+    variable76 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75, variable76) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74, variable75) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable74) /*Array::add*/;
+    variable75 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable76 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(122)) /*Array::add*/;
+    variable77 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76, variable77) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75, variable76) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable75) /*Array::add*/;
+    variable76 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable77 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(122)) /*Array::add*/;
+    variable78 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable78) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76, variable77) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable76) /*Array::add*/;
+    variable77 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable78 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78,  TAG_Int(110)) /*Array::add*/;
+    variable79 = TAG_Int(-UNTAG_Int( TAG_Int(32)));
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable79) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable78) /*Array::add*/;
+    variable79 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable79) /*Array::add*/;
+    variable80 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable80) /*Array::add*/;
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable82) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable77) /*Array::add*/;
+    variable78 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable79 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(95)) /*Array::add*/;
+    variable80 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable80) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable79) /*Array::add*/;
+    variable80 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable80) /*Array::add*/;
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable82) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable78) /*Array::add*/;
+    variable79 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable80 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(95)) /*Array::add*/;
+    variable81 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable81) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable80) /*Array::add*/;
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable82) /*Array::add*/;
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable83) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable79) /*Array::add*/;
+    variable80 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(95)) /*Array::add*/;
+    variable82 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81, variable82) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable82) /*Array::add*/;
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(127)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable83) /*Array::add*/;
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable84) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable80) /*Array::add*/;
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(100)) /*Array::add*/;
+    variable83 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82, variable83) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81, variable82) /*Array::add*/;
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(128)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81, variable83) /*Array::add*/;
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81, variable84) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(95)) /*Array::add*/;
+    variable84 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83, variable84) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82, variable83) /*Array::add*/;
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82, variable84) /*Array::add*/;
+    variable85 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82, variable85) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable82) /*Array::add*/;
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(109)) /*Array::add*/;
+    variable85 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84, variable85) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83, variable84) /*Array::add*/;
+    variable85 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83, variable85) /*Array::add*/;
+    variable86 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83, variable86) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable83) /*Array::add*/;
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable85 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(122)) /*Array::add*/;
+    variable86 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85, variable86) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84, variable85) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable84) /*Array::add*/;
+    variable85 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable86 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(114)) /*Array::add*/;
+    variable87 = TAG_Int(-UNTAG_Int( TAG_Int(79)));
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86, variable87) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85, variable86) /*Array::add*/;
+    variable87 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85, variable87) /*Array::add*/;
+    variable88 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85, variable88) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable85) /*Array::add*/;
+    variable86 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable87 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(99)) /*Array::add*/;
+    variable88 = TAG_Int(-UNTAG_Int( TAG_Int(78)));
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87, variable88) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86, variable87) /*Array::add*/;
+    variable88 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86, variable88) /*Array::add*/;
+    variable89 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86, variable89) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable86) /*Array::add*/;
+    variable87 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable88 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(115)) /*Array::add*/;
+    variable89 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88, variable89) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87, variable88) /*Array::add*/;
+    variable89 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(133)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87, variable89) /*Array::add*/;
+    variable90 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87, variable90) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable87) /*Array::add*/;
+    variable88 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable89 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(107)) /*Array::add*/;
+    variable90 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89, variable90) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88, variable89) /*Array::add*/;
+    variable90 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(134)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88, variable90) /*Array::add*/;
+    variable91 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88, variable91) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable88) /*Array::add*/;
+    variable89 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable90 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(113)) /*Array::add*/;
+    variable91 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90, variable91) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89, variable90) /*Array::add*/;
+    variable91 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89, variable91) /*Array::add*/;
+    variable92 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89, variable92) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable89) /*Array::add*/;
+    variable90 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable91 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(122)) /*Array::add*/;
+    variable92 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable92) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90, variable91) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable90) /*Array::add*/;
+    variable91 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable92 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92,  TAG_Int(95)) /*Array::add*/;
+    variable93 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable93) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable92) /*Array::add*/;
+    variable93 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable93) /*Array::add*/;
+    variable94 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable94) /*Array::add*/;
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable95) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable91) /*Array::add*/;
+    variable92 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
+    variable93 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93,  TAG_Int(95)) /*Array::add*/;
+    variable94 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable94) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable93) /*Array::add*/;
+    variable94 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable94) /*Array::add*/;
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable95) /*Array::add*/;
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable96) /*Array::add*/;
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(138)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable97) /*Array::add*/;
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable98) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable92) /*Array::add*/;
+    variable93 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable94 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94,  TAG_Int(95)) /*Array::add*/;
+    variable95 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable95) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable94) /*Array::add*/;
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(139)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable95) /*Array::add*/;
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable96) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable93) /*Array::add*/;
+    variable94 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95,  TAG_Int(115)) /*Array::add*/;
+    variable96 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable96) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable95) /*Array::add*/;
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable96) /*Array::add*/;
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable97) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable94) /*Array::add*/;
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96,  TAG_Int(95)) /*Array::add*/;
+    variable97 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable97) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable96) /*Array::add*/;
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable97) /*Array::add*/;
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable98) /*Array::add*/;
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable99) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable95) /*Array::add*/;
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97,  TAG_Int(115)) /*Array::add*/;
+    variable98 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable98) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable97) /*Array::add*/;
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable98) /*Array::add*/;
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable99) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable96) /*Array::add*/;
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98,  TAG_Int(107)) /*Array::add*/;
+    variable99 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable99) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable98) /*Array::add*/;
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable99) /*Array::add*/;
+    variable100 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable100) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable97) /*Array::add*/;
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99,  TAG_Int(95)) /*Array::add*/;
+    variable100 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99, variable100) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable99) /*Array::add*/;
+    variable100 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable100) /*Array::add*/;
+    variable101 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable101) /*Array::add*/;
+    variable102 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable102) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable98) /*Array::add*/;
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable100 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100,  TAG_Int(122)) /*Array::add*/;
+    variable101 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable101) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99, variable100) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable99) /*Array::add*/;
+    variable100 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable101 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101,  TAG_Int(98)) /*Array::add*/;
+    variable102 = TAG_Int(-UNTAG_Int( TAG_Int(98)));
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable102) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable101) /*Array::add*/;
+    variable102 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(145)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable102) /*Array::add*/;
+    variable103 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable103) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable100) /*Array::add*/;
+    variable101 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable102 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102,  TAG_Int(104)) /*Array::add*/;
+    variable103 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable103) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable102) /*Array::add*/;
+    variable103 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(146)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable103) /*Array::add*/;
+    variable104 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable104) /*Array::add*/;
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(147)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable106) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable101) /*Array::add*/;
+    variable102 = NEW_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
+    variable103 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(95)) /*Array::add*/;
+    variable104 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103, variable104) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable103) /*Array::add*/;
+    variable104 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(148)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable104) /*Array::add*/;
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable106) /*Array::add*/;
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable107) /*Array::add*/;
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(150)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable108) /*Array::add*/;
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable109) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable102) /*Array::add*/;
+    variable103 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable104 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(107)) /*Array::add*/;
+    variable105 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104, variable105) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103, variable104) /*Array::add*/;
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(151)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103, variable106) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable103) /*Array::add*/;
+    variable104 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(100)) /*Array::add*/;
+    variable106 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105, variable106) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104, variable106) /*Array::add*/;
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104, variable107) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable104) /*Array::add*/;
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(111)) /*Array::add*/;
+    variable107 = TAG_Int(-UNTAG_Int( TAG_Int(91)));
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106, variable107) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105, variable106) /*Array::add*/;
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(153)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105, variable107) /*Array::add*/;
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105, variable108) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(100)) /*Array::add*/;
+    variable108 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable108) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106, variable107) /*Array::add*/;
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(154)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106, variable108) /*Array::add*/;
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106, variable109) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable106) /*Array::add*/;
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(95)) /*Array::add*/;
+    variable109 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108, variable109) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable108) /*Array::add*/;
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable109) /*Array::add*/;
+    variable110 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable110) /*Array::add*/;
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable111) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable107) /*Array::add*/;
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(111)) /*Array::add*/;
+    variable110 = TAG_Int(-UNTAG_Int( TAG_Int(91)));
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109, variable110) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108, variable109) /*Array::add*/;
+    variable110 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(156)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108, variable110) /*Array::add*/;
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108, variable111) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable108) /*Array::add*/;
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable110 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(104)) /*Array::add*/;
+    variable111 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110, variable111) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109, variable110) /*Array::add*/;
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109, variable111) /*Array::add*/;
+    variable112 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109, variable112) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable109) /*Array::add*/;
+    variable110 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(113)) /*Array::add*/;
+    variable112 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111, variable112) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110, variable111) /*Array::add*/;
+    variable112 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(158)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110, variable112) /*Array::add*/;
+    variable113 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110, variable113) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable110) /*Array::add*/;
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable112 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(104)) /*Array::add*/;
+    variable113 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112, variable113) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111, variable112) /*Array::add*/;
+    variable113 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(159)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111, variable113) /*Array::add*/;
+    variable114 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111, variable114) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable111) /*Array::add*/;
+    variable112 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable113 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(104)) /*Array::add*/;
+    variable114 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113, variable114) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112, variable113) /*Array::add*/;
+    variable114 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112, variable114) /*Array::add*/;
+    variable115 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112, variable115) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable112) /*Array::add*/;
+    variable113 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable114 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(255)) /*Array::add*/;
+    variable115 = TAG_Int(-UNTAG_Int( TAG_Int(47)));
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114, variable115) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113, variable114) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable113) /*Array::add*/;
+    variable114 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable114) /*Array::add*/;
+    variable115 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable116 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115, variable116) /*Array::add*/;
+    variable117 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable117,COLOR_abstract_collection___SimpleCollection___add))(variable117,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable117,COLOR_abstract_collection___SimpleCollection___add))(variable117,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable117,COLOR_abstract_collection___SimpleCollection___add))(variable117,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115, variable117) /*Array::add*/;
+    variable118 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115, variable118) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable115) /*Array::add*/;
+    variable116 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable116) /*Array::add*/;
+    variable117 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable118 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118,  TAG_Int(255)) /*Array::add*/;
+    variable119 = TAG_Int(-UNTAG_Int( TAG_Int(8)));
+    ((array___AbstractArray___add_t)CALL(variable118,COLOR_abstract_collection___SimpleCollection___add))(variable118, variable119) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable117,COLOR_abstract_collection___SimpleCollection___add))(variable117, variable118) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable117) /*Array::add*/;
+    variable118 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable118) /*Array::add*/;
+    variable119 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable119) /*Array::add*/;
+    variable120 = ((lexer___Lexer___nil_array_t)CALL( self,COLOR_lexer___Lexer___nil_array))( self) /*Lexer::nil_array*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable120) /*Array::add*/;
+    variable121 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable122 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable122,COLOR_abstract_collection___SimpleCollection___add))(variable122,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable122,COLOR_abstract_collection___SimpleCollection___add))(variable122,  TAG_Int(122)) /*Array::add*/;
+    variable123 = TAG_Int(-UNTAG_Int( TAG_Int(72)));
+    ((array___AbstractArray___add_t)CALL(variable122,COLOR_abstract_collection___SimpleCollection___add))(variable122, variable123) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable121,COLOR_abstract_collection___SimpleCollection___add))(variable121, variable122) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable121) /*Array::add*/;
+    variable122 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable123 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable123,COLOR_abstract_collection___SimpleCollection___add))(variable123,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable123,COLOR_abstract_collection___SimpleCollection___add))(variable123,  TAG_Int(122)) /*Array::add*/;
+    variable124 = TAG_Int(-UNTAG_Int( TAG_Int(72)));
+    ((array___AbstractArray___add_t)CALL(variable123,COLOR_abstract_collection___SimpleCollection___add))(variable123, variable124) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable122,COLOR_abstract_collection___SimpleCollection___add))(variable122, variable123) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable122) /*Array::add*/;
+    variable123 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable124 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable124,COLOR_abstract_collection___SimpleCollection___add))(variable124,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable124,COLOR_abstract_collection___SimpleCollection___add))(variable124,  TAG_Int(122)) /*Array::add*/;
+    variable125 = TAG_Int(-UNTAG_Int( TAG_Int(72)));
+    ((array___AbstractArray___add_t)CALL(variable124,COLOR_abstract_collection___SimpleCollection___add))(variable124, variable125) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable123,COLOR_abstract_collection___SimpleCollection___add))(variable123, variable124) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable123) /*Array::add*/;
+    variable124 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable125 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125,  TAG_Int(122)) /*Array::add*/;
+    variable126 = TAG_Int(-UNTAG_Int( TAG_Int(72)));
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125, variable126) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable124,COLOR_abstract_collection___SimpleCollection___add))(variable124, variable125) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable124) /*Array::add*/;
+    variable125 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable126 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126,  TAG_Int(113)) /*Array::add*/;
+    variable127 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126, variable127) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125, variable126) /*Array::add*/;
+    variable127 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127,  TAG_Int(162)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125, variable127) /*Array::add*/;
+    variable128 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable125,COLOR_abstract_collection___SimpleCollection___add))(variable125, variable128) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable125) /*Array::add*/;
+    variable126 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable127 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127,  TAG_Int(115)) /*Array::add*/;
+    variable128 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127, variable128) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126, variable127) /*Array::add*/;
+    variable128 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(163)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126, variable128) /*Array::add*/;
+    variable129 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable126,COLOR_abstract_collection___SimpleCollection___add))(variable126, variable129) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable126) /*Array::add*/;
+    variable127 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable128 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128,  TAG_Int(122)) /*Array::add*/;
+    variable129 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128, variable129) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable127,COLOR_abstract_collection___SimpleCollection___add))(variable127, variable128) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable127) /*Array::add*/;
+    variable128 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable129 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129,  TAG_Int(100)) /*Array::add*/;
+    variable130 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129, variable130) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128, variable129) /*Array::add*/;
+    variable130 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130,  TAG_Int(164)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128, variable130) /*Array::add*/;
+    variable131 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable128,COLOR_abstract_collection___SimpleCollection___add))(variable128, variable131) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable128) /*Array::add*/;
+    variable129 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable130 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130,  TAG_Int(113)) /*Array::add*/;
+    variable131 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130, variable131) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129, variable130) /*Array::add*/;
+    variable131 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(165)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129, variable131) /*Array::add*/;
+    variable132 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable129,COLOR_abstract_collection___SimpleCollection___add))(variable129, variable132) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable129) /*Array::add*/;
+    variable130 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable131 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131,  TAG_Int(95)) /*Array::add*/;
+    variable132 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131, variable132) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130, variable131) /*Array::add*/;
+    variable132 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(166)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130, variable132) /*Array::add*/;
+    variable133 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable130,COLOR_abstract_collection___SimpleCollection___add))(variable130, variable133) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable130) /*Array::add*/;
+    variable131 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable132 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132,  TAG_Int(114)) /*Array::add*/;
+    variable133 = TAG_Int(-UNTAG_Int( TAG_Int(79)));
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132, variable133) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131, variable132) /*Array::add*/;
+    variable133 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(167)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131, variable133) /*Array::add*/;
+    variable134 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable131,COLOR_abstract_collection___SimpleCollection___add))(variable131, variable134) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable131) /*Array::add*/;
+    variable132 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable133 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133,  TAG_Int(115)) /*Array::add*/;
+    variable134 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133, variable134) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132, variable133) /*Array::add*/;
+    variable134 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(168)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132, variable134) /*Array::add*/;
+    variable135 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable132,COLOR_abstract_collection___SimpleCollection___add))(variable132, variable135) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable132) /*Array::add*/;
+    variable133 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable134 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134,  TAG_Int(100)) /*Array::add*/;
+    variable135 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134, variable135) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133, variable134) /*Array::add*/;
+    variable135 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(169)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133, variable135) /*Array::add*/;
+    variable136 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable133,COLOR_abstract_collection___SimpleCollection___add))(variable133, variable136) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable133) /*Array::add*/;
+    variable134 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable135 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135,  TAG_Int(122)) /*Array::add*/;
+    variable136 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135, variable136) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable134,COLOR_abstract_collection___SimpleCollection___add))(variable134, variable135) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable134) /*Array::add*/;
+    variable135 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable136 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136,  TAG_Int(100)) /*Array::add*/;
+    variable137 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136, variable137) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135, variable136) /*Array::add*/;
+    variable137 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137,  TAG_Int(170)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135, variable137) /*Array::add*/;
+    variable138 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable135,COLOR_abstract_collection___SimpleCollection___add))(variable135, variable138) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable135) /*Array::add*/;
+    variable136 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable137 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137,  TAG_Int(114)) /*Array::add*/;
+    variable138 = TAG_Int(-UNTAG_Int( TAG_Int(79)));
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137, variable138) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136, variable137) /*Array::add*/;
+    variable138 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(171)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136, variable138) /*Array::add*/;
+    variable139 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable136,COLOR_abstract_collection___SimpleCollection___add))(variable136, variable139) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable136) /*Array::add*/;
+    variable137 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable138 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138,  TAG_Int(122)) /*Array::add*/;
+    variable139 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138, variable139) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable137,COLOR_abstract_collection___SimpleCollection___add))(variable137, variable138) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable137) /*Array::add*/;
+    variable138 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable139 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139,  TAG_Int(110)) /*Array::add*/;
+    variable140 = TAG_Int(-UNTAG_Int( TAG_Int(32)));
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139, variable140) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138, variable139) /*Array::add*/;
+    variable140 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140,  TAG_Int(172)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138, variable140) /*Array::add*/;
+    variable141 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable138,COLOR_abstract_collection___SimpleCollection___add))(variable138, variable141) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable138) /*Array::add*/;
+    variable139 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable140 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140,  TAG_Int(115)) /*Array::add*/;
+    variable141 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable141) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139, variable140) /*Array::add*/;
+    variable141 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(173)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139, variable141) /*Array::add*/;
+    variable142 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable139,COLOR_abstract_collection___SimpleCollection___add))(variable139, variable142) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable139) /*Array::add*/;
+    variable140 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable141 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141,  TAG_Int(100)) /*Array::add*/;
+    variable142 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141, variable142) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable141) /*Array::add*/;
+    variable142 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(174)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable142) /*Array::add*/;
+    variable143 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable143) /*Array::add*/;
+    variable144 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(175)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable144) /*Array::add*/;
+    variable145 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable140,COLOR_abstract_collection___SimpleCollection___add))(variable140, variable145) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable140) /*Array::add*/;
+    variable141 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable142 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142,  TAG_Int(122)) /*Array::add*/;
+    variable143 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142, variable143) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable141,COLOR_abstract_collection___SimpleCollection___add))(variable141, variable142) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable141) /*Array::add*/;
+    variable142 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable143 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143,  TAG_Int(103)) /*Array::add*/;
+    variable144 = TAG_Int(-UNTAG_Int( TAG_Int(43)));
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143, variable144) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142, variable143) /*Array::add*/;
+    variable144 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(176)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142, variable144) /*Array::add*/;
+    variable145 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable142,COLOR_abstract_collection___SimpleCollection___add))(variable142, variable145) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable142) /*Array::add*/;
+    variable143 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable144 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144,  TAG_Int(122)) /*Array::add*/;
+    variable145 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144, variable145) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable143,COLOR_abstract_collection___SimpleCollection___add))(variable143, variable144) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable143) /*Array::add*/;
+    variable144 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable145 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145,  TAG_Int(122)) /*Array::add*/;
+    variable146 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145, variable146) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable144,COLOR_abstract_collection___SimpleCollection___add))(variable144, variable145) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable144) /*Array::add*/;
+    variable145 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable146 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146,  TAG_Int(107)) /*Array::add*/;
+    variable147 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146, variable147) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145, variable146) /*Array::add*/;
+    variable147 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147,  TAG_Int(177)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145, variable147) /*Array::add*/;
+    variable148 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable145,COLOR_abstract_collection___SimpleCollection___add))(variable145, variable148) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable145) /*Array::add*/;
+    variable146 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable147 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147,  TAG_Int(100)) /*Array::add*/;
+    variable148 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147, variable148) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146, variable147) /*Array::add*/;
+    variable148 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(178)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146, variable148) /*Array::add*/;
+    variable149 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable146,COLOR_abstract_collection___SimpleCollection___add))(variable146, variable149) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable146) /*Array::add*/;
+    variable147 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable148 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148,  TAG_Int(95)) /*Array::add*/;
+    variable149 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148, variable149) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147, variable148) /*Array::add*/;
+    variable149 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147, variable149) /*Array::add*/;
+    variable150 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(179)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147, variable150) /*Array::add*/;
+    variable151 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable147,COLOR_abstract_collection___SimpleCollection___add))(variable147, variable151) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable147) /*Array::add*/;
+    variable148 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable149 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149,  TAG_Int(95)) /*Array::add*/;
+    variable150 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149, variable150) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148, variable149) /*Array::add*/;
+    variable150 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148, variable150) /*Array::add*/;
+    variable151 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(180)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148, variable151) /*Array::add*/;
+    variable152 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable148,COLOR_abstract_collection___SimpleCollection___add))(variable148, variable152) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable148) /*Array::add*/;
+    variable149 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable150 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150,  TAG_Int(115)) /*Array::add*/;
+    variable151 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150, variable151) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149, variable150) /*Array::add*/;
+    variable151 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(181)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149, variable151) /*Array::add*/;
+    variable152 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable149,COLOR_abstract_collection___SimpleCollection___add))(variable149, variable152) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable149) /*Array::add*/;
+    variable150 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable151 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151,  TAG_Int(99)) /*Array::add*/;
+    variable152 = TAG_Int(-UNTAG_Int( TAG_Int(78)));
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151, variable152) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150, variable151) /*Array::add*/;
+    variable152 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(182)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150, variable152) /*Array::add*/;
+    variable153 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable150,COLOR_abstract_collection___SimpleCollection___add))(variable150, variable153) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable150) /*Array::add*/;
+    variable151 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable152 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152,  TAG_Int(100)) /*Array::add*/;
+    variable153 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152, variable153) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151, variable152) /*Array::add*/;
+    variable153 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(183)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151, variable153) /*Array::add*/;
+    variable154 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable151,COLOR_abstract_collection___SimpleCollection___add))(variable151, variable154) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable151) /*Array::add*/;
+    variable152 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable153 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153,  TAG_Int(116)) /*Array::add*/;
+    variable154 = TAG_Int(-UNTAG_Int( TAG_Int(107)));
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153, variable154) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152, variable153) /*Array::add*/;
+    variable154 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(184)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152, variable154) /*Array::add*/;
+    variable155 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable152,COLOR_abstract_collection___SimpleCollection___add))(variable152, variable155) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable152) /*Array::add*/;
+    variable153 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable154 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154,  TAG_Int(101)) /*Array::add*/;
+    variable155 = TAG_Int(-UNTAG_Int( TAG_Int(36)));
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154, variable155) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153, variable154) /*Array::add*/;
+    variable155 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(185)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153, variable155) /*Array::add*/;
+    variable156 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable153,COLOR_abstract_collection___SimpleCollection___add))(variable153, variable156) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable153) /*Array::add*/;
+    variable154 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable155 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155,  TAG_Int(98)) /*Array::add*/;
+    variable156 = TAG_Int(-UNTAG_Int( TAG_Int(98)));
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155, variable156) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154, variable155) /*Array::add*/;
+    variable156 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(186)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154, variable156) /*Array::add*/;
+    variable157 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable154,COLOR_abstract_collection___SimpleCollection___add))(variable154, variable157) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable154) /*Array::add*/;
+    variable155 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable156 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156,  TAG_Int(100)) /*Array::add*/;
+    variable157 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156, variable157) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155, variable156) /*Array::add*/;
+    variable157 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155, variable157) /*Array::add*/;
+    variable158 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable155,COLOR_abstract_collection___SimpleCollection___add))(variable155, variable158) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable155) /*Array::add*/;
+    variable156 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable157 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157,  TAG_Int(109)) /*Array::add*/;
+    variable158 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157, variable158) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156, variable157) /*Array::add*/;
+    variable158 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(188)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156, variable158) /*Array::add*/;
+    variable159 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable156,COLOR_abstract_collection___SimpleCollection___add))(variable156, variable159) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable156) /*Array::add*/;
+    variable157 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable158 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158,  TAG_Int(100)) /*Array::add*/;
+    variable159 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158, variable159) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157, variable158) /*Array::add*/;
+    variable159 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(189)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157, variable159) /*Array::add*/;
+    variable160 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable157,COLOR_abstract_collection___SimpleCollection___add))(variable157, variable160) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable157) /*Array::add*/;
+    variable158 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable159 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159,  TAG_Int(100)) /*Array::add*/;
+    variable160 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159, variable160) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158, variable159) /*Array::add*/;
+    variable160 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(190)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158, variable160) /*Array::add*/;
+    variable161 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable158,COLOR_abstract_collection___SimpleCollection___add))(variable158, variable161) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable158) /*Array::add*/;
+    variable159 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable160 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160,  TAG_Int(117)) /*Array::add*/;
+    variable161 = TAG_Int(-UNTAG_Int( TAG_Int(148)));
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160, variable161) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159, variable160) /*Array::add*/;
+    variable161 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(191)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159, variable161) /*Array::add*/;
+    variable162 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable159,COLOR_abstract_collection___SimpleCollection___add))(variable159, variable162) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable159) /*Array::add*/;
+    variable160 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable161 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161,  TAG_Int(122)) /*Array::add*/;
+    variable162 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161, variable162) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable160,COLOR_abstract_collection___SimpleCollection___add))(variable160, variable161) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable160) /*Array::add*/;
+    variable161 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable162 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162,  TAG_Int(107)) /*Array::add*/;
+    variable163 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162, variable163) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161, variable162) /*Array::add*/;
+    variable163 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163,  TAG_Int(192)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161, variable163) /*Array::add*/;
+    variable164 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable161,COLOR_abstract_collection___SimpleCollection___add))(variable161, variable164) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable161) /*Array::add*/;
+    variable162 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable163 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163,  TAG_Int(115)) /*Array::add*/;
+    variable164 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163, variable164) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162, variable163) /*Array::add*/;
+    variable164 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(193)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162, variable164) /*Array::add*/;
+    variable165 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable162,COLOR_abstract_collection___SimpleCollection___add))(variable162, variable165) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable162) /*Array::add*/;
+    variable163 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable164 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164,  TAG_Int(255)) /*Array::add*/;
+    variable165 = TAG_Int(-UNTAG_Int( TAG_Int(47)));
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164, variable165) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable163,COLOR_abstract_collection___SimpleCollection___add))(variable163, variable164) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable163) /*Array::add*/;
+    variable164 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable165 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165,  TAG_Int(115)) /*Array::add*/;
+    variable166 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165, variable166) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164, variable165) /*Array::add*/;
+    variable166 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166,  TAG_Int(194)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164, variable166) /*Array::add*/;
+    variable167 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable164,COLOR_abstract_collection___SimpleCollection___add))(variable164, variable167) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable164) /*Array::add*/;
+    variable165 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable166 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166,  TAG_Int(113)) /*Array::add*/;
+    variable167 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166, variable167) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165, variable166) /*Array::add*/;
+    variable167 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(195)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165, variable167) /*Array::add*/;
+    variable168 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable165,COLOR_abstract_collection___SimpleCollection___add))(variable165, variable168) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable165) /*Array::add*/;
+    variable166 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable167 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167,  TAG_Int(113)) /*Array::add*/;
+    variable168 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167, variable168) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166, variable167) /*Array::add*/;
+    variable168 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(196)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166, variable168) /*Array::add*/;
+    variable169 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable166,COLOR_abstract_collection___SimpleCollection___add))(variable166, variable169) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable166) /*Array::add*/;
+    variable167 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable168 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168,  TAG_Int(122)) /*Array::add*/;
+    variable169 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168, variable169) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable167,COLOR_abstract_collection___SimpleCollection___add))(variable167, variable168) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable167) /*Array::add*/;
+    variable168 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable169 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169,  TAG_Int(106)) /*Array::add*/;
+    variable170 = TAG_Int(-UNTAG_Int( TAG_Int(147)));
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169, variable170) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168, variable169) /*Array::add*/;
+    variable170 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170,  TAG_Int(197)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168, variable170) /*Array::add*/;
+    variable171 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable168,COLOR_abstract_collection___SimpleCollection___add))(variable168, variable171) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable168) /*Array::add*/;
+    variable169 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable170 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170,  TAG_Int(114)) /*Array::add*/;
+    variable171 = TAG_Int(-UNTAG_Int( TAG_Int(79)));
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170, variable171) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169, variable170) /*Array::add*/;
+    variable171 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(198)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169, variable171) /*Array::add*/;
+    variable172 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable169,COLOR_abstract_collection___SimpleCollection___add))(variable169, variable172) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable169) /*Array::add*/;
+    variable170 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable171 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171,  TAG_Int(104)) /*Array::add*/;
+    variable172 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171, variable172) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170, variable171) /*Array::add*/;
+    variable172 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(199)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170, variable172) /*Array::add*/;
+    variable173 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable170,COLOR_abstract_collection___SimpleCollection___add))(variable170, variable173) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable170) /*Array::add*/;
+    variable171 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable172 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172,  TAG_Int(122)) /*Array::add*/;
+    variable173 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172, variable173) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable171,COLOR_abstract_collection___SimpleCollection___add))(variable171, variable172) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable171) /*Array::add*/;
+    variable172 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable173 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173,  TAG_Int(113)) /*Array::add*/;
+    variable174 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173, variable174) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172, variable173) /*Array::add*/;
+    variable174 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174,  TAG_Int(200)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172, variable174) /*Array::add*/;
+    variable175 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable172,COLOR_abstract_collection___SimpleCollection___add))(variable172, variable175) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable172) /*Array::add*/;
+    variable173 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable174 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174,  TAG_Int(100)) /*Array::add*/;
+    variable175 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174, variable175) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173, variable174) /*Array::add*/;
+    variable175 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(201)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173, variable175) /*Array::add*/;
+    variable176 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable173,COLOR_abstract_collection___SimpleCollection___add))(variable173, variable176) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable173) /*Array::add*/;
+    variable174 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable175 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175,  TAG_Int(113)) /*Array::add*/;
+    variable176 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175, variable176) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174, variable175) /*Array::add*/;
+    variable176 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(202)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174, variable176) /*Array::add*/;
+    variable177 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable174,COLOR_abstract_collection___SimpleCollection___add))(variable174, variable177) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable174) /*Array::add*/;
+    variable175 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable176 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176,  TAG_Int(122)) /*Array::add*/;
+    variable177 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176, variable177) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable175,COLOR_abstract_collection___SimpleCollection___add))(variable175, variable176) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable175) /*Array::add*/;
+    variable176 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable177 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177,  TAG_Int(113)) /*Array::add*/;
+    variable178 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177, variable178) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176, variable177) /*Array::add*/;
+    variable178 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178,  TAG_Int(203)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176, variable178) /*Array::add*/;
+    variable179 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable176,COLOR_abstract_collection___SimpleCollection___add))(variable176, variable179) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable176) /*Array::add*/;
+    variable177 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable178 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178,  TAG_Int(116)) /*Array::add*/;
+    variable179 = TAG_Int(-UNTAG_Int( TAG_Int(107)));
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178, variable179) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177, variable178) /*Array::add*/;
+    variable179 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(204)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177, variable179) /*Array::add*/;
+    variable180 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable177,COLOR_abstract_collection___SimpleCollection___add))(variable177, variable180) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable177) /*Array::add*/;
+    variable178 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable179 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179,  TAG_Int(122)) /*Array::add*/;
+    variable180 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179, variable180) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable178,COLOR_abstract_collection___SimpleCollection___add))(variable178, variable179) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable178) /*Array::add*/;
+    variable179 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable180 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180,  TAG_Int(122)) /*Array::add*/;
+    variable181 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180, variable181) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable179,COLOR_abstract_collection___SimpleCollection___add))(variable179, variable180) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable179) /*Array::add*/;
+    variable180 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable181 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181,  TAG_Int(122)) /*Array::add*/;
+    variable182 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181, variable182) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable180,COLOR_abstract_collection___SimpleCollection___add))(variable180, variable181) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable180) /*Array::add*/;
+    variable181 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable182 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182,  TAG_Int(95)) /*Array::add*/;
+    variable183 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182, variable183) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181, variable182) /*Array::add*/;
+    variable183 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183,  TAG_Int(205)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181, variable183) /*Array::add*/;
+    variable184 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable181,COLOR_abstract_collection___SimpleCollection___add))(variable181, variable184) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable181) /*Array::add*/;
+    variable182 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable183 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183,  TAG_Int(95)) /*Array::add*/;
+    variable184 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183, variable184) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182, variable183) /*Array::add*/;
+    variable184 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(206)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182, variable184) /*Array::add*/;
+    variable185 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable182,COLOR_abstract_collection___SimpleCollection___add))(variable182, variable185) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable182) /*Array::add*/;
+    variable183 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable184 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184,  TAG_Int(100)) /*Array::add*/;
+    variable185 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184, variable185) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183, variable184) /*Array::add*/;
+    variable185 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(207)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183, variable185) /*Array::add*/;
+    variable186 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable183,COLOR_abstract_collection___SimpleCollection___add))(variable183, variable186) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable183) /*Array::add*/;
+    variable184 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable185 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185,  TAG_Int(95)) /*Array::add*/;
+    variable186 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185, variable186) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184, variable185) /*Array::add*/;
+    variable186 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(208)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184, variable186) /*Array::add*/;
+    variable187 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable184,COLOR_abstract_collection___SimpleCollection___add))(variable184, variable187) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable184) /*Array::add*/;
+    variable185 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable186 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186,  TAG_Int(101)) /*Array::add*/;
+    variable187 = TAG_Int(-UNTAG_Int( TAG_Int(36)));
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186, variable187) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185, variable186) /*Array::add*/;
+    variable187 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(209)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185, variable187) /*Array::add*/;
+    variable188 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable185,COLOR_abstract_collection___SimpleCollection___add))(variable185, variable188) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable185) /*Array::add*/;
+    variable186 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable187 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187,  TAG_Int(113)) /*Array::add*/;
+    variable188 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187, variable188) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186, variable187) /*Array::add*/;
+    variable188 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(210)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186, variable188) /*Array::add*/;
+    variable189 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable186,COLOR_abstract_collection___SimpleCollection___add))(variable186, variable189) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable186) /*Array::add*/;
+    variable187 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable188 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188,  TAG_Int(122)) /*Array::add*/;
+    variable189 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188, variable189) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable187,COLOR_abstract_collection___SimpleCollection___add))(variable187, variable188) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable187) /*Array::add*/;
+    variable188 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable189 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189,  TAG_Int(104)) /*Array::add*/;
+    variable190 = TAG_Int(-UNTAG_Int( TAG_Int(92)));
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189, variable190) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188, variable189) /*Array::add*/;
+    variable190 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190,  TAG_Int(211)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188, variable190) /*Array::add*/;
+    variable191 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable188,COLOR_abstract_collection___SimpleCollection___add))(variable188, variable191) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable188) /*Array::add*/;
+    variable189 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable190 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190,  TAG_Int(113)) /*Array::add*/;
+    variable191 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190, variable191) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189, variable190) /*Array::add*/;
+    variable191 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(212)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189, variable191) /*Array::add*/;
+    variable192 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable189,COLOR_abstract_collection___SimpleCollection___add))(variable189, variable192) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable189) /*Array::add*/;
+    variable190 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable191 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191,  TAG_Int(122)) /*Array::add*/;
+    variable192 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191, variable192) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable190,COLOR_abstract_collection___SimpleCollection___add))(variable190, variable191) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable190) /*Array::add*/;
+    variable191 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable192 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192,  TAG_Int(122)) /*Array::add*/;
+    variable193 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192, variable193) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable191,COLOR_abstract_collection___SimpleCollection___add))(variable191, variable192) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable191) /*Array::add*/;
+    variable192 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable193 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193,  TAG_Int(122)) /*Array::add*/;
+    variable194 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193, variable194) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable192,COLOR_abstract_collection___SimpleCollection___add))(variable192, variable193) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable192) /*Array::add*/;
+    variable193 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable194 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194,  TAG_Int(100)) /*Array::add*/;
+    variable195 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194, variable195) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193, variable194) /*Array::add*/;
+    variable195 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195,  TAG_Int(213)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193, variable195) /*Array::add*/;
+    variable196 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable193,COLOR_abstract_collection___SimpleCollection___add))(variable193, variable196) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable193) /*Array::add*/;
+    variable194 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable195 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195,  TAG_Int(100)) /*Array::add*/;
+    variable196 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195, variable196) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194, variable195) /*Array::add*/;
+    variable196 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(214)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194, variable196) /*Array::add*/;
+    variable197 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable194,COLOR_abstract_collection___SimpleCollection___add))(variable194, variable197) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable194) /*Array::add*/;
+    variable195 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable196 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196,  TAG_Int(95)) /*Array::add*/;
+    variable197 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196, variable197) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195, variable196) /*Array::add*/;
+    variable197 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(215)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195, variable197) /*Array::add*/;
+    variable198 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable195,COLOR_abstract_collection___SimpleCollection___add))(variable195, variable198) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable195) /*Array::add*/;
+    variable196 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable197 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197,  TAG_Int(122)) /*Array::add*/;
+    variable198 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197, variable198) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable196,COLOR_abstract_collection___SimpleCollection___add))(variable196, variable197) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable196) /*Array::add*/;
+    variable197 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable198 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198,  TAG_Int(95)) /*Array::add*/;
+    variable199 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198, variable199) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197, variable198) /*Array::add*/;
+    variable199 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199,  TAG_Int(216)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197, variable199) /*Array::add*/;
+    variable200 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable197,COLOR_abstract_collection___SimpleCollection___add))(variable197, variable200) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable197) /*Array::add*/;
+    variable198 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable199 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199,  TAG_Int(115)) /*Array::add*/;
+    variable200 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199, variable200) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198, variable199) /*Array::add*/;
+    variable200 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(217)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198, variable200) /*Array::add*/;
+    variable201 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable198,COLOR_abstract_collection___SimpleCollection___add))(variable198, variable201) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable198) /*Array::add*/;
+    variable199 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable200 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200,  TAG_Int(122)) /*Array::add*/;
+    variable201 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200, variable201) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable199,COLOR_abstract_collection___SimpleCollection___add))(variable199, variable200) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable199) /*Array::add*/;
+    variable200 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable201 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201,  TAG_Int(122)) /*Array::add*/;
+    variable202 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201, variable202) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable200,COLOR_abstract_collection___SimpleCollection___add))(variable200, variable201) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable200) /*Array::add*/;
+    variable201 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable202 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202,  TAG_Int(109)) /*Array::add*/;
+    variable203 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202, variable203) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201, variable202) /*Array::add*/;
+    variable203 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203,  TAG_Int(218)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201, variable203) /*Array::add*/;
+    variable204 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable201,COLOR_abstract_collection___SimpleCollection___add))(variable201, variable204) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable201) /*Array::add*/;
+    variable202 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable203 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203,  TAG_Int(109)) /*Array::add*/;
+    variable204 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203, variable204) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202, variable203) /*Array::add*/;
+    variable204 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(219)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202, variable204) /*Array::add*/;
+    variable205 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable202,COLOR_abstract_collection___SimpleCollection___add))(variable202, variable205) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable202) /*Array::add*/;
+    variable203 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable204 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204,  TAG_Int(122)) /*Array::add*/;
+    variable205 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204, variable205) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable203,COLOR_abstract_collection___SimpleCollection___add))(variable203, variable204) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable203) /*Array::add*/;
+    variable204 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable205 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205,  TAG_Int(115)) /*Array::add*/;
+    variable206 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable206) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204, variable205) /*Array::add*/;
+    variable206 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206,  TAG_Int(220)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204, variable206) /*Array::add*/;
+    variable207 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable204,COLOR_abstract_collection___SimpleCollection___add))(variable204, variable207) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable204) /*Array::add*/;
+    variable205 = NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
+    variable206 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206,  TAG_Int(101)) /*Array::add*/;
+    variable207 = TAG_Int(-UNTAG_Int( TAG_Int(36)));
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206, variable207) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable206) /*Array::add*/;
+    variable207 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable207) /*Array::add*/;
+    variable208 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable208) /*Array::add*/;
+    variable209 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(222)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable209) /*Array::add*/;
+    variable210 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable205,COLOR_abstract_collection___SimpleCollection___add))(variable205, variable210) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable205) /*Array::add*/;
+    variable206 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable207 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207,  TAG_Int(99)) /*Array::add*/;
+    variable208 = TAG_Int(-UNTAG_Int( TAG_Int(78)));
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207, variable208) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206, variable207) /*Array::add*/;
+    variable208 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(223)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206, variable208) /*Array::add*/;
+    variable209 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable206,COLOR_abstract_collection___SimpleCollection___add))(variable206, variable209) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable206) /*Array::add*/;
+    variable207 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
+    variable208 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208,  TAG_Int(95)) /*Array::add*/;
+    variable209 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208, variable209) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207, variable208) /*Array::add*/;
+    variable209 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207, variable209) /*Array::add*/;
+    variable210 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(224)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207, variable210) /*Array::add*/;
+    variable211 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable207,COLOR_abstract_collection___SimpleCollection___add))(variable207, variable211) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable207) /*Array::add*/;
+    variable208 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable209 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209,  TAG_Int(115)) /*Array::add*/;
+    variable210 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209, variable210) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208, variable209) /*Array::add*/;
+    variable210 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(225)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208, variable210) /*Array::add*/;
+    variable211 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable208,COLOR_abstract_collection___SimpleCollection___add))(variable208, variable211) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable208) /*Array::add*/;
+    variable209 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable210 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210,  TAG_Int(98)) /*Array::add*/;
+    variable211 = TAG_Int(-UNTAG_Int( TAG_Int(98)));
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210, variable211) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209, variable210) /*Array::add*/;
+    variable211 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(226)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209, variable211) /*Array::add*/;
+    variable212 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable209,COLOR_abstract_collection___SimpleCollection___add))(variable209, variable212) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable209) /*Array::add*/;
+    variable210 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable211 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211,  TAG_Int(97)) /*Array::add*/;
+    variable212 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211, variable212) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210, variable211) /*Array::add*/;
+    variable212 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(227)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210, variable212) /*Array::add*/;
+    variable213 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable210,COLOR_abstract_collection___SimpleCollection___add))(variable210, variable213) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable210) /*Array::add*/;
+    variable211 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable212 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212,  TAG_Int(122)) /*Array::add*/;
+    variable213 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212, variable213) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable211,COLOR_abstract_collection___SimpleCollection___add))(variable211, variable212) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable211) /*Array::add*/;
+    variable212 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable213 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213,  TAG_Int(109)) /*Array::add*/;
+    variable214 = TAG_Int(-UNTAG_Int( TAG_Int(39)));
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213, variable214) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212, variable213) /*Array::add*/;
+    variable214 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214,  TAG_Int(228)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212, variable214) /*Array::add*/;
+    variable215 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable212,COLOR_abstract_collection___SimpleCollection___add))(variable212, variable215) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable212) /*Array::add*/;
+    variable213 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable214 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214,  TAG_Int(95)) /*Array::add*/;
+    variable215 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214, variable215) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213, variable214) /*Array::add*/;
+    variable215 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(229)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213, variable215) /*Array::add*/;
+    variable216 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable213,COLOR_abstract_collection___SimpleCollection___add))(variable213, variable216) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable213) /*Array::add*/;
+    variable214 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable215 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215,  TAG_Int(122)) /*Array::add*/;
+    variable216 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215, variable216) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable214,COLOR_abstract_collection___SimpleCollection___add))(variable214, variable215) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable214) /*Array::add*/;
+    variable215 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable216 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216,  TAG_Int(113)) /*Array::add*/;
+    variable217 = TAG_Int(-UNTAG_Int( TAG_Int(30)));
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216, variable217) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215, variable216) /*Array::add*/;
+    variable217 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217,  TAG_Int(230)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215, variable217) /*Array::add*/;
+    variable218 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable215,COLOR_abstract_collection___SimpleCollection___add))(variable215, variable218) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable215) /*Array::add*/;
+    variable216 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable217 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217,  TAG_Int(122)) /*Array::add*/;
+    variable218 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217, variable218) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable216,COLOR_abstract_collection___SimpleCollection___add))(variable216, variable217) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable216) /*Array::add*/;
+    variable217 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable218 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218,  TAG_Int(97)) /*Array::add*/;
+    variable219 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218, variable219) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217, variable218) /*Array::add*/;
+    variable219 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219,  TAG_Int(231)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217, variable219) /*Array::add*/;
+    variable220 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable217,COLOR_abstract_collection___SimpleCollection___add))(variable217, variable220) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable217) /*Array::add*/;
+    variable218 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable219 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219,  TAG_Int(98)) /*Array::add*/;
+    variable220 = TAG_Int(-UNTAG_Int( TAG_Int(98)));
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219, variable220) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218, variable219) /*Array::add*/;
+    variable220 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(232)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218, variable220) /*Array::add*/;
+    variable221 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable218,COLOR_abstract_collection___SimpleCollection___add))(variable218, variable221) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable218) /*Array::add*/;
+    variable219 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable220 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220,  TAG_Int(122)) /*Array::add*/;
+    variable221 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220, variable221) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable219,COLOR_abstract_collection___SimpleCollection___add))(variable219, variable220) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable219) /*Array::add*/;
+    variable220 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable221 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221,  TAG_Int(116)) /*Array::add*/;
+    variable222 = TAG_Int(-UNTAG_Int( TAG_Int(107)));
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221, variable222) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220, variable221) /*Array::add*/;
+    variable222 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222,  TAG_Int(233)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220, variable222) /*Array::add*/;
+    variable223 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable220,COLOR_abstract_collection___SimpleCollection___add))(variable220, variable223) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable220) /*Array::add*/;
+    variable221 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable222 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222,  TAG_Int(122)) /*Array::add*/;
+    variable223 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222, variable223) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable221,COLOR_abstract_collection___SimpleCollection___add))(variable221, variable222) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable221) /*Array::add*/;
+    variable222 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable223 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223,  TAG_Int(122)) /*Array::add*/;
+    variable224 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223, variable224) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable222,COLOR_abstract_collection___SimpleCollection___add))(variable222, variable223) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable222) /*Array::add*/;
+    variable223 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable224 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable224,COLOR_abstract_collection___SimpleCollection___add))(variable224,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable224,COLOR_abstract_collection___SimpleCollection___add))(variable224,  TAG_Int(95)) /*Array::add*/;
+    variable225 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable224,COLOR_abstract_collection___SimpleCollection___add))(variable224, variable225) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223, variable224) /*Array::add*/;
+    variable225 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225,  TAG_Int(234)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223, variable225) /*Array::add*/;
+    variable226 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable223,COLOR_abstract_collection___SimpleCollection___add))(variable223, variable226) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable223) /*Array::add*/;
+    variable224 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable225 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225,  TAG_Int(122)) /*Array::add*/;
+    variable226 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225, variable226) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable224,COLOR_abstract_collection___SimpleCollection___add))(variable224, variable225) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable224) /*Array::add*/;
+    variable225 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable226 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226,  TAG_Int(100)) /*Array::add*/;
+    variable227 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226, variable227) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225, variable226) /*Array::add*/;
+    variable227 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227,  TAG_Int(235)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225, variable227) /*Array::add*/;
+    variable228 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable225,COLOR_abstract_collection___SimpleCollection___add))(variable225, variable228) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable225) /*Array::add*/;
+    variable226 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable227 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227,  TAG_Int(100)) /*Array::add*/;
+    variable228 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227, variable228) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226, variable227) /*Array::add*/;
+    variable228 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(236)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226, variable228) /*Array::add*/;
+    variable229 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable226,COLOR_abstract_collection___SimpleCollection___add))(variable226, variable229) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable226) /*Array::add*/;
+    variable227 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable228 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228,  TAG_Int(100)) /*Array::add*/;
+    variable229 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228, variable229) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227, variable228) /*Array::add*/;
+    variable229 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(237)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227, variable229) /*Array::add*/;
+    variable230 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable227,COLOR_abstract_collection___SimpleCollection___add))(variable227, variable230) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable227) /*Array::add*/;
+    variable228 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable229 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229,  TAG_Int(115)) /*Array::add*/;
+    variable230 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229, variable230) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228, variable229) /*Array::add*/;
+    variable230 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(238)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228, variable230) /*Array::add*/;
+    variable231 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable228,COLOR_abstract_collection___SimpleCollection___add))(variable228, variable231) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable228) /*Array::add*/;
+    variable229 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable230 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230,  TAG_Int(107)) /*Array::add*/;
+    variable231 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230, variable231) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229, variable230) /*Array::add*/;
+    variable231 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(239)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229, variable231) /*Array::add*/;
+    variable232 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable229,COLOR_abstract_collection___SimpleCollection___add))(variable229, variable232) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable229) /*Array::add*/;
+    variable230 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable231 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231,  TAG_Int(122)) /*Array::add*/;
+    variable232 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231, variable232) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable230,COLOR_abstract_collection___SimpleCollection___add))(variable230, variable231) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable230) /*Array::add*/;
+    variable231 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable232 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232,  TAG_Int(107)) /*Array::add*/;
+    variable233 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232, variable233) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231, variable232) /*Array::add*/;
+    variable233 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233,  TAG_Int(240)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231, variable233) /*Array::add*/;
+    variable234 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable231,COLOR_abstract_collection___SimpleCollection___add))(variable231, variable234) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable231) /*Array::add*/;
+    variable232 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable233 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233,  TAG_Int(114)) /*Array::add*/;
+    variable234 = TAG_Int(-UNTAG_Int( TAG_Int(79)));
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233, variable234) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232, variable233) /*Array::add*/;
+    variable234 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(241)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232, variable234) /*Array::add*/;
+    variable235 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable232,COLOR_abstract_collection___SimpleCollection___add))(variable232, variable235) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable232) /*Array::add*/;
+    variable233 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable234 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234,  TAG_Int(107)) /*Array::add*/;
+    variable235 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234, variable235) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233, variable234) /*Array::add*/;
+    variable235 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(242)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233, variable235) /*Array::add*/;
+    variable236 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable233,COLOR_abstract_collection___SimpleCollection___add))(variable233, variable236) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable233) /*Array::add*/;
+    variable234 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable235 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235,  TAG_Int(115)) /*Array::add*/;
+    variable236 = TAG_Int(-UNTAG_Int( TAG_Int(80)));
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235, variable236) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234, variable235) /*Array::add*/;
+    variable236 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(243)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234, variable236) /*Array::add*/;
+    variable237 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable234,COLOR_abstract_collection___SimpleCollection___add))(variable234, variable237) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable234) /*Array::add*/;
+    variable235 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable236 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236,  TAG_Int(100)) /*Array::add*/;
+    variable237 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236, variable237) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235, variable236) /*Array::add*/;
+    variable237 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(244)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235, variable237) /*Array::add*/;
+    variable238 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable235,COLOR_abstract_collection___SimpleCollection___add))(variable235, variable238) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable235) /*Array::add*/;
+    variable236 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable237 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237,  TAG_Int(98)) /*Array::add*/;
+    variable238 = TAG_Int(-UNTAG_Int( TAG_Int(98)));
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237, variable238) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236, variable237) /*Array::add*/;
+    variable238 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(245)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236, variable238) /*Array::add*/;
+    variable239 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable236,COLOR_abstract_collection___SimpleCollection___add))(variable236, variable239) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable236) /*Array::add*/;
+    variable237 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable238 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238,  TAG_Int(122)) /*Array::add*/;
+    variable239 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238, variable239) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable237,COLOR_abstract_collection___SimpleCollection___add))(variable237, variable238) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable237) /*Array::add*/;
+    variable238 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable239 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239,  TAG_Int(122)) /*Array::add*/;
+    variable240 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239, variable240) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable238,COLOR_abstract_collection___SimpleCollection___add))(variable238, variable239) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable238) /*Array::add*/;
+    variable239 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable240 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240,  TAG_Int(122)) /*Array::add*/;
+    variable241 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240, variable241) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable239,COLOR_abstract_collection___SimpleCollection___add))(variable239, variable240) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable239) /*Array::add*/;
+    variable240 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable241 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241,  TAG_Int(100)) /*Array::add*/;
+    variable242 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241, variable242) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240, variable241) /*Array::add*/;
+    variable242 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242,  TAG_Int(246)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240, variable242) /*Array::add*/;
+    variable243 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable240,COLOR_abstract_collection___SimpleCollection___add))(variable240, variable243) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable240) /*Array::add*/;
+    variable241 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable242 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242,  TAG_Int(100)) /*Array::add*/;
+    variable243 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242, variable243) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241, variable242) /*Array::add*/;
+    variable243 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(247)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241, variable243) /*Array::add*/;
+    variable244 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable241,COLOR_abstract_collection___SimpleCollection___add))(variable241, variable244) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable241) /*Array::add*/;
+    variable242 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable243 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243,  TAG_Int(122)) /*Array::add*/;
+    variable244 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243, variable244) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable242,COLOR_abstract_collection___SimpleCollection___add))(variable242, variable243) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable242) /*Array::add*/;
+    variable243 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable244 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244,  TAG_Int(95)) /*Array::add*/;
+    variable245 = TAG_Int(-UNTAG_Int( TAG_Int(29)));
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244, variable245) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243, variable244) /*Array::add*/;
+    variable245 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245,  TAG_Int(248)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243, variable245) /*Array::add*/;
+    variable246 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable243,COLOR_abstract_collection___SimpleCollection___add))(variable243, variable246) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable243) /*Array::add*/;
+    variable244 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable245 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245,  TAG_Int(100)) /*Array::add*/;
+    variable246 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245, variable246) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244, variable245) /*Array::add*/;
+    variable246 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(249)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244, variable246) /*Array::add*/;
+    variable247 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable244,COLOR_abstract_collection___SimpleCollection___add))(variable244, variable247) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable244) /*Array::add*/;
+    variable245 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable246 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246,  TAG_Int(122)) /*Array::add*/;
+    variable247 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246, variable247) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable245,COLOR_abstract_collection___SimpleCollection___add))(variable245, variable246) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable245) /*Array::add*/;
+    variable246 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable247 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247,  TAG_Int(122)) /*Array::add*/;
+    variable248 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247, variable248) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable246,COLOR_abstract_collection___SimpleCollection___add))(variable246, variable247) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable246) /*Array::add*/;
+    variable247 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable248 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248,  TAG_Int(100)) /*Array::add*/;
+    variable249 = TAG_Int(-UNTAG_Int( TAG_Int(37)));
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248, variable249) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247, variable248) /*Array::add*/;
+    variable249 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249,  TAG_Int(250)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247, variable249) /*Array::add*/;
+    variable250 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable247,COLOR_abstract_collection___SimpleCollection___add))(variable247, variable250) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable247) /*Array::add*/;
+    variable248 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable249 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249,  TAG_Int(99)) /*Array::add*/;
+    variable250 = TAG_Int(-UNTAG_Int( TAG_Int(78)));
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249, variable250) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248, variable249) /*Array::add*/;
+    variable250 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(251)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248, variable250) /*Array::add*/;
+    variable251 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable248,COLOR_abstract_collection___SimpleCollection___add))(variable248, variable251) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable248) /*Array::add*/;
+    variable249 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable250 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250,  TAG_Int(122)) /*Array::add*/;
+    variable251 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250, variable251) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable249,COLOR_abstract_collection___SimpleCollection___add))(variable249, variable250) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable249) /*Array::add*/;
+    variable250 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
+    variable251 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251,  TAG_Int(107)) /*Array::add*/;
+    variable252 = TAG_Int(-UNTAG_Int( TAG_Int(31)));
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251, variable252) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250, variable251) /*Array::add*/;
+    variable252 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252,  TAG_Int(252)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250, variable252) /*Array::add*/;
+    variable253 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable250,COLOR_abstract_collection___SimpleCollection___add))(variable250, variable253) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable250) /*Array::add*/;
+    variable251 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable252 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252,  TAG_Int(122)) /*Array::add*/;
+    variable253 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252, variable253) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable251,COLOR_abstract_collection___SimpleCollection___add))(variable251, variable252) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable251) /*Array::add*/;
+    variable252 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable253 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253,  TAG_Int(122)) /*Array::add*/;
+    variable254 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253, variable254) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable252,COLOR_abstract_collection___SimpleCollection___add))(variable252, variable253) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable252) /*Array::add*/;
+    variable253 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable254 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable254,COLOR_abstract_collection___SimpleCollection___add))(variable254,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable254,COLOR_abstract_collection___SimpleCollection___add))(variable254,  TAG_Int(122)) /*Array::add*/;
+    variable255 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable254,COLOR_abstract_collection___SimpleCollection___add))(variable254, variable255) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable253,COLOR_abstract_collection___SimpleCollection___add))(variable253, variable254) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable253) /*Array::add*/;
+    variable254 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable255 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable255,COLOR_abstract_collection___SimpleCollection___add))(variable255,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable255,COLOR_abstract_collection___SimpleCollection___add))(variable255,  TAG_Int(122)) /*Array::add*/;
+    variable256 = TAG_Int(-UNTAG_Int( TAG_Int(35)));
+    ((array___AbstractArray___add_t)CALL(variable255,COLOR_abstract_collection___SimpleCollection___add))(variable255, variable256) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable254,COLOR_abstract_collection___SimpleCollection___add))(variable254, variable255) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable254) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    once_value_variable0_261 = variable0;
+    once_bool_variable0_261 = true;
+  }
+  ATTR_lexer___Lexer____goto_table( self) /*Lexer::_goto_table*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+val_t lexer___Lexer___nil_array(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::nil_array (src/parser//lexer.nit:3228,2--3230:33)"};
+  val_t variable0;
+  static val_t once_value_variable0_263; static int once_bool_variable0_263;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_263) variable0 = once_value_variable0_263;
+  else {
+    variable0 = NEW_array___Array___init(); /*new Array[Array[Int]]*/
+    once_value_variable0_263 = variable0;
+    once_bool_variable0_263 = true;
+  }
+  goto return_label262;
+  return_label262: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void lexer___Lexer___build_accept_table(val_t  self) {
+  struct trace_t trace = {NULL, "lexer::Lexer::build_accept_table (src/parser//lexer.nit:3234,2--3237:1251)"};
+  val_t variable0;
+  static val_t once_value_variable0_265; static int once_bool_variable0_265;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_265) variable0 = once_value_variable0_265;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
+    variable1 = NEW_array___Array___with_capacity(TAG_Int(253)); /*new Array[Int]*/
+    variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(0)) /*Array::add*/;
+    variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable3) /*Array::add*/;
+    variable4 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable4) /*Array::add*/;
+    variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable5) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(65)) /*Array::add*/;
+    variable6 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable6) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(49)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(63)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(64)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(76)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(51)) /*Array::add*/;
+    variable7 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable7) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    variable8 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable8) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(67)) /*Array::add*/;
+    variable9 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable9) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(79)) /*Array::add*/;
+    variable10 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable10) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(80)) /*Array::add*/;
+    variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable11) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(2)) /*Array::add*/;
+    variable12 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable12) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(56)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(77)) /*Array::add*/;
+    variable13 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable13) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(54)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(69)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(66)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    variable14 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable14) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(82)) /*Array::add*/;
+    variable15 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable15) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(81)) /*Array::add*/;
+    variable16 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable16) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(30)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    variable17 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable17) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(27)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(45)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(25)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(6)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(36)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(7)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(8)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    once_value_variable0_265 = variable0;
+    once_bool_variable0_265 = true;
+  }
+  ATTR_lexer___Lexer____accept_table( self) /*Lexer::_accept_table*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/lexer._sep.h b/c_src/lexer._sep.h
new file mode 100644 (file)
index 0000000..c7088f5
--- /dev/null
@@ -0,0 +1,609 @@
+#ifndef lexer__sep
+#define lexer__sep
+#include "parser_nodes._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Lexer[];
+extern const int SFT_lexer[];
+#define COLOR_lexer___Token____text SFT_lexer[0]
+#define COLOR_lexer___Token____filename SFT_lexer[1]
+#define COLOR_lexer___Token____line SFT_lexer[2]
+#define COLOR_lexer___Token____pos SFT_lexer[3]
+#define COLOR_lexer___Token___text SFT_lexer[4]
+#define COLOR_lexer___Token___text__eq SFT_lexer[5]
+#define COLOR_lexer___Token___filename SFT_lexer[6]
+#define COLOR_lexer___Token___line SFT_lexer[7]
+#define COLOR_lexer___Token___pos SFT_lexer[8]
+#define COLOR_lexer___Token___parser_index SFT_lexer[9]
+#define COLOR_lexer___TEol___init SFT_lexer[10]
+#define COLOR_lexer___TComment___init SFT_lexer[11]
+#define COLOR_lexer___TKwpackage___init SFT_lexer[12]
+#define COLOR_lexer___TKwimport___init SFT_lexer[13]
+#define COLOR_lexer___TKwclass___init SFT_lexer[14]
+#define COLOR_lexer___TKwabstract___init SFT_lexer[15]
+#define COLOR_lexer___TKwinterface___init SFT_lexer[16]
+#define COLOR_lexer___TKwuniversal___init SFT_lexer[17]
+#define COLOR_lexer___TKwspecial___init SFT_lexer[18]
+#define COLOR_lexer___TKwend___init SFT_lexer[19]
+#define COLOR_lexer___TKwmeth___init SFT_lexer[20]
+#define COLOR_lexer___TKwtype___init SFT_lexer[21]
+#define COLOR_lexer___TKwattr___init SFT_lexer[22]
+#define COLOR_lexer___TKwinit___init SFT_lexer[23]
+#define COLOR_lexer___TKwredef___init SFT_lexer[24]
+#define COLOR_lexer___TKwis___init SFT_lexer[25]
+#define COLOR_lexer___TKwdo___init SFT_lexer[26]
+#define COLOR_lexer___TKwreadable___init SFT_lexer[27]
+#define COLOR_lexer___TKwwritable___init SFT_lexer[28]
+#define COLOR_lexer___TKwvar___init SFT_lexer[29]
+#define COLOR_lexer___TKwintern___init SFT_lexer[30]
+#define COLOR_lexer___TKwextern___init SFT_lexer[31]
+#define COLOR_lexer___TKwprotected___init SFT_lexer[32]
+#define COLOR_lexer___TKwprivate___init SFT_lexer[33]
+#define COLOR_lexer___TKwintrude___init SFT_lexer[34]
+#define COLOR_lexer___TKwif___init SFT_lexer[35]
+#define COLOR_lexer___TKwthen___init SFT_lexer[36]
+#define COLOR_lexer___TKwelse___init SFT_lexer[37]
+#define COLOR_lexer___TKwwhile___init SFT_lexer[38]
+#define COLOR_lexer___TKwfor___init SFT_lexer[39]
+#define COLOR_lexer___TKwin___init SFT_lexer[40]
+#define COLOR_lexer___TKwand___init SFT_lexer[41]
+#define COLOR_lexer___TKwor___init SFT_lexer[42]
+#define COLOR_lexer___TKwnot___init SFT_lexer[43]
+#define COLOR_lexer___TKwreturn___init SFT_lexer[44]
+#define COLOR_lexer___TKwcontinue___init SFT_lexer[45]
+#define COLOR_lexer___TKwbreak___init SFT_lexer[46]
+#define COLOR_lexer___TKwabort___init SFT_lexer[47]
+#define COLOR_lexer___TKwassert___init SFT_lexer[48]
+#define COLOR_lexer___TKwnew___init SFT_lexer[49]
+#define COLOR_lexer___TKwisa___init SFT_lexer[50]
+#define COLOR_lexer___TKwonce___init SFT_lexer[51]
+#define COLOR_lexer___TKwsuper___init SFT_lexer[52]
+#define COLOR_lexer___TKwself___init SFT_lexer[53]
+#define COLOR_lexer___TKwtrue___init SFT_lexer[54]
+#define COLOR_lexer___TKwfalse___init SFT_lexer[55]
+#define COLOR_lexer___TKwnull___init SFT_lexer[56]
+#define COLOR_lexer___TOpar___init SFT_lexer[57]
+#define COLOR_lexer___TCpar___init SFT_lexer[58]
+#define COLOR_lexer___TObra___init SFT_lexer[59]
+#define COLOR_lexer___TCbra___init SFT_lexer[60]
+#define COLOR_lexer___TComma___init SFT_lexer[61]
+#define COLOR_lexer___TColumn___init SFT_lexer[62]
+#define COLOR_lexer___TQuad___init SFT_lexer[63]
+#define COLOR_lexer___TAssign___init SFT_lexer[64]
+#define COLOR_lexer___TPluseq___init SFT_lexer[65]
+#define COLOR_lexer___TMinuseq___init SFT_lexer[66]
+#define COLOR_lexer___TDotdotdot___init SFT_lexer[67]
+#define COLOR_lexer___TDotdot___init SFT_lexer[68]
+#define COLOR_lexer___TDot___init SFT_lexer[69]
+#define COLOR_lexer___TPlus___init SFT_lexer[70]
+#define COLOR_lexer___TMinus___init SFT_lexer[71]
+#define COLOR_lexer___TStar___init SFT_lexer[72]
+#define COLOR_lexer___TSlash___init SFT_lexer[73]
+#define COLOR_lexer___TPercent___init SFT_lexer[74]
+#define COLOR_lexer___TEq___init SFT_lexer[75]
+#define COLOR_lexer___TNe___init SFT_lexer[76]
+#define COLOR_lexer___TLt___init SFT_lexer[77]
+#define COLOR_lexer___TLe___init SFT_lexer[78]
+#define COLOR_lexer___TGt___init SFT_lexer[79]
+#define COLOR_lexer___TGe___init SFT_lexer[80]
+#define COLOR_lexer___TStarship___init SFT_lexer[81]
+#define COLOR_lexer___TClassid___init SFT_lexer[82]
+#define COLOR_lexer___TId___init SFT_lexer[83]
+#define COLOR_lexer___TAttrid___init SFT_lexer[84]
+#define COLOR_lexer___TNumber___init SFT_lexer[85]
+#define COLOR_lexer___TFloat___init SFT_lexer[86]
+#define COLOR_lexer___TChar___init SFT_lexer[87]
+#define COLOR_lexer___TString___init SFT_lexer[88]
+#define COLOR_lexer___TStartString___init SFT_lexer[89]
+#define COLOR_lexer___TMidString___init SFT_lexer[90]
+#define COLOR_lexer___TEndString___init SFT_lexer[91]
+#define COLOR_lexer___EOF___init SFT_lexer[92]
+#define COLOR_lexer___PError____message SFT_lexer[93]
+#define COLOR_lexer___PError___message SFT_lexer[94]
+#define COLOR_lexer___PError___message__eq SFT_lexer[95]
+#define COLOR_lexer___PError___init_error SFT_lexer[96]
+#define ID_Lexer SFT_lexer[97]
+#define COLOR_Lexer SFT_lexer[98]
+#define COLOR_lexer___Lexer____token SFT_lexer[99]
+#define COLOR_lexer___Lexer____state SFT_lexer[100]
+#define COLOR_lexer___Lexer____filename SFT_lexer[101]
+#define COLOR_lexer___Lexer____stream SFT_lexer[102]
+#define COLOR_lexer___Lexer____stream_buf SFT_lexer[103]
+#define COLOR_lexer___Lexer____stream_pos SFT_lexer[104]
+#define COLOR_lexer___Lexer____line SFT_lexer[105]
+#define COLOR_lexer___Lexer____pos SFT_lexer[106]
+#define COLOR_lexer___Lexer____cr SFT_lexer[107]
+#define COLOR_lexer___Lexer____eof SFT_lexer[108]
+#define COLOR_lexer___Lexer____text SFT_lexer[109]
+#define COLOR_lexer___Lexer____goto_table SFT_lexer[110]
+#define COLOR_lexer___Lexer____accept_table SFT_lexer[111]
+#define INIT_TABLE_POS_Lexer SFT_lexer[112]
+#define COLOR_lexer___Lexer___filename SFT_lexer[113]
+#define COLOR_lexer___Lexer___state_initial SFT_lexer[114]
+#define COLOR_lexer___Lexer___init SFT_lexer[115]
+#define COLOR_lexer___Lexer___peek SFT_lexer[116]
+#define COLOR_lexer___Lexer___next SFT_lexer[117]
+#define COLOR_lexer___Lexer___get_token SFT_lexer[118]
+#define COLOR_lexer___Lexer___get_char SFT_lexer[119]
+#define COLOR_lexer___Lexer___push_back SFT_lexer[120]
+#define COLOR_lexer___Lexer___build_goto_table SFT_lexer[121]
+#define COLOR_lexer___Lexer___nil_array SFT_lexer[122]
+#define COLOR_lexer___Lexer___build_accept_table SFT_lexer[123]
+#define ATTR_lexer___Token____text(recv) ATTR(recv, COLOR_lexer___Token____text)
+typedef val_t (* lexer___Token___text_t)(val_t  self);
+val_t lexer___Token___text(val_t  self);
+typedef void (* lexer___Token___text__eq_t)(val_t  self, val_t  param0);
+void lexer___Token___text__eq(val_t  self, val_t  param0);
+#define ATTR_lexer___Token____filename(recv) ATTR(recv, COLOR_lexer___Token____filename)
+typedef val_t (* lexer___Token___filename_t)(val_t  self);
+val_t lexer___Token___filename(val_t  self);
+#define ATTR_lexer___Token____line(recv) ATTR(recv, COLOR_lexer___Token____line)
+typedef val_t (* lexer___Token___line_t)(val_t  self);
+val_t lexer___Token___line(val_t  self);
+#define ATTR_lexer___Token____pos(recv) ATTR(recv, COLOR_lexer___Token____pos)
+typedef val_t (* lexer___Token___pos_t)(val_t  self);
+val_t lexer___Token___pos(val_t  self);
+typedef val_t (* lexer___Token___parser_index_t)(val_t  self);
+val_t lexer___Token___parser_index(val_t  self);
+typedef val_t (* lexer___Token___to_s_t)(val_t  self);
+val_t lexer___Token___to_s(val_t  self);
+typedef val_t (* lexer___TEol___parser_index_t)(val_t  self);
+val_t lexer___TEol___parser_index(val_t  self);
+typedef void (* lexer___TEol___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TEol___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TEol___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TComment___parser_index_t)(val_t  self);
+val_t lexer___TComment___parser_index(val_t  self);
+typedef void (* lexer___TComment___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TComment___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TComment___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TKwpackage___parser_index_t)(val_t  self);
+val_t lexer___TKwpackage___parser_index(val_t  self);
+typedef void (* lexer___TKwpackage___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwpackage___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwpackage___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwimport___parser_index_t)(val_t  self);
+val_t lexer___TKwimport___parser_index(val_t  self);
+typedef void (* lexer___TKwimport___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwimport___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwimport___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwclass___parser_index_t)(val_t  self);
+val_t lexer___TKwclass___parser_index(val_t  self);
+typedef void (* lexer___TKwclass___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwclass___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwclass___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwabstract___parser_index_t)(val_t  self);
+val_t lexer___TKwabstract___parser_index(val_t  self);
+typedef void (* lexer___TKwabstract___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwabstract___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwabstract___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwinterface___parser_index_t)(val_t  self);
+val_t lexer___TKwinterface___parser_index(val_t  self);
+typedef void (* lexer___TKwinterface___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwinterface___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwinterface___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwuniversal___parser_index_t)(val_t  self);
+val_t lexer___TKwuniversal___parser_index(val_t  self);
+typedef void (* lexer___TKwuniversal___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwuniversal___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwuniversal___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwspecial___parser_index_t)(val_t  self);
+val_t lexer___TKwspecial___parser_index(val_t  self);
+typedef void (* lexer___TKwspecial___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwspecial___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwspecial___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwend___parser_index_t)(val_t  self);
+val_t lexer___TKwend___parser_index(val_t  self);
+typedef void (* lexer___TKwend___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwend___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwend___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwmeth___parser_index_t)(val_t  self);
+val_t lexer___TKwmeth___parser_index(val_t  self);
+typedef void (* lexer___TKwmeth___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwmeth___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwmeth___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwtype___parser_index_t)(val_t  self);
+val_t lexer___TKwtype___parser_index(val_t  self);
+typedef void (* lexer___TKwtype___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwtype___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwtype___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwattr___parser_index_t)(val_t  self);
+val_t lexer___TKwattr___parser_index(val_t  self);
+typedef void (* lexer___TKwattr___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwattr___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwattr___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwinit___parser_index_t)(val_t  self);
+val_t lexer___TKwinit___parser_index(val_t  self);
+typedef void (* lexer___TKwinit___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwinit___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwinit___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwredef___parser_index_t)(val_t  self);
+val_t lexer___TKwredef___parser_index(val_t  self);
+typedef void (* lexer___TKwredef___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwredef___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwredef___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwis___parser_index_t)(val_t  self);
+val_t lexer___TKwis___parser_index(val_t  self);
+typedef void (* lexer___TKwis___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwis___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwis___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwdo___parser_index_t)(val_t  self);
+val_t lexer___TKwdo___parser_index(val_t  self);
+typedef void (* lexer___TKwdo___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwdo___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwdo___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwreadable___parser_index_t)(val_t  self);
+val_t lexer___TKwreadable___parser_index(val_t  self);
+typedef void (* lexer___TKwreadable___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwreadable___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwreadable___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwwritable___parser_index_t)(val_t  self);
+val_t lexer___TKwwritable___parser_index(val_t  self);
+typedef void (* lexer___TKwwritable___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwwritable___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwwritable___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwvar___parser_index_t)(val_t  self);
+val_t lexer___TKwvar___parser_index(val_t  self);
+typedef void (* lexer___TKwvar___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwvar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwvar___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwintern___parser_index_t)(val_t  self);
+val_t lexer___TKwintern___parser_index(val_t  self);
+typedef void (* lexer___TKwintern___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwintern___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwintern___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwextern___parser_index_t)(val_t  self);
+val_t lexer___TKwextern___parser_index(val_t  self);
+typedef void (* lexer___TKwextern___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwextern___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwextern___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwprotected___parser_index_t)(val_t  self);
+val_t lexer___TKwprotected___parser_index(val_t  self);
+typedef void (* lexer___TKwprotected___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwprotected___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwprotected___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwprivate___parser_index_t)(val_t  self);
+val_t lexer___TKwprivate___parser_index(val_t  self);
+typedef void (* lexer___TKwprivate___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwprivate___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwprivate___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwintrude___parser_index_t)(val_t  self);
+val_t lexer___TKwintrude___parser_index(val_t  self);
+typedef void (* lexer___TKwintrude___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwintrude___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwintrude___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwif___parser_index_t)(val_t  self);
+val_t lexer___TKwif___parser_index(val_t  self);
+typedef void (* lexer___TKwif___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwif___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwif___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwthen___parser_index_t)(val_t  self);
+val_t lexer___TKwthen___parser_index(val_t  self);
+typedef void (* lexer___TKwthen___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwthen___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwthen___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwelse___parser_index_t)(val_t  self);
+val_t lexer___TKwelse___parser_index(val_t  self);
+typedef void (* lexer___TKwelse___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwelse___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwelse___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwwhile___parser_index_t)(val_t  self);
+val_t lexer___TKwwhile___parser_index(val_t  self);
+typedef void (* lexer___TKwwhile___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwwhile___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwwhile___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwfor___parser_index_t)(val_t  self);
+val_t lexer___TKwfor___parser_index(val_t  self);
+typedef void (* lexer___TKwfor___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwfor___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwfor___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwin___parser_index_t)(val_t  self);
+val_t lexer___TKwin___parser_index(val_t  self);
+typedef void (* lexer___TKwin___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwin___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwin___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwand___parser_index_t)(val_t  self);
+val_t lexer___TKwand___parser_index(val_t  self);
+typedef void (* lexer___TKwand___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwand___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwand___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwor___parser_index_t)(val_t  self);
+val_t lexer___TKwor___parser_index(val_t  self);
+typedef void (* lexer___TKwor___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwor___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwor___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwnot___parser_index_t)(val_t  self);
+val_t lexer___TKwnot___parser_index(val_t  self);
+typedef void (* lexer___TKwnot___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwnot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwnot___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwreturn___parser_index_t)(val_t  self);
+val_t lexer___TKwreturn___parser_index(val_t  self);
+typedef void (* lexer___TKwreturn___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwreturn___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwreturn___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwcontinue___parser_index_t)(val_t  self);
+val_t lexer___TKwcontinue___parser_index(val_t  self);
+typedef void (* lexer___TKwcontinue___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwcontinue___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwcontinue___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwbreak___parser_index_t)(val_t  self);
+val_t lexer___TKwbreak___parser_index(val_t  self);
+typedef void (* lexer___TKwbreak___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwbreak___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwbreak___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwabort___parser_index_t)(val_t  self);
+val_t lexer___TKwabort___parser_index(val_t  self);
+typedef void (* lexer___TKwabort___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwabort___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwabort___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwassert___parser_index_t)(val_t  self);
+val_t lexer___TKwassert___parser_index(val_t  self);
+typedef void (* lexer___TKwassert___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwassert___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwassert___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwnew___parser_index_t)(val_t  self);
+val_t lexer___TKwnew___parser_index(val_t  self);
+typedef void (* lexer___TKwnew___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwnew___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwnew___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwisa___parser_index_t)(val_t  self);
+val_t lexer___TKwisa___parser_index(val_t  self);
+typedef void (* lexer___TKwisa___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwisa___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwisa___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwonce___parser_index_t)(val_t  self);
+val_t lexer___TKwonce___parser_index(val_t  self);
+typedef void (* lexer___TKwonce___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwonce___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwonce___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwsuper___parser_index_t)(val_t  self);
+val_t lexer___TKwsuper___parser_index(val_t  self);
+typedef void (* lexer___TKwsuper___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwsuper___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwsuper___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwself___parser_index_t)(val_t  self);
+val_t lexer___TKwself___parser_index(val_t  self);
+typedef void (* lexer___TKwself___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwself___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwself___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwtrue___parser_index_t)(val_t  self);
+val_t lexer___TKwtrue___parser_index(val_t  self);
+typedef void (* lexer___TKwtrue___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwtrue___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwtrue___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwfalse___parser_index_t)(val_t  self);
+val_t lexer___TKwfalse___parser_index(val_t  self);
+typedef void (* lexer___TKwfalse___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwfalse___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwfalse___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TKwnull___parser_index_t)(val_t  self);
+val_t lexer___TKwnull___parser_index(val_t  self);
+typedef void (* lexer___TKwnull___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TKwnull___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TKwnull___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TOpar___parser_index_t)(val_t  self);
+val_t lexer___TOpar___parser_index(val_t  self);
+typedef void (* lexer___TOpar___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TOpar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TOpar___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TCpar___parser_index_t)(val_t  self);
+val_t lexer___TCpar___parser_index(val_t  self);
+typedef void (* lexer___TCpar___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TCpar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TCpar___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TObra___parser_index_t)(val_t  self);
+val_t lexer___TObra___parser_index(val_t  self);
+typedef void (* lexer___TObra___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TObra___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TObra___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TCbra___parser_index_t)(val_t  self);
+val_t lexer___TCbra___parser_index(val_t  self);
+typedef void (* lexer___TCbra___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TCbra___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TCbra___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TComma___parser_index_t)(val_t  self);
+val_t lexer___TComma___parser_index(val_t  self);
+typedef void (* lexer___TComma___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TComma___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TComma___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TColumn___parser_index_t)(val_t  self);
+val_t lexer___TColumn___parser_index(val_t  self);
+typedef void (* lexer___TColumn___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TColumn___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TColumn___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TQuad___parser_index_t)(val_t  self);
+val_t lexer___TQuad___parser_index(val_t  self);
+typedef void (* lexer___TQuad___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TQuad___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TQuad___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TAssign___parser_index_t)(val_t  self);
+val_t lexer___TAssign___parser_index(val_t  self);
+typedef void (* lexer___TAssign___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TAssign___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TAssign___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TPluseq___parser_index_t)(val_t  self);
+val_t lexer___TPluseq___parser_index(val_t  self);
+typedef void (* lexer___TPluseq___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TPluseq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TPluseq___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TMinuseq___parser_index_t)(val_t  self);
+val_t lexer___TMinuseq___parser_index(val_t  self);
+typedef void (* lexer___TMinuseq___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TMinuseq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TMinuseq___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TDotdotdot___parser_index_t)(val_t  self);
+val_t lexer___TDotdotdot___parser_index(val_t  self);
+typedef void (* lexer___TDotdotdot___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TDotdotdot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TDotdotdot___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TDotdot___parser_index_t)(val_t  self);
+val_t lexer___TDotdot___parser_index(val_t  self);
+typedef void (* lexer___TDotdot___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TDotdot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TDotdot___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TDot___parser_index_t)(val_t  self);
+val_t lexer___TDot___parser_index(val_t  self);
+typedef void (* lexer___TDot___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TDot___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TDot___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TPlus___parser_index_t)(val_t  self);
+val_t lexer___TPlus___parser_index(val_t  self);
+typedef void (* lexer___TPlus___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TPlus___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TPlus___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TMinus___parser_index_t)(val_t  self);
+val_t lexer___TMinus___parser_index(val_t  self);
+typedef void (* lexer___TMinus___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TMinus___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TMinus___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TStar___parser_index_t)(val_t  self);
+val_t lexer___TStar___parser_index(val_t  self);
+typedef void (* lexer___TStar___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TStar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TStar___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TSlash___parser_index_t)(val_t  self);
+val_t lexer___TSlash___parser_index(val_t  self);
+typedef void (* lexer___TSlash___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TSlash___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TSlash___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TPercent___parser_index_t)(val_t  self);
+val_t lexer___TPercent___parser_index(val_t  self);
+typedef void (* lexer___TPercent___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TPercent___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TPercent___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TEq___parser_index_t)(val_t  self);
+val_t lexer___TEq___parser_index(val_t  self);
+typedef void (* lexer___TEq___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TEq___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TEq___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TNe___parser_index_t)(val_t  self);
+val_t lexer___TNe___parser_index(val_t  self);
+typedef void (* lexer___TNe___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TNe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TNe___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TLt___parser_index_t)(val_t  self);
+val_t lexer___TLt___parser_index(val_t  self);
+typedef void (* lexer___TLt___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TLt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TLt___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TLe___parser_index_t)(val_t  self);
+val_t lexer___TLe___parser_index(val_t  self);
+typedef void (* lexer___TLe___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TLe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TLe___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TGt___parser_index_t)(val_t  self);
+val_t lexer___TGt___parser_index(val_t  self);
+typedef void (* lexer___TGt___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TGt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TGt___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TGe___parser_index_t)(val_t  self);
+val_t lexer___TGe___parser_index(val_t  self);
+typedef void (* lexer___TGe___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TGe___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TGe___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TStarship___parser_index_t)(val_t  self);
+val_t lexer___TStarship___parser_index(val_t  self);
+typedef void (* lexer___TStarship___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___TStarship___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___TStarship___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* lexer___TClassid___parser_index_t)(val_t  self);
+val_t lexer___TClassid___parser_index(val_t  self);
+typedef void (* lexer___TClassid___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TClassid___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TClassid___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TId___parser_index_t)(val_t  self);
+val_t lexer___TId___parser_index(val_t  self);
+typedef void (* lexer___TId___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TId___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TId___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TAttrid___parser_index_t)(val_t  self);
+val_t lexer___TAttrid___parser_index(val_t  self);
+typedef void (* lexer___TAttrid___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TAttrid___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TAttrid___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TNumber___parser_index_t)(val_t  self);
+val_t lexer___TNumber___parser_index(val_t  self);
+typedef void (* lexer___TNumber___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TNumber___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TNumber___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TFloat___parser_index_t)(val_t  self);
+val_t lexer___TFloat___parser_index(val_t  self);
+typedef void (* lexer___TFloat___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TFloat___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TFloat___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TChar___parser_index_t)(val_t  self);
+val_t lexer___TChar___parser_index(val_t  self);
+typedef void (* lexer___TChar___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TChar___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TChar___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TString___parser_index_t)(val_t  self);
+val_t lexer___TString___parser_index(val_t  self);
+typedef void (* lexer___TString___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TString___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TStartString___parser_index_t)(val_t  self);
+val_t lexer___TStartString___parser_index(val_t  self);
+typedef void (* lexer___TStartString___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TStartString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TStartString___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TMidString___parser_index_t)(val_t  self);
+val_t lexer___TMidString___parser_index(val_t  self);
+typedef void (* lexer___TMidString___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TMidString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TMidString___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___TEndString___parser_index_t)(val_t  self);
+val_t lexer___TEndString___parser_index(val_t  self);
+typedef void (* lexer___TEndString___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___TEndString___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___TEndString___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* lexer___EOF___parser_index_t)(val_t  self);
+val_t lexer___EOF___parser_index(val_t  self);
+typedef void (* lexer___EOF___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void lexer___EOF___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_lexer___EOF___init(val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_lexer___PError____message(recv) ATTR(recv, COLOR_lexer___PError____message)
+typedef val_t (* lexer___PError___message_t)(val_t  self);
+val_t lexer___PError___message(val_t  self);
+typedef void (* lexer___PError___message__eq_t)(val_t  self, val_t  param0);
+void lexer___PError___message__eq(val_t  self, val_t  param0);
+typedef void (* lexer___PError___init_error_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void lexer___PError___init_error(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_lexer___PError___init_error(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_lexer___Lexer____token(recv) ATTR(recv, COLOR_lexer___Lexer____token)
+#define ATTR_lexer___Lexer____state(recv) ATTR(recv, COLOR_lexer___Lexer____state)
+#define ATTR_lexer___Lexer____filename(recv) ATTR(recv, COLOR_lexer___Lexer____filename)
+typedef val_t (* lexer___Lexer___filename_t)(val_t  self);
+val_t lexer___Lexer___filename(val_t  self);
+#define ATTR_lexer___Lexer____stream(recv) ATTR(recv, COLOR_lexer___Lexer____stream)
+#define ATTR_lexer___Lexer____stream_buf(recv) ATTR(recv, COLOR_lexer___Lexer____stream_buf)
+#define ATTR_lexer___Lexer____stream_pos(recv) ATTR(recv, COLOR_lexer___Lexer____stream_pos)
+#define ATTR_lexer___Lexer____line(recv) ATTR(recv, COLOR_lexer___Lexer____line)
+#define ATTR_lexer___Lexer____pos(recv) ATTR(recv, COLOR_lexer___Lexer____pos)
+#define ATTR_lexer___Lexer____cr(recv) ATTR(recv, COLOR_lexer___Lexer____cr)
+#define ATTR_lexer___Lexer____eof(recv) ATTR(recv, COLOR_lexer___Lexer____eof)
+#define ATTR_lexer___Lexer____text(recv) ATTR(recv, COLOR_lexer___Lexer____text)
+typedef val_t (* lexer___Lexer___state_initial_t)(val_t  self);
+val_t lexer___Lexer___state_initial(val_t  self);
+typedef void (* lexer___Lexer___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void lexer___Lexer___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_lexer___Lexer___init(val_t  param0, val_t  param1);
+typedef val_t (* lexer___Lexer___peek_t)(val_t  self);
+val_t lexer___Lexer___peek(val_t  self);
+typedef val_t (* lexer___Lexer___next_t)(val_t  self);
+val_t lexer___Lexer___next(val_t  self);
+typedef val_t (* lexer___Lexer___get_token_t)(val_t  self);
+val_t lexer___Lexer___get_token(val_t  self);
+typedef val_t (* lexer___Lexer___get_char_t)(val_t  self);
+val_t lexer___Lexer___get_char(val_t  self);
+typedef void (* lexer___Lexer___push_back_t)(val_t  self, val_t  param0);
+void lexer___Lexer___push_back(val_t  self, val_t  param0);
+#define ATTR_lexer___Lexer____goto_table(recv) ATTR(recv, COLOR_lexer___Lexer____goto_table)
+typedef void (* lexer___Lexer___build_goto_table_t)(val_t  self);
+void lexer___Lexer___build_goto_table(val_t  self);
+typedef val_t (* lexer___Lexer___nil_array_t)(val_t  self);
+val_t lexer___Lexer___nil_array(val_t  self);
+#define ATTR_lexer___Lexer____accept_table(recv) ATTR(recv, COLOR_lexer___Lexer____accept_table)
+typedef void (* lexer___Lexer___build_accept_table_t)(val_t  self);
+void lexer___Lexer___build_accept_table(val_t  self);
+#endif
diff --git a/c_src/list._sep.c b/c_src/list._sep.c
new file mode 100644 (file)
index 0000000..df434f4
--- /dev/null
@@ -0,0 +1,624 @@
+#include "list._sep.h"
+val_t list___List_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::[] (bin/../lib/standard//list.nit:21,1--22:52)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self,  variable0 /*index*/) /*List::get_node*/;
+  variable1 = ((abstract_collection___Container___item_t)CALL(variable1,COLOR_abstract_collection___Container___item))(variable1) /*ListNode::item*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void list___List_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "list::List::[]= (bin/../lib/standard//list.nit:24,2--59)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self,  variable0 /*index*/) /*List::get_node*/;
+  ((abstract_collection___Container___item__eq_t)CALL(variable2,COLOR_abstract_collection___Container___item__eq))(variable2,  variable1 /*item*/) /*ListNode::item=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___first(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::first (bin/../lib/standard//list.nit:26,2--27:38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___List____head( self) /*List::_head*/;
+  variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___List___first__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::first= (bin/../lib/standard//list.nit:29,2--30:39)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_list___List____head( self) /*List::_head*/;
+  ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1,  variable0 /*e*/) /*ListNode::item=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___last(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::last (bin/../lib/standard//list.nit:32,2--33:37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___List____tail( self) /*List::_tail*/;
+  variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___List___last__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::last= (bin/../lib/standard//list.nit:35,2--36:38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+  ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1,  variable0 /*e*/) /*ListNode::item=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::is_empty (bin/../lib/standard//list.nit:40,2--41:44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___List____head( self) /*List::_head*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t list___List___length(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::length (bin/../lib/standard//list.nit:43,2--52:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  variable2 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*l*/;
+    variable2 = ((list___ListNode___next_t)CALL( variable1 /*t*/,COLOR_list___ListNode___next))( variable1 /*t*/) /*ListNode::next*/;
+    variable1 = variable2 /*t=*/;
+    continue_8: while(0);
+  }
+  break_8: while(0);
+  variable0 =  variable0 /*l*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t list___List___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::has (bin/../lib/standard//list.nit:55,2--56:64)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = ((list___List___search_node_after_t)CALL( self,COLOR_list___List___search_node_after))( self,  variable0 /*e*/, variable1) /*List::search_node_after*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t list___List___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::has_only (bin/../lib/standard//list.nit:58,2--65:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ ==  NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ((abstract_collection___Container___item_t)CALL( variable1 /*node*/,COLOR_abstract_collection___Container___item))( variable1 /*node*/) /*ListNode::item*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  variable0 /*e*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*e*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label10;
+    }
+    variable2 = ((list___ListNode___next_t)CALL( variable1 /*node*/,COLOR_list___ListNode___next))( variable1 /*node*/) /*ListNode::next*/;
+    variable1 = variable2 /*node=*/;
+    continue_11: while(0);
+  }
+  break_11: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t list___List___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::count (bin/../lib/standard//list.nit:68,2--76:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable3 = ATTR_list___List____head( self) /*List::_head*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*node*/ ==  NIT_NULL /*null*/) || (( variable2 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*node*/,COLOR_kernel___Object_____eqeq))( variable2 /*node*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((abstract_collection___Container___item_t)CALL( variable2 /*node*/,COLOR_abstract_collection___Container___item))( variable2 /*node*/) /*ListNode::item*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  variable0 /*e*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  variable0 /*e*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
+    }
+    variable3 = ((list___ListNode___next_t)CALL( variable2 /*node*/,COLOR_list___ListNode___next))( variable2 /*node*/) /*ListNode::next*/;
+    variable2 = variable3 /*node=*/;
+    continue_13: while(0);
+  }
+  break_13: while(0);
+  variable1 =  variable1 /*nb*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t list___List___has_key(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::has_key (bin/../lib/standard//list.nit:79,2--60)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self,  variable0 /*index*/) /*List::get_node*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void list___List___push(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::push (bin/../lib/standard//list.nit:83,2--93:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_list___ListNode___init( variable0 /*e*/); /*new ListNode[E]*/
+  variable1 = variable2;
+  variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ATTR_list___List____head( self) /*List::_head*/ =  variable1 /*node*/;
+  } else { /*if*/
+    variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
+    ((list___ListNode___next__eq_t)CALL(variable2,COLOR_list___ListNode___next__eq))(variable2,  variable1 /*node*/) /*ListNode::next=*/;
+    variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
+    ((list___ListNode___prev__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev__eq))( variable1 /*node*/, variable2) /*ListNode::prev=*/;
+  }
+  ATTR_list___List____tail( self) /*List::_tail*/ =  variable1 /*node*/;
+  tracehead = trace.prev;
+  return;
+}
+void list___List___unshift(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::unshift (bin/../lib/standard//list.nit:96,2--106:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_list___ListNode___init( variable0 /*e*/); /*new ListNode[E]*/
+  variable1 = variable2;
+  variable2 = ATTR_list___List____head( self) /*List::_head*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ATTR_list___List____tail( self) /*List::_tail*/ =  variable1 /*node*/;
+  } else { /*if*/
+    variable2 = ATTR_list___List____head( self) /*List::_head*/;
+    ((list___ListNode___next__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___next__eq))( variable1 /*node*/, variable2) /*ListNode::next=*/;
+    variable2 = ATTR_list___List____head( self) /*List::_head*/;
+    ((list___ListNode___prev__eq_t)CALL(variable2,COLOR_list___ListNode___prev__eq))(variable2,  variable1 /*node*/) /*ListNode::prev=*/;
+  }
+  ATTR_list___List____head( self) /*List::_head*/ =  variable1 /*node*/;
+  tracehead = trace.prev;
+  return;
+}
+void list___List___link(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::link (bin/../lib/standard//list.nit:109,2--121:9)"};
+  val_t variable0;
+  val_t variable1;
+      val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
+    ATTR_list___List____head( self) /*List::_head*/ = variable1;
+  } else { /*if*/
+    variable1 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
+    variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+      variable2 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
+      ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, variable2) /*ListNode::next=*/;
+      variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+      variable1 = ((list___ListNode___next_t)CALL(variable1,COLOR_list___ListNode___next))(variable1) /*ListNode::next*/;
+      variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
+      ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, variable2) /*ListNode::prev=*/;
+    }
+  }
+  variable1 = ATTR_list___List____tail( variable0 /*l*/) /*List::_tail*/;
+  ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
+  ((list___List___clear_t)CALL( variable0 /*l*/,COLOR_abstract_collection___RemovableCollection___clear))( variable0 /*l*/) /*List::clear*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___pop(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::pop (bin/../lib/standard//list.nit:126,2--137:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+  variable0 = variable1;
+  variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+  ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
+  ((list___ListNode___prev__eq_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev__eq))( variable0 /*node*/,  NIT_NULL /*null*/) /*ListNode::prev=*/;
+  variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ATTR_list___List____head( self) /*List::_head*/ =  NIT_NULL /*null*/;
+  } else { /*if*/
+    variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
+    ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1,  NIT_NULL /*null*/) /*ListNode::next=*/;
+  }
+  variable1 = ((abstract_collection___Container___item_t)CALL( variable0 /*node*/,COLOR_abstract_collection___Container___item))( variable0 /*node*/) /*ListNode::item*/;
+  variable0 = variable1;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t list___List___shift(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::shift (bin/../lib/standard//list.nit:140,2--151:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_list___List____head( self) /*List::_head*/;
+  variable0 = variable1;
+  variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+  ATTR_list___List____head( self) /*List::_head*/ = variable1;
+  ((list___ListNode___next__eq_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next__eq))( variable0 /*node*/,  NIT_NULL /*null*/) /*ListNode::next=*/;
+  variable1 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ATTR_list___List____tail( self) /*List::_tail*/ =  NIT_NULL /*null*/;
+  } else { /*if*/
+    variable1 = ATTR_list___List____head( self) /*List::_head*/;
+    ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1,  NIT_NULL /*null*/) /*ListNode::prev=*/;
+  }
+  variable1 = ((abstract_collection___Container___item_t)CALL( variable0 /*node*/,COLOR_abstract_collection___Container___item))( variable0 /*node*/) /*ListNode::item*/;
+  variable0 = variable1;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___List___remove(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::remove (bin/../lib/standard//list.nit:154,2--157:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_list___List____head( self) /*List::_head*/;
+  variable2 = ((list___List___search_node_after_t)CALL( self,COLOR_list___List___search_node_after))( self,  variable0 /*e*/, variable2) /*List::search_node_after*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ ==  NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((list___List___remove_node_t)CALL( self,COLOR_list___List___remove_node))( self,  variable1 /*node*/) /*List::remove_node*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void list___List___remove_at(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::remove_at (bin/../lib/standard//list.nit:160,2--163:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self,  variable0 /*i*/) /*List::get_node*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ ==  NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((list___List___remove_node_t)CALL( self,COLOR_list___List___remove_node))( self,  variable1 /*node*/) /*List::remove_node*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void list___List___clear(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::clear (bin/../lib/standard//list.nit:166,2--169:14)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_list___List____head( self) /*List::_head*/ =  NIT_NULL /*null*/;
+  ATTR_list___List____tail( self) /*List::_tail*/ =  NIT_NULL /*null*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "list::List::iterator (bin/../lib/standard//list.nit:173,2--73)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = NEW_list___ListIterator___init(variable0); /*new ListIterator[E]*/
+  variable0 = variable1;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___List___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "list::List::init (bin/../lib/standard//list.nit:175,2--176:5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void list___List___from(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "list::List::from (bin/../lib/standard//list.nit:178,2--179:46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i]) return;
+  ((abstract_collection___IndexedCollection___append_t)CALL( self,COLOR_abstract_collection___IndexedCollection___append))( self,  variable0 /*coll*/) /*List::append*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___List___get_node(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::get_node (bin/../lib/standard//list.nit:187,2--198:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_list___List____head( self) /*List::_head*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label26;
+  }
+  while (true) { /*while*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n*/ ==  NIT_NULL /*null*/) || (( variable1 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n*/,COLOR_kernel___Object_____eqeq))( variable1 /*n*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    variable3 = variable2;
+    if (UNTAG_Bool(variable3)) { /* and */
+      variable3 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    }
+    variable2 = variable3;
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ((list___ListNode___next_t)CALL( variable1 /*n*/,COLOR_list___ListNode___next))( variable1 /*n*/) /*ListNode::next*/;
+    variable1 = variable2 /*n=*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_27: while(0);
+  }
+  break_27: while(0);
+  variable1 =  variable1 /*n*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t list___List___search_node_after(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "list::List::search_node_after (bin/../lib/standard//list.nit:201,2--206:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  variable1 /*after*/;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n*/ ==  NIT_NULL /*null*/) || (( variable2 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n*/,COLOR_kernel___Object_____eqeq))( variable2 /*n*/,  NIT_NULL /*null*/) /*ListNode::==*/)))))));
+    variable4 = variable3;
+    if (UNTAG_Bool(variable4)) { /* and */
+      variable4 = ((abstract_collection___Container___item_t)CALL( variable2 /*n*/,COLOR_abstract_collection___Container___item))( variable2 /*n*/) /*ListNode::item*/;
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  variable0 /*e*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*e*/) /*Object::==*/)))))));
+    }
+    variable3 = variable4;
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((list___ListNode___next_t)CALL( variable2 /*n*/,COLOR_list___ListNode___next))( variable2 /*n*/) /*ListNode::next*/;
+    variable2 = variable3 /*n=*/;
+    continue_29: while(0);
+  }
+  break_29: while(0);
+  variable2 =  variable2 /*n*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void list___List___remove_node(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::List::remove_node (bin/../lib/standard//list.nit:209,2--224:29)"};
+  val_t variable0;
+  val_t variable1;
+      val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+    ATTR_list___List____head( self) /*List::_head*/ = variable1;
+    variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+    variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      ATTR_list___List____tail( self) /*List::_tail*/ =  NIT_NULL /*null*/;
+    } else { /*if*/
+      variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+      ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1,  NIT_NULL /*null*/) /*ListNode::prev=*/;
+    }
+  } else { /*if*/
+    variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+    variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+      ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
+      variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+      ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1,  NIT_NULL /*null*/) /*ListNode::next=*/;
+    } else { /*if*/
+      variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+      variable2 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+      ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, variable2) /*ListNode::next=*/;
+      variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
+      variable2 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
+      ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, variable2) /*ListNode::prev=*/;
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void list___List___insert_before(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "list::List::insert_before (bin/../lib/standard//list.nit:228,2--239:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_list___ListNode___init( variable0 /*element*/); /*new ListNode[E]*/
+  variable2 = variable3;
+  variable4 = ((list___ListNode___prev_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev))( variable1 /*node*/) /*ListNode::prev*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*prev*/ ==  NIT_NULL /*null*/) || (( variable3 /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prev*/,COLOR_kernel___Object_____eqeq))( variable3 /*prev*/,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ATTR_list___List____head( self) /*List::_head*/ =  variable2 /*nnode*/;
+  } else { /*if*/
+    ((list___ListNode___next__eq_t)CALL( variable3 /*prev*/,COLOR_list___ListNode___next__eq))( variable3 /*prev*/,  variable2 /*nnode*/) /*ListNode::next=*/;
+  }
+  ((list___ListNode___prev__eq_t)CALL( variable2 /*nnode*/,COLOR_list___ListNode___prev__eq))( variable2 /*nnode*/,  variable3 /*prev*/) /*ListNode::prev=*/;
+  ((list___ListNode___next__eq_t)CALL( variable2 /*nnode*/,COLOR_list___ListNode___next__eq))( variable2 /*nnode*/,  variable1 /*node*/) /*ListNode::next=*/;
+  ((list___ListNode___prev__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev__eq))( variable1 /*node*/,  variable2 /*nnode*/) /*ListNode::prev=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___ListIterator___item(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListIterator::item (bin/../lib/standard//list.nit:246,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
+  variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___ListIterator___item__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::ListIterator::item= (bin/../lib/standard//list.nit:248,2--38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
+  ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1,  variable0 /*e*/) /*ListNode::item=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___ListIterator___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListIterator::is_ok (bin/../lib/standard//list.nit:250,2--45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*ListNode::==*/)))));
+  variable0 =  TAG_Bool(!UNTAG_Bool(variable0));
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void list___ListIterator___next(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListIterator::next (bin/../lib/standard//list.nit:252,2--255:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
+  variable0 = ((list___ListNode___next_t)CALL(variable0,COLOR_list___ListNode___next))(variable0) /*ListNode::next*/;
+  ATTR_list___ListIterator____node( self) /*ListIterator::_node*/ = variable0;
+  ATTR_list___ListIterator____index( self) /*ListIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_list___ListIterator____index( self) /*ListIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
+  tracehead = trace.prev;
+  return;
+}
+void list___ListIterator___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "list::ListIterator::init (bin/../lib/standard//list.nit:258,2--262:12)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListIterator].i]) return;
+  ATTR_list___ListIterator____node( self) /*ListIterator::_node*/ =  variable0 /*node*/;
+  ATTR_list___ListIterator____index( self) /*ListIterator::_index*/ =  TAG_Int(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListIterator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___ListIterator___index(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListIterator::index (bin/../lib/standard//list.nit:268,2--269:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_list___ListIterator____index( self) /*ListIterator::_index*/;
+}
+void list___ListNode___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "list::ListNode::init (bin/../lib/standard//list.nit:275,2--277:10)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListNode].i]) return;
+  ((abstract_collection___Container___item__eq_t)CALL( self,COLOR_abstract_collection___Container___item__eq))( self,  variable0 /*i*/) /*ListNode::item=*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListNode].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___ListNode___next(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListNode::next (bin/../lib/standard//list.nit:280,2--281:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_list___ListNode____next( self) /*ListNode::_next*/;
+}
+void list___ListNode___next__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::ListNode::next= (bin/../lib/standard//list.nit:280,2--281:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_list___ListNode____next( self) /*ListNode::_next*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t list___ListNode___prev(val_t  self) {
+  struct trace_t trace = {NULL, "list::ListNode::prev (bin/../lib/standard//list.nit:283,2--284:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_list___ListNode____prev( self) /*ListNode::_prev*/;
+}
+void list___ListNode___prev__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "list::ListNode::prev= (bin/../lib/standard//list.nit:283,2--284:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_list___ListNode____prev( self) /*ListNode::_prev*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/list._sep.h b/c_src/list._sep.h
new file mode 100644 (file)
index 0000000..6193a8a
--- /dev/null
@@ -0,0 +1,126 @@
+#ifndef list__sep
+#define list__sep
+#include "abstract_collection._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_List[];
+
+extern const classtable_elt_t VFT_ListIterator[];
+
+extern const classtable_elt_t VFT_ListNode[];
+extern const int SFT_list[];
+#define ID_List SFT_list[0]
+#define COLOR_List SFT_list[1]
+#define COLOR_list___List____head SFT_list[2]
+#define COLOR_list___List____tail SFT_list[3]
+#define INIT_TABLE_POS_List SFT_list[4]
+#define COLOR_list___List___link SFT_list[5]
+#define COLOR_list___List___init SFT_list[6]
+#define COLOR_list___List___from SFT_list[7]
+#define COLOR_list___List___get_node SFT_list[8]
+#define COLOR_list___List___search_node_after SFT_list[9]
+#define COLOR_list___List___remove_node SFT_list[10]
+#define COLOR_list___List___insert_before SFT_list[11]
+#define ID_ListIterator SFT_list[12]
+#define COLOR_ListIterator SFT_list[13]
+#define COLOR_list___ListIterator____node SFT_list[14]
+#define COLOR_list___ListIterator____index SFT_list[15]
+#define INIT_TABLE_POS_ListIterator SFT_list[16]
+#define COLOR_list___ListIterator___init SFT_list[17]
+#define ID_ListNode SFT_list[18]
+#define COLOR_ListNode SFT_list[19]
+#define COLOR_list___ListNode____next SFT_list[20]
+#define COLOR_list___ListNode____prev SFT_list[21]
+#define INIT_TABLE_POS_ListNode SFT_list[22]
+#define COLOR_list___ListNode___init SFT_list[23]
+#define COLOR_list___ListNode___next SFT_list[24]
+#define COLOR_list___ListNode___next__eq SFT_list[25]
+#define COLOR_list___ListNode___prev SFT_list[26]
+#define COLOR_list___ListNode___prev__eq SFT_list[27]
+typedef val_t (* list___List_____bra_t)(val_t  self, val_t  param0);
+val_t list___List_____bra(val_t  self, val_t  param0);
+typedef void (* list___List_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void list___List_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* list___List___first_t)(val_t  self);
+val_t list___List___first(val_t  self);
+typedef void (* list___List___first__eq_t)(val_t  self, val_t  param0);
+void list___List___first__eq(val_t  self, val_t  param0);
+typedef val_t (* list___List___last_t)(val_t  self);
+val_t list___List___last(val_t  self);
+typedef void (* list___List___last__eq_t)(val_t  self, val_t  param0);
+void list___List___last__eq(val_t  self, val_t  param0);
+typedef val_t (* list___List___is_empty_t)(val_t  self);
+val_t list___List___is_empty(val_t  self);
+typedef val_t (* list___List___length_t)(val_t  self);
+val_t list___List___length(val_t  self);
+typedef val_t (* list___List___has_t)(val_t  self, val_t  param0);
+val_t list___List___has(val_t  self, val_t  param0);
+typedef val_t (* list___List___has_only_t)(val_t  self, val_t  param0);
+val_t list___List___has_only(val_t  self, val_t  param0);
+typedef val_t (* list___List___count_t)(val_t  self, val_t  param0);
+val_t list___List___count(val_t  self, val_t  param0);
+typedef val_t (* list___List___has_key_t)(val_t  self, val_t  param0);
+val_t list___List___has_key(val_t  self, val_t  param0);
+typedef void (* list___List___push_t)(val_t  self, val_t  param0);
+void list___List___push(val_t  self, val_t  param0);
+typedef void (* list___List___unshift_t)(val_t  self, val_t  param0);
+void list___List___unshift(val_t  self, val_t  param0);
+typedef void (* list___List___link_t)(val_t  self, val_t  param0);
+void list___List___link(val_t  self, val_t  param0);
+typedef val_t (* list___List___pop_t)(val_t  self);
+val_t list___List___pop(val_t  self);
+typedef val_t (* list___List___shift_t)(val_t  self);
+val_t list___List___shift(val_t  self);
+typedef void (* list___List___remove_t)(val_t  self, val_t  param0);
+void list___List___remove(val_t  self, val_t  param0);
+typedef void (* list___List___remove_at_t)(val_t  self, val_t  param0);
+void list___List___remove_at(val_t  self, val_t  param0);
+typedef void (* list___List___clear_t)(val_t  self);
+void list___List___clear(val_t  self);
+typedef val_t (* list___List___iterator_t)(val_t  self);
+val_t list___List___iterator(val_t  self);
+typedef void (* list___List___init_t)(val_t  self, int* init_table);
+void list___List___init(val_t  self, int* init_table);
+val_t NEW_list___List___init();
+typedef void (* list___List___from_t)(val_t  self, val_t  param0, int* init_table);
+void list___List___from(val_t  self, val_t  param0, int* init_table);
+val_t NEW_list___List___from(val_t  param0);
+#define ATTR_list___List____head(recv) ATTR(recv, COLOR_list___List____head)
+#define ATTR_list___List____tail(recv) ATTR(recv, COLOR_list___List____tail)
+typedef val_t (* list___List___get_node_t)(val_t  self, val_t  param0);
+val_t list___List___get_node(val_t  self, val_t  param0);
+typedef val_t (* list___List___search_node_after_t)(val_t  self, val_t  param0, val_t  param1);
+val_t list___List___search_node_after(val_t  self, val_t  param0, val_t  param1);
+typedef void (* list___List___remove_node_t)(val_t  self, val_t  param0);
+void list___List___remove_node(val_t  self, val_t  param0);
+typedef void (* list___List___insert_before_t)(val_t  self, val_t  param0, val_t  param1);
+void list___List___insert_before(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* list___ListIterator___item_t)(val_t  self);
+val_t list___ListIterator___item(val_t  self);
+typedef void (* list___ListIterator___item__eq_t)(val_t  self, val_t  param0);
+void list___ListIterator___item__eq(val_t  self, val_t  param0);
+typedef val_t (* list___ListIterator___is_ok_t)(val_t  self);
+val_t list___ListIterator___is_ok(val_t  self);
+typedef void (* list___ListIterator___next_t)(val_t  self);
+void list___ListIterator___next(val_t  self);
+typedef void (* list___ListIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void list___ListIterator___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_list___ListIterator___init(val_t  param0);
+#define ATTR_list___ListIterator____node(recv) ATTR(recv, COLOR_list___ListIterator____node)
+#define ATTR_list___ListIterator____index(recv) ATTR(recv, COLOR_list___ListIterator____index)
+typedef val_t (* list___ListIterator___index_t)(val_t  self);
+val_t list___ListIterator___index(val_t  self);
+typedef void (* list___ListNode___init_t)(val_t  self, val_t  param0, int* init_table);
+void list___ListNode___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_list___ListNode___init(val_t  param0);
+#define ATTR_list___ListNode____next(recv) ATTR(recv, COLOR_list___ListNode____next)
+typedef val_t (* list___ListNode___next_t)(val_t  self);
+val_t list___ListNode___next(val_t  self);
+typedef void (* list___ListNode___next__eq_t)(val_t  self, val_t  param0);
+void list___ListNode___next__eq(val_t  self, val_t  param0);
+#define ATTR_list___ListNode____prev(recv) ATTR(recv, COLOR_list___ListNode____prev)
+typedef val_t (* list___ListNode___prev_t)(val_t  self);
+val_t list___ListNode___prev(val_t  self);
+typedef void (* list___ListNode___prev__eq_t)(val_t  self, val_t  param0);
+void list___ListNode___prev__eq(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/math._sep.c b/c_src/math._sep.c
new file mode 100644 (file)
index 0000000..28ebae9
--- /dev/null
@@ -0,0 +1,99 @@
+#include "math._sep.h"
+val_t math___Int___rand(val_t  self) {
+  struct trace_t trace = {NULL, "math::Int::rand (bin/../lib/standard//math.nit:19,2--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(kernel_Int_Int_rand_0(UNTAG_Int( self)));
+}
+val_t math___Float___sqrt(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::sqrt (bin/../lib/standard//math.nit:23,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_sqrt_0(UNBOX_Float( self)));
+}
+val_t math___Float___cos(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::cos (bin/../lib/standard//math.nit:24,2--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_cos_0(UNBOX_Float( self)));
+}
+val_t math___Float___sin(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::sin (bin/../lib/standard//math.nit:25,2--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_sin_0(UNBOX_Float( self)));
+}
+val_t math___Float___tan(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::tan (bin/../lib/standard//math.nit:26,2--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_tan_0(UNBOX_Float( self)));
+}
+val_t math___Float___acos(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::acos (bin/../lib/standard//math.nit:27,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_acos_0(UNBOX_Float( self)));
+}
+val_t math___Float___asin(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::asin (bin/../lib/standard//math.nit:28,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_asin_0(UNBOX_Float( self)));
+}
+val_t math___Float___atan(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::atan (bin/../lib/standard//math.nit:29,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_atan_0(UNBOX_Float( self)));
+}
+val_t math___Float___pow(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "math::Float::pow (bin/../lib/standard//math.nit:31,2--63)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_pow_1(UNBOX_Float( self), UNBOX_Float( param0)));
+}
+val_t math___Float___log(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::log (bin/../lib/standard//math.nit:32,2--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_log_0(UNBOX_Float( self)));
+}
+val_t math___Float___exp(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::exp (bin/../lib/standard//math.nit:33,2--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_exp_0(UNBOX_Float( self)));
+}
+val_t math___Float___rand(val_t  self) {
+  struct trace_t trace = {NULL, "math::Float::rand (bin/../lib/standard//math.nit:35,2--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Float_Float_rand_0(UNBOX_Float( self)));
+}
+val_t math___Object___atan2(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "math::Object::atan2 (bin/../lib/standard//math.nit:38,1--72)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Any_Any_atan2_2( self, UNBOX_Float( param0), UNBOX_Float( param1)));
+}
+val_t math___Object___pi(val_t  self) {
+  struct trace_t trace = {NULL, "math::Object::pi (bin/../lib/standard//math.nit:39,1--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_Float(kernel_Any_Any_pi_0( self));
+}
+void math___Object___srand_from(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "math::Object::srand_from (bin/../lib/standard//math.nit:40,1--63)"};
+  trace.prev = tracehead; tracehead = &trace;
+  kernel_Any_Any_srand_from_1( self, UNTAG_Int( param0));
+  tracehead = trace.prev;
+  return;
+}
+void math___Object___srand(val_t  self) {
+  struct trace_t trace = {NULL, "math::Object::srand (bin/../lib/standard//math.nit:41,1--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  kernel_Any_Any_srand_0( self);
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/math._sep.h b/c_src/math._sep.h
new file mode 100644 (file)
index 0000000..72a3141
--- /dev/null
@@ -0,0 +1,55 @@
+#ifndef math__sep
+#define math__sep
+#include "kernel._sep.h"
+#include <nit_common.h>
+#include <math_nit.h>
+extern const int SFT_math[];
+#define COLOR_math___Int___rand SFT_math[0]
+#define COLOR_math___Float___sqrt SFT_math[1]
+#define COLOR_math___Float___cos SFT_math[2]
+#define COLOR_math___Float___sin SFT_math[3]
+#define COLOR_math___Float___tan SFT_math[4]
+#define COLOR_math___Float___acos SFT_math[5]
+#define COLOR_math___Float___asin SFT_math[6]
+#define COLOR_math___Float___atan SFT_math[7]
+#define COLOR_math___Float___pow SFT_math[8]
+#define COLOR_math___Float___log SFT_math[9]
+#define COLOR_math___Float___exp SFT_math[10]
+#define COLOR_math___Float___rand SFT_math[11]
+#define COLOR_math___Object___atan2 SFT_math[12]
+#define COLOR_math___Object___pi SFT_math[13]
+#define COLOR_math___Object___srand_from SFT_math[14]
+#define COLOR_math___Object___srand SFT_math[15]
+typedef val_t (* math___Int___rand_t)(val_t  self);
+val_t math___Int___rand(val_t  self);
+typedef val_t (* math___Float___sqrt_t)(val_t  self);
+val_t math___Float___sqrt(val_t  self);
+typedef val_t (* math___Float___cos_t)(val_t  self);
+val_t math___Float___cos(val_t  self);
+typedef val_t (* math___Float___sin_t)(val_t  self);
+val_t math___Float___sin(val_t  self);
+typedef val_t (* math___Float___tan_t)(val_t  self);
+val_t math___Float___tan(val_t  self);
+typedef val_t (* math___Float___acos_t)(val_t  self);
+val_t math___Float___acos(val_t  self);
+typedef val_t (* math___Float___asin_t)(val_t  self);
+val_t math___Float___asin(val_t  self);
+typedef val_t (* math___Float___atan_t)(val_t  self);
+val_t math___Float___atan(val_t  self);
+typedef val_t (* math___Float___pow_t)(val_t  self, val_t  param0);
+val_t math___Float___pow(val_t  self, val_t  param0);
+typedef val_t (* math___Float___log_t)(val_t  self);
+val_t math___Float___log(val_t  self);
+typedef val_t (* math___Float___exp_t)(val_t  self);
+val_t math___Float___exp(val_t  self);
+typedef val_t (* math___Float___rand_t)(val_t  self);
+val_t math___Float___rand(val_t  self);
+typedef val_t (* math___Object___atan2_t)(val_t  self, val_t  param0, val_t  param1);
+val_t math___Object___atan2(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* math___Object___pi_t)(val_t  self);
+val_t math___Object___pi(val_t  self);
+typedef void (* math___Object___srand_from_t)(val_t  self, val_t  param0);
+void math___Object___srand_from(val_t  self, val_t  param0);
+typedef void (* math___Object___srand_t)(val_t  self);
+void math___Object___srand(val_t  self);
+#endif
diff --git a/c_src/metamodel._sep.c b/c_src/metamodel._sep.c
new file mode 100644 (file)
index 0000000..dbe2bdb
--- /dev/null
@@ -0,0 +1,2 @@
+#include "metamodel._sep.h"
+
diff --git a/c_src/metamodel._sep.h b/c_src/metamodel._sep.h
new file mode 100644 (file)
index 0000000..cfaa88f
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef metamodel__sep
+#define metamodel__sep
+#include "vararg._sep.h"
+#include "virtualtype._sep.h"
+#include <nit_common.h>
+extern const int SFT_metamodel[];
+#endif
diff --git a/c_src/mmbuilder._sep.c b/c_src/mmbuilder._sep.c
new file mode 100644 (file)
index 0000000..9c5f79d
--- /dev/null
@@ -0,0 +1,3404 @@
+#include "mmbuilder._sep.h"
+val_t mmbuilder___CSHSorter___compare(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::CSHSorter::compare (src/syntax//mmbuilder.nit:27,2--29:36)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable0 /*a*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable0 /*a*/) /*MMLocalClass::cshe*/;
+  variable2 = ((partial_order___PartialOrderElement___rank_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___rank))(variable2) /*PartialOrderElement::rank*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable1 /*b*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable1 /*b*/) /*MMLocalClass::cshe*/;
+  variable3 = ((partial_order___PartialOrderElement___rank_t)CALL(variable3,COLOR_partial_order___PartialOrderElement___rank))(variable3) /*PartialOrderElement::rank*/;
+  variable2 = ((kernel___Int_____leqg_t)CALL(variable2,COLOR_kernel___Comparable_____leqg))(variable2, variable3) /*Int::<=>*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void mmbuilder___CSHSorter___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::CSHSorter::init (src/syntax//mmbuilder.nit:32,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CSHSorter].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CSHSorter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcModule::do_mmbuilder (src/syntax//mmbuilder.nit:36,2--131:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  static val_t once_value_variable5_4; static int once_bool_variable5_4;
+    val_t variable7;
+    val_t variable8;
+        val_t variable9;
+        val_t variable10;
+        val_t variable11;
+        val_t variable12;
+      val_t variable13;
+      val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((inheritance___MMModule___import_global_classes_t)CALL( self,COLOR_inheritance___MMModule___import_global_classes))( self) /*MMSrcModule::import_global_classes*/;
+  variable2 = NEW_mmbuilder___ClassBuilderVisitor___init( variable0 /*tc*/,  self); /*new ClassBuilderVisitor*/
+  variable1 = variable2;
+  variable2 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
+  ((mmbuilder___ClassBuilderVisitor___visit_t)CALL( variable1 /*mmbv*/,COLOR_parser_prod___Visitor___visit))( variable1 /*mmbv*/, variable2) /*ClassBuilderVisitor::visit*/;
+  variable2 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable2 = TAG_Bool(UNTAG_Int(variable2)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  ((inheritance___MMModule___import_local_classes_t)CALL( self,COLOR_inheritance___MMModule___import_local_classes))( self) /*MMSrcModule::import_local_classes*/;
+  variable3 = NEW_mmbuilder___ClassSpecializationBuilderVisitor___init( variable0 /*tc*/,  self); /*new ClassSpecializationBuilderVisitor*/
+  variable2 = variable3;
+  variable3 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
+  ((mmbuilder___ClassSpecializationBuilderVisitor___visit_t)CALL( variable2 /*mmbv1*/,COLOR_parser_prod___Visitor___visit))( variable2 /*mmbv1*/, variable3) /*ClassSpecializationBuilderVisitor::visit*/;
+  variable3 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable3 = ((abstractmetamodel___MMModule___local_classes_t)CALL( self,COLOR_abstractmetamodel___MMModule___local_classes))( self) /*MMSrcModule::local_classes*/;
+  variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable4 /*c*/) /*MMLocalClass::global*/;
+    variable5 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable5) /*MMGlobalClass::intro*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___module))(variable5) /*MMLocalClass::module*/;
+    variable5 = ((abstractmetamodel___MMModule___visibility_for_t)CALL( self,COLOR_abstractmetamodel___MMModule___visibility_for))( self, variable5) /*MMSrcModule::visibility_for*/;
+    variable6 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable4 /*c*/) /*MMLocalClass::global*/;
+    variable6 = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable6,COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable6) /*MMGlobalClass::visibility_level*/;
+    variable5 = TAG_Bool(UNTAG_Int(variable5)<UNTAG_Int(variable6));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      goto continue_3;
+    }
+    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable4 /*c*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable4 /*c*/) /*MMLocalClass::compute_super_classes*/;
+    continue_3: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_3: while(0);
+  variable4 = ((abstractmetamodel___MMModule___class_specialization_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy))( self) /*MMSrcModule::class_specialization_hierarchy*/;
+  variable4 = ((array___Collection___to_a_t)CALL(variable4,COLOR_array___Collection___to_a))(variable4) /*PartialOrder::to_a*/;
+  variable3 = variable4;
+  if (once_bool_variable5_4) variable5 = once_value_variable5_4;
+  else {
+    variable5 = NEW_mmbuilder___CSHSorter___init(); /*new CSHSorter*/
+    once_value_variable5_4 = variable5;
+    once_bool_variable5_4 = true;
+  }
+  variable4 = variable5;
+  ((sorter___AbstractSorter___sort_t)CALL( variable4 /*sorter*/,COLOR_sorter___AbstractSorter___sort))( variable4 /*sorter*/,  variable3 /*classes*/) /*CSHSorter::sort*/;
+  variable6 = NEW_mmbuilder___ClassAncestorBuilder___init( variable0 /*tc*/,  self); /*new ClassAncestorBuilder*/
+  variable5 = variable6;
+  variable6 = ((array___AbstractArray___iterator_t)CALL( variable3 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable7)) break; /*for*/
+    variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
+    variable8 = TAG_Bool(( variable7 /*c*/==NIT_NULL) || VAL_ISA( variable7 /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable8 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable7 /*c*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable7 /*c*/) /*MMSrcLocalClass::nodes*/;
+      variable8 = ((array___AbstractArray___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable9)) break; /*for*/
+        variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+        ((mmbuilder___ClassAncestorBuilder___visit_t)CALL( variable5 /*mmbv1b*/,COLOR_parser_prod___Visitor___visit))( variable5 /*mmbv1b*/,  variable9 /*n*/) /*ClassAncestorBuilder::visit*/;
+        continue_6: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+      }
+      break_6: while(0);
+    }
+    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable7 /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable7 /*c*/) /*MMLocalClass::compute_ancestors*/;
+    continue_5: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
+  }
+  break_5: while(0);
+  variable6 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable6 = TAG_Bool(UNTAG_Int(variable6)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable7 = NEW_mmbuilder___ClassVerifierVisitor___init( variable0 /*tc*/,  self); /*new ClassVerifierVisitor*/
+  variable6 = variable7;
+  variable7 = ((array___AbstractArray___iterator_t)CALL( variable3 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable8 = ((array___ArrayIterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable8)) break; /*for*/
+    variable8 = ((array___ArrayIterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*ArrayIterator::item*/;
+    variable9 = TAG_Bool(( variable8 /*c*/==NIT_NULL) || VAL_ISA( variable8 /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable9 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable8 /*c*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable8 /*c*/) /*MMSrcLocalClass::nodes*/;
+      variable9 = ((array___AbstractArray___iterator_t)CALL(variable9,COLOR_abstract_collection___Collection___iterator))(variable9) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable10 = ((array___ArrayIterator___is_ok_t)CALL(variable9,COLOR_abstract_collection___Iterator___is_ok))(variable9) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable10)) break; /*for*/
+        variable10 = ((array___ArrayIterator___item_t)CALL(variable9,COLOR_abstract_collection___Iterator___item))(variable9) /*ArrayIterator::item*/;
+        ((mmbuilder___ClassVerifierVisitor___visit_t)CALL( variable6 /*mmbv1b*/,COLOR_parser_prod___Visitor___visit))( variable6 /*mmbv1b*/,  variable10 /*n*/) /*ClassVerifierVisitor::visit*/;
+        continue_8: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable9,COLOR_abstract_collection___Iterator___next))(variable9) /*ArrayIterator::next*/;
+      }
+      break_8: while(0);
+    }
+    continue_7: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*ArrayIterator::next*/;
+  }
+  break_7: while(0);
+  variable7 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable7 = TAG_Bool(UNTAG_Int(variable7)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable8 = NEW_mmbuilder___PropertyBuilderVisitor___init( variable0 /*tc*/,  self); /*new PropertyBuilderVisitor*/
+  variable7 = variable8;
+  variable8 = ((array___AbstractArray___iterator_t)CALL( variable3 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable9)) break; /*for*/
+    variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+    ((inheritance___MMLocalClass___inherit_global_properties_t)CALL( variable9 /*c*/,COLOR_inheritance___MMLocalClass___inherit_global_properties))( variable9 /*c*/) /*MMLocalClass::inherit_global_properties*/;
+    variable10 = TAG_Bool(( variable9 /*c*/==NIT_NULL) || VAL_ISA( variable9 /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable10 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable9 /*c*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable9 /*c*/) /*MMSrcLocalClass::nodes*/;
+      variable10 = ((array___AbstractArray___iterator_t)CALL(variable10,COLOR_abstract_collection___Collection___iterator))(variable10) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable11 = ((array___ArrayIterator___is_ok_t)CALL(variable10,COLOR_abstract_collection___Iterator___is_ok))(variable10) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable11)) break; /*for*/
+        variable11 = ((array___ArrayIterator___item_t)CALL(variable10,COLOR_abstract_collection___Iterator___item))(variable10) /*ArrayIterator::item*/;
+        ((mmbuilder___PropertyBuilderVisitor___visit_t)CALL( variable7 /*mmbv2*/,COLOR_parser_prod___Visitor___visit))( variable7 /*mmbv2*/,  variable11 /*n*/) /*PropertyBuilderVisitor::visit*/;
+        continue_10: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable10,COLOR_abstract_collection___Iterator___next))(variable10) /*ArrayIterator::next*/;
+      }
+      break_10: while(0);
+    }
+    continue_9: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+  }
+  break_9: while(0);
+  variable8 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable8 = TAG_Bool(UNTAG_Int(variable8)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable9 = NEW_mmbuilder___PropertyVerifierVisitor___init( variable0 /*tc*/,  self); /*new PropertyVerifierVisitor*/
+  variable8 = variable9;
+  variable9 = ((array___AbstractArray___iterator_t)CALL( variable3 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable10 = ((array___ArrayIterator___is_ok_t)CALL(variable9,COLOR_abstract_collection___Iterator___is_ok))(variable9) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable10)) break; /*for*/
+    variable10 = ((array___ArrayIterator___item_t)CALL(variable9,COLOR_abstract_collection___Iterator___item))(variable9) /*ArrayIterator::item*/;
+    variable11 = TAG_Bool(( variable10 /*c*/==NIT_NULL) || VAL_ISA( variable10 /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable10 /*c*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable10 /*c*/) /*MMSrcLocalClass::nodes*/;
+      variable11 = ((array___AbstractArray___iterator_t)CALL(variable11,COLOR_abstract_collection___Collection___iterator))(variable11) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable12 = ((array___ArrayIterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable12)) break; /*for*/
+        variable12 = ((array___ArrayIterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*ArrayIterator::item*/;
+        ((mmbuilder___PropertyVerifierVisitor___visit_t)CALL( variable8 /*mmbv3*/,COLOR_parser_prod___Visitor___visit))( variable8 /*mmbv3*/,  variable12 /*n*/) /*PropertyVerifierVisitor::visit*/;
+        continue_12: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*ArrayIterator::next*/;
+      }
+      break_12: while(0);
+    }
+    continue_11: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable9,COLOR_abstract_collection___Iterator___next))(variable9) /*ArrayIterator::next*/;
+  }
+  break_11: while(0);
+  variable9 = ((array___AbstractArray___iterator_t)CALL( variable3 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*classes*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable10 = ((array___ArrayIterator___is_ok_t)CALL(variable9,COLOR_abstract_collection___Iterator___is_ok))(variable9) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable10)) break; /*for*/
+    variable10 = ((array___ArrayIterator___item_t)CALL(variable9,COLOR_abstract_collection___Iterator___item))(variable9) /*ArrayIterator::item*/;
+    variable11 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable10 /*c*/) /*MMLocalClass::global_properties*/;
+    variable11 = ((abstract_collection___Collection___iterator_t)CALL(variable11,COLOR_abstract_collection___Collection___iterator))(variable11) /*Set::iterator*/;
+    while (true) { /*for*/
+      variable12 = ((abstract_collection___Iterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable12)) break; /*for*/
+      variable12 = ((abstract_collection___Iterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*Iterator::item*/;
+      variable13 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable12 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable12 /*g*/) /*MMGlobalProperty::intro*/;
+      variable13 = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable13,COLOR_abstractmetamodel___MMLocalProperty___module))(variable13) /*MMConcreteProperty::module*/;
+      variable13 = ((abstractmetamodel___MMModule___visibility_for_t)CALL( self,COLOR_abstractmetamodel___MMModule___visibility_for))( self, variable13) /*MMSrcModule::visibility_for*/;
+      variable14 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( variable12 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( variable12 /*g*/) /*MMGlobalProperty::visibility_level*/;
+      variable13 = TAG_Bool(UNTAG_Int(variable13)<UNTAG_Int(variable14));
+      if (UNTAG_Bool(variable13)) { /*if*/
+        goto continue_14;
+      }
+      variable14 = ((inheritance___MMLocalClass_____bra_t)CALL( variable10 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable10 /*c*/,  variable12 /*g*/) /*MMLocalClass::[]*/;
+      variable13 = variable14;
+      continue_14: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*Iterator::next*/;
+    }
+    break_14: while(0);
+    continue_13: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable9,COLOR_abstract_collection___Iterator___next))(variable9) /*ArrayIterator::next*/;
+  }
+  break_13: while(0);
+  variable9 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable9 = TAG_Bool(UNTAG_Int(variable9)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcLocalClass::add_src_local_property (src/syntax//mmbuilder.nit:136,2--161:59)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMSrcLocalProperty::name*/;
+  variable2 = variable3;
+  variable3 = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL( self,COLOR_syntax_base___MMSrcLocalClass___src_local_properties))( self) /*MMSrcLocalClass::src_local_properties*/;
+  variable3 = ((abstract_collection___Map___has_key_t)CALL(variable3,COLOR_abstract_collection___Map___has_key))(variable3,  variable2 /*pname*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable1 /*prop*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable1 /*prop*/) /*MMSrcLocalProperty::node*/;
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Error: A property "), TAG_Int(18)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable2 /*pname*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" is already defined in class "), TAG_Int(29)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    variable10 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMSrcLocalClass::name*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString(" at line "), TAG_Int(9)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+    variable14 = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL( self,COLOR_syntax_base___MMSrcLocalClass___src_local_properties))( self) /*MMSrcLocalClass::src_local_properties*/;
+    variable14 = ((abstract_collection___Map_____bra_t)CALL(variable14,COLOR_abstract_collection___Map_____bra))(variable14,  variable2 /*pname*/) /*Map::[]*/;
+    variable14 = ((syntax_base___MMSrcLocalProperty___node_t)CALL(variable14,COLOR_syntax_base___MMSrcLocalProperty___node))(variable14) /*MMSrcLocalProperty::node*/;
+    variable14 = ((parser_prod___Prod___first_token_t)CALL(variable14,COLOR_parser_prod___Prod___first_token))(variable14) /*PPropdef::first_token*/;
+    variable14 = ((lexer___Token___line_t)CALL(variable14,COLOR_lexer___Token___line))(variable14) /*Token::line*/;
+    variable15 = variable14;
+    variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable3, variable4) /*PropertyBuilderVisitor::error*/;
+    goto return_label15;
+  }
+  variable3 = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL( self,COLOR_syntax_base___MMSrcLocalClass___src_local_properties))( self) /*MMSrcLocalClass::src_local_properties*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3,  variable2 /*pname*/,  variable1 /*prop*/) /*Map::[]=*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))( self,  variable2 /*pname*/) /*MMSrcLocalClass::has_global_property_by_name*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable4 = ((abstractmetamodel___MMLocalClass___properties_by_name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___properties_by_name))( self) /*MMSrcLocalClass::properties_by_name*/;
+    variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable2 /*pname*/) /*Map::[]*/;
+    variable3 = variable4;
+    variable4 = ((array___AbstractArray___length_t)CALL( variable3 /*globs*/,COLOR_abstract_collection___Collection___length))( variable3 /*globs*/) /*Array::length*/;
+    variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int( TAG_Int(1)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable1 /*prop*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable1 /*prop*/) /*MMSrcLocalProperty::node*/;
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Name error: "), TAG_Int(12)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  self;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" inherits "), TAG_Int(10)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      variable11 = ((array___AbstractArray___length_t)CALL( variable3 /*globs*/,COLOR_abstract_collection___Collection___length))( variable3 /*globs*/) /*Array::length*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(" global properties named "), TAG_Int(25)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
+      variable15 =  variable2 /*pname*/;
+      variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable17) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable4, variable5) /*PropertyBuilderVisitor::error*/;
+    }
+    variable5 = ((abstract_collection___IndexedCollection___first_t)CALL( variable3 /*globs*/,COLOR_abstract_collection___Collection___first))( variable3 /*globs*/) /*Array::first*/;
+    variable4 = variable5;
+    ((inheritance___MMLocalProperty___inherit_global_t)CALL( variable1 /*prop*/,COLOR_inheritance___MMLocalProperty___inherit_global))( variable1 /*prop*/,  variable4 /*g*/) /*MMSrcLocalProperty::inherit_global*/;
+  }
+  variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+  variable3 = TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((abstractmetamodel___MMConcreteProperty___new_global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMConcreteProperty___new_global))( variable1 /*prop*/) /*MMSrcLocalProperty::new_global*/;
+    variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+    variable4 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable1 /*prop*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable1 /*prop*/) /*MMSrcLocalProperty::node*/;
+    variable4 = TAG_Bool((variable4==NIT_NULL) || VAL_ISA(variable4, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+    ((abstractmetamodel___MMGlobalProperty___is_init__eq_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalProperty___is_init__eq))(variable3, variable4) /*MMGlobalProperty::is_init=*/;
+  }
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___MMSrcAncestor___node(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcAncestor::node (src/syntax//mmbuilder.nit:169,2--170:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___MMSrcAncestor____node( self) /*MMSrcAncestor::_node*/;
+}
+val_t mmbuilder___MMSrcAncestor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcAncestor::local_class (src/syntax//mmbuilder.nit:171,2--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___MMSrcAncestor____local_class( self) /*MMSrcAncestor::_local_class*/;
+}
+void mmbuilder___MMSrcAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcAncestor::init (src/syntax//mmbuilder.nit:173,2--176:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcAncestor].i]) return;
+  ATTR_mmbuilder___MMSrcAncestor____node( self) /*MMSrcAncestor::_node*/ =  variable0 /*n*/;
+  ATTR_mmbuilder___MMSrcAncestor____local_class( self) /*MMSrcAncestor::_local_class*/ =  variable1 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcAncestor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::local_class_arity (src/syntax//mmbuilder.nit:187,2--188:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity( self) /*ClassBuilderVisitor::_local_class_arity*/;
+}
+void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::local_class_arity= (src/syntax//mmbuilder.nit:187,2--188:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity( self) /*ClassBuilderVisitor::_local_class_arity*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___ClassBuilderVisitor___formals(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::formals (src/syntax//mmbuilder.nit:190,2--191:67)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___ClassBuilderVisitor____formals( self) /*ClassBuilderVisitor::_formals*/;
+}
+void mmbuilder___ClassBuilderVisitor___formals__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::formals= (src/syntax//mmbuilder.nit:190,2--191:67)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___ClassBuilderVisitor____formals( self) /*ClassBuilderVisitor::_formals*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassBuilderVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::visit (src/syntax//mmbuilder.nit:193,2--51)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_class_builder_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_class_builder))( variable0 /*n*/,  self) /*PNode::accept_class_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassBuilderVisitor::init (src/syntax//mmbuilder.nit:194,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassSpecializationBuilderVisitor::visit (src/syntax//mmbuilder.nit:201,2--66)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_class_specialization_builder_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_class_specialization_builder))( variable0 /*n*/,  self) /*PNode::accept_class_specialization_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassSpecializationBuilderVisitor::init (src/syntax//mmbuilder.nit:202,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassAncestorBuilder___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassAncestorBuilder::visit (src/syntax//mmbuilder.nit:209,2--60)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_class_ancestor_builder_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_class_ancestor_builder))( variable0 /*n*/,  self) /*PNode::accept_class_ancestor_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassAncestorBuilder___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassAncestorBuilder::init (src/syntax//mmbuilder.nit:210,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassVerifierVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassVerifierVisitor::visit (src/syntax//mmbuilder.nit:217,2--52)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_class_verifier_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_class_verifier))( variable0 /*n*/,  self) /*PNode::accept_class_verifier*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ClassVerifierVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::ClassVerifierVisitor::init (src/syntax//mmbuilder.nit:218,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PropertyBuilderVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyBuilderVisitor::visit (src/syntax//mmbuilder.nit:228,2--54)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_property_builder_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_property_builder))( variable0 /*n*/,  self) /*PNode::accept_property_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PropertyBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyBuilderVisitor::init (src/syntax//mmbuilder.nit:229,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PropertyVerifierVisitor___params(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::params (src/syntax//mmbuilder.nit:236,2--237:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PropertyVerifierVisitor____params( self) /*PropertyVerifierVisitor::_params*/;
+}
+void mmbuilder___PropertyVerifierVisitor___params__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::params= (src/syntax//mmbuilder.nit:236,2--237:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___PropertyVerifierVisitor____params( self) /*PropertyVerifierVisitor::_params*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PropertyVerifierVisitor___untyped_params(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::untyped_params (src/syntax//mmbuilder.nit:239,2--240:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PropertyVerifierVisitor____untyped_params( self) /*PropertyVerifierVisitor::_untyped_params*/;
+}
+void mmbuilder___PropertyVerifierVisitor___untyped_params__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::untyped_params= (src/syntax//mmbuilder.nit:239,2--240:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___PropertyVerifierVisitor____untyped_params( self) /*PropertyVerifierVisitor::_untyped_params*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PropertyVerifierVisitor___vararg_rank(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::vararg_rank (src/syntax//mmbuilder.nit:242,2--243:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PropertyVerifierVisitor____vararg_rank( self) /*PropertyVerifierVisitor::_vararg_rank*/;
+}
+void mmbuilder___PropertyVerifierVisitor___vararg_rank__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::vararg_rank= (src/syntax//mmbuilder.nit:242,2--243:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___PropertyVerifierVisitor____vararg_rank( self) /*PropertyVerifierVisitor::_vararg_rank*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PropertyVerifierVisitor___signature(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::signature (src/syntax//mmbuilder.nit:245,2--246:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PropertyVerifierVisitor____signature( self) /*PropertyVerifierVisitor::_signature*/;
+}
+void mmbuilder___PropertyVerifierVisitor___signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::signature= (src/syntax//mmbuilder.nit:245,2--246:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___PropertyVerifierVisitor____signature( self) /*PropertyVerifierVisitor::_signature*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PropertyVerifierVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::visit (src/syntax//mmbuilder.nit:248,2--55)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PNode___accept_property_verifier_t)CALL( variable0 /*n*/,COLOR_mmbuilder___PNode___accept_property_verifier))( variable0 /*n*/,  self) /*PNode::accept_property_verifier*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PropertyVerifierVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::PropertyVerifierVisitor::init (src/syntax//mmbuilder.nit:250,2--21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_class_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_class_builder (src/syntax//mmbuilder.nit:256,2--89)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_class_specialization_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_class_specialization_builder (src/syntax//mmbuilder.nit:257,2--118)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_class_ancestor_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_class_ancestor_builder (src/syntax//mmbuilder.nit:258,2--99)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_class_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_class_verifier (src/syntax//mmbuilder.nit:259,2--91)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_property_builder (src/syntax//mmbuilder.nit:260,2--95)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PNode___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PNode::accept_property_verifier (src/syntax//mmbuilder.nit:261,2--97)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AModule___import_super_modules(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::AModule::import_super_modules (src/syntax//mmbuilder.nit:265,2--296:32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      static val_t once_value_variable6_37; static int once_bool_variable6_37;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_array___Array___init(); /*new Array[Symbol]*/
+  variable2 = variable3;
+  variable4 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, Int]*/
+  variable3 = variable4;
+  variable4 = NIT_NULL /*decl variable no_import*/;
+  variable5 = ((parser_nodes___AModule___n_imports_t)CALL( self,COLOR_parser_nodes___AModule___n_imports))( self) /*AModule::n_imports*/;
+  variable5 = ((list___List___iterator_t)CALL(variable5,COLOR_abstract_collection___Collection___iterator))(variable5) /*List::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((list___ListIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((list___ListIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ListIterator::item*/;
+    variable8 = ((mmbuilder___PImport___module_name_t)CALL( variable6 /*i*/,COLOR_mmbuilder___PImport___module_name))( variable6 /*i*/) /*PImport::module_name*/;
+    variable7 = variable8;
+    variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*n*/ ==  NIT_NULL /*null*/) || (( variable7 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*n*/,COLOR_kernel___Object_____eqeq))( variable7 /*n*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*module_names_to_import*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*module_names_to_import*/,  variable7 /*n*/) /*Array::add*/;
+      variable8 = ((mmbuilder___PImport___visibility_level_t)CALL( variable6 /*i*/,COLOR_mmbuilder___PImport___visibility_level))( variable6 /*i*/) /*PImport::visibility_level*/;
+      ((hash___HashMap_____braeq_t)CALL( variable3 /*module_visibility*/,COLOR_abstract_collection___Map_____braeq))( variable3 /*module_visibility*/,  variable7 /*n*/, variable8) /*HashMap::[]=*/;
+    } else { /*if*/
+      variable4 =  variable6 /*i*/ /*no_import=*/;
+    }
+    continue_36: while(0);
+    ((list___ListIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ListIterator::next*/;
+  }
+  break_36: while(0);
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*no_import*/ ==  NIT_NULL /*null*/) || (( variable4 /*no_import*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*no_import*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*no_import*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*no_import*/,COLOR_kernel___Object_____eqeq))( variable4 /*no_import*/,  NIT_NULL /*null*/) /*PImport::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable2 /*module_names_to_import*/,COLOR_abstract_collection___Collection___is_empty))( variable2 /*module_names_to_import*/) /*Array::is_empty*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 = ((parser_prod___Prod___locate_t)CALL( variable4 /*no_import*/,COLOR_parser_prod___PNode___locate))( variable4 /*no_import*/) /*PImport::locate*/;
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(": Error: Top modules cannot import other modules."), TAG_Int(49)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+      ((mmloader___ToolContext___error_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error))( variable0 /*tc*/, variable5) /*ToolContext::error*/;
+    }
+  } else { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable2 /*module_names_to_import*/,COLOR_abstract_collection___Collection___is_empty))( variable2 /*module_names_to_import*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      if (once_bool_variable6_37) variable6 = once_value_variable6_37;
+      else {
+        variable6 = NEW_string___String___with_native(BOX_NativeString("standard"), TAG_Int(8)); /*new String*/
+        variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+        once_value_variable6_37 = variable6;
+        once_bool_variable6_37 = true;
+      }
+      variable5 = variable6;
+      ((array___AbstractArray___add_t)CALL( variable2 /*module_names_to_import*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*module_names_to_import*/,  variable5 /*stdname*/) /*Array::add*/;
+      ((hash___HashMap_____braeq_t)CALL( variable3 /*module_visibility*/,COLOR_abstract_collection___Map_____braeq))( variable3 /*module_visibility*/,  variable5 /*stdname*/,  TAG_Int(1)) /*HashMap::[]=*/;
+    }
+  }
+  ((mmloader___MMModule___import_supers_modules_t)CALL( variable1 /*mod*/,COLOR_mmloader___MMModule___import_supers_modules))( variable1 /*mod*/,  variable2 /*module_names_to_import*/) /*MMSrcModule::import_supers_modules*/;
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*module_names_to_import*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*module_names_to_import*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable8 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable3 /*module_visibility*/,COLOR_abstract_collection___Map_____bra))( variable3 /*module_visibility*/,  variable6 /*mname*/) /*HashMap::[]*/;
+    variable7 = variable8;
+    variable9 = ((mmloader___ToolContext___get_module_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___get_module))( variable0 /*tc*/,  variable6 /*mname*/,  variable1 /*mod*/) /*ToolContext::get_module*/;
+    variable8 = variable9;
+    ((abstractmetamodel___MMModule___add_super_module_t)CALL( variable1 /*mod*/,COLOR_abstractmetamodel___MMModule___add_super_module))( variable1 /*mod*/,  variable8 /*m*/,  variable7 /*level*/) /*MMSrcModule::add_super_module*/;
+    continue_38: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_38: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___APackagedecl___accept_class_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::APackagedecl::accept_class_builder (src/syntax//mmbuilder.nit:302,2--305:93)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___APackagedecl___n_id_t)CALL( self,COLOR_parser_nodes___APackagedecl___n_id))( self) /*APackagedecl::n_id*/;
+  variable1 = ((syntax_base___Token___to_symbol_t)CALL(variable1,COLOR_syntax_base___Token___to_symbol))(variable1) /*TId::to_symbol*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassBuilderVisitor::module*/;
+  variable2 = ((abstractmetamodel___MMModule___name_t)CALL(variable2,COLOR_abstractmetamodel___MMModule___name))(variable2) /*MMSrcModule::name*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*Symbol::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((parser_nodes___APackagedecl___n_id_t)CALL( self,COLOR_parser_nodes___APackagedecl___n_id))( self) /*APackagedecl::n_id*/;
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Error: Package name missmatch between "), TAG_Int(38)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassBuilderVisitor::module*/;
+    variable5 = ((abstractmetamodel___MMModule___name_t)CALL(variable5,COLOR_abstractmetamodel___MMModule___name))(variable5) /*MMSrcModule::name*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    variable9 = ((parser_nodes___APackagedecl___n_id_t)CALL( self,COLOR_parser_nodes___APackagedecl___n_id))( self) /*APackagedecl::n_id*/;
+    variable9 = ((syntax_base___Token___to_symbol_t)CALL(variable9,COLOR_syntax_base___Token___to_symbol))(variable9) /*TId::to_symbol*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable1, variable2) /*ClassBuilderVisitor::error*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PImport___module_name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PImport::module_name (src/syntax//mmbuilder.nit:311,2--312:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method module_name called (src/syntax//mmbuilder.nit:311,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmbuilder___PImport___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PImport::visibility_level (src/syntax//mmbuilder.nit:314,2--315:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method visibility_level called (src/syntax//mmbuilder.nit:314,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmbuilder___AImport___module_name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AImport::module_name (src/syntax//mmbuilder.nit:318,2--320:23)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AImport___n_id_t)CALL( self,COLOR_parser_nodes___AImport___n_id))( self) /*AImport::n_id*/;
+  variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*TId::to_symbol*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AImport___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AImport::visibility_level (src/syntax//mmbuilder.nit:322,2--324:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AImport___n_visibility_t)CALL( self,COLOR_parser_nodes___AImport___n_visibility))( self) /*AImport::n_visibility*/;
+  variable0 = ((mmbuilder___PVisibility___level_t)CALL(variable0,COLOR_mmbuilder___PVisibility___level))(variable0) /*PVisibility::level*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___ANoImport___module_name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ANoImport::module_name (src/syntax//mmbuilder.nit:328,2--330:13)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  NIT_NULL /*null*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___PVisibility___level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PVisibility::level (src/syntax//mmbuilder.nit:335,2--336:16)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method level called (src/syntax//mmbuilder.nit:335,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmbuilder___APublicVisibility___level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::APublicVisibility::level (src/syntax//mmbuilder.nit:339,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  goto return_label43;
+  return_label43: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AProtectedVisibility___level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AProtectedVisibility::level (src/syntax//mmbuilder.nit:342,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(2);
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___APrivateVisibility___level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::APrivateVisibility::level (src/syntax//mmbuilder.nit:345,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(3);
+  goto return_label45;
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AIntrudeVisibility___level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AIntrudeVisibility::level (src/syntax//mmbuilder.nit:348,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  goto return_label46;
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___PClassdef___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::local_class (src/syntax//mmbuilder.nit:353,2--50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PClassdef____local_class( self) /*PClassdef::_local_class*/;
+}
+val_t mmbuilder___PClassdef___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::name (src/syntax//mmbuilder.nit:355,2--356:18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method name called (src/syntax//mmbuilder.nit:355,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmbuilder___PClassdef___arity(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::arity (src/syntax//mmbuilder.nit:358,2--359:28)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___PClassdef___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::visibility_level (src/syntax//mmbuilder.nit:361,2--362:39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  goto return_label48;
+  return_label48: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void mmbuilder___PClassdef___accept_class_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::accept_class_builder (src/syntax//mmbuilder.nit:364,2--400:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NIT_NULL /*decl variable local_class*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassBuilderVisitor::module*/;
+  variable2 = variable3;
+  variable4 = ((syntax_base___MMSrcModule___src_local_classes_t)CALL( variable2 /*mod*/,COLOR_syntax_base___MMSrcModule___src_local_classes))( variable2 /*mod*/) /*MMSrcModule::src_local_classes*/;
+  variable3 = variable4;
+  variable4 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+  variable4 = ((abstract_collection___Map___has_key_t)CALL( variable3 /*local_classes*/,COLOR_abstract_collection___Map___has_key))( variable3 /*local_classes*/, variable4) /*Map::has_key*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+    variable4 = ((abstract_collection___Map_____bra_t)CALL( variable3 /*local_classes*/,COLOR_abstract_collection___Map_____bra))( variable3 /*local_classes*/, variable4) /*Map::[]*/;
+    variable1 = variable4 /*local_class=*/;
+    variable4 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/;
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Error: A class "), TAG_Int(15)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" is already defined at line "), TAG_Int(28)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable1 /*local_class*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable1 /*local_class*/) /*MMSrcLocalClass::nodes*/;
+      variable11 = ((abstract_collection___IndexedCollection___first_t)CALL(variable11,COLOR_abstract_collection___Collection___first))(variable11) /*Array::first*/;
+      variable11 = ((parser_prod___Prod___first_token_t)CALL(variable11,COLOR_parser_prod___Prod___first_token))(variable11) /*PClassdef::first_token*/;
+      variable11 = ((lexer___Token___line_t)CALL(variable11,COLOR_lexer___Token___line))(variable11) /*Token::line*/;
+      variable12 = variable11;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*ClassBuilderVisitor::error*/;
+      goto return_label49;
+    }
+    variable4 = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable1 /*local_class*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable1 /*local_class*/) /*MMSrcLocalClass::nodes*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  self) /*Array::add*/;
+  } else { /*if*/
+    variable4 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+    variable5 = ((mmbuilder___PClassdef___arity_t)CALL( self,COLOR_mmbuilder___PClassdef___arity))( self) /*PClassdef::arity*/;
+    variable6 = NEW_syntax_base___MMSrcLocalClass___init(variable4,  self, variable5); /*new MMSrcLocalClass*/
+    variable4 = variable6;
+    variable1 = variable4 /*local_class=*/;
+    ((abstractmetamodel___MMModule___add_local_class_t)CALL( variable2 /*mod*/,COLOR_abstractmetamodel___MMModule___add_local_class))( variable2 /*mod*/,  variable1 /*local_class*/) /*MMSrcModule::add_local_class*/;
+    variable4 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+    ((abstract_collection___Map_____braeq_t)CALL( variable3 /*local_classes*/,COLOR_abstract_collection___Map_____braeq))( variable3 /*local_classes*/, variable4,  variable1 /*local_class*/) /*Map::[]=*/;
+    variable5 = ((mmbuilder___PClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*PClassdef::name*/;
+    variable5 = ((abstractmetamodel___MMModule___global_class_named_t)CALL( variable2 /*mod*/,COLOR_abstractmetamodel___MMModule___global_class_named))( variable2 /*mod*/, variable5) /*MMSrcModule::global_class_named*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*g*/ ==  NIT_NULL /*null*/) || (( variable4 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))( variable4 /*g*/,  NIT_NULL /*null*/) /*MMGlobalClass::==*/)))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      ((abstractmetamodel___MMLocalClass___new_global_t)CALL( variable1 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___new_global))( variable1 /*local_class*/) /*MMSrcLocalClass::new_global*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable1 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable1 /*local_class*/) /*MMSrcLocalClass::global*/;
+      variable4 = variable5 /*g=*/;
+    } else { /*if*/
+      ((abstractmetamodel___MMLocalClass___set_global_t)CALL( variable1 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___set_global))( variable1 /*local_class*/,  variable4 /*g*/) /*MMSrcLocalClass::set_global*/;
+    }
+  }
+  ATTR_mmbuilder___PClassdef____local_class( self) /*PClassdef::_local_class*/ =  variable1 /*local_class*/;
+  ((mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq))( variable0 /*v*/,  TAG_Int(0)) /*ClassBuilderVisitor::local_class_arity=*/;
+  variable4 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMTypeFormalParameter]*/
+  ((mmbuilder___ClassBuilderVisitor___formals__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals__eq))( variable0 /*v*/, variable4) /*ClassBuilderVisitor::formals=*/;
+  ((mmbuilder___PClassdef___accept_class_builder_t)CALL( self,COLOR_SUPER_mmbuilder___PClassdef___accept_class_builder))( self,  param0) /*super PClassdef::accept_class_builder*/;
+  variable4 = ATTR_mmbuilder___PClassdef____local_class( self) /*PClassdef::_local_class*/;
+  variable5 = ((mmbuilder___ClassBuilderVisitor___formals_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals))( variable0 /*v*/) /*ClassBuilderVisitor::formals*/;
+  ((syntax_base___MMSrcLocalClass___formal_dict__eq_t)CALL(variable4,COLOR_syntax_base___MMSrcLocalClass___formal_dict__eq))(variable4, variable5) /*MMSrcLocalClass::formal_dict=*/;
+  ((mmbuilder___ClassBuilderVisitor___formals__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*ClassBuilderVisitor::formals=*/;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PClassdef___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PClassdef::accept_abs_syntax_visitor (src/syntax//mmbuilder.nit:403,2--407:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_mmbuilder___PClassdef____local_class( self) /*PClassdef::_local_class*/;
+  ((syntax_base___AbsSyntaxVisitor___local_class__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq))( variable0 /*v*/, variable1) /*AbsSyntaxVisitor::local_class=*/;
+  ((mmbuilder___PClassdef___accept_abs_syntax_visitor_t)CALL( self,COLOR_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor))( self,  param0) /*super PClassdef::accept_abs_syntax_visitor*/;
+  ((syntax_base___AbsSyntaxVisitor___local_class__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_class=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PClasskind___is_interface(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClasskind::is_interface (src/syntax//mmbuilder.nit:412,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label51;
+  return_label51: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___PClasskind___is_universal(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClasskind::is_universal (src/syntax//mmbuilder.nit:413,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label52;
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___PClasskind___is_abstract(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PClasskind::is_abstract (src/syntax//mmbuilder.nit:414,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label53;
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AInterfaceClasskind___is_interface(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AInterfaceClasskind::is_interface (src/syntax//mmbuilder.nit:418,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label54;
+  return_label54: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AUniversalClasskind___is_universal(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AUniversalClasskind::is_universal (src/syntax//mmbuilder.nit:421,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AAbstractClasskind___is_abstract(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AAbstractClasskind::is_abstract (src/syntax//mmbuilder.nit:424,2--38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label56;
+  return_label56: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AClassdef___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AClassdef::name (src/syntax//mmbuilder.nit:428,2--430:23)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AClassdef___n_id_t)CALL( self,COLOR_parser_nodes___AClassdef___n_id))( self) /*AClassdef::n_id*/;
+  variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*TClassid::to_symbol*/;
+  goto return_label57;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AClassdef___arity(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AClassdef::arity (src/syntax//mmbuilder.nit:432,2--434:28)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AClassdef___n_formaldefs_t)CALL( self,COLOR_parser_nodes___AClassdef___n_formaldefs))( self) /*AClassdef::n_formaldefs*/;
+  variable0 = ((list___List___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*List::length*/;
+  goto return_label58;
+  return_label58: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void mmbuilder___AClassdef___accept_class_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AClassdef::accept_class_verifier (src/syntax//mmbuilder.nit:436,2--489:67)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+          val_t variable9;
+          val_t variable10;
+          val_t variable11;
+          val_t variable12;
+          val_t variable13;
+          val_t variable14;
+          val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___AClassdef___accept_class_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___AClassdef___accept_class_verifier))( self,  param0) /*super AClassdef::accept_class_verifier*/;
+  variable2 = ATTR_mmbuilder___PClassdef____local_class( self) /*AClassdef::_local_class*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___global))(variable2) /*MMSrcLocalClass::global*/;
+  variable1 = variable2;
+  variable2 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable1 /*glob*/) /*MMGlobalClass::intro*/;
+  variable3 = ATTR_mmbuilder___PClassdef____local_class( self) /*AClassdef::_local_class*/;
+  variable2 = TAG_Bool((variable2 == variable3) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable3) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((mmbuilder___AClassdef___visibility_level_t)CALL( self,COLOR_mmbuilder___PClassdef___visibility_level))( self) /*AClassdef::visibility_level*/;
+    ((abstractmetamodel___MMGlobalClass___visibility_level__eq_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___visibility_level__eq))( variable1 /*glob*/, variable2) /*MMGlobalClass::visibility_level=*/;
+    variable2 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable2 = ((mmbuilder___PClasskind___is_interface_t)CALL(variable2,COLOR_mmbuilder___PClasskind___is_interface))(variable2) /*PClasskind::is_interface*/;
+    ((abstractmetamodel___MMGlobalClass___is_interface__eq_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface__eq))( variable1 /*glob*/, variable2) /*MMGlobalClass::is_interface=*/;
+    variable2 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable2 = ((mmbuilder___PClasskind___is_abstract_t)CALL(variable2,COLOR_mmbuilder___PClasskind___is_abstract))(variable2) /*PClasskind::is_abstract*/;
+    ((abstractmetamodel___MMGlobalClass___is_abstract__eq_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_abstract__eq))( variable1 /*glob*/, variable2) /*MMGlobalClass::is_abstract=*/;
+    variable2 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable2 = ((mmbuilder___PClasskind___is_universal_t)CALL(variable2,COLOR_mmbuilder___PClasskind___is_universal))(variable2) /*PClasskind::is_universal*/;
+    ((abstractmetamodel___MMGlobalClass___is_universal__eq_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal__eq))( variable1 /*glob*/, variable2) /*MMGlobalClass::is_universal=*/;
+    variable2 = ((parser_nodes___AClassdef___n_kwredef_t)CALL( self,COLOR_parser_nodes___AClassdef___n_kwredef))( self) /*AClassdef::n_kwredef*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("Redef error: No class "), TAG_Int(22)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString(" is imported. Remove the redef keyword to define a new class."), TAG_Int(61)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ClassVerifierVisitor::error*/;
+    }
+    variable2 = ATTR_mmbuilder___PClassdef____local_class( self) /*AClassdef::_local_class*/;
+    variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable2) /*MMSrcLocalClass::cshe*/;
+    variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable2) /*PartialOrderElement::direct_greaters*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable3)) break; /*for*/
+      variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+      variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable3 /*c*/) /*MMLocalClass::global*/;
+      variable4 = variable5;
+      variable5 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable1 /*glob*/) /*MMGlobalClass::is_interface*/;
+      if (UNTAG_Bool(variable5)) { /*if*/
+        variable5 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable4 /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable4 /*cg*/) /*MMGlobalClass::is_universal*/;
+        if (UNTAG_Bool(variable5)) { /*if*/
+          variable5 = NEW_string___String___init(); /*new String*/
+          variable6 = NEW_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/
+          variable7 = variable6;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+          variable8 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+          variable9 = variable8;
+          variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+          variable10 = NEW_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+          variable12 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable3 /*c*/) /*MMLocalClass::name*/;
+          variable13 = variable12;
+          variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+          variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+          variable15 = variable14;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*ClassVerifierVisitor::error*/;
+        } else { /*if*/
+          variable5 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable4 /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable4 /*cg*/) /*MMGlobalClass::is_interface*/;
+          if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+            variable5 = NEW_string___String___init(); /*new String*/
+            variable6 = NEW_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/
+            variable7 = variable6;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+            variable8 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+            variable9 = variable8;
+            variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+            variable10 = NEW_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)); /*new String*/
+            variable11 = variable10;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+            variable12 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable3 /*c*/) /*MMLocalClass::name*/;
+            variable13 = variable12;
+            variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+            variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+            variable15 = variable14;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*ClassVerifierVisitor::error*/;
+          }
+        }
+      } else { /*if*/
+        variable5 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable1 /*glob*/) /*MMGlobalClass::is_universal*/;
+        if (UNTAG_Bool(variable5)) { /*if*/
+          variable5 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable4 /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable4 /*cg*/) /*MMGlobalClass::is_interface*/;
+          variable5 =  TAG_Bool(!UNTAG_Bool(variable5));
+          if (UNTAG_Bool(variable5)) { /* and */
+            variable5 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable4 /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable4 /*cg*/) /*MMGlobalClass::is_universal*/;
+            variable5 =  TAG_Bool(!UNTAG_Bool(variable5));
+          }
+          if (UNTAG_Bool(variable5)) { /*if*/
+            variable5 = NEW_string___String___init(); /*new String*/
+            variable6 = NEW_string___String___with_native(BOX_NativeString("Special error: Universal class "), TAG_Int(31)); /*new String*/
+            variable7 = variable6;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+            variable8 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+            variable9 = variable8;
+            variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+            variable10 = NEW_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)); /*new String*/
+            variable11 = variable10;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+            variable12 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable3 /*c*/) /*MMLocalClass::name*/;
+            variable13 = variable12;
+            variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+            variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+            variable15 = variable14;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*ClassVerifierVisitor::error*/;
+          }
+        } else { /*if*/
+          variable5 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable4 /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable4 /*cg*/) /*MMGlobalClass::is_universal*/;
+          if (UNTAG_Bool(variable5)) { /*if*/
+            variable5 = NEW_string___String___init(); /*new String*/
+            variable6 = NEW_string___String___with_native(BOX_NativeString("Special error: Class "), TAG_Int(21)); /*new String*/
+            variable7 = variable6;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+            variable8 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+            variable9 = variable8;
+            variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+            variable10 = NEW_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/
+            variable11 = variable10;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+            variable12 = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable3 /*c*/) /*MMLocalClass::name*/;
+            variable13 = variable12;
+            variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+            variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+            variable15 = variable14;
+            ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable15) /*String::append*/;
+            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*ClassVerifierVisitor::error*/;
+          }
+        }
+      }
+      continue_60: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+    }
+    break_60: while(0);
+    goto return_label59;
+  }
+  variable2 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassVerifierVisitor::module*/;
+  ((syntax_base___MMGlobalClass___check_visibility_t)CALL( variable1 /*glob*/,COLOR_syntax_base___MMGlobalClass___check_visibility))( variable1 /*glob*/,  variable0 /*v*/,  self, variable2) /*MMGlobalClass::check_visibility*/;
+  variable2 = ((parser_nodes___AClassdef___n_kwredef_t)CALL( self,COLOR_parser_nodes___AClassdef___n_kwredef))( self) /*AClassdef::n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(" is an imported class. Add the redef keyword to refine it."), TAG_Int(58)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ClassVerifierVisitor::error*/;
+    goto return_label59;
+  }
+  variable2 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable1 /*glob*/) /*MMGlobalClass::intro*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___arity))(variable2) /*MMLocalClass::arity*/;
+  variable3 = ATTR_mmbuilder___PClassdef____local_class( self) /*AClassdef::_local_class*/;
+  variable3 = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___arity))(variable3) /*MMSrcLocalClass::arity*/;
+  variable2 = TAG_Bool((variable2)!=(variable3));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Redef error: Formal parameter arity missmatch; got "), TAG_Int(51)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ATTR_mmbuilder___PClassdef____local_class( self) /*AClassdef::_local_class*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___arity))(variable5) /*MMSrcLocalClass::arity*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    variable9 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable1 /*glob*/) /*MMGlobalClass::intro*/;
+    variable9 = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable9,COLOR_abstractmetamodel___MMLocalClass___arity))(variable9) /*MMLocalClass::arity*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ClassVerifierVisitor::error*/;
+  }
+  variable2 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable1 /*glob*/) /*MMGlobalClass::is_interface*/;
+  variable2 =  TAG_Bool(!UNTAG_Bool(variable2));
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable2 = ((mmbuilder___PClasskind___is_interface_t)CALL(variable2,COLOR_mmbuilder___PClasskind___is_interface))(variable2) /*PClasskind::is_interface*/;
+  }
+  variable3 = variable2;
+  if (!UNTAG_Bool(variable3)) { /* or */
+    variable3 = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_abstract))( variable1 /*glob*/) /*MMGlobalClass::is_abstract*/;
+    variable3 =  TAG_Bool(!UNTAG_Bool(variable3));
+  }
+  variable2 = variable3;
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable3 = ((mmbuilder___PClasskind___is_abstract_t)CALL(variable3,COLOR_mmbuilder___PClasskind___is_abstract))(variable3) /*PClasskind::is_abstract*/;
+  }
+  variable2 = variable3;
+  variable3 = variable2;
+  if (!UNTAG_Bool(variable3)) { /* or */
+    variable3 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable1 /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable1 /*glob*/) /*MMGlobalClass::is_universal*/;
+    variable3 =  TAG_Bool(!UNTAG_Bool(variable3));
+  }
+  variable2 = variable3;
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((parser_nodes___AClassdef___n_classkind_t)CALL( self,COLOR_parser_nodes___AClassdef___n_classkind))( self) /*AClassdef::n_classkind*/;
+    variable3 = ((mmbuilder___PClasskind___is_universal_t)CALL(variable3,COLOR_mmbuilder___PClasskind___is_universal))(variable3) /*PClasskind::is_universal*/;
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Redef error: cannot change kind of class "), TAG_Int(41)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((mmbuilder___AClassdef___name_t)CALL( self,COLOR_mmbuilder___PClassdef___name))( self) /*AClassdef::name*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*ClassVerifierVisitor::error*/;
+  }
+  return_label59: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___AClassdef___visibility_level(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AClassdef::visibility_level (src/syntax//mmbuilder.nit:493,2--495:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AClassdef___n_visibility_t)CALL( self,COLOR_parser_nodes___AClassdef___n_visibility))( self) /*AClassdef::n_visibility*/;
+  variable0 = ((mmbuilder___PVisibility___level_t)CALL(variable0,COLOR_mmbuilder___PVisibility___level))(variable0) /*PVisibility::level*/;
+  goto return_label61;
+  return_label61: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___AMainClassdef___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AMainClassdef::name (src/syntax//mmbuilder.nit:500,2--502:29)"};
+  val_t variable0;
+  static val_t once_value_variable0_63; static int once_bool_variable0_63;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_63) variable0 = once_value_variable0_63;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_63 = variable0;
+    once_bool_variable0_63 = true;
+  }
+  goto return_label62;
+  return_label62: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___ATopClassdef___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ATopClassdef::name (src/syntax//mmbuilder.nit:507,2--509:32)"};
+  val_t variable0;
+  static val_t once_value_variable0_65; static int once_bool_variable0_65;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_65) variable0 = once_value_variable0_65;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_65 = variable0;
+    once_bool_variable0_65 = true;
+  }
+  goto return_label64;
+  return_label64: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t mmbuilder___MMSrcTypeFormalParameter___node(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcTypeFormalParameter::node (src/syntax//mmbuilder.nit:515,2--516:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___MMSrcTypeFormalParameter____node( self) /*MMSrcTypeFormalParameter::_node*/;
+}
+void mmbuilder___MMSrcTypeFormalParameter___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::MMSrcTypeFormalParameter::init (src/syntax//mmbuilder.nit:518,2--521:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i]) return;
+  ((genericity___MMTypeFormalParameter___init_t)CALL( self,COLOR_genericity___MMTypeFormalParameter___init))( self,  variable0 /*name*/,  variable1 /*pos*/,  variable2 /*local_class*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
+  ATTR_mmbuilder___MMSrcTypeFormalParameter____node( self) /*MMSrcTypeFormalParameter::_node*/ =  variable3 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AFormaldef___accept_class_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AFormaldef::accept_class_builder (src/syntax//mmbuilder.nit:529,2--537:7)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AFormaldef___n_id_t)CALL( self,COLOR_parser_nodes___AFormaldef___n_id))( self) /*AFormaldef::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TClassid::to_symbol*/;
+  variable1 = variable2;
+  variable3 = ((mmbuilder___ClassBuilderVisitor___local_class_arity_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity))( variable0 /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
+  variable4 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*ClassBuilderVisitor::local_class*/;
+  variable5 = NEW_mmbuilder___MMSrcTypeFormalParameter___init( variable1 /*name*/, variable3, variable4,  self); /*new MMSrcTypeFormalParameter*/
+  variable3 = variable5;
+  variable2 = variable3;
+  ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/ =  variable2 /*formal_type*/;
+  variable3 = ((mmbuilder___ClassBuilderVisitor___local_class_arity_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity))( variable0 /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1)));
+  ((mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq))( variable0 /*v*/, variable3) /*ClassBuilderVisitor::local_class_arity=*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*ClassBuilderVisitor::local_class*/;
+  ((genericity___MMLocalClass___register_formal_t)CALL(variable3,COLOR_genericity___MMLocalClass___register_formal))(variable3,  variable2 /*formal_type*/) /*MMSrcLocalClass::register_formal*/;
+  variable3 = ((mmbuilder___ClassBuilderVisitor___formals_t)CALL( variable0 /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals))( variable0 /*v*/) /*ClassBuilderVisitor::formals*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3,  variable1 /*name*/,  variable2 /*formal_type*/) /*Map::[]=*/;
+  ((mmbuilder___AFormaldef___accept_class_builder_t)CALL( self,COLOR_SUPER_mmbuilder___AFormaldef___accept_class_builder))( self,  param0) /*super AFormaldef::accept_class_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AFormaldef___accept_class_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AFormaldef::accept_class_verifier (src/syntax//mmbuilder.nit:540,2--558:119)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+      val_t variable4;
+    val_t variable5;
+        val_t variable6;
+        val_t variable7;
+        val_t variable8;
+        val_t variable9;
+        val_t variable10;
+        val_t variable11;
+        val_t variable12;
+        val_t variable13;
+        val_t variable14;
+        val_t variable15;
+        val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___AFormaldef___accept_class_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___AFormaldef___accept_class_verifier))( self,  param0) /*super AFormaldef::accept_class_verifier*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*ClassVerifierVisitor::local_class*/;
+  variable1 = variable2;
+  variable3 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable1 /*c*/) /*MMSrcLocalClass::global*/;
+  variable3 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalClass___intro))(variable3) /*MMGlobalClass::intro*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable1 /*c*/ ==  variable2 /*o*/) || (( variable1 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*c*/, variable2 /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))( variable1 /*c*/,  variable2 /*o*/) /*MMSrcLocalClass::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((parser_nodes___AFormaldef___n_type_t)CALL( self,COLOR_parser_nodes___AFormaldef___n_type))( self) /*AFormaldef::n_type*/;
+    variable3 = TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PType::==*/)))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+      variable4 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassVerifierVisitor::module*/;
+      variable4 = ((inheritance___MMModule___type_any_t)CALL(variable4,COLOR_inheritance___MMModule___type_any))(variable4) /*MMSrcModule::type_any*/;
+      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable3,COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable3, variable4) /*MMSrcTypeFormalParameter::bound=*/;
+    } else { /*if*/
+      variable3 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+      variable4 = ((parser_nodes___AFormaldef___n_type_t)CALL( self,COLOR_parser_nodes___AFormaldef___n_type))( self) /*AFormaldef::n_type*/;
+      variable4 = ((syntax_base___PType___get_stype_t)CALL(variable4,COLOR_syntax_base___PType___get_stype))(variable4,  variable0 /*v*/) /*PType::get_stype*/;
+      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable3,COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable3, variable4) /*MMSrcTypeFormalParameter::bound=*/;
+    }
+  } else { /*if*/
+    variable4 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+    variable4 = ((genericity___MMTypeFormalParameter___position_t)CALL(variable4,COLOR_genericity___MMTypeFormalParameter___position))(variable4) /*MMSrcTypeFormalParameter::position*/;
+    variable4 = ((genericity___MMLocalClass___get_formal_t)CALL( variable2 /*o*/,COLOR_genericity___MMLocalClass___get_formal))( variable2 /*o*/, variable4) /*MMLocalClass::get_formal*/;
+    variable4 = ((type_formal___MMTypeFormal___bound_t)CALL(variable4,COLOR_type_formal___MMTypeFormal___bound))(variable4) /*MMTypeFormalParameter::bound*/;
+    variable5 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*ClassVerifierVisitor::module*/;
+    variable4 = ((static_type___MMType___for_module_t)CALL(variable4,COLOR_static_type___MMType___for_module))(variable4, variable5) /*MMType::for_module*/;
+    variable3 = variable4;
+    variable4 = ((parser_nodes___AFormaldef___n_type_t)CALL( self,COLOR_parser_nodes___AFormaldef___n_type))( self) /*AFormaldef::n_type*/;
+    variable4 = TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*PType::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable4,COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable4,  variable3 /*ob*/) /*MMSrcTypeFormalParameter::bound=*/;
+    } else { /*if*/
+      variable4 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+      variable5 = ((parser_nodes___AFormaldef___n_type_t)CALL( self,COLOR_parser_nodes___AFormaldef___n_type))( self) /*AFormaldef::n_type*/;
+      variable5 = ((syntax_base___PType___get_stype_t)CALL(variable5,COLOR_syntax_base___PType___get_stype))(variable5,  variable0 /*v*/) /*PType::get_stype*/;
+      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable4,COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable4, variable5) /*MMSrcTypeFormalParameter::bound=*/;
+      variable4 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+      variable4 = ((type_formal___MMTypeFormal___bound_t)CALL(variable4,COLOR_type_formal___MMTypeFormal___bound))(variable4) /*MMSrcTypeFormalParameter::bound*/;
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  variable3 /*ob*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable3 /*ob*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable3 /*ob*/) /*MMType::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = NEW_string___String___init(); /*new String*/
+        variable5 = NEW_string___String___with_native(BOX_NativeString("Redef error: Cannot change formal parameter type of class "), TAG_Int(58)); /*new String*/
+        variable6 = variable5;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+        variable7 =  variable1 /*c*/;
+        variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+        variable8 = NEW_string___String___with_native(BOX_NativeString("; got "), TAG_Int(6)); /*new String*/
+        variable9 = variable8;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+        variable10 = ATTR_mmbuilder___AFormaldef____formal( self) /*AFormaldef::_formal*/;
+        variable10 = ((type_formal___MMTypeFormal___bound_t)CALL(variable10,COLOR_type_formal___MMTypeFormal___bound))(variable10) /*MMSrcTypeFormalParameter::bound*/;
+        variable11 = variable10;
+        variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+        variable12 = NEW_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/
+        variable13 = variable12;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+        variable14 =  variable3 /*ob*/;
+        variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable14) /*String::append*/;
+        variable15 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+        variable16 = variable15;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable16) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*ClassVerifierVisitor::error*/;
+      }
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___ASuperclass___ancestor(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ASuperclass::ancestor (src/syntax//mmbuilder.nit:566,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___ASuperclass____ancestor( self) /*ASuperclass::_ancestor*/;
+}
+void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ASuperclass::accept_class_specialization_builder (src/syntax//mmbuilder.nit:568,2--574:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ASuperclass___accept_class_specialization_builder_t)CALL( self,COLOR_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder))( self,  param0) /*super ASuperclass::accept_class_specialization_builder*/;
+  variable2 = ((parser_nodes___ASuperclass___n_type_t)CALL( self,COLOR_parser_nodes___ASuperclass___n_type))( self) /*ASuperclass::n_type*/;
+  variable2 = ((syntax_base___PType___get_local_class_t)CALL(variable2,COLOR_syntax_base___PType___get_local_class))(variable2,  variable0 /*v*/) /*PType::get_local_class*/;
+  variable1 = variable2;
+  variable3 = NEW_mmbuilder___MMSrcAncestor___init( self,  variable1 /*c*/); /*new MMSrcAncestor*/
+  variable2 = variable3;
+  ATTR_mmbuilder___ASuperclass____ancestor( self) /*ASuperclass::_ancestor*/ =  variable2 /*ancestor*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*ClassSpecializationBuilderVisitor::local_class*/;
+  ((inheritance___MMLocalClass___add_direct_parent_t)CALL(variable3,COLOR_inheritance___MMLocalClass___add_direct_parent))(variable3,  variable2 /*ancestor*/) /*MMSrcLocalClass::add_direct_parent*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ASuperclass::accept_class_ancestor_builder (src/syntax//mmbuilder.nit:577,2--581:46)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ASuperclass___accept_class_ancestor_builder_t)CALL( self,COLOR_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder))( self,  param0) /*super ASuperclass::accept_class_ancestor_builder*/;
+  variable1 = ATTR_mmbuilder___ASuperclass____ancestor( self) /*ASuperclass::_ancestor*/;
+  variable2 = ((parser_nodes___ASuperclass___n_type_t)CALL( self,COLOR_parser_nodes___ASuperclass___n_type))( self) /*ASuperclass::n_type*/;
+  variable2 = ((syntax_base___PType___get_unchecked_stype_t)CALL(variable2,COLOR_syntax_base___PType___get_unchecked_stype))(variable2,  variable0 /*v*/) /*PType::get_unchecked_stype*/;
+  ((static_type___MMAncestor___stype__eq_t)CALL(variable1,COLOR_static_type___MMAncestor___stype__eq))(variable1, variable2) /*MMSrcAncestor::stype=*/;
+  variable1 = ATTR_mmbuilder___ASuperclass____ancestor( self) /*ASuperclass::_ancestor*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*ClassAncestorBuilder::local_class*/;
+  variable2 = ((genericity___MMLocalClass___get_type_t)CALL(variable2,COLOR_static_type___MMLocalClass___get_type))(variable2) /*MMSrcLocalClass::get_type*/;
+  ((static_type___MMAncestor___inheriter__eq_t)CALL(variable1,COLOR_static_type___MMAncestor___inheriter__eq))(variable1, variable2) /*MMSrcAncestor::inheriter=*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ASuperclass___accept_class_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ASuperclass::accept_class_verifier (src/syntax//mmbuilder.nit:584,2--587:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ASuperclass___accept_class_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___ASuperclass___accept_class_verifier))( self,  param0) /*super ASuperclass::accept_class_verifier*/;
+  variable1 = ((parser_nodes___ASuperclass___n_type_t)CALL( self,COLOR_parser_nodes___ASuperclass___n_type))( self) /*ASuperclass::n_type*/;
+  ((syntax_base___PType___check_conform_t)CALL(variable1,COLOR_syntax_base___PType___check_conform))(variable1,  variable0 /*v*/) /*PType::check_conform*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PPropdef___process_and_check(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "mmbuilder::PPropdef::process_and_check (src/syntax//mmbuilder.nit:592,2--603:58)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
+  variable4 = TAG_Bool((variable4 ==  variable1 /*prop*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable1 /*prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable1 /*prop*/) /*MMConcreteProperty::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((mmbuilder___PPropdef___do_and_check_intro_t)CALL( self,COLOR_mmbuilder___PPropdef___do_and_check_intro))( self,  variable0 /*v*/,  variable1 /*prop*/,  variable2 /*has_redef*/,  variable3 /*visibility_level*/) /*PPropdef::do_and_check_intro*/;
+  } else { /*if*/
+    ((mmbuilder___PPropdef___do_and_check_redef_t)CALL( self,COLOR_mmbuilder___PPropdef___do_and_check_redef))( self,  variable0 /*v*/,  variable1 /*prop*/,  variable2 /*has_redef*/,  variable3 /*visibility_level*/) /*PPropdef::do_and_check_redef*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PPropdef___do_and_check_intro(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "mmbuilder::PPropdef::do_and_check_intro (src/syntax//mmbuilder.nit:607,2--643:84)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+  variable4 = variable5;
+  variable6 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+  variable6 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___global))(variable6) /*MMLocalClass::global*/;
+  variable5 = variable6;
+  variable6 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+  variable6 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___global))(variable6) /*MMSrcLocalClass::global*/;
+  variable6 = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable6,COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable6) /*MMGlobalClass::visibility_level*/;
+  variable6 = TAG_Bool(UNTAG_Int(variable6)>=UNTAG_Int( TAG_Int(3)));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable3 =  TAG_Int(3) /*visibility_level=*/;
+  }
+  ((abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq))( variable4 /*glob*/,  variable3 /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
+  variable6 =  variable2 /*has_redef*/;
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable4 /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable6 =  TAG_Bool(!UNTAG_Bool(variable6));
+  }
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("Error: No property "), TAG_Int(19)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 =  variable1 /*prop*/;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(" is inherited. Remove the redef keyword to define a new property."), TAG_Int(65)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+  }
+  variable6 = ((abstractmetamodel___MMGlobalProperty___is_attribute_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_attribute))( variable4 /*glob*/) /*MMGlobalProperty::is_attribute*/;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable5 /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable5 /*gbc*/) /*MMGlobalClass::is_interface*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 =  variable1 /*prop*/;
+      variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(" in the interface "), TAG_Int(18)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+      variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+      variable13 = variable12;
+      variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+      variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable15 = variable14;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+    } else { /*if*/
+      variable6 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable5 /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable5 /*gbc*/) /*MMGlobalClass::is_universal*/;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  variable1 /*prop*/;
+        variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+        variable10 = NEW_string___String___with_native(BOX_NativeString(" in the universal class "), TAG_Int(24)); /*new String*/
+        variable11 = variable10;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+        variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+        variable13 = variable12;
+        variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+        variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+        variable15 = variable14;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+      }
+    }
+  } else { /*if*/
+    variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable4 /*glob*/) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable5 /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable5 /*gbc*/) /*MMGlobalClass::is_interface*/;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  variable1 /*prop*/;
+        variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+        variable10 = NEW_string___String___with_native(BOX_NativeString(" in the class "), TAG_Int(14)); /*new String*/
+        variable11 = variable10;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+        variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+        variable13 = variable12;
+        variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+        variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+        variable15 = variable14;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+      } else { /*if*/
+        variable6 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable5 /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable5 /*gbc*/) /*MMGlobalClass::is_universal*/;
+        if (UNTAG_Bool(variable6)) { /*if*/
+          variable6 = NEW_string___String___init(); /*new String*/
+          variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/
+          variable8 = variable7;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+          variable9 =  variable1 /*prop*/;
+          variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+          variable10 = NEW_string___String___with_native(BOX_NativeString(" in the universal "), TAG_Int(18)); /*new String*/
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+          variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+          variable13 = variable12;
+          variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+          variable14 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+          variable15 = variable14;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+        }
+      }
+    }
+  }
+  variable6 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*prop*/) /*MMSrcLocalProperty::signature*/;
+  variable6 = TAG_Bool((variable6 ==  NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable4 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable4 /*glob*/) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+      variable8 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMSrcLocalProperty::name*/;
+      variable7 = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable7, variable8) /*MMLocalClass::super_methods_named*/;
+      variable6 = variable7;
+      ((mmbuilder___PPropdef___inherit_signature_t)CALL( self,COLOR_mmbuilder___PPropdef___inherit_signature))( self,  variable0 /*v*/,  variable1 /*prop*/,  variable6 /*supers*/) /*PPropdef::inherit_signature*/;
+    }
+    variable6 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*prop*/) /*MMSrcLocalProperty::signature*/;
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable6 ==  NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+    } else { /*if*/
+      variable6 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+      variable6 = ((array___AbstractArray___is_empty_t)CALL(variable6,COLOR_abstract_collection___Collection___is_empty))(variable6) /*Array::is_empty*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable6)))) { /*if*/
+        variable6 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+        variable6 = ((abstract_collection___IndexedCollection___first_t)CALL(variable6,COLOR_abstract_collection___Collection___first))(variable6) /*Array::first*/;
+        variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Untyped parameter."), TAG_Int(25)); /*new String*/
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable6, variable7) /*PropertyVerifierVisitor::error*/;
+      } else { /*if*/
+        variable6 = NEW_array___Array___init(); /*new Array[MMType]*/
+        variable7 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+        variable7 = ((genericity___MMLocalClass___get_type_t)CALL(variable7,COLOR_static_type___MMLocalClass___get_type))(variable7) /*MMSrcLocalClass::get_type*/;
+        variable8 = NEW_static_type___MMSignature___init(variable6,  NIT_NULL /*null*/, variable7); /*new MMSignature*/
+        variable6 = variable8;
+        ((static_type___MMLocalProperty___signature__eq_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable1 /*prop*/, variable6) /*MMSrcLocalProperty::signature=*/;
+      }
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PPropdef___inherit_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "mmbuilder::PPropdef::inherit_signature (src/syntax//mmbuilder.nit:648,2--669:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+        val_t variable9;
+        val_t variable10;
+        val_t variable11;
+        val_t variable12;
+        val_t variable13;
+        val_t variable14;
+        val_t variable15;
+        val_t variable16;
+        val_t variable17;
+        val_t variable18;
+        val_t variable19;
+        val_t variable20;
+        val_t variable21;
+        val_t variable22;
+        val_t variable23;
+        val_t variable24;
+        val_t variable25;
+        val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*prop*/) /*MMSrcLocalProperty::signature*/;
+  variable3 = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable2 /*supers*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*supers*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable7 = ((genericity___MMLocalProperty___signature_t)CALL( variable5 /*ip*/,COLOR_static_type___MMLocalProperty___signature))( variable5 /*ip*/) /*MMLocalProperty::signature*/;
+    variable8 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+    variable8 = ((genericity___MMLocalClass___get_type_t)CALL(variable8,COLOR_static_type___MMLocalClass___get_type))(variable8) /*MMSrcLocalClass::get_type*/;
+    variable7 = ((vararg___MMSignature___adaptation_to_t)CALL(variable7,COLOR_genericity___MMSignature___adaptation_to))(variable7, variable8) /*MMSignature::adaptation_to*/;
+    variable6 = variable7;
+    variable7 = TAG_Bool(( variable3 /*s*/ ==  NIT_NULL /*null*/) || (( variable3 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*s*/,COLOR_kernel___Object_____eqeq))( variable3 /*s*/,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+      variable7 = ((array___AbstractArray___length_t)CALL(variable7,COLOR_abstract_collection___Collection___length))(variable7) /*Array::length*/;
+      variable8 = ((static_type___MMSignature___arity_t)CALL( variable6 /*isig*/,COLOR_static_type___MMSignature___arity))( variable6 /*isig*/) /*MMSignature::arity*/;
+      variable7 = TAG_Bool((variable7)!=(variable8));
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable7 = ((syntax_base___MMSrcLocalProperty___node_t)CALL( variable1 /*prop*/,COLOR_syntax_base___MMSrcLocalProperty___node))( variable1 /*prop*/) /*MMSrcLocalProperty::node*/;
+        variable8 = NEW_string___String___init(); /*new String*/
+        variable9 = NEW_string___String___with_native(BOX_NativeString("v.params.length "), TAG_Int(16)); /*new String*/
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+        variable11 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+        variable11 = ((array___AbstractArray___length_t)CALL(variable11,COLOR_abstract_collection___Collection___length))(variable11) /*Array::length*/;
+        variable12 = variable11;
+        variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable12) /*String::append*/;
+        variable13 = NEW_string___String___with_native(BOX_NativeString(" != isig.arity "), TAG_Int(15)); /*new String*/
+        variable14 = variable13;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+        variable15 = ((static_type___MMSignature___arity_t)CALL( variable6 /*isig*/,COLOR_static_type___MMSignature___arity))( variable6 /*isig*/) /*MMSignature::arity*/;
+        variable16 = variable15;
+        variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable16) /*String::append*/;
+        variable17 = NEW_string___String___with_native(BOX_NativeString(" ; "), TAG_Int(3)); /*new String*/
+        variable18 = variable17;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable18) /*String::append*/;
+        variable19 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable1 /*prop*/) /*MMSrcLocalProperty::full_name*/;
+        variable20 = variable19;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable20) /*String::append*/;
+        variable21 = NEW_string___String___with_native(BOX_NativeString(" vs "), TAG_Int(4)); /*new String*/
+        variable22 = variable21;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable22) /*String::append*/;
+        variable23 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable5 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable5 /*ip*/) /*MMLocalProperty::full_name*/;
+        variable24 = variable23;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable24) /*String::append*/;
+        variable25 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+        variable26 = variable25;
+        ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable26) /*String::append*/;
+        ((parser_prod___PNode___printl_t)CALL(variable7,COLOR_parser_prod___PNode___printl))(variable7, variable8) /*PPropdef::printl*/;
+        goto return_label74;
+      }
+      variable7 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+      variable7 = ((array___AbstractArray___iterator_t)CALL(variable7,COLOR_abstract_collection___Collection___iterator))(variable7) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable8 = ((array___ArrayIterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable8)) break; /*for*/
+        variable8 = ((array___ArrayIterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*ArrayIterator::item*/;
+        variable10 = ((mmbuilder___PParam___position_t)CALL( variable8 /*p*/,COLOR_syntax_base___PParam___position))( variable8 /*p*/) /*PParam::position*/;
+        variable10 = ((static_type___MMSignature_____bra_t)CALL( variable6 /*isig*/,COLOR_static_type___MMSignature_____bra))( variable6 /*isig*/, variable10) /*MMSignature::[]*/;
+        variable9 = variable10;
+        ((mmbuilder___PParam___stype__eq_t)CALL( variable8 /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable8 /*p*/,  variable9 /*t*/) /*PParam::stype=*/;
+        variable10 = ((mmbuilder___PParam___position_t)CALL( variable8 /*p*/,COLOR_syntax_base___PParam___position))( variable8 /*p*/) /*PParam::position*/;
+        variable11 = ((vararg___MMSignature___vararg_rank_t)CALL( variable6 /*isig*/,COLOR_vararg___MMSignature___vararg_rank))( variable6 /*isig*/) /*MMSignature::vararg_rank*/;
+        variable10 = TAG_Bool((variable10)==(variable11));
+        if (UNTAG_Bool(variable10)) { /*if*/
+          variable10 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/,  variable9 /*t*/) /*PropertyVerifierVisitor::type_array*/;
+          variable9 = variable10 /*t=*/;
+        }
+        variable10 = ((mmbuilder___PParam___variable_t)CALL( variable8 /*p*/,COLOR_syntax_base___PParam___variable))( variable8 /*p*/) /*PParam::variable*/;
+        ((syntax_base___Variable___stype__eq_t)CALL(variable10,COLOR_syntax_base___Variable___stype__eq))(variable10,  variable9 /*t*/) /*Variable::stype=*/;
+        continue_76: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*ArrayIterator::next*/;
+      }
+      break_76: while(0);
+      variable3 =  variable6 /*isig*/ /*s=*/;
+      ((static_type___MMLocalProperty___signature__eq_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable1 /*prop*/,  variable3 /*s*/) /*MMSrcLocalProperty::signature=*/;
+    }
+    continue_75: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_75: while(0);
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PPropdef___do_and_check_redef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "mmbuilder::PPropdef::do_and_check_redef (src/syntax//mmbuilder.nit:674,2--747:47)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    static val_t once_value_variable7_78; static int once_bool_variable7_78;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+        val_t variable16;
+        val_t variable17;
+        val_t variable18;
+        val_t variable19;
+        val_t variable20;
+        val_t variable21;
+        val_t variable22;
+        val_t variable23;
+        val_t variable24;
+        val_t variable25;
+        val_t variable26;
+        val_t variable27;
+        val_t variable28;
+        val_t variable29;
+        val_t variable30;
+        val_t variable31;
+            val_t variable32;
+            val_t variable33;
+            val_t variable34;
+            val_t variable35;
+            val_t variable36;
+            val_t variable37;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable5 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+  variable4 = variable5;
+  variable6 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+  variable5 = variable6;
+  variable6 =  TAG_Bool(!UNTAG_Bool( variable2 /*has_redef*/));
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMSrcLocalProperty::name*/;
+    if (once_bool_variable7_78) variable7 = once_value_variable7_78;
+    else {
+      variable7 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+      variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
+      once_value_variable7_78 = variable7;
+      once_bool_variable7_78 = true;
+    }
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable6 == variable7) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6,variable7)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6, variable7) /*Symbol::==*/)))))));
+  }
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 =  variable1 /*prop*/;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword."), TAG_Int(65)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+    goto return_label77;
+  }
+  variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable5 /*glob*/) /*MMGlobalProperty::is_init*/;
+  variable7 = variable6;
+  if (UNTAG_Bool(variable7)) { /* and */
+    variable7 =  TAG_Bool(!UNTAG_Bool( variable4 /*is_init*/));
+  }
+  variable6 = variable7;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("Redef error: A method "), TAG_Int(22)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 =  variable1 /*prop*/;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(" cannot redefine a constructor."), TAG_Int(31)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+  } else { /*if*/
+    variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable5 /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable6 =  TAG_Bool(!UNTAG_Bool(variable6));
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 =  variable4 /*is_init*/;
+    }
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("Redef error: A constructor "), TAG_Int(27)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+      variable10 = variable9;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      variable13 =  variable1 /*prop*/;
+      variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+      variable14 = NEW_string___String___with_native(BOX_NativeString(" cannot redefine a method."), TAG_Int(26)); /*new String*/
+      variable15 = variable14;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*PropertyVerifierVisitor::error*/;
+    }
+  }
+  variable7 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*prop*/) /*MMSrcLocalProperty::signature*/;
+  variable6 = variable7;
+  variable7 = ((abstractmetamodel___MMConcreteProperty___cprhe_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMConcreteProperty___cprhe))( variable1 /*prop*/) /*MMSrcLocalProperty::cprhe*/;
+  variable7 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable7,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable7) /*PartialOrderElement::direct_greaters*/;
+  variable7 = ((array___AbstractArray___iterator_t)CALL(variable7,COLOR_abstract_collection___Collection___iterator))(variable7) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable8 = ((array___ArrayIterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable8)) break; /*for*/
+    variable8 = ((array___ArrayIterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*ArrayIterator::item*/;
+    variable10 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable8 /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable8 /*i*/) /*MMConcreteProperty::local_class*/;
+    variable11 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+    variable10 = ((inheritance___MMLocalClass_____bra_t)CALL(variable10,COLOR_abstractmetamodel___MMLocalClass_____bra))(variable10, variable11) /*MMLocalClass::[]*/;
+    variable9 = variable10;
+    variable11 = ((genericity___MMLocalProperty___signature_t)CALL( variable8 /*i*/,COLOR_static_type___MMLocalProperty___signature))( variable8 /*i*/) /*MMConcreteProperty::signature*/;
+    variable12 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+    variable12 = ((genericity___MMLocalClass___get_type_t)CALL(variable12,COLOR_static_type___MMLocalClass___get_type))(variable12) /*MMSrcLocalClass::get_type*/;
+    variable11 = ((vararg___MMSignature___adaptation_to_t)CALL(variable11,COLOR_genericity___MMSignature___adaptation_to))(variable11, variable12) /*MMSignature::adaptation_to*/;
+    variable10 = variable11;
+    variable11 = TAG_Bool(( variable6 /*s*/ ==  NIT_NULL /*null*/) || (( variable6 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*s*/,COLOR_kernel___Object_____eqeq))( variable6 /*s*/,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+      variable11 = ((array___AbstractArray___length_t)CALL(variable11,COLOR_abstract_collection___Collection___length))(variable11) /*Array::length*/;
+      variable12 = ((static_type___MMSignature___arity_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature___arity))( variable10 /*isig*/) /*MMSignature::arity*/;
+      variable11 = TAG_Bool((variable11)!=(variable12));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable11 = NEW_string___String___init(); /*new String*/
+        variable12 = NEW_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
+        variable13 = variable12;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable13) /*String::append*/;
+        variable14 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+        variable15 = variable14;
+        variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable15) /*String::append*/;
+        variable16 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable17 = variable16;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable17) /*String::append*/;
+        variable18 =  variable1 /*prop*/;
+        variable18 = ((string___String___to_s_t)CALL(variable18,COLOR_string___Object___to_s))(variable18) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable18) /*String::append*/;
+        variable19 = NEW_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/
+        variable20 = variable19;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable20) /*String::append*/;
+        variable21 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+        variable22 = variable21;
+        variable22 = ((string___String___to_s_t)CALL(variable22,COLOR_string___Object___to_s))(variable22) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable22) /*String::append*/;
+        variable23 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable24 = variable23;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable24) /*String::append*/;
+        variable25 =  variable9 /*ip*/;
+        variable25 = ((string___String___to_s_t)CALL(variable25,COLOR_string___Object___to_s))(variable25) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable25) /*String::append*/;
+        variable26 = NEW_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/
+        variable27 = variable26;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable27) /*String::append*/;
+        variable28 = ((static_type___MMSignature___arity_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature___arity))( variable10 /*isig*/) /*MMSignature::arity*/;
+        variable29 = variable28;
+        variable29 = ((string___String___to_s_t)CALL(variable29,COLOR_string___Object___to_s))(variable29) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable29) /*String::append*/;
+        variable30 = NEW_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/
+        variable31 = variable30;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable31) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable11) /*PropertyVerifierVisitor::error*/;
+        goto return_label77;
+      }
+      variable11 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+      variable11 = ((array___AbstractArray___iterator_t)CALL(variable11,COLOR_abstract_collection___Collection___iterator))(variable11) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable12 = ((array___ArrayIterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable12)) break; /*for*/
+        variable12 = ((array___ArrayIterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*ArrayIterator::item*/;
+        variable14 = ((mmbuilder___PParam___position_t)CALL( variable12 /*p*/,COLOR_syntax_base___PParam___position))( variable12 /*p*/) /*PParam::position*/;
+        variable14 = ((static_type___MMSignature_____bra_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature_____bra))( variable10 /*isig*/, variable14) /*MMSignature::[]*/;
+        variable13 = variable14;
+        ((mmbuilder___PParam___stype__eq_t)CALL( variable12 /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable12 /*p*/,  variable13 /*t*/) /*PParam::stype=*/;
+        variable14 = ((mmbuilder___PParam___position_t)CALL( variable12 /*p*/,COLOR_syntax_base___PParam___position))( variable12 /*p*/) /*PParam::position*/;
+        variable15 = ((vararg___MMSignature___vararg_rank_t)CALL( variable10 /*isig*/,COLOR_vararg___MMSignature___vararg_rank))( variable10 /*isig*/) /*MMSignature::vararg_rank*/;
+        variable14 = TAG_Bool((variable14)==(variable15));
+        if (UNTAG_Bool(variable14)) { /*if*/
+          variable14 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/,  variable13 /*t*/) /*PropertyVerifierVisitor::type_array*/;
+          variable13 = variable14 /*t=*/;
+        }
+        variable14 = ((mmbuilder___PParam___variable_t)CALL( variable12 /*p*/,COLOR_syntax_base___PParam___variable))( variable12 /*p*/) /*PParam::variable*/;
+        ((syntax_base___Variable___stype__eq_t)CALL(variable14,COLOR_syntax_base___Variable___stype__eq))(variable14,  variable13 /*t*/) /*Variable::stype=*/;
+        continue_80: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*ArrayIterator::next*/;
+      }
+      break_80: while(0);
+      variable6 =  variable10 /*isig*/ /*s=*/;
+      ((static_type___MMLocalProperty___signature__eq_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable1 /*prop*/,  variable6 /*s*/) /*MMSrcLocalProperty::signature=*/;
+    }
+    variable11 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable5 /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable12 = variable11;
+    if (UNTAG_Bool(variable12)) { /* and */
+      variable12 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable8 /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable8 /*i*/) /*MMConcreteProperty::local_class*/;
+      variable12 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable12,COLOR_abstractmetamodel___MMLocalClass___global))(variable12) /*MMLocalClass::global*/;
+      variable13 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+      variable13 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable13,COLOR_abstractmetamodel___MMLocalClass___global))(variable13) /*MMLocalClass::global*/;
+      variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable12 == variable13) || ((variable12 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable12,variable13)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))(variable12, variable13) /*MMGlobalClass::==*/)))))));
+    }
+    variable11 = variable12;
+    if (UNTAG_Bool(variable11)) { /*if*/
+    } else { /*if*/
+      variable11 = ((static_type___MMSignature___arity_t)CALL( variable6 /*s*/,COLOR_static_type___MMSignature___arity))( variable6 /*s*/) /*MMSignature::arity*/;
+      variable12 = ((static_type___MMSignature___arity_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature___arity))( variable10 /*isig*/) /*MMSignature::arity*/;
+      variable11 = TAG_Bool((variable11)!=(variable12));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable11 = NEW_string___String___init(); /*new String*/
+        variable12 = NEW_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
+        variable13 = variable12;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable13) /*String::append*/;
+        variable14 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+        variable15 = variable14;
+        variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable15) /*String::append*/;
+        variable16 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable17 = variable16;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable17) /*String::append*/;
+        variable18 =  variable1 /*prop*/;
+        variable18 = ((string___String___to_s_t)CALL(variable18,COLOR_string___Object___to_s))(variable18) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable18) /*String::append*/;
+        variable19 = NEW_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/
+        variable20 = variable19;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable20) /*String::append*/;
+        variable21 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+        variable22 = variable21;
+        variable22 = ((string___String___to_s_t)CALL(variable22,COLOR_string___Object___to_s))(variable22) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable22) /*String::append*/;
+        variable23 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable24 = variable23;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable24) /*String::append*/;
+        variable25 =  variable9 /*ip*/;
+        variable25 = ((string___String___to_s_t)CALL(variable25,COLOR_string___Object___to_s))(variable25) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable25) /*String::append*/;
+        variable26 = NEW_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/
+        variable27 = variable26;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable27) /*String::append*/;
+        variable28 = ((static_type___MMSignature___arity_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature___arity))( variable10 /*isig*/) /*MMSignature::arity*/;
+        variable29 = variable28;
+        variable29 = ((string___String___to_s_t)CALL(variable29,COLOR_string___Object___to_s))(variable29) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable29) /*String::append*/;
+        variable30 = NEW_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/
+        variable31 = variable30;
+        ((string___String___append_t)CALL(variable11,COLOR_abstract_collection___IndexedCollection___append))(variable11, variable31) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable11) /*PropertyVerifierVisitor::error*/;
+      } else { /*if*/
+        variable11 = ((static_type___MMSignature___arity_t)CALL( variable6 /*s*/,COLOR_static_type___MMSignature___arity))( variable6 /*s*/) /*MMSignature::arity*/;
+        variable12 = NEW_range___Range___without_last( TAG_Int(0), variable11); /*new Range[Int]*/
+        variable11 = variable12;
+        variable11 = ((range___Range___iterator_t)CALL(variable11,COLOR_abstract_collection___Collection___iterator))(variable11) /*Range::iterator*/;
+        while (true) { /*for*/
+          variable12 = ((abstract_collection___Iterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*Iterator::is_ok*/;
+          if (!UNTAG_Bool(variable12)) break; /*for*/
+          variable12 = ((abstract_collection___Iterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*Iterator::item*/;
+          variable13 = ((static_type___MMSignature_____bra_t)CALL( variable6 /*s*/,COLOR_static_type___MMSignature_____bra))( variable6 /*s*/,  variable12 /*i*/) /*MMSignature::[]*/;
+          variable14 = ((static_type___MMSignature_____bra_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature_____bra))( variable10 /*isig*/,  variable12 /*i*/) /*MMSignature::[]*/;
+          variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable13 == variable14) || ((variable13 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable13,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable13,variable14)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable13,COLOR_kernel___Object_____eqeq))(variable13, variable14) /*MMType::==*/)))))));
+          if (UNTAG_Bool(variable13)) { /*if*/
+            variable13 = NEW_string___String___init(); /*new String*/
+            variable14 = NEW_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)); /*new String*/
+            variable15 = variable14;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable15) /*String::append*/;
+            variable16 = ((static_type___MMSignature_____bra_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature_____bra))( variable10 /*isig*/,  variable12 /*i*/) /*MMSignature::[]*/;
+            variable17 = variable16;
+            variable17 = ((string___String___to_s_t)CALL(variable17,COLOR_string___Object___to_s))(variable17) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable17) /*String::append*/;
+            variable18 = NEW_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
+            variable19 = variable18;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable19) /*String::append*/;
+            variable20 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+            variable21 = variable20;
+            variable21 = ((string___String___to_s_t)CALL(variable21,COLOR_string___Object___to_s))(variable21) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable21) /*String::append*/;
+            variable22 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+            variable23 = variable22;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable23) /*String::append*/;
+            variable24 =  variable9 /*ip*/;
+            variable24 = ((string___String___to_s_t)CALL(variable24,COLOR_string___Object___to_s))(variable24) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable24) /*String::append*/;
+            variable25 = NEW_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
+            variable26 = variable25;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable26) /*String::append*/;
+            variable27 = ((static_type___MMSignature_____bra_t)CALL( variable6 /*s*/,COLOR_static_type___MMSignature_____bra))( variable6 /*s*/,  variable12 /*i*/) /*MMSignature::[]*/;
+            variable28 = variable27;
+            variable28 = ((string___String___to_s_t)CALL(variable28,COLOR_string___Object___to_s))(variable28) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable28) /*String::append*/;
+            variable29 = NEW_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
+            variable30 = variable29;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable30) /*String::append*/;
+            variable31 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+            variable32 = variable31;
+            variable32 = ((string___String___to_s_t)CALL(variable32,COLOR_string___Object___to_s))(variable32) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable32) /*String::append*/;
+            variable33 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+            variable34 = variable33;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable34) /*String::append*/;
+            variable35 =  variable1 /*prop*/;
+            variable35 = ((string___String___to_s_t)CALL(variable35,COLOR_string___Object___to_s))(variable35) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable35) /*String::append*/;
+            variable36 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+            variable37 = variable36;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable37) /*String::append*/;
+            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable13) /*PropertyVerifierVisitor::error*/;
+          }
+          continue_81: while(0);
+          ((abstract_collection___Iterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*Iterator::next*/;
+        }
+        break_81: while(0);
+      }
+    }
+    variable12 = ((static_type___MMSignature___return_type_t)CALL( variable6 /*s*/,COLOR_static_type___MMSignature___return_type))( variable6 /*s*/) /*MMSignature::return_type*/;
+    variable11 = variable12;
+    variable13 = ((static_type___MMSignature___return_type_t)CALL( variable10 /*isig*/,COLOR_static_type___MMSignature___return_type))( variable10 /*isig*/) /*MMSignature::return_type*/;
+    variable12 = variable13;
+    variable13 = TAG_Bool(( variable11 /*srt*/ ==  NIT_NULL /*null*/) || (( variable11 /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))( variable11 /*srt*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+    variable14 = variable13;
+    if (UNTAG_Bool(variable14)) { /* and */
+      variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*isrt*/ ==  NIT_NULL /*null*/) || (( variable12 /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))( variable12 /*isrt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+    }
+    variable13 = variable14;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable13 = NEW_string___String___init(); /*new String*/
+      variable14 = NEW_string___String___with_native(BOX_NativeString("Redef error: The procedure "), TAG_Int(27)); /*new String*/
+      variable15 = variable14;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable15) /*String::append*/;
+      variable16 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+      variable17 = variable16;
+      variable17 = ((string___String___to_s_t)CALL(variable17,COLOR_string___Object___to_s))(variable17) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable17) /*String::append*/;
+      variable18 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable19 = variable18;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable19) /*String::append*/;
+      variable20 =  variable1 /*prop*/;
+      variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable20) /*String::append*/;
+      variable21 = NEW_string___String___with_native(BOX_NativeString(" redefines the function "), TAG_Int(24)); /*new String*/
+      variable22 = variable21;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable22) /*String::append*/;
+      variable23 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+      variable24 = variable23;
+      variable24 = ((string___String___to_s_t)CALL(variable24,COLOR_string___Object___to_s))(variable24) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable24) /*String::append*/;
+      variable25 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+      variable26 = variable25;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable26) /*String::append*/;
+      variable27 =  variable9 /*ip*/;
+      variable27 = ((string___String___to_s_t)CALL(variable27,COLOR_string___Object___to_s))(variable27) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable27) /*String::append*/;
+      variable28 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable29 = variable28;
+      ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable29) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable13) /*PropertyVerifierVisitor::error*/;
+    } else { /*if*/
+      variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*srt*/ ==  NIT_NULL /*null*/) || (( variable11 /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))( variable11 /*srt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+      variable14 = variable13;
+      if (UNTAG_Bool(variable14)) { /* and */
+        variable14 = TAG_Bool(( variable12 /*isrt*/ ==  NIT_NULL /*null*/) || (( variable12 /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))( variable12 /*isrt*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+      }
+      variable13 = variable14;
+      if (UNTAG_Bool(variable13)) { /*if*/
+        variable13 = NEW_string___String___init(); /*new String*/
+        variable14 = NEW_string___String___with_native(BOX_NativeString("Redef error: The function "), TAG_Int(26)); /*new String*/
+        variable15 = variable14;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable15) /*String::append*/;
+        variable16 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+        variable17 = variable16;
+        variable17 = ((string___String___to_s_t)CALL(variable17,COLOR_string___Object___to_s))(variable17) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable17) /*String::append*/;
+        variable18 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable19 = variable18;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable19) /*String::append*/;
+        variable20 =  variable1 /*prop*/;
+        variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable20) /*String::append*/;
+        variable21 = NEW_string___String___with_native(BOX_NativeString(" redefines the procedure "), TAG_Int(25)); /*new String*/
+        variable22 = variable21;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable22) /*String::append*/;
+        variable23 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+        variable24 = variable23;
+        variable24 = ((string___String___to_s_t)CALL(variable24,COLOR_string___Object___to_s))(variable24) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable24) /*String::append*/;
+        variable25 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+        variable26 = variable25;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable26) /*String::append*/;
+        variable27 =  variable9 /*ip*/;
+        variable27 = ((string___String___to_s_t)CALL(variable27,COLOR_string___Object___to_s))(variable27) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable27) /*String::append*/;
+        variable28 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+        variable29 = variable28;
+        ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable29) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable13) /*PropertyVerifierVisitor::error*/;
+      } else { /*if*/
+        variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*srt*/ ==  NIT_NULL /*null*/) || (( variable11 /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))( variable11 /*srt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+        variable14 = variable13;
+        if (UNTAG_Bool(variable14)) { /* and */
+          variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*isrt*/ ==  NIT_NULL /*null*/) || (( variable12 /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))( variable12 /*isrt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+        }
+        variable13 = variable14;
+        variable14 = variable13;
+        if (UNTAG_Bool(variable14)) { /* and */
+          variable14 = ((static_type___MMType_____l_t)CALL( variable11 /*srt*/,COLOR_static_type___MMType_____l))( variable11 /*srt*/,  variable12 /*isrt*/) /*MMType::<*/;
+          variable14 =  TAG_Bool(!UNTAG_Bool(variable14));
+        }
+        variable13 = variable14;
+        if (UNTAG_Bool(variable13)) { /*if*/
+          variable13 = NEW_string___String___init(); /*new String*/
+          variable14 = NEW_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)); /*new String*/
+          variable15 = variable14;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable15) /*String::append*/;
+          variable16 =  variable12 /*isrt*/;
+          variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable16) /*String::append*/;
+          variable17 = NEW_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
+          variable18 = variable17;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable18) /*String::append*/;
+          variable19 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+          variable20 = variable19;
+          variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable20) /*String::append*/;
+          variable21 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+          variable22 = variable21;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable22) /*String::append*/;
+          variable23 =  variable9 /*ip*/;
+          variable23 = ((string___String___to_s_t)CALL(variable23,COLOR_string___Object___to_s))(variable23) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable23) /*String::append*/;
+          variable24 = NEW_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
+          variable25 = variable24;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable25) /*String::append*/;
+          variable26 =  variable11 /*srt*/;
+          variable26 = ((string___String___to_s_t)CALL(variable26,COLOR_string___Object___to_s))(variable26) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable26) /*String::append*/;
+          variable27 = NEW_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
+          variable28 = variable27;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable28) /*String::append*/;
+          variable29 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+          variable30 = variable29;
+          variable30 = ((string___String___to_s_t)CALL(variable30,COLOR_string___Object___to_s))(variable30) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable30) /*String::append*/;
+          variable31 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+          variable32 = variable31;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable32) /*String::append*/;
+          variable33 =  variable1 /*prop*/;
+          variable33 = ((string___String___to_s_t)CALL(variable33,COLOR_string___Object___to_s))(variable33) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable33) /*String::append*/;
+          variable34 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+          variable35 = variable34;
+          ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable35) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable13) /*PropertyVerifierVisitor::error*/;
+        } else { /*if*/
+          variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*srt*/ ==  NIT_NULL /*null*/) || (( variable11 /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))( variable11 /*srt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+          variable14 = variable13;
+          if (UNTAG_Bool(variable14)) { /* and */
+            variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*isrt*/ ==  NIT_NULL /*null*/) || (( variable12 /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*isrt*/,COLOR_kernel___Object_____eqeq))( variable12 /*isrt*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+          }
+          variable13 = variable14;
+          variable14 = variable13;
+          if (UNTAG_Bool(variable14)) { /* and */
+            variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*srt*/ ==  variable12 /*isrt*/) || (( variable11 /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*srt*/, variable12 /*isrt*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*srt*/,COLOR_kernel___Object_____eqeq))( variable11 /*srt*/,  variable12 /*isrt*/) /*MMType::==*/)))))));
+          }
+          variable13 = variable14;
+          variable14 = variable13;
+          if (UNTAG_Bool(variable14)) { /* and */
+            variable14 = TAG_Bool(( variable1 /*prop*/==NIT_NULL) || VAL_ISA( variable1 /*prop*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+          }
+          variable13 = variable14;
+          if (UNTAG_Bool(variable13)) { /*if*/
+            variable13 = NEW_string___String___init(); /*new String*/
+            variable14 = NEW_string___String___with_native(BOX_NativeString("Redef warning: Expected "), TAG_Int(24)); /*new String*/
+            variable15 = variable14;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable15) /*String::append*/;
+            variable16 =  variable12 /*isrt*/;
+            variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable16) /*String::append*/;
+            variable17 = NEW_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
+            variable18 = variable17;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable18) /*String::append*/;
+            variable19 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable9 /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable9 /*ip*/) /*MMLocalProperty::local_class*/;
+            variable20 = variable19;
+            variable20 = ((string___String___to_s_t)CALL(variable20,COLOR_string___Object___to_s))(variable20) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable20) /*String::append*/;
+            variable21 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+            variable22 = variable21;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable22) /*String::append*/;
+            variable23 =  variable9 /*ip*/;
+            variable23 = ((string___String___to_s_t)CALL(variable23,COLOR_string___Object___to_s))(variable23) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable23) /*String::append*/;
+            variable24 = NEW_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
+            variable25 = variable24;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable25) /*String::append*/;
+            variable26 =  variable11 /*srt*/;
+            variable26 = ((string___String___to_s_t)CALL(variable26,COLOR_string___Object___to_s))(variable26) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable26) /*String::append*/;
+            variable27 = NEW_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
+            variable28 = variable27;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable28) /*String::append*/;
+            variable29 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMAttribute::local_class*/;
+            variable30 = variable29;
+            variable30 = ((string___String___to_s_t)CALL(variable30,COLOR_string___Object___to_s))(variable30) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable30) /*String::append*/;
+            variable31 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+            variable32 = variable31;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable32) /*String::append*/;
+            variable33 =  variable1 /*prop*/;
+            variable33 = ((string___String___to_s_t)CALL(variable33,COLOR_string___Object___to_s))(variable33) /*String::to_s*/;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable33) /*String::append*/;
+            variable34 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+            variable35 = variable34;
+            ((string___String___append_t)CALL(variable13,COLOR_abstract_collection___IndexedCollection___append))(variable13, variable35) /*String::append*/;
+            ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable0 /*v*/,  self, variable13) /*PropertyVerifierVisitor::warning*/;
+          }
+        }
+      }
+    }
+    continue_79: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*ArrayIterator::next*/;
+  }
+  break_79: while(0);
+  variable7 = TAG_Bool(( variable3 /*visibility_level*/)!=( TAG_Int(1)));
+  variable8 = variable7;
+  if (UNTAG_Bool(variable8)) { /* and */
+    variable8 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( variable5 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( variable5 /*glob*/) /*MMGlobalProperty::visibility_level*/;
+    variable8 = TAG_Bool((variable8)!=( variable3 /*visibility_level*/));
+  }
+  variable7 = variable8;
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = NEW_string___String___init(); /*new String*/
+    variable8 = NEW_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+    variable10 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable1 /*prop*/) /*MMSrcLocalProperty::local_class*/;
+    variable11 = variable10;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+    variable14 =  variable1 /*prop*/;
+    variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString(" redefinition cannot change visibility."), TAG_Int(39)); /*new String*/
+    variable16 = variable15;
+    ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable7) /*PropertyVerifierVisitor::error*/;
+  }
+  variable7 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*PropertyVerifierVisitor::module*/;
+  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL( variable5 /*glob*/,COLOR_syntax_base___MMGlobalProperty___check_visibility))( variable5 /*glob*/,  variable0 /*v*/,  self, variable7,  TAG_Bool(true)) /*MMGlobalProperty::check_visibility*/;
+  return_label77: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___AAttrPropdef___readmethod(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::readmethod (src/syntax//mmbuilder.nit:752,2--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/;
+}
+val_t mmbuilder___AAttrPropdef___writemethod(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::writemethod (src/syntax//mmbuilder.nit:753,2--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/;
+}
+val_t mmbuilder___AAttrPropdef___prop(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::prop (src/syntax//mmbuilder.nit:754,2--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/;
+}
+void mmbuilder___AAttrPropdef___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::accept_property_builder (src/syntax//mmbuilder.nit:756,2--772:55)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___AAttrPropdef___accept_property_builder_t)CALL( self,COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_builder))( self,  param0) /*super AAttrPropdef::accept_property_builder*/;
+  variable2 = ((parser_nodes___AAttrPropdef___n_id_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_id))( self) /*AAttrPropdef::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TAttrid::to_symbol*/;
+  variable1 = variable2;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  variable4 = NEW_syntax_base___MMSrcAttribute___init( variable1 /*name*/, variable3,  self); /*new MMSrcAttribute*/
+  variable3 = variable4;
+  variable2 = variable3;
+  ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/ =  variable2 /*prop*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable3,COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable3,  variable0 /*v*/,  variable2 /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  variable3 = ((parser_nodes___AAttrPropdef___n_readable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_readable))( self) /*AAttrPropdef::n_readable*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((parser_nodes___AAttrPropdef___n_id_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_id))( self) /*AAttrPropdef::n_id*/;
+    variable3 = ((lexer___Token___text_t)CALL(variable3,COLOR_lexer___Token___text))(variable3) /*TAttrid::text*/;
+    variable3 = ((string___String___substring_from_t)CALL(variable3,COLOR_string___String___substring_from))(variable3,  TAG_Int(1)) /*String::substring_from*/;
+    variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+    variable1 = variable3 /*name=*/;
+    variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+    variable4 = NEW_syntax_base___MMReadImplementationMethod___init( variable1 /*name*/, variable3,  self); /*new MMReadImplementationMethod*/
+    variable3 = variable4;
+    ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/ = variable3;
+    variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+    variable4 = ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/;
+    ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable3,COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable3,  variable0 /*v*/, variable4) /*MMSrcLocalClass::add_src_local_property*/;
+  }
+  variable3 = ((parser_nodes___AAttrPropdef___n_writable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_writable))( self) /*AAttrPropdef::n_writable*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = ((parser_nodes___AAttrPropdef___n_id_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_id))( self) /*AAttrPropdef::n_id*/;
+    variable3 = ((lexer___Token___text_t)CALL(variable3,COLOR_lexer___Token___text))(variable3) /*TAttrid::text*/;
+    variable3 = ((string___String___substring_from_t)CALL(variable3,COLOR_string___String___substring_from))(variable3,  TAG_Int(1)) /*String::substring_from*/;
+    variable4 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
+    variable3 = ((string___String_____plus_t)CALL(variable3,COLOR_string___String_____plus))(variable3, variable4) /*String::+*/;
+    variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+    variable1 = variable3 /*name=*/;
+    variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+    variable4 = NEW_syntax_base___MMWriteImplementationMethod___init( variable1 /*name*/, variable3,  self); /*new MMWriteImplementationMethod*/
+    variable3 = variable4;
+    ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/ = variable3;
+    variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+    variable4 = ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/;
+    ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable3,COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable3,  variable0 /*v*/, variable4) /*MMSrcLocalClass::add_src_local_property*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AAttrPropdef___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::accept_property_verifier (src/syntax//mmbuilder.nit:776,2--799:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___AAttrPropdef___accept_property_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier))( self,  param0) /*super AAttrPropdef::accept_property_verifier*/;
+  variable1 = NIT_NULL /*decl variable t*/;
+  variable2 = ((parser_nodes___AAttrPropdef___n_type_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_type))( self) /*AAttrPropdef::n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AAttrPropdef___n_type_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_type))( self) /*AAttrPropdef::n_type*/;
+    variable2 = ((syntax_base___PType___get_stype_t)CALL(variable2,COLOR_syntax_base___PType___get_stype))(variable2,  variable0 /*v*/) /*PType::get_stype*/;
+    variable1 = variable2 /*t=*/;
+  } else { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Not yet implemented: Attribute definition "), TAG_Int(42)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/;
+    variable5 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable5) /*MMSrcAttribute::local_class*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    variable9 = ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/;
+    variable10 = variable9;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString(" requires an explicit type."), TAG_Int(27)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*PropertyVerifierVisitor::error*/;
+    goto return_label83;
+  }
+  variable3 = NEW_array___Array___init(); /*new Array[MMType]*/
+  variable4 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+  variable4 = ((genericity___MMLocalClass___get_type_t)CALL(variable4,COLOR_static_type___MMLocalClass___get_type))(variable4) /*MMSrcLocalClass::get_type*/;
+  variable5 = NEW_static_type___MMSignature___init(variable3,  variable1 /*t*/, variable4); /*new MMSignature*/
+  variable3 = variable5;
+  variable2 = variable3;
+  variable3 = ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/;
+  ((static_type___MMLocalProperty___signature__eq_t)CALL(variable3,COLOR_static_type___MMLocalProperty___signature__eq))(variable3,  variable2 /*signature*/) /*MMSrcAttribute::signature=*/;
+  variable4 = ((parser_nodes___AAttrPropdef___n_visibility_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_visibility))( self) /*AAttrPropdef::n_visibility*/;
+  variable4 = ((mmbuilder___PVisibility___level_t)CALL(variable4,COLOR_mmbuilder___PVisibility___level))(variable4) /*PVisibility::level*/;
+  variable3 = variable4;
+  variable4 = ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/;
+  variable5 = ((parser_nodes___AAttrPropdef___n_kwredef_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_kwredef))( self) /*AAttrPropdef::n_kwredef*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  ((mmbuilder___PPropdef___process_and_check_t)CALL( self,COLOR_mmbuilder___PPropdef___process_and_check))( self,  variable0 /*v*/, variable4, variable5,  variable3 /*visibility_level*/) /*AAttrPropdef::process_and_check*/;
+  variable4 = ((parser_nodes___AAttrPropdef___n_readable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_readable))( self) /*AAttrPropdef::n_readable*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/;
+    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable4,COLOR_static_type___MMLocalProperty___signature__eq))(variable4,  variable2 /*signature*/) /*MMSrcMethod::signature=*/;
+    variable4 = ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/;
+    variable5 = ((parser_nodes___AAttrPropdef___n_readable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_readable))( self) /*AAttrPropdef::n_readable*/;
+    variable5 = ((parser_nodes___PAble___n_kwredef_t)CALL(variable5,COLOR_parser_nodes___PAble___n_kwredef))(variable5) /*PAble::n_kwredef*/;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+    ((mmbuilder___PPropdef___process_and_check_t)CALL( self,COLOR_mmbuilder___PPropdef___process_and_check))( self,  variable0 /*v*/, variable4, variable5,  variable3 /*visibility_level*/) /*AAttrPropdef::process_and_check*/;
+    variable4 = ((parser_nodes___AAttrPropdef___n_type_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_type))( self) /*AAttrPropdef::n_type*/;
+    variable5 = ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/;
+    ((mmbuilder___PType___check_visibility_t)CALL(variable4,COLOR_mmbuilder___PType___check_visibility))(variable4,  variable0 /*v*/, variable5) /*PType::check_visibility*/;
+  }
+  variable4 = ((parser_nodes___AAttrPropdef___n_writable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_writable))( self) /*AAttrPropdef::n_writable*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable1 /*t*/) /*Array::add*/;
+    variable6 = NEW_array___Array___with(variable5); /*new Array[MMType]*/
+    variable5 = variable6;
+    variable6 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+    variable6 = ((genericity___MMLocalClass___get_type_t)CALL(variable6,COLOR_static_type___MMLocalClass___get_type))(variable6) /*MMSrcLocalClass::get_type*/;
+    variable7 = NEW_static_type___MMSignature___init(variable5,  NIT_NULL /*null*/, variable6); /*new MMSignature*/
+    variable5 = variable7;
+    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable4,COLOR_static_type___MMLocalProperty___signature__eq))(variable4, variable5) /*MMSrcMethod::signature=*/;
+    variable4 = ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/;
+    variable5 = ((parser_nodes___AAttrPropdef___n_writable_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_writable))( self) /*AAttrPropdef::n_writable*/;
+    variable5 = ((parser_nodes___PAble___n_kwredef_t)CALL(variable5,COLOR_parser_nodes___PAble___n_kwredef))(variable5) /*PAble::n_kwredef*/;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+    ((mmbuilder___PPropdef___process_and_check_t)CALL( self,COLOR_mmbuilder___PPropdef___process_and_check))( self,  variable0 /*v*/, variable4, variable5,  variable3 /*visibility_level*/) /*AAttrPropdef::process_and_check*/;
+    variable4 = ((parser_nodes___AAttrPropdef___n_type_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_type))( self) /*AAttrPropdef::n_type*/;
+    variable5 = ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/;
+    ((mmbuilder___PType___check_visibility_t)CALL(variable4,COLOR_mmbuilder___PType___check_visibility))(variable4,  variable0 /*v*/, variable5) /*PType::check_visibility*/;
+  }
+  return_label83: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AAttrPropdef::accept_abs_syntax_visitor (src/syntax//mmbuilder.nit:803,2--807:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((mmbuilder___AAttrPropdef___prop_t)CALL( self,COLOR_syntax_base___AAttrPropdef___prop))( self) /*AAttrPropdef::prop*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/, variable1) /*AbsSyntaxVisitor::local_property=*/;
+  ((mmbuilder___AAttrPropdef___accept_abs_syntax_visitor_t)CALL( self,COLOR_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor))( self,  param0) /*super AAttrPropdef::accept_abs_syntax_visitor*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___AMethPropdef___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AMethPropdef::name (src/syntax//mmbuilder.nit:812,2--813:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/;
+}
+val_t mmbuilder___AMethPropdef___method(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AMethPropdef::method (src/syntax//mmbuilder.nit:815,2--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/;
+}
+void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AMethPropdef::accept_property_builder (src/syntax//mmbuilder.nit:817,2--838:46)"};
+  val_t variable0;
+  val_t variable1;
+      static val_t once_value_variable1_86; static int once_bool_variable1_86;
+      static val_t once_value_variable1_87; static int once_bool_variable1_87;
+    val_t variable2;
+    static val_t once_value_variable2_88; static int once_bool_variable2_88;
+      val_t variable3;
+        static val_t once_value_variable2_89; static int once_bool_variable2_89;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___AMethPropdef___accept_property_builder_t)CALL( self,COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_builder))( self,  param0) /*super AMethPropdef::accept_property_builder*/;
+  variable1 = ((parser_nodes___AMethPropdef___n_methid_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_methid))( self) /*AMethPropdef::n_methid*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = TAG_Bool(( self==NIT_NULL) || VAL_ISA( self, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      if (once_bool_variable1_86) variable1 = once_value_variable1_86;
+      else {
+        variable1 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+        variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+        once_value_variable1_86 = variable1;
+        once_bool_variable1_86 = true;
+      }
+      ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/ = variable1;
+    } else { /*if*/
+      if (once_bool_variable1_87) variable1 = once_value_variable1_87;
+      else {
+        variable1 = NEW_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/
+        variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+        once_value_variable1_87 = variable1;
+        once_bool_variable1_87 = true;
+      }
+      ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/ = variable1;
+    }
+  } else { /*if*/
+    variable1 = ((parser_nodes___AMethPropdef___n_methid_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_methid))( self) /*AMethPropdef::n_methid*/;
+    variable1 = ((mmbuilder___PMethid___name_t)CALL(variable1,COLOR_mmbuilder___PMethid___name))(variable1) /*PMethid::name*/;
+    ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/ = variable1;
+    variable1 = ((parser_nodes___AMethPropdef___n_methid_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_methid))( self) /*AMethPropdef::n_methid*/;
+    variable1 = ((mmbuilder___PMethid___name_t)CALL(variable1,COLOR_mmbuilder___PMethid___name))(variable1) /*PMethid::name*/;
+    if (once_bool_variable2_88) variable2 = once_value_variable2_88;
+    else {
+      variable2 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+      variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+      once_value_variable2_88 = variable2;
+      once_bool_variable2_88 = true;
+    }
+    variable1 = TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*Symbol::==*/)))));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable2 = ((parser_nodes___AMethPropdef___n_signature_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_signature))( self) /*AMethPropdef::n_signature*/;
+      variable1 = variable2;
+      variable2 = TAG_Bool(( variable1 /*ns*/==NIT_NULL) || VAL_ISA( variable1 /*ns*/, COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
+      variable3 = variable2;
+      if (UNTAG_Bool(variable3)) { /* and */
+        variable3 = ((parser_nodes___ASignature___n_params_t)CALL( variable1 /*ns*/,COLOR_parser_nodes___ASignature___n_params))( variable1 /*ns*/) /*ASignature::n_params*/;
+        variable3 = ((list___List___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*List::length*/;
+        variable3 = TAG_Bool((variable3)==( TAG_Int(0)));
+      }
+      variable2 = variable3;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        if (once_bool_variable2_89) variable2 = once_value_variable2_89;
+        else {
+          variable2 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+          variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+          once_value_variable2_89 = variable2;
+          once_bool_variable2_89 = true;
+        }
+        ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/ = variable2;
+      }
+    }
+  }
+  variable2 = ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  variable4 = NEW_syntax_base___MMMethSrcMethod___init(variable2, variable3,  self); /*new MMMethSrcMethod*/
+  variable2 = variable4;
+  variable1 = variable2;
+  ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/ =  variable1 /*prop*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable2,COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable2,  variable0 /*v*/,  variable1 /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AMethPropdef___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AMethPropdef::accept_property_verifier (src/syntax//mmbuilder.nit:841,2--860:69)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_array___Array___init(); /*new Array[PParam]*/
+  ((mmbuilder___PropertyVerifierVisitor___params__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params__eq))( variable0 /*v*/, variable1) /*PropertyVerifierVisitor::params=*/;
+  variable1 = NEW_array___Array___init(); /*new Array[PParam]*/
+  ((mmbuilder___PropertyVerifierVisitor___untyped_params__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params__eq))( variable0 /*v*/, variable1) /*PropertyVerifierVisitor::untyped_params=*/;
+  ((mmbuilder___PropertyVerifierVisitor___signature__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*PropertyVerifierVisitor::signature=*/;
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((mmbuilder___PropertyVerifierVisitor___vararg_rank__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank__eq))( variable0 /*v*/, variable1) /*PropertyVerifierVisitor::vararg_rank=*/;
+  ((mmbuilder___AMethPropdef___accept_property_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_verifier))( self,  param0) /*super AMethPropdef::accept_property_verifier*/;
+  variable1 = ((mmbuilder___PropertyVerifierVisitor___signature_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature))( variable0 /*v*/) /*PropertyVerifierVisitor::signature*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+  } else { /*if*/
+    variable1 = ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/;
+    variable2 = ((mmbuilder___PropertyVerifierVisitor___signature_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature))( variable0 /*v*/) /*PropertyVerifierVisitor::signature*/;
+    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable1,COLOR_static_type___MMLocalProperty___signature__eq))(variable1, variable2) /*MMMethSrcMethod::signature=*/;
+  }
+  variable1 =  TAG_Int(1);
+  variable2 = ((parser_nodes___AMethPropdef___n_visibility_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_visibility))( self) /*AMethPropdef::n_visibility*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((parser_nodes___AMethPropdef___n_visibility_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_visibility))( self) /*AMethPropdef::n_visibility*/;
+    variable3 = ((mmbuilder___PVisibility___level_t)CALL(variable3,COLOR_mmbuilder___PVisibility___level))(variable3) /*PVisibility::level*/;
+    variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AMethPropdef___n_visibility_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_visibility))( self) /*AMethPropdef::n_visibility*/;
+    variable2 = ((mmbuilder___PVisibility___level_t)CALL(variable2,COLOR_mmbuilder___PVisibility___level))(variable2) /*PVisibility::level*/;
+    variable1 = variable2 /*visibility_level=*/;
+  }
+  variable2 = ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/;
+  variable3 = ((parser_nodes___AMethPropdef___n_kwredef_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_kwredef))( self) /*AMethPropdef::n_kwredef*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  ((mmbuilder___PPropdef___process_and_check_t)CALL( self,COLOR_mmbuilder___PPropdef___process_and_check))( self,  variable0 /*v*/, variable2, variable3,  variable1 /*visibility_level*/) /*AMethPropdef::process_and_check*/;
+  variable2 = ((parser_nodes___AMethPropdef___n_signature_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_signature))( self) /*AMethPropdef::n_signature*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AMethPropdef___n_signature_t)CALL( self,COLOR_parser_nodes___AMethPropdef___n_signature))( self) /*AMethPropdef::n_signature*/;
+    variable3 = ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/;
+    ((mmbuilder___PSignature___check_visibility_t)CALL(variable2,COLOR_mmbuilder___PSignature___check_visibility))(variable2,  variable0 /*v*/, variable3) /*PSignature::check_visibility*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::AMethPropdef::accept_abs_syntax_visitor (src/syntax//mmbuilder.nit:863,2--867:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((mmbuilder___AMethPropdef___method_t)CALL( self,COLOR_syntax_base___AMethPropdef___method))( self) /*AMethPropdef::method*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/, variable1) /*AbsSyntaxVisitor::local_property=*/;
+  ((mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)CALL( self,COLOR_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor))( self,  param0) /*super AMethPropdef::accept_abs_syntax_visitor*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AMainMethPropdef___process_and_check(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "mmbuilder::AMainMethPropdef::process_and_check (src/syntax//mmbuilder.nit:872,2--875:82)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMSrcLocalProperty::global*/;
+  ((abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq))(variable4,  variable3 /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
+  variable4 = NEW_array___Array___init(); /*new Array[MMType]*/
+  variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+  variable5 = ((genericity___MMLocalClass___get_type_t)CALL(variable5,COLOR_static_type___MMLocalClass___get_type))(variable5) /*MMSrcLocalClass::get_type*/;
+  variable6 = NEW_static_type___MMSignature___init(variable4,  NIT_NULL /*null*/, variable5); /*new MMSignature*/
+  variable4 = variable6;
+  ((static_type___MMLocalProperty___signature__eq_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable1 /*prop*/, variable4) /*MMSrcLocalProperty::signature=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___ATypePropdef___prop(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::ATypePropdef::prop (src/syntax//mmbuilder.nit:881,2--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___ATypePropdef____prop( self) /*ATypePropdef::_prop*/;
+}
+void mmbuilder___ATypePropdef___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ATypePropdef::accept_property_builder (src/syntax//mmbuilder.nit:883,2--889:46)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ATypePropdef___accept_property_builder_t)CALL( self,COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_builder))( self,  param0) /*super ATypePropdef::accept_property_builder*/;
+  variable2 = ((parser_nodes___ATypePropdef___n_id_t)CALL( self,COLOR_parser_nodes___ATypePropdef___n_id))( self) /*ATypePropdef::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TClassid::to_symbol*/;
+  variable1 = variable2;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  variable4 = NEW_syntax_base___MMSrcTypeProperty___init( variable1 /*name*/, variable3,  self); /*new MMSrcTypeProperty*/
+  variable3 = variable4;
+  variable2 = variable3;
+  ATTR_mmbuilder___ATypePropdef____prop( self) /*ATypePropdef::_prop*/ =  variable2 /*prop*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyBuilderVisitor::local_class*/;
+  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable3,COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable3,  variable0 /*v*/,  variable2 /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ATypePropdef___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ATypePropdef::accept_property_verifier (src/syntax//mmbuilder.nit:892,2--898:65)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ATypePropdef___accept_property_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_verifier))( self,  param0) /*super ATypePropdef::accept_property_verifier*/;
+  variable2 = NEW_array___Array___init(); /*new Array[MMType]*/
+  variable3 = ((parser_nodes___ATypePropdef___n_type_t)CALL( self,COLOR_parser_nodes___ATypePropdef___n_type))( self) /*ATypePropdef::n_type*/;
+  variable3 = ((syntax_base___PType___get_stype_t)CALL(variable3,COLOR_syntax_base___PType___get_stype))(variable3,  variable0 /*v*/) /*PType::get_stype*/;
+  variable4 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+  variable4 = ((genericity___MMLocalClass___get_type_t)CALL(variable4,COLOR_static_type___MMLocalClass___get_type))(variable4) /*MMSrcLocalClass::get_type*/;
+  variable5 = NEW_static_type___MMSignature___init(variable2, variable3, variable4); /*new MMSignature*/
+  variable2 = variable5;
+  variable1 = variable2;
+  variable2 = ATTR_mmbuilder___ATypePropdef____prop( self) /*ATypePropdef::_prop*/;
+  ((static_type___MMLocalProperty___signature__eq_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature__eq))(variable2,  variable1 /*signature*/) /*MMSrcTypeProperty::signature=*/;
+  variable3 = ((parser_nodes___ATypePropdef___n_visibility_t)CALL( self,COLOR_parser_nodes___ATypePropdef___n_visibility))( self) /*ATypePropdef::n_visibility*/;
+  variable3 = ((mmbuilder___PVisibility___level_t)CALL(variable3,COLOR_mmbuilder___PVisibility___level))(variable3) /*PVisibility::level*/;
+  variable2 = variable3;
+  variable3 = ATTR_mmbuilder___ATypePropdef____prop( self) /*ATypePropdef::_prop*/;
+  variable4 = ((parser_nodes___ATypePropdef___n_kwredef_t)CALL( self,COLOR_parser_nodes___ATypePropdef___n_kwredef))( self) /*ATypePropdef::n_kwredef*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  ((mmbuilder___PPropdef___process_and_check_t)CALL( self,COLOR_mmbuilder___PPropdef___process_and_check))( self,  variable0 /*v*/, variable3, variable4,  variable2 /*visibility_level*/) /*ATypePropdef::process_and_check*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ATypePropdef::accept_abs_syntax_visitor (src/syntax//mmbuilder.nit:901,2--905:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((mmbuilder___ATypePropdef___prop_t)CALL( self,COLOR_syntax_base___ATypePropdef___prop))( self) /*ATypePropdef::prop*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/, variable1) /*AbsSyntaxVisitor::local_property=*/;
+  ((mmbuilder___ATypePropdef___accept_abs_syntax_visitor_t)CALL( self,COLOR_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor))( self,  param0) /*super ATypePropdef::accept_abs_syntax_visitor*/;
+  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable0 /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___MethidAccumulator___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::MethidAccumulator::name (src/syntax//mmbuilder.nit:912,2--28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___MethidAccumulator____name( self) /*MethidAccumulator::_name*/;
+}
+void mmbuilder___MethidAccumulator___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::MethidAccumulator::visit (src/syntax//mmbuilder.nit:913,2--918:19)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Token, ID_Token)) /*cast Token*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_mmbuilder___MethidAccumulator____name( self) /*MethidAccumulator::_name*/;
+    variable2 = ((lexer___Token___text_t)CALL( variable0 /*n*/,COLOR_lexer___Token___text))( variable0 /*n*/) /*Token::text*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable2) /*String::append*/;
+  } else { /*if*/
+    ((parser_prod___PNode___visit_all_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___visit_all))( variable0 /*n*/,  self) /*PNode::visit_all*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___MethidAccumulator___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "mmbuilder::MethidAccumulator::init (src/syntax//mmbuilder.nit:922,2--924:20)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MethidAccumulator].i]) return;
+  variable0 = NEW_string___String___init(); /*new String*/
+  ATTR_mmbuilder___MethidAccumulator____name( self) /*MethidAccumulator::_name*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MethidAccumulator].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PMethid___name(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PMethid::name (src/syntax//mmbuilder.nit:929,2--930:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PMethid____name( self) /*PMethid::_name*/;
+}
+void mmbuilder___PMethid___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PMethid::accept_property_builder (src/syntax//mmbuilder.nit:932,2--937:7)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_mmbuilder___MethidAccumulator___init(); /*new MethidAccumulator*/
+  variable1 = variable2;
+  ((mmbuilder___MethidAccumulator___visit_t)CALL( variable1 /*accumulator*/,COLOR_parser_prod___Visitor___visit))( variable1 /*accumulator*/,  self) /*MethidAccumulator::visit*/;
+  variable2 = ((mmbuilder___MethidAccumulator___name_t)CALL( variable1 /*accumulator*/,COLOR_mmbuilder___MethidAccumulator___name))( variable1 /*accumulator*/) /*MethidAccumulator::name*/;
+  variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+  ATTR_mmbuilder___PMethid____name( self) /*PMethid::_name*/ = variable2;
+  ((mmbuilder___PMethid___accept_property_builder_t)CALL( self,COLOR_SUPER_mmbuilder___PMethid___accept_property_builder))( self,  param0) /*super PMethid::accept_property_builder*/;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PSignature___check_visibility(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::PSignature::check_visibility (src/syntax//mmbuilder.nit:942,2--943:65)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method check_visibility called (src/syntax//mmbuilder.nit:942,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ASignature___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::ASignature::accept_property_verifier (src/syntax//mmbuilder.nit:947,2--966:43)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+        val_t variable3;
+        val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___ASignature___accept_property_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___ASignature___accept_property_verifier))( self,  param0) /*super ASignature::accept_property_verifier*/;
+  variable1 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+  variable1 = ((array___AbstractArray___is_empty_t)CALL(variable1,COLOR_abstract_collection___Collection___is_empty))(variable1) /*Array::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+    variable1 = ((abstract_collection___IndexedCollection___first_t)CALL(variable1,COLOR_abstract_collection___Collection___first))(variable1) /*Array::first*/;
+    variable2 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+    variable2 = ((abstract_collection___IndexedCollection___first_t)CALL(variable2,COLOR_abstract_collection___Collection___first))(variable2) /*Array::first*/;
+    variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*PParam::==*/)))))));
+    variable2 = variable1;
+    if (!UNTAG_Bool(variable2)) { /* or */
+      variable2 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+      variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PType::==*/)))))));
+    }
+    variable1 = variable2;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+      variable1 = ((abstract_collection___IndexedCollection___first_t)CALL(variable1,COLOR_abstract_collection___Collection___first))(variable1) /*Array::first*/;
+      variable2 = NEW_string___String___with_native(BOX_NativeString("Syntax error: untyped parameter."), TAG_Int(32)); /*new String*/
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable1, variable2) /*PropertyVerifierVisitor::error*/;
+      goto return_label99;
+    }
+  } else { /*if*/
+    variable1 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+    variable1 = ((array___AbstractArray___is_empty_t)CALL(variable1,COLOR_abstract_collection___Collection___is_empty))(variable1) /*Array::is_empty*/;
+    variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+    if (!UNTAG_Bool(variable1)) { /* or */
+      variable1 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+      variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+    }
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable2 = NEW_array___Array___init(); /*new Array[MMType]*/
+      variable1 = variable2;
+      variable2 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+      variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable3)) break; /*for*/
+        variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+        variable4 = ((mmbuilder___PParam___stype_t)CALL( variable3 /*p*/,COLOR_mmbuilder___PParam___stype))( variable3 /*p*/) /*PParam::stype*/;
+        ((array___AbstractArray___add_t)CALL( variable1 /*pars*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*pars*/, variable4) /*Array::add*/;
+        continue_100: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+      }
+      break_100: while(0);
+      variable2 =  NIT_NULL /*null*/;
+      variable3 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+      variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*PType::==*/)))))));
+      if (UNTAG_Bool(variable3)) { /*if*/
+        variable3 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+        variable3 = ((syntax_base___PType___get_stype_t)CALL(variable3,COLOR_syntax_base___PType___get_stype))(variable3,  variable0 /*v*/) /*PType::get_stype*/;
+        variable2 = variable3 /*ret=*/;
+      }
+      variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*PropertyVerifierVisitor::local_class*/;
+      variable3 = ((genericity___MMLocalClass___get_type_t)CALL(variable3,COLOR_static_type___MMLocalClass___get_type))(variable3) /*MMSrcLocalClass::get_type*/;
+      variable4 = NEW_static_type___MMSignature___init( variable1 /*pars*/,  variable2 /*ret*/, variable3); /*new MMSignature*/
+      variable3 = variable4;
+      ((mmbuilder___PropertyVerifierVisitor___signature__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature__eq))( variable0 /*v*/, variable3) /*PropertyVerifierVisitor::signature=*/;
+      variable3 = ((mmbuilder___PropertyVerifierVisitor___vararg_rank_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank))( variable0 /*v*/) /*PropertyVerifierVisitor::vararg_rank*/;
+      variable3 = TAG_Bool(UNTAG_Int(variable3)>=UNTAG_Int( TAG_Int(0)));
+      if (UNTAG_Bool(variable3)) { /*if*/
+        variable3 = ((mmbuilder___PropertyVerifierVisitor___signature_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature))( variable0 /*v*/) /*PropertyVerifierVisitor::signature*/;
+        variable4 = ((mmbuilder___PropertyVerifierVisitor___vararg_rank_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank))( variable0 /*v*/) /*PropertyVerifierVisitor::vararg_rank*/;
+        ((vararg___MMSignature___vararg_rank__eq_t)CALL(variable3,COLOR_vararg___MMSignature___vararg_rank__eq))(variable3, variable4) /*MMSignature::vararg_rank=*/;
+      }
+    }
+  }
+  return_label99: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___ASignature___check_visibility(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::ASignature::check_visibility (src/syntax//mmbuilder.nit:971,2--977:53)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*p*/) /*MMSrcLocalProperty::global*/;
+  variable2 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable2) /*MMGlobalProperty::visibility_level*/;
+  variable2 = TAG_Bool(UNTAG_Int(variable2)>=UNTAG_Int( TAG_Int(3)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label101;
+  }
+  variable2 = ((parser_nodes___ASignature___n_params_t)CALL( self,COLOR_parser_nodes___ASignature___n_params))( self) /*ASignature::n_params*/;
+  variable2 = ((list___List___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*List::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((list___ListIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((list___ListIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ListIterator::item*/;
+    variable4 = ((parser_nodes___PParam___n_type_t)CALL( variable3 /*n*/,COLOR_parser_nodes___PParam___n_type))( variable3 /*n*/) /*PParam::n_type*/;
+    variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*PType::==*/)))))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = ((parser_nodes___PParam___n_type_t)CALL( variable3 /*n*/,COLOR_parser_nodes___PParam___n_type))( variable3 /*n*/) /*PParam::n_type*/;
+      ((mmbuilder___PType___check_visibility_t)CALL(variable4,COLOR_mmbuilder___PType___check_visibility))(variable4,  variable0 /*v*/,  variable1 /*p*/) /*PType::check_visibility*/;
+    }
+    continue_102: while(0);
+    ((list___ListIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ListIterator::next*/;
+  }
+  break_102: while(0);
+  variable2 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___ASignature___n_type_t)CALL( self,COLOR_parser_nodes___ASignature___n_type))( self) /*ASignature::n_type*/;
+    ((mmbuilder___PType___check_visibility_t)CALL(variable2,COLOR_mmbuilder___PType___check_visibility))(variable2,  variable0 /*v*/,  variable1 /*p*/) /*PType::check_visibility*/;
+  }
+  return_label101: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PParam___position(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::position (src/syntax//mmbuilder.nit:982,2--35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PParam____position( self) /*PParam::_position*/;
+}
+val_t mmbuilder___PParam___variable(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::variable (src/syntax//mmbuilder.nit:984,2--40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PParam____variable( self) /*PParam::_variable*/;
+}
+val_t mmbuilder___PParam___stype(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::stype (src/syntax//mmbuilder.nit:986,2--987:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmbuilder___PParam____stype( self) /*PParam::_stype*/;
+}
+void mmbuilder___PParam___stype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::stype= (src/syntax//mmbuilder.nit:986,2--987:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmbuilder___PParam____stype( self) /*PParam::_stype*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PParam___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::accept_property_verifier (src/syntax//mmbuilder.nit:989,2--1010:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+      val_t variable3;
+      val_t variable4;
+        val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___PParam___accept_property_verifier_t)CALL( self,COLOR_SUPER_mmbuilder___PParam___accept_property_verifier))( self,  param0) /*super PParam::accept_property_verifier*/;
+  variable1 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Array::length*/;
+  ATTR_mmbuilder___PParam____position( self) /*PParam::_position*/ = variable1;
+  variable1 = ((parser_nodes___PParam___n_id_t)CALL( self,COLOR_parser_nodes___PParam___n_id))( self) /*PParam::n_id*/;
+  variable1 = ((syntax_base___Token___to_symbol_t)CALL(variable1,COLOR_syntax_base___Token___to_symbol))(variable1) /*TId::to_symbol*/;
+  variable2 = NEW_syntax_base___Variable___init(variable1,  self); /*new Variable*/
+  variable1 = variable2;
+  ATTR_mmbuilder___PParam____variable( self) /*PParam::_variable*/ = variable1;
+  variable1 = ((mmbuilder___PropertyVerifierVisitor___params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___params))( variable0 /*v*/) /*PropertyVerifierVisitor::params*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  self) /*Array::add*/;
+  variable1 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  self) /*Array::add*/;
+  variable1 = ((parser_nodes___PParam___n_type_t)CALL( self,COLOR_parser_nodes___PParam___n_type))( self) /*PParam::n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((parser_nodes___PParam___n_type_t)CALL( self,COLOR_parser_nodes___PParam___n_type))( self) /*PParam::n_type*/;
+    variable2 = ((syntax_base___PType___get_stype_t)CALL(variable2,COLOR_syntax_base___PType___get_stype))(variable2,  variable0 /*v*/) /*PType::get_stype*/;
+    variable1 = variable2;
+    variable2 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable3)) break; /*for*/
+      variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+      ((mmbuilder___PParam___stype__eq_t)CALL( variable3 /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable3 /*p*/,  variable1 /*stype*/) /*PParam::stype=*/;
+      variable4 = ((mmbuilder___PParam___is_vararg_t)CALL( self,COLOR_mmbuilder___PParam___is_vararg))( self) /*PParam::is_vararg*/;
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = ((mmbuilder___PropertyVerifierVisitor___vararg_rank_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank))( variable0 /*v*/) /*PropertyVerifierVisitor::vararg_rank*/;
+        variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+        variable4 = TAG_Bool((variable4)==(variable5));
+        if (UNTAG_Bool(variable4)) { /*if*/
+          variable4 = ((mmbuilder___PParam___position_t)CALL( variable3 /*p*/,COLOR_syntax_base___PParam___position))( variable3 /*p*/) /*PParam::position*/;
+          ((mmbuilder___PropertyVerifierVisitor___vararg_rank__eq_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank__eq))( variable0 /*v*/, variable4) /*PropertyVerifierVisitor::vararg_rank=*/;
+        } else { /*if*/
+          variable4 = NEW_string___String___with_native(BOX_NativeString("Error: A vararg parameter is already defined."), TAG_Int(45)); /*new String*/
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*PropertyVerifierVisitor::error*/;
+        }
+        variable4 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/,  variable1 /*stype*/) /*PropertyVerifierVisitor::type_array*/;
+        variable1 = variable4 /*stype=*/;
+      }
+      variable4 = ((mmbuilder___PParam___variable_t)CALL( variable3 /*p*/,COLOR_syntax_base___PParam___variable))( variable3 /*p*/) /*PParam::variable*/;
+      ((syntax_base___Variable___stype__eq_t)CALL(variable4,COLOR_syntax_base___Variable___stype__eq))(variable4,  variable1 /*stype*/) /*Variable::stype=*/;
+      continue_104: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+    }
+    break_104: while(0);
+    variable2 = ((mmbuilder___PropertyVerifierVisitor___untyped_params_t)CALL( variable0 /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params))( variable0 /*v*/) /*PropertyVerifierVisitor::untyped_params*/;
+    ((array___AbstractArray___clear_t)CALL(variable2,COLOR_abstract_collection___RemovableCollection___clear))(variable2) /*Array::clear*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t mmbuilder___PParam___is_vararg(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::PParam::is_vararg (src/syntax//mmbuilder.nit:1014,2--21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_vararg called (src/syntax//mmbuilder.nit:1014,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmbuilder___AParam___is_vararg(val_t  self) {
+  struct trace_t trace = {NULL, "mmbuilder::AParam::is_vararg (src/syntax//mmbuilder.nit:1018,2--51)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AParam___n_dotdotdot_t)CALL( self,COLOR_parser_nodes___AParam___n_dotdotdot))( self) /*AParam::n_dotdotdot*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
+  goto return_label105;
+  return_label105: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void mmbuilder___PType___check_visibility(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::PType::check_visibility (src/syntax//mmbuilder.nit:1022,2--1023:73)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method check_visibility called (src/syntax//mmbuilder.nit:1022,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___AType___check_visibility(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmbuilder::AType::check_visibility (src/syntax//mmbuilder.nit:1027,2--1038:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*p*/) /*MMSrcLocalProperty::global*/;
+  variable2 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable2) /*MMGlobalProperty::visibility_level*/;
+  variable2 = TAG_Bool(UNTAG_Int(variable2)>=UNTAG_Int( TAG_Int(3)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label106;
+  }
+  variable3 = ((syntax_base___AType___get_stype_t)CALL( self,COLOR_syntax_base___PType___get_stype))( self,  variable0 /*v*/) /*AType::get_stype*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable2 /*t*/ ==  NIT_NULL /*null*/) || (( variable2 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*t*/,COLOR_kernel___Object_____eqeq))( variable2 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    goto return_label106;
+  }
+  variable4 = ((static_type___MMType___local_class_t)CALL( variable2 /*t*/,COLOR_static_type___MMType___local_class))( variable2 /*t*/) /*MMType::local_class*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*bc*/ ==  NIT_NULL /*null*/) || (( variable3 /*bc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*bc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*bc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*bc*/,COLOR_kernel___Object_____eqeq))( variable3 /*bc*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    goto return_label106;
+  }
+  variable4 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable3 /*bc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable3 /*bc*/) /*MMLocalClass::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable4) /*MMGlobalClass::visibility_level*/;
+  variable4 = TAG_Bool(UNTAG_Int(variable4)>=UNTAG_Int( TAG_Int(3)));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Access error: Class "), TAG_Int(20)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable3 /*bc*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" is private and cannot be used in the signature of the non-private property "), TAG_Int(76)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    variable10 =  variable1 /*p*/;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*AbsSyntaxVisitor::error*/;
+  }
+  variable4 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+  variable4 = ((list___List___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*List::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((list___ListIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((list___ListIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ListIterator::item*/;
+    ((mmbuilder___PType___check_visibility_t)CALL( variable5 /*n*/,COLOR_mmbuilder___PType___check_visibility))( variable5 /*n*/,  variable0 /*v*/,  variable1 /*p*/) /*PType::check_visibility*/;
+    continue_107: while(0);
+    ((list___ListIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ListIterator::next*/;
+  }
+  break_107: while(0);
+  return_label106: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PExpr___accept_class_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PExpr::accept_class_builder (src/syntax//mmbuilder.nit:1044,2--34)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PExpr___accept_property_builder(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PExpr::accept_property_builder (src/syntax//mmbuilder.nit:1045,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmbuilder___PExpr___accept_property_verifier(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmbuilder::PExpr::accept_property_verifier (src/syntax//mmbuilder.nit:1046,2--38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/mmbuilder._sep.h b/c_src/mmbuilder._sep.h
new file mode 100644 (file)
index 0000000..2733b04
--- /dev/null
@@ -0,0 +1,417 @@
+#ifndef mmbuilder__sep
+#define mmbuilder__sep
+#include "syntax_base._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_CSHSorter[];
+
+extern const classtable_elt_t VFT_MMSrcAncestor[];
+
+extern const classtable_elt_t VFT_ClassBuilderVisitor[];
+
+extern const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[];
+
+extern const classtable_elt_t VFT_ClassAncestorBuilder[];
+
+extern const classtable_elt_t VFT_ClassVerifierVisitor[];
+
+extern const classtable_elt_t VFT_PropertyBuilderVisitor[];
+
+extern const classtable_elt_t VFT_PropertyVerifierVisitor[];
+
+extern const classtable_elt_t VFT_MMSrcTypeFormalParameter[];
+
+extern const classtable_elt_t VFT_MethidAccumulator[];
+extern const int SFT_mmbuilder[];
+#define ID_CSHSorter SFT_mmbuilder[0]
+#define COLOR_CSHSorter SFT_mmbuilder[1]
+#define INIT_TABLE_POS_CSHSorter SFT_mmbuilder[2]
+#define COLOR_mmbuilder___CSHSorter___init SFT_mmbuilder[3]
+#define COLOR_mmbuilder___MMSrcModule___do_mmbuilder SFT_mmbuilder[4]
+#define COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property SFT_mmbuilder[5]
+#define ID_MMSrcAncestor SFT_mmbuilder[6]
+#define COLOR_MMSrcAncestor SFT_mmbuilder[7]
+#define COLOR_mmbuilder___MMSrcAncestor____node SFT_mmbuilder[8]
+#define COLOR_mmbuilder___MMSrcAncestor____local_class SFT_mmbuilder[9]
+#define INIT_TABLE_POS_MMSrcAncestor SFT_mmbuilder[10]
+#define COLOR_mmbuilder___MMSrcAncestor___node SFT_mmbuilder[11]
+#define COLOR_mmbuilder___MMSrcAncestor___init SFT_mmbuilder[12]
+#define ID_ClassBuilderVisitor SFT_mmbuilder[13]
+#define COLOR_ClassBuilderVisitor SFT_mmbuilder[14]
+#define COLOR_mmbuilder___ClassBuilderVisitor____local_class_arity SFT_mmbuilder[15]
+#define COLOR_mmbuilder___ClassBuilderVisitor____formals SFT_mmbuilder[16]
+#define INIT_TABLE_POS_ClassBuilderVisitor SFT_mmbuilder[17]
+#define COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity SFT_mmbuilder[18]
+#define COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq SFT_mmbuilder[19]
+#define COLOR_mmbuilder___ClassBuilderVisitor___formals SFT_mmbuilder[20]
+#define COLOR_mmbuilder___ClassBuilderVisitor___formals__eq SFT_mmbuilder[21]
+#define COLOR_mmbuilder___ClassBuilderVisitor___init SFT_mmbuilder[22]
+#define ID_ClassSpecializationBuilderVisitor SFT_mmbuilder[23]
+#define COLOR_ClassSpecializationBuilderVisitor SFT_mmbuilder[24]
+#define INIT_TABLE_POS_ClassSpecializationBuilderVisitor SFT_mmbuilder[25]
+#define COLOR_mmbuilder___ClassSpecializationBuilderVisitor___init SFT_mmbuilder[26]
+#define ID_ClassAncestorBuilder SFT_mmbuilder[27]
+#define COLOR_ClassAncestorBuilder SFT_mmbuilder[28]
+#define INIT_TABLE_POS_ClassAncestorBuilder SFT_mmbuilder[29]
+#define COLOR_mmbuilder___ClassAncestorBuilder___init SFT_mmbuilder[30]
+#define ID_ClassVerifierVisitor SFT_mmbuilder[31]
+#define COLOR_ClassVerifierVisitor SFT_mmbuilder[32]
+#define INIT_TABLE_POS_ClassVerifierVisitor SFT_mmbuilder[33]
+#define COLOR_mmbuilder___ClassVerifierVisitor___init SFT_mmbuilder[34]
+#define ID_PropertyBuilderVisitor SFT_mmbuilder[35]
+#define COLOR_PropertyBuilderVisitor SFT_mmbuilder[36]
+#define INIT_TABLE_POS_PropertyBuilderVisitor SFT_mmbuilder[37]
+#define COLOR_mmbuilder___PropertyBuilderVisitor___init SFT_mmbuilder[38]
+#define ID_PropertyVerifierVisitor SFT_mmbuilder[39]
+#define COLOR_PropertyVerifierVisitor SFT_mmbuilder[40]
+#define COLOR_mmbuilder___PropertyVerifierVisitor____params SFT_mmbuilder[41]
+#define COLOR_mmbuilder___PropertyVerifierVisitor____untyped_params SFT_mmbuilder[42]
+#define COLOR_mmbuilder___PropertyVerifierVisitor____vararg_rank SFT_mmbuilder[43]
+#define COLOR_mmbuilder___PropertyVerifierVisitor____signature SFT_mmbuilder[44]
+#define INIT_TABLE_POS_PropertyVerifierVisitor SFT_mmbuilder[45]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___params SFT_mmbuilder[46]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___params__eq SFT_mmbuilder[47]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params SFT_mmbuilder[48]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___untyped_params__eq SFT_mmbuilder[49]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank SFT_mmbuilder[50]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___vararg_rank__eq SFT_mmbuilder[51]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___signature SFT_mmbuilder[52]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___signature__eq SFT_mmbuilder[53]
+#define COLOR_mmbuilder___PropertyVerifierVisitor___init SFT_mmbuilder[54]
+#define COLOR_mmbuilder___PNode___accept_class_builder SFT_mmbuilder[55]
+#define COLOR_mmbuilder___PNode___accept_class_specialization_builder SFT_mmbuilder[56]
+#define COLOR_mmbuilder___PNode___accept_class_ancestor_builder SFT_mmbuilder[57]
+#define COLOR_mmbuilder___PNode___accept_class_verifier SFT_mmbuilder[58]
+#define COLOR_mmbuilder___PNode___accept_property_builder SFT_mmbuilder[59]
+#define COLOR_mmbuilder___PNode___accept_property_verifier SFT_mmbuilder[60]
+#define COLOR_mmbuilder___AModule___import_super_modules SFT_mmbuilder[61]
+#define COLOR_mmbuilder___PImport___module_name SFT_mmbuilder[62]
+#define COLOR_mmbuilder___PImport___visibility_level SFT_mmbuilder[63]
+#define COLOR_mmbuilder___PVisibility___level SFT_mmbuilder[64]
+#define COLOR_mmbuilder___PClassdef____local_class SFT_mmbuilder[65]
+#define COLOR_mmbuilder___PClassdef___name SFT_mmbuilder[66]
+#define COLOR_mmbuilder___PClassdef___arity SFT_mmbuilder[67]
+#define COLOR_mmbuilder___PClassdef___visibility_level SFT_mmbuilder[68]
+#define COLOR_SUPER_mmbuilder___PClassdef___accept_class_builder SFT_mmbuilder[69]
+#define COLOR_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor SFT_mmbuilder[70]
+#define COLOR_mmbuilder___PClasskind___is_interface SFT_mmbuilder[71]
+#define COLOR_mmbuilder___PClasskind___is_universal SFT_mmbuilder[72]
+#define COLOR_mmbuilder___PClasskind___is_abstract SFT_mmbuilder[73]
+#define COLOR_SUPER_mmbuilder___AClassdef___accept_class_verifier SFT_mmbuilder[74]
+#define ID_MMSrcTypeFormalParameter SFT_mmbuilder[75]
+#define COLOR_MMSrcTypeFormalParameter SFT_mmbuilder[76]
+#define COLOR_mmbuilder___MMSrcTypeFormalParameter____node SFT_mmbuilder[77]
+#define INIT_TABLE_POS_MMSrcTypeFormalParameter SFT_mmbuilder[78]
+#define COLOR_mmbuilder___MMSrcTypeFormalParameter___node SFT_mmbuilder[79]
+#define COLOR_mmbuilder___MMSrcTypeFormalParameter___init SFT_mmbuilder[80]
+#define COLOR_mmbuilder___AFormaldef____formal SFT_mmbuilder[81]
+#define COLOR_SUPER_mmbuilder___AFormaldef___accept_class_builder SFT_mmbuilder[82]
+#define COLOR_SUPER_mmbuilder___AFormaldef___accept_class_verifier SFT_mmbuilder[83]
+#define COLOR_mmbuilder___ASuperclass____ancestor SFT_mmbuilder[84]
+#define COLOR_mmbuilder___ASuperclass___ancestor SFT_mmbuilder[85]
+#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder SFT_mmbuilder[86]
+#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder SFT_mmbuilder[87]
+#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_verifier SFT_mmbuilder[88]
+#define COLOR_mmbuilder___PPropdef___process_and_check SFT_mmbuilder[89]
+#define COLOR_mmbuilder___PPropdef___do_and_check_intro SFT_mmbuilder[90]
+#define COLOR_mmbuilder___PPropdef___inherit_signature SFT_mmbuilder[91]
+#define COLOR_mmbuilder___PPropdef___do_and_check_redef SFT_mmbuilder[92]
+#define COLOR_mmbuilder___AAttrPropdef____readmethod SFT_mmbuilder[93]
+#define COLOR_mmbuilder___AAttrPropdef____writemethod SFT_mmbuilder[94]
+#define COLOR_mmbuilder___AAttrPropdef____prop SFT_mmbuilder[95]
+#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_builder SFT_mmbuilder[96]
+#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier SFT_mmbuilder[97]
+#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor SFT_mmbuilder[98]
+#define COLOR_mmbuilder___AMethPropdef____name SFT_mmbuilder[99]
+#define COLOR_mmbuilder___AMethPropdef____method SFT_mmbuilder[100]
+#define COLOR_mmbuilder___AMethPropdef___name SFT_mmbuilder[101]
+#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_builder SFT_mmbuilder[102]
+#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_verifier SFT_mmbuilder[103]
+#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor SFT_mmbuilder[104]
+#define COLOR_mmbuilder___ATypePropdef____prop SFT_mmbuilder[105]
+#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_builder SFT_mmbuilder[106]
+#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_verifier SFT_mmbuilder[107]
+#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor SFT_mmbuilder[108]
+#define ID_MethidAccumulator SFT_mmbuilder[109]
+#define COLOR_MethidAccumulator SFT_mmbuilder[110]
+#define COLOR_mmbuilder___MethidAccumulator____name SFT_mmbuilder[111]
+#define INIT_TABLE_POS_MethidAccumulator SFT_mmbuilder[112]
+#define COLOR_mmbuilder___MethidAccumulator___name SFT_mmbuilder[113]
+#define COLOR_mmbuilder___MethidAccumulator___init SFT_mmbuilder[114]
+#define COLOR_mmbuilder___PMethid____name SFT_mmbuilder[115]
+#define COLOR_mmbuilder___PMethid___name SFT_mmbuilder[116]
+#define COLOR_SUPER_mmbuilder___PMethid___accept_property_builder SFT_mmbuilder[117]
+#define COLOR_mmbuilder___PSignature___check_visibility SFT_mmbuilder[118]
+#define COLOR_SUPER_mmbuilder___ASignature___accept_property_verifier SFT_mmbuilder[119]
+#define COLOR_mmbuilder___PParam____position SFT_mmbuilder[120]
+#define COLOR_mmbuilder___PParam____variable SFT_mmbuilder[121]
+#define COLOR_mmbuilder___PParam____stype SFT_mmbuilder[122]
+#define COLOR_mmbuilder___PParam___stype SFT_mmbuilder[123]
+#define COLOR_mmbuilder___PParam___stype__eq SFT_mmbuilder[124]
+#define COLOR_SUPER_mmbuilder___PParam___accept_property_verifier SFT_mmbuilder[125]
+#define COLOR_mmbuilder___PParam___is_vararg SFT_mmbuilder[126]
+#define COLOR_mmbuilder___PType___check_visibility SFT_mmbuilder[127]
+typedef val_t (* mmbuilder___CSHSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
+val_t mmbuilder___CSHSorter___compare(val_t  self, val_t  param0, val_t  param1);
+typedef void (* mmbuilder___CSHSorter___init_t)(val_t  self, int* init_table);
+void mmbuilder___CSHSorter___init(val_t  self, int* init_table);
+val_t NEW_mmbuilder___CSHSorter___init();
+typedef void (* mmbuilder___MMSrcModule___do_mmbuilder_t)(val_t  self, val_t  param0);
+void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___MMSrcLocalClass___add_src_local_property_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_mmbuilder___MMSrcAncestor____node(recv) ATTR(recv, COLOR_mmbuilder___MMSrcAncestor____node)
+typedef val_t (* mmbuilder___MMSrcAncestor___node_t)(val_t  self);
+val_t mmbuilder___MMSrcAncestor___node(val_t  self);
+#define ATTR_mmbuilder___MMSrcAncestor____local_class(recv) ATTR(recv, COLOR_mmbuilder___MMSrcAncestor____local_class)
+typedef val_t (* mmbuilder___MMSrcAncestor___local_class_t)(val_t  self);
+val_t mmbuilder___MMSrcAncestor___local_class(val_t  self);
+typedef void (* mmbuilder___MMSrcAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___MMSrcAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___MMSrcAncestor___init(val_t  param0, val_t  param1);
+#define ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(recv) ATTR(recv, COLOR_mmbuilder___ClassBuilderVisitor____local_class_arity)
+typedef val_t (* mmbuilder___ClassBuilderVisitor___local_class_arity_t)(val_t  self);
+val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t  self);
+typedef void (* mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___ClassBuilderVisitor____formals(recv) ATTR(recv, COLOR_mmbuilder___ClassBuilderVisitor____formals)
+typedef val_t (* mmbuilder___ClassBuilderVisitor___formals_t)(val_t  self);
+val_t mmbuilder___ClassBuilderVisitor___formals(val_t  self);
+typedef void (* mmbuilder___ClassBuilderVisitor___formals__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassBuilderVisitor___formals__eq(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ClassBuilderVisitor___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassBuilderVisitor___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ClassBuilderVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___ClassBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___ClassBuilderVisitor___init(val_t  param0, val_t  param1);
+typedef void (* mmbuilder___ClassSpecializationBuilderVisitor___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ClassSpecializationBuilderVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___ClassSpecializationBuilderVisitor___init(val_t  param0, val_t  param1);
+typedef void (* mmbuilder___ClassAncestorBuilder___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassAncestorBuilder___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ClassAncestorBuilder___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___ClassAncestorBuilder___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___ClassAncestorBuilder___init(val_t  param0, val_t  param1);
+typedef void (* mmbuilder___ClassVerifierVisitor___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___ClassVerifierVisitor___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ClassVerifierVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___ClassVerifierVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___ClassVerifierVisitor___init(val_t  param0, val_t  param1);
+typedef void (* mmbuilder___PropertyBuilderVisitor___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyBuilderVisitor___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PropertyBuilderVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___PropertyBuilderVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___PropertyBuilderVisitor___init(val_t  param0, val_t  param1);
+#define ATTR_mmbuilder___PropertyVerifierVisitor____params(recv) ATTR(recv, COLOR_mmbuilder___PropertyVerifierVisitor____params)
+typedef val_t (* mmbuilder___PropertyVerifierVisitor___params_t)(val_t  self);
+val_t mmbuilder___PropertyVerifierVisitor___params(val_t  self);
+typedef void (* mmbuilder___PropertyVerifierVisitor___params__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyVerifierVisitor___params__eq(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___PropertyVerifierVisitor____untyped_params(recv) ATTR(recv, COLOR_mmbuilder___PropertyVerifierVisitor____untyped_params)
+typedef val_t (* mmbuilder___PropertyVerifierVisitor___untyped_params_t)(val_t  self);
+val_t mmbuilder___PropertyVerifierVisitor___untyped_params(val_t  self);
+typedef void (* mmbuilder___PropertyVerifierVisitor___untyped_params__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyVerifierVisitor___untyped_params__eq(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___PropertyVerifierVisitor____vararg_rank(recv) ATTR(recv, COLOR_mmbuilder___PropertyVerifierVisitor____vararg_rank)
+typedef val_t (* mmbuilder___PropertyVerifierVisitor___vararg_rank_t)(val_t  self);
+val_t mmbuilder___PropertyVerifierVisitor___vararg_rank(val_t  self);
+typedef void (* mmbuilder___PropertyVerifierVisitor___vararg_rank__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyVerifierVisitor___vararg_rank__eq(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___PropertyVerifierVisitor____signature(recv) ATTR(recv, COLOR_mmbuilder___PropertyVerifierVisitor____signature)
+typedef val_t (* mmbuilder___PropertyVerifierVisitor___signature_t)(val_t  self);
+val_t mmbuilder___PropertyVerifierVisitor___signature(val_t  self);
+typedef void (* mmbuilder___PropertyVerifierVisitor___signature__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyVerifierVisitor___signature__eq(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PropertyVerifierVisitor___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___PropertyVerifierVisitor___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PropertyVerifierVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void mmbuilder___PropertyVerifierVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_mmbuilder___PropertyVerifierVisitor___init(val_t  param0, val_t  param1);
+typedef void (* mmbuilder___PNode___accept_class_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_class_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PNode___accept_class_specialization_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_class_specialization_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PNode___accept_class_ancestor_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_class_ancestor_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PNode___accept_class_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_class_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PNode___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PNode___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___PNode___accept_property_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AModule___import_super_modules_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___AModule___import_super_modules(val_t  self, val_t  param0, val_t  param1);
+typedef void (* mmbuilder___APackagedecl___accept_class_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___APackagedecl___accept_class_builder(val_t  self, val_t  param0);
+typedef val_t (* mmbuilder___PImport___module_name_t)(val_t  self);
+val_t mmbuilder___PImport___module_name(val_t  self);
+typedef val_t (* mmbuilder___PImport___visibility_level_t)(val_t  self);
+val_t mmbuilder___PImport___visibility_level(val_t  self);
+typedef val_t (* mmbuilder___AImport___module_name_t)(val_t  self);
+val_t mmbuilder___AImport___module_name(val_t  self);
+typedef val_t (* mmbuilder___AImport___visibility_level_t)(val_t  self);
+val_t mmbuilder___AImport___visibility_level(val_t  self);
+typedef val_t (* mmbuilder___ANoImport___module_name_t)(val_t  self);
+val_t mmbuilder___ANoImport___module_name(val_t  self);
+typedef val_t (* mmbuilder___PVisibility___level_t)(val_t  self);
+val_t mmbuilder___PVisibility___level(val_t  self);
+typedef val_t (* mmbuilder___APublicVisibility___level_t)(val_t  self);
+val_t mmbuilder___APublicVisibility___level(val_t  self);
+typedef val_t (* mmbuilder___AProtectedVisibility___level_t)(val_t  self);
+val_t mmbuilder___AProtectedVisibility___level(val_t  self);
+typedef val_t (* mmbuilder___APrivateVisibility___level_t)(val_t  self);
+val_t mmbuilder___APrivateVisibility___level(val_t  self);
+typedef val_t (* mmbuilder___AIntrudeVisibility___level_t)(val_t  self);
+val_t mmbuilder___AIntrudeVisibility___level(val_t  self);
+#define ATTR_mmbuilder___PClassdef____local_class(recv) ATTR(recv, COLOR_mmbuilder___PClassdef____local_class)
+typedef val_t (* mmbuilder___PClassdef___local_class_t)(val_t  self);
+val_t mmbuilder___PClassdef___local_class(val_t  self);
+typedef val_t (* mmbuilder___PClassdef___name_t)(val_t  self);
+val_t mmbuilder___PClassdef___name(val_t  self);
+typedef val_t (* mmbuilder___PClassdef___arity_t)(val_t  self);
+val_t mmbuilder___PClassdef___arity(val_t  self);
+typedef val_t (* mmbuilder___PClassdef___visibility_level_t)(val_t  self);
+val_t mmbuilder___PClassdef___visibility_level(val_t  self);
+typedef void (* mmbuilder___PClassdef___accept_class_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PClassdef___accept_class_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PClassdef___accept_abs_syntax_visitor_t)(val_t  self, val_t  param0);
+void mmbuilder___PClassdef___accept_abs_syntax_visitor(val_t  self, val_t  param0);
+typedef val_t (* mmbuilder___PClasskind___is_interface_t)(val_t  self);
+val_t mmbuilder___PClasskind___is_interface(val_t  self);
+typedef val_t (* mmbuilder___PClasskind___is_universal_t)(val_t  self);
+val_t mmbuilder___PClasskind___is_universal(val_t  self);
+typedef val_t (* mmbuilder___PClasskind___is_abstract_t)(val_t  self);
+val_t mmbuilder___PClasskind___is_abstract(val_t  self);
+typedef val_t (* mmbuilder___AInterfaceClasskind___is_interface_t)(val_t  self);
+val_t mmbuilder___AInterfaceClasskind___is_interface(val_t  self);
+typedef val_t (* mmbuilder___AUniversalClasskind___is_universal_t)(val_t  self);
+val_t mmbuilder___AUniversalClasskind___is_universal(val_t  self);
+typedef val_t (* mmbuilder___AAbstractClasskind___is_abstract_t)(val_t  self);
+val_t mmbuilder___AAbstractClasskind___is_abstract(val_t  self);
+typedef val_t (* mmbuilder___AClassdef___name_t)(val_t  self);
+val_t mmbuilder___AClassdef___name(val_t  self);
+typedef val_t (* mmbuilder___AClassdef___arity_t)(val_t  self);
+val_t mmbuilder___AClassdef___arity(val_t  self);
+typedef void (* mmbuilder___AClassdef___accept_class_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___AClassdef___accept_class_verifier(val_t  self, val_t  param0);
+typedef val_t (* mmbuilder___AClassdef___visibility_level_t)(val_t  self);
+val_t mmbuilder___AClassdef___visibility_level(val_t  self);
+typedef val_t (* mmbuilder___AMainClassdef___name_t)(val_t  self);
+val_t mmbuilder___AMainClassdef___name(val_t  self);
+typedef val_t (* mmbuilder___ATopClassdef___name_t)(val_t  self);
+val_t mmbuilder___ATopClassdef___name(val_t  self);
+#define ATTR_mmbuilder___MMSrcTypeFormalParameter____node(recv) ATTR(recv, COLOR_mmbuilder___MMSrcTypeFormalParameter____node)
+typedef val_t (* mmbuilder___MMSrcTypeFormalParameter___node_t)(val_t  self);
+val_t mmbuilder___MMSrcTypeFormalParameter___node(val_t  self);
+typedef void (* mmbuilder___MMSrcTypeFormalParameter___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void mmbuilder___MMSrcTypeFormalParameter___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_mmbuilder___MMSrcTypeFormalParameter___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_mmbuilder___AFormaldef____formal(recv) ATTR(recv, COLOR_mmbuilder___AFormaldef____formal)
+typedef void (* mmbuilder___AFormaldef___accept_class_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___AFormaldef___accept_class_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AFormaldef___accept_class_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___AFormaldef___accept_class_verifier(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___ASuperclass____ancestor(recv) ATTR(recv, COLOR_mmbuilder___ASuperclass____ancestor)
+typedef val_t (* mmbuilder___ASuperclass___ancestor_t)(val_t  self);
+val_t mmbuilder___ASuperclass___ancestor(val_t  self);
+typedef void (* mmbuilder___ASuperclass___accept_class_specialization_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ASuperclass___accept_class_ancestor_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ASuperclass___accept_class_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___ASuperclass___accept_class_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PPropdef___process_and_check_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void mmbuilder___PPropdef___process_and_check(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* mmbuilder___PPropdef___do_and_check_intro_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void mmbuilder___PPropdef___do_and_check_intro(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* mmbuilder___PPropdef___inherit_signature_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void mmbuilder___PPropdef___inherit_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* mmbuilder___PPropdef___do_and_check_redef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void mmbuilder___PPropdef___do_and_check_redef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_mmbuilder___AAttrPropdef____readmethod(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____readmethod)
+typedef val_t (* mmbuilder___AAttrPropdef___readmethod_t)(val_t  self);
+val_t mmbuilder___AAttrPropdef___readmethod(val_t  self);
+#define ATTR_mmbuilder___AAttrPropdef____writemethod(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____writemethod)
+typedef val_t (* mmbuilder___AAttrPropdef___writemethod_t)(val_t  self);
+val_t mmbuilder___AAttrPropdef___writemethod(val_t  self);
+#define ATTR_mmbuilder___AAttrPropdef____prop(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____prop)
+typedef val_t (* mmbuilder___AAttrPropdef___prop_t)(val_t  self);
+val_t mmbuilder___AAttrPropdef___prop(val_t  self);
+typedef void (* mmbuilder___AAttrPropdef___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___AAttrPropdef___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AAttrPropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___AAttrPropdef___accept_property_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AAttrPropdef___accept_abs_syntax_visitor_t)(val_t  self, val_t  param0);
+void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___AMethPropdef____name(recv) ATTR(recv, COLOR_mmbuilder___AMethPropdef____name)
+typedef val_t (* mmbuilder___AMethPropdef___name_t)(val_t  self);
+val_t mmbuilder___AMethPropdef___name(val_t  self);
+#define ATTR_mmbuilder___AMethPropdef____method(recv) ATTR(recv, COLOR_mmbuilder___AMethPropdef____method)
+typedef val_t (* mmbuilder___AMethPropdef___method_t)(val_t  self);
+val_t mmbuilder___AMethPropdef___method(val_t  self);
+typedef void (* mmbuilder___AMethPropdef___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AMethPropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___AMethPropdef___accept_property_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)(val_t  self, val_t  param0);
+void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0);
+typedef void (* mmbuilder___AMainMethPropdef___process_and_check_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void mmbuilder___AMainMethPropdef___process_and_check(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_mmbuilder___ATypePropdef____prop(recv) ATTR(recv, COLOR_mmbuilder___ATypePropdef____prop)
+typedef val_t (* mmbuilder___ATypePropdef___prop_t)(val_t  self);
+val_t mmbuilder___ATypePropdef___prop(val_t  self);
+typedef void (* mmbuilder___ATypePropdef___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___ATypePropdef___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ATypePropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___ATypePropdef___accept_property_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ATypePropdef___accept_abs_syntax_visitor_t)(val_t  self, val_t  param0);
+void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t  self, val_t  param0);
+#define ATTR_mmbuilder___MethidAccumulator____name(recv) ATTR(recv, COLOR_mmbuilder___MethidAccumulator____name)
+typedef val_t (* mmbuilder___MethidAccumulator___name_t)(val_t  self);
+val_t mmbuilder___MethidAccumulator___name(val_t  self);
+typedef void (* mmbuilder___MethidAccumulator___visit_t)(val_t  self, val_t  param0);
+void mmbuilder___MethidAccumulator___visit(val_t  self, val_t  param0);
+typedef void (* mmbuilder___MethidAccumulator___init_t)(val_t  self, int* init_table);
+void mmbuilder___MethidAccumulator___init(val_t  self, int* init_table);
+val_t NEW_mmbuilder___MethidAccumulator___init();
+#define ATTR_mmbuilder___PMethid____name(recv) ATTR(recv, COLOR_mmbuilder___PMethid____name)
+typedef val_t (* mmbuilder___PMethid___name_t)(val_t  self);
+val_t mmbuilder___PMethid___name(val_t  self);
+typedef void (* mmbuilder___PMethid___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PMethid___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PSignature___check_visibility_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___PSignature___check_visibility(val_t  self, val_t  param0, val_t  param1);
+typedef void (* mmbuilder___ASignature___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___ASignature___accept_property_verifier(val_t  self, val_t  param0);
+typedef void (* mmbuilder___ASignature___check_visibility_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___ASignature___check_visibility(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_mmbuilder___PParam____position(recv) ATTR(recv, COLOR_mmbuilder___PParam____position)
+typedef val_t (* mmbuilder___PParam___position_t)(val_t  self);
+val_t mmbuilder___PParam___position(val_t  self);
+#define ATTR_mmbuilder___PParam____variable(recv) ATTR(recv, COLOR_mmbuilder___PParam____variable)
+typedef val_t (* mmbuilder___PParam___variable_t)(val_t  self);
+val_t mmbuilder___PParam___variable(val_t  self);
+#define ATTR_mmbuilder___PParam____stype(recv) ATTR(recv, COLOR_mmbuilder___PParam____stype)
+typedef val_t (* mmbuilder___PParam___stype_t)(val_t  self);
+val_t mmbuilder___PParam___stype(val_t  self);
+typedef void (* mmbuilder___PParam___stype__eq_t)(val_t  self, val_t  param0);
+void mmbuilder___PParam___stype__eq(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PParam___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___PParam___accept_property_verifier(val_t  self, val_t  param0);
+typedef val_t (* mmbuilder___PParam___is_vararg_t)(val_t  self);
+val_t mmbuilder___PParam___is_vararg(val_t  self);
+typedef val_t (* mmbuilder___AParam___is_vararg_t)(val_t  self);
+val_t mmbuilder___AParam___is_vararg(val_t  self);
+typedef void (* mmbuilder___PType___check_visibility_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___PType___check_visibility(val_t  self, val_t  param0, val_t  param1);
+typedef void (* mmbuilder___AType___check_visibility_t)(val_t  self, val_t  param0, val_t  param1);
+void mmbuilder___AType___check_visibility(val_t  self, val_t  param0, val_t  param1);
+typedef void (* mmbuilder___PExpr___accept_class_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PExpr___accept_class_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PExpr___accept_property_builder_t)(val_t  self, val_t  param0);
+void mmbuilder___PExpr___accept_property_builder(val_t  self, val_t  param0);
+typedef void (* mmbuilder___PExpr___accept_property_verifier_t)(val_t  self, val_t  param0);
+void mmbuilder___PExpr___accept_property_verifier(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/mmloader._sep.c b/c_src/mmloader._sep.c
new file mode 100644 (file)
index 0000000..245ea2d
--- /dev/null
@@ -0,0 +1,828 @@
+#include "mmloader._sep.h"
+val_t mmloader___ToolContext___error_count(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::error_count (src/mmloader.nit:27,2--28:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____error_count( self) /*ToolContext::_error_count*/;
+}
+val_t mmloader___ToolContext___warning_count(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::warning_count (src/mmloader.nit:30,2--31:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____warning_count( self) /*ToolContext::_warning_count*/;
+}
+void mmloader___ToolContext___error(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::error (src/mmloader.nit:33,2--37:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((file___Object___stderr_t)CALL( self,COLOR_file___Object___stderr))( self) /*ToolContext::stderr*/;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable0 /*s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
+  variable1 = ATTR_mmloader___ToolContext____error_count( self) /*ToolContext::_error_count*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
+  ATTR_mmloader___ToolContext____error_count( self) /*ToolContext::_error_count*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void mmloader___ToolContext___warning(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::warning (src/mmloader.nit:40,2--45:37)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_mmloader___ToolContext____opt_warn( self) /*ToolContext::_opt_warn*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionBool::value*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    goto return_label1;
+  }
+  variable1 = ((file___Object___stderr_t)CALL( self,COLOR_file___Object___stderr))( self) /*ToolContext::stderr*/;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable0 /*s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
+  variable1 = ATTR_mmloader___ToolContext____warning_count( self) /*ToolContext::_warning_count*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
+  ATTR_mmloader___ToolContext____warning_count( self) /*ToolContext::_warning_count*/ = variable1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmloader___ToolContext___paths(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::paths (src/mmloader.nit:48,2--49:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____paths( self) /*ToolContext::_paths*/;
+}
+val_t mmloader___ToolContext___option_context(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::option_context (src/mmloader.nit:54,2--55:65)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____option_context( self) /*ToolContext::_option_context*/;
+}
+val_t mmloader___ToolContext___opt_warn(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_warn (src/mmloader.nit:57,2--58:85)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_warn( self) /*ToolContext::_opt_warn*/;
+}
+val_t mmloader___ToolContext___opt_path(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_path (src/mmloader.nit:60,2--61:131)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_path( self) /*ToolContext::_opt_path*/;
+}
+val_t mmloader___ToolContext___opt_log(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_log (src/mmloader.nit:63,2--64:90)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_log( self) /*ToolContext::_opt_log*/;
+}
+val_t mmloader___ToolContext___opt_only_metamodel(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_only_metamodel (src/mmloader.nit:66,2--67:118)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_only_metamodel( self) /*ToolContext::_opt_only_metamodel*/;
+}
+val_t mmloader___ToolContext___opt_only_parse(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_only_parse (src/mmloader.nit:69,2--70:115)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_only_parse( self) /*ToolContext::_opt_only_parse*/;
+}
+val_t mmloader___ToolContext___opt_help(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::opt_help (src/mmloader.nit:72,2--73:101)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___ToolContext____opt_help( self) /*ToolContext::_opt_help*/;
+}
+void mmloader___ToolContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::init (src/mmloader.nit:75,2--78:102)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ToolContext].i]) return;
+  ((abstractmetamodel___MMContext___init_t)CALL( self,COLOR_abstractmetamodel___MMContext___init))( self, init_table /*YYY*/) /*MMContext::init*/;
+  variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*ToolContext::option_context*/;
+  variable1 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Option]*/
+  variable2 = ((mmloader___ToolContext___opt_warn_t)CALL( self,COLOR_mmloader___ToolContext___opt_warn))( self) /*ToolContext::opt_warn*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  variable3 = ((mmloader___ToolContext___opt_path_t)CALL( self,COLOR_mmloader___ToolContext___opt_path))( self) /*ToolContext::opt_path*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable3) /*Array::add*/;
+  variable4 = ((mmloader___ToolContext___opt_log_t)CALL( self,COLOR_mmloader___ToolContext___opt_log))( self) /*ToolContext::opt_log*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable4) /*Array::add*/;
+  variable5 = ((mmloader___ToolContext___opt_only_parse_t)CALL( self,COLOR_mmloader___ToolContext___opt_only_parse))( self) /*ToolContext::opt_only_parse*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable5) /*Array::add*/;
+  variable6 = ((mmloader___ToolContext___opt_only_metamodel_t)CALL( self,COLOR_mmloader___ToolContext___opt_only_metamodel))( self) /*ToolContext::opt_only_metamodel*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable6) /*Array::add*/;
+  variable7 = ((mmloader___ToolContext___opt_help_t)CALL( self,COLOR_mmloader___ToolContext___opt_help))( self) /*ToolContext::opt_help*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable7) /*Array::add*/;
+  ((opts___OptionContext___add_option_t)CALL(variable0,COLOR_opts___OptionContext___add_option))(variable0, variable1) /*OptionContext::add_option*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ToolContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void mmloader___ToolContext___process_options(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::process_options (src/mmloader.nit:81,2--103:47)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_4; static int once_bool_variable1_4;
+    val_t variable2;
+  static val_t once_value_variable1_5; static int once_bool_variable1_5;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*ToolContext::option_context*/;
+  variable1 = ((string___Object___args_t)CALL( self,COLOR_string___Object___args))( self) /*ToolContext::args*/;
+  ((opts___OptionContext___parse_t)CALL(variable0,COLOR_opts___OptionContext___parse))(variable0, variable1) /*OptionContext::parse*/;
+  variable0 = NEW_array___Array___init(); /*new Array[String]*/
+  ATTR_mmloader___ToolContext____paths( self) /*ToolContext::_paths*/ = variable0;
+  variable0 = ((mmloader___ToolContext___paths_t)CALL( self,COLOR_mmloader___ToolContext___paths))( self) /*ToolContext::paths*/;
+  variable1 = ((mmloader___ToolContext___opt_path_t)CALL( self,COLOR_mmloader___ToolContext___opt_path))( self) /*ToolContext::opt_path*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionArray::value*/;
+  ((abstract_collection___IndexedCollection___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable1) /*Array::append*/;
+  if (once_bool_variable1_4) variable1 = once_value_variable1_4;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("NIT_PATH"), TAG_Int(8)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    variable1 = ((environ___Symbol___environ_t)CALL(variable1,COLOR_environ___Symbol___environ))(variable1) /*Symbol::environ*/;
+    once_value_variable1_4 = variable1;
+    once_bool_variable1_4 = true;
+  }
+  variable0 = variable1;
+  variable1 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*path_env*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*path_env*/) /*String::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable1 = ((mmloader___ToolContext___paths_t)CALL( self,COLOR_mmloader___ToolContext___paths))( self) /*ToolContext::paths*/;
+    variable2 = ((string_search___String___split_with_t)CALL( variable0 /*path_env*/,COLOR_string_search___String___split_with))( variable0 /*path_env*/,  TAG_Char(':')) /*String::split_with*/;
+    ((abstract_collection___IndexedCollection___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable2) /*Array::append*/;
+  }
+  if (once_bool_variable1_5) variable1 = once_value_variable1_5;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    variable1 = ((environ___Symbol___environ_t)CALL(variable1,COLOR_environ___Symbol___environ))(variable1) /*Symbol::environ*/;
+    once_value_variable1_5 = variable1;
+    once_bool_variable1_5 = true;
+  }
+  variable0 = variable1 /*path_env=*/;
+  variable1 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*path_env*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*path_env*/) /*String::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 =  variable0 /*path_env*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("/lib"), TAG_Int(4)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+    variable1 = variable2;
+    variable2 = ((file___String___file_exists_t)CALL( variable1 /*libname*/,COLOR_file___String___file_exists))( variable1 /*libname*/) /*String::file_exists*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((mmloader___ToolContext___paths_t)CALL( self,COLOR_mmloader___ToolContext___paths))( self) /*ToolContext::paths*/;
+      ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable1 /*libname*/) /*Array::add*/;
+    }
+  }
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 = (G_sys);
+  variable5 = ((string___Sys___program_name_t)CALL(variable5,COLOR_string___Sys___program_name))(variable5) /*Sys::program_name*/;
+  variable5 = ((file___String___dirname_t)CALL(variable5,COLOR_file___String___dirname))(variable5) /*String::dirname*/;
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("/../lib"), TAG_Int(7)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  variable1 = variable2;
+  variable2 = ((file___String___file_exists_t)CALL( variable1 /*libname*/,COLOR_file___String___file_exists))( variable1 /*libname*/) /*String::file_exists*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((mmloader___ToolContext___paths_t)CALL( self,COLOR_mmloader___ToolContext___paths))( self) /*ToolContext::paths*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable1 /*libname*/) /*Array::add*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t mmloader___ToolContext___try_to_load(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::try_to_load (src/mmloader.nit:106,2--145:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+      val_t variable6;
+        val_t variable7;
+        val_t variable8;
+        val_t variable9;
+        val_t variable10;
+        val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((abstractmetamodel___MMDirectory___modules_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___modules))( variable1 /*dir*/) /*MMDirectory::modules*/;
+  variable2 = ((abstract_collection___Map___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*MapIterator::item*/;
+    variable4 = ((abstractmetamodel___MMModule___name_t)CALL( variable3 /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable3 /*m*/) /*MMModule::name*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*module_name*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*module_name*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*module_name*/) /*Symbol::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable2 =  variable3 /*m*/;
+      goto return_label6;
+    }
+    continue_7: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*MapIterator::next*/;
+  }
+  break_7: while(0);
+  variable2 = ATTR_mmloader___ToolContext____loaders( self) /*ToolContext::_loaders*/;
+  variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable5 = ((mmloader___ModuleLoader___try_to_load_dir_t)CALL( variable3 /*l*/,COLOR_mmloader___ModuleLoader___try_to_load_dir))( variable3 /*l*/,  variable0 /*module_name*/,  variable1 /*dir*/) /*ModuleLoader::try_to_load_dir*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*dir2*/ ==  NIT_NULL /*null*/) || (( variable4 /*dir2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*dir2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*dir2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*dir2*/,COLOR_kernel___Object_____eqeq))( variable4 /*dir2*/,  NIT_NULL /*null*/) /*MMDirectory::==*/)))))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable6 = ((mmloader___ToolContext___try_to_load_t)CALL( self,COLOR_mmloader___ToolContext___try_to_load))( self,  variable0 /*module_name*/,  variable4 /*dir2*/) /*ToolContext::try_to_load*/;
+      variable5 = variable6;
+      variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*m*/ ==  NIT_NULL /*null*/) || (( variable5 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*m*/,COLOR_kernel___Object_____eqeq))( variable5 /*m*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        ((abstractmetamodel___MMDirectory___owner__eq_t)CALL( variable4 /*dir2*/,COLOR_abstractmetamodel___MMDirectory___owner__eq))( variable4 /*dir2*/,  variable5 /*m*/) /*MMDirectory::owner=*/;
+        ((abstractmetamodel___MMDirectory___add_module_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___add_module))( variable1 /*dir*/,  variable5 /*m*/) /*MMDirectory::add_module*/;
+        variable2 =  variable5 /*m*/;
+        goto return_label6;
+      }
+    }
+    variable5 = ((mmloader___ModuleLoader___can_handle_t)CALL( variable3 /*l*/,COLOR_mmloader___ModuleLoader___can_handle))( variable3 /*l*/,  variable0 /*module_name*/,  variable1 /*dir*/) /*ModuleLoader::can_handle*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable6 = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable1 /*dir*/,  variable0 /*module_name*/) /*MMDirectory::full_name_for*/;
+      variable5 = variable6;
+      variable6 = ATTR_mmloader___ToolContext____processing_modules( self) /*ToolContext::_processing_modules*/;
+      variable6 = ((hash___HashSet___has_t)CALL(variable6,COLOR_abstract_collection___Collection___has))(variable6,  variable5 /*full_name*/) /*HashSet::has*/;
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Dependency loop for module "), TAG_Int(34)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  variable5 /*full_name*/;
+        variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+        variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+        variable11 = variable10;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+        ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable6) /*ToolContext::error*/;
+        exit(UNTAG_Int( TAG_Int(1)));
+        fprintf(stderr, "Aborted: src/mmloader.nit:135,6--10\n"); nit_exit(1);
+      }
+      variable6 = ATTR_mmloader___ToolContext____processing_modules( self) /*ToolContext::_processing_modules*/;
+      ((hash___HashSet___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable5 /*full_name*/) /*HashSet::add*/;
+      variable7 = ((mmloader___ModuleLoader___load_and_process_module_t)CALL( variable3 /*l*/,COLOR_mmloader___ModuleLoader___load_and_process_module))( variable3 /*l*/,  self,  variable0 /*module_name*/,  variable1 /*dir*/) /*ModuleLoader::load_and_process_module*/;
+      variable6 = variable7;
+      variable7 = ATTR_mmloader___ToolContext____processing_modules( self) /*ToolContext::_processing_modules*/;
+      ((hash___HashSet___remove_t)CALL(variable7,COLOR_abstract_collection___RemovableCollection___remove))(variable7,  variable5 /*full_name*/) /*HashSet::remove*/;
+      ((abstractmetamodel___MMDirectory___add_module_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___add_module))( variable1 /*dir*/,  variable6 /*m*/) /*MMDirectory::add_module*/;
+      variable2 =  variable6 /*m*/;
+      goto return_label6;
+    }
+    continue_8: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_8: while(0);
+  variable2 =  NIT_NULL /*null*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t mmloader___ToolContext___get_module_from_filename(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::get_module_from_filename (src/mmloader.nit:152,2--184:7)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((file___String___dirname_t)CALL( variable0 /*filename*/,COLOR_file___String___dirname))( variable0 /*filename*/) /*String::dirname*/;
+  variable1 = variable2;
+  variable3 = NEW_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
+  variable3 = ((file___String___basename_t)CALL( variable0 /*filename*/,COLOR_file___String___basename))( variable0 /*filename*/, variable3) /*String::basename*/;
+  variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+  variable2 = variable3;
+  variable4 = ((mmloader___ToolContext___directory_for_t)CALL( self,COLOR_mmloader___ToolContext___directory_for))( self,  variable1 /*path*/) /*ToolContext::directory_for*/;
+  variable3 = variable4;
+  variable4 = ((symbol___Symbol___to_s_t)CALL( variable2 /*module_name*/,COLOR_string___Object___to_s))( variable2 /*module_name*/) /*Symbol::to_s*/;
+  variable4 = TAG_Bool((variable4 ==  variable0 /*filename*/) || ((variable4 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*filename*/) /*String::==*/)));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable5 = ((mmloader___ToolContext___try_to_load_t)CALL( self,COLOR_mmloader___ToolContext___try_to_load))( self,  variable2 /*module_name*/,  variable3 /*dir*/) /*ToolContext::try_to_load*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*m*/ ==  NIT_NULL /*null*/) || (( variable4 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))( variable4 /*m*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable1 =  variable4 /*m*/;
+      goto return_label9;
+    }
+    variable5 = ((mmloader___ToolContext___get_module_t)CALL( self,COLOR_mmloader___ToolContext___get_module))( self,  variable2 /*module_name*/,  NIT_NULL /*null*/) /*ToolContext::get_module*/;
+    variable1 = variable5;
+    goto return_label9;
+  }
+  variable4 = ((file___String___file_exists_t)CALL( variable0 /*filename*/,COLOR_file___String___file_exists))( variable0 /*filename*/) /*String::file_exists*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Error: File "), TAG_Int(12)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable0 /*filename*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" not found."), TAG_Int(11)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable4) /*ToolContext::error*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+    fprintf(stderr, "Aborted: src/mmloader.nit:175,4--8\n"); nit_exit(1);
+  }
+  variable5 = ((mmloader___ToolContext___try_to_load_t)CALL( self,COLOR_mmloader___ToolContext___try_to_load))( self,  variable2 /*module_name*/,  variable3 /*dir*/) /*ToolContext::try_to_load*/;
+  variable4 = variable5;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*m*/ ==  NIT_NULL /*null*/) || (( variable4 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))( variable4 /*m*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable1 =  variable4 /*m*/;
+    goto return_label9;
+  }
+  variable5 = NEW_string___String___init(); /*new String*/
+  variable6 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+  variable8 =  variable0 /*filename*/;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(" is not a NIT source module."), TAG_Int(28)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+  ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable5) /*ToolContext::error*/;
+  exit(UNTAG_Int( TAG_Int(1)));
+  fprintf(stderr, "Aborted: src/mmloader.nit:184,3--7\n"); nit_exit(1);
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t mmloader___ToolContext___get_module(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::get_module (src/mmloader.nit:187,2--208:7)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+      val_t variable5;
+    val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = NIT_NULL /*decl variable m*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*from*/ ==  NIT_NULL /*null*/) || (( variable1 /*from*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*from*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*from*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*from*/,COLOR_kernel___Object_____eqeq))( variable1 /*from*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable4 = ((abstractmetamodel___MMModule___directory_t)CALL( variable1 /*from*/,COLOR_abstractmetamodel___MMModule___directory))( variable1 /*from*/) /*MMModule::directory*/;
+    variable3 = variable4;
+    while (true) { /*while*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*dir*/ ==  NIT_NULL /*null*/) || (( variable3 /*dir*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*dir*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*dir*/,COLOR_kernel___Object_____eqeq))( variable3 /*dir*/,  NIT_NULL /*null*/) /*MMDirectory::==*/)))))));
+      if (!UNTAG_Bool(variable4)) break; /* while*/
+      variable5 = ((mmloader___ToolContext___try_to_load_t)CALL( self,COLOR_mmloader___ToolContext___try_to_load))( self,  variable0 /*module_name*/,  variable3 /*dir*/) /*ToolContext::try_to_load*/;
+      variable4 = variable5;
+      variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*m*/ ==  NIT_NULL /*null*/) || (( variable4 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*m*/,COLOR_kernel___Object_____eqeq))( variable4 /*m*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+      if (UNTAG_Bool(variable5)) { /*if*/
+        variable2 =  variable4 /*m*/;
+        goto return_label10;
+      }
+      variable5 = ((abstractmetamodel___MMDirectory___parent_t)CALL( variable3 /*dir*/,COLOR_abstractmetamodel___MMDirectory___parent))( variable3 /*dir*/) /*MMDirectory::parent*/;
+      variable3 = variable5 /*dir=*/;
+      continue_11: while(0);
+    }
+    break_11: while(0);
+  }
+  variable3 = ((mmloader___ToolContext___paths_t)CALL( self,COLOR_mmloader___ToolContext___paths))( self) /*ToolContext::paths*/;
+  variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable6 = ((mmloader___ToolContext___directory_for_t)CALL( self,COLOR_mmloader___ToolContext___directory_for))( self,  variable4 /*p*/) /*ToolContext::directory_for*/;
+    variable6 = ((mmloader___ToolContext___try_to_load_t)CALL( self,COLOR_mmloader___ToolContext___try_to_load))( self,  variable0 /*module_name*/, variable6) /*ToolContext::try_to_load*/;
+    variable5 = variable6;
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*m*/ ==  NIT_NULL /*null*/) || (( variable5 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*m*/,COLOR_kernel___Object_____eqeq))( variable5 /*m*/,  NIT_NULL /*null*/) /*MMModule::==*/)))))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable2 =  variable5 /*m*/;
+      goto return_label10;
+    }
+    continue_12: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_12: while(0);
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("Error: No ressource found for module "), TAG_Int(37)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable0 /*module_name*/;
+  variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable3) /*ToolContext::error*/;
+  exit(UNTAG_Int( TAG_Int(1)));
+  fprintf(stderr, "Aborted: src/mmloader.nit:208,3--7\n"); nit_exit(1);
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t mmloader___ToolContext___directory_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::directory_for (src/mmloader.nit:211,2--217:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_mmloader___ToolContext____path_dirs( self) /*ToolContext::_path_dirs*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*path*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_mmloader___ToolContext____path_dirs( self) /*ToolContext::_path_dirs*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*path*/) /*Map::[]*/;
+    goto return_label13;
+  }
+  variable2 = ((symbol___String___to_symbol_t)CALL( variable0 /*path*/,COLOR_symbol___String___to_symbol))( variable0 /*path*/) /*String::to_symbol*/;
+  variable3 = NEW_abstractmetamodel___MMDirectory___init(variable2,  variable0 /*path*/,  NIT_NULL /*null*/); /*new MMDirectory*/
+  variable2 = variable3;
+  variable1 = variable2;
+  variable2 = ATTR_mmloader___ToolContext____path_dirs( self) /*ToolContext::_path_dirs*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable2,COLOR_abstract_collection___Map_____braeq))(variable2,  variable0 /*path*/,  variable1 /*dir*/) /*Map::[]=*/;
+  variable1 =  variable1 /*dir*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void mmloader___ToolContext___register_loader(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::ToolContext::register_loader (src/mmloader.nit:223,2--224:58)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_mmloader___ToolContext____loaders( self) /*ToolContext::_loaders*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*ml*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmloader___ModuleLoader___file_type(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::file_type (src/mmloader.nit:232,2--233:23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method file_type called (src/mmloader.nit:232,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t mmloader___ModuleLoader___try_to_load_dir(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::try_to_load_dir (src/mmloader.nit:235,2--242:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((abstractmetamodel___MMDirectory___path_t)CALL( variable1 /*parent_dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable1 /*parent_dir*/) /*MMDirectory::path*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 =  variable0 /*dirname*/;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  variable2 = variable3;
+  variable3 = ((file___String___file_exists_t)CALL( variable2 /*fname*/,COLOR_file___String___file_exists))( variable2 /*fname*/) /*String::file_exists*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+    variable2 =  NIT_NULL /*null*/;
+    goto return_label15;
+  }
+  variable4 = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable1 /*parent_dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable1 /*parent_dir*/,  variable0 /*dirname*/) /*MMDirectory::full_name_for*/;
+  variable5 = NEW_abstractmetamodel___MMDirectory___init(variable4,  variable2 /*fname*/,  variable1 /*parent_dir*/); /*new MMDirectory*/
+  variable4 = variable5;
+  variable3 = variable4;
+  variable2 =  variable3 /*dir*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t mmloader___ModuleLoader___can_handle(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::can_handle (src/mmloader.nit:245,2--251:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((abstractmetamodel___MMDirectory___path_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable1 /*dir*/) /*MMDirectory::path*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 =  variable0 /*module_name*/;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  variable13 = ((mmloader___ModuleLoader___file_type_t)CALL( self,COLOR_mmloader___ModuleLoader___file_type))( self) /*ModuleLoader::file_type*/;
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable14) /*String::append*/;
+  variable15 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable16 = variable15;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable16) /*String::append*/;
+  variable2 = variable3;
+  variable3 = ((file___String___file_exists_t)CALL( variable2 /*fname*/,COLOR_file___String___file_exists))( variable2 /*fname*/) /*String::file_exists*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable2 =  TAG_Bool(true);
+    goto return_label16;
+  }
+  variable2 =  TAG_Bool(false);
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t mmloader___ModuleLoader___load_and_process_module(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::load_and_process_module (src/mmloader.nit:254,2--261:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 = ((abstractmetamodel___MMDirectory___path_t)CALL( variable2 /*dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable2 /*dir*/) /*MMDirectory::path*/;
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 =  variable1 /*module_name*/;
+  variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  variable14 = ((mmloader___ModuleLoader___file_type_t)CALL( self,COLOR_mmloader___ModuleLoader___file_type))( self) /*ModuleLoader::file_type*/;
+  variable15 = variable14;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+  variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable17 = variable16;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+  variable3 = variable4;
+  variable5 = ((mmloader___ModuleLoader___load_module_t)CALL( self,COLOR_mmloader___ModuleLoader___load_module))( self,  variable0 /*context*/,  variable1 /*module_name*/,  variable2 /*dir*/,  variable3 /*filename*/) /*ModuleLoader::load_module*/;
+  variable4 = variable5;
+  variable5 = ((mmloader___ToolContext___opt_only_parse_t)CALL( variable0 /*context*/,COLOR_mmloader___ToolContext___opt_only_parse))( variable0 /*context*/) /*ToolContext::opt_only_parse*/;
+  variable5 = ((opts___Option___value_t)CALL(variable5,COLOR_opts___Option___value))(variable5) /*OptionBool::value*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+    ((mmloader___ModuleLoader___process_metamodel_t)CALL( self,COLOR_mmloader___ModuleLoader___process_metamodel))( self,  variable0 /*context*/,  variable4 /*m*/) /*ModuleLoader::process_metamodel*/;
+  }
+  variable3 =  variable4 /*m*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t mmloader___ModuleLoader___load_module(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::load_module (src/mmloader.nit:264,2--282:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 = NIT_NULL /*decl variable file*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+  variable5 = TAG_Bool(( variable3 /*filename*/ == variable5) || (( variable3 /*filename*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable3 /*filename*/,COLOR_kernel___Object_____eqeq))( variable3 /*filename*/, variable5) /*String::==*/)));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*ModuleLoader::stdin*/;
+    variable4 = variable5 /*file=*/;
+  } else { /*if*/
+    variable5 = ((string___String___to_s_t)CALL( variable3 /*filename*/,COLOR_string___Object___to_s))( variable3 /*filename*/) /*String::to_s*/;
+    variable6 = NEW_file___IFStream___open(variable5); /*new IFStream*/
+    variable5 = variable6;
+    variable4 = variable5 /*file=*/;
+  }
+  variable5 = ((stream___BufferedIStream___eof_t)CALL( variable4 /*file*/,COLOR_stream___IStream___eof))( variable4 /*file*/) /*IFStream::eof*/;
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = NEW_string___String___init(); /*new String*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Problem in opening file "), TAG_Int(31)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+    variable8 =  variable3 /*filename*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+    ((mmloader___ToolContext___error_t)CALL( variable0 /*context*/,COLOR_mmloader___ToolContext___error))( variable0 /*context*/, variable5) /*ToolContext::error*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+    fprintf(stderr, "Aborted: src/mmloader.nit:277,4--8\n"); nit_exit(1);
+  }
+  variable6 = ((mmloader___ModuleLoader___parse_file_t)CALL( self,COLOR_mmloader___ModuleLoader___parse_file))( self,  variable0 /*context*/,  variable4 /*file*/,  variable3 /*filename*/,  variable1 /*module_name*/,  variable2 /*dir*/) /*ModuleLoader::parse_file*/;
+  variable5 = variable6;
+  ((mmloader___MMModule___filename__eq_t)CALL( variable5 /*m*/,COLOR_mmloader___MMModule___filename__eq))( variable5 /*m*/,  variable3 /*filename*/) /*MMModule::filename=*/;
+  variable6 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*ModuleLoader::stdin*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*file*/ == variable6) || (( variable4 /*file*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*file*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*file*/,variable6)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*file*/,COLOR_kernel___Object_____eqeq))( variable4 /*file*/, variable6) /*IFStream::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((file___IFStream___close_t)CALL( variable4 /*file*/,COLOR_stream___IOS___close))( variable4 /*file*/) /*IFStream::close*/;
+  }
+  variable4 =  variable5 /*m*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable4;
+}
+val_t mmloader___ModuleLoader___parse_file(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::parse_file (src/mmloader.nit:285,2--286:129)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method parse_file called (src/mmloader.nit:285,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void mmloader___ModuleLoader___process_metamodel(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "mmloader::ModuleLoader::process_metamodel (src/mmloader.nit:288,2--289:70)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method process_metamodel called (src/mmloader.nit:288,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t mmloader___MMModule___filename(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::MMModule::filename (src/mmloader.nit:293,2--294:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___MMModule____filename( self) /*MMModule::_filename*/;
+}
+void mmloader___MMModule___filename__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::MMModule::filename= (src/mmloader.nit:293,2--294:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmloader___MMModule____filename( self) /*MMModule::_filename*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t mmloader___MMModule___mtime(val_t  self) {
+  struct trace_t trace = {NULL, "mmloader::MMModule::mtime (src/mmloader.nit:296,2--297:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_mmloader___MMModule____mtime( self) /*MMModule::_mtime*/;
+}
+void mmloader___MMModule___mtime__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::MMModule::mtime= (src/mmloader.nit:296,2--297:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_mmloader___MMModule____mtime( self) /*MMModule::_mtime*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void mmloader___MMModule___import_supers_modules(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "mmloader::MMModule::import_supers_modules (src/mmloader.nit:299,2--309:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstractmetamodel___MMModule___context_t)CALL( self,COLOR_abstractmetamodel___MMModule___context))( self) /*MMModule::context*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*c*/==NIT_NULL) || VAL_ISA( variable1 /*c*/, COLOR_ToolContext, ID_ToolContext)) /*cast ToolContext*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/mmloader.nit:303,3--26\n"); nit_exit(1);}
+  variable3 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  variable2 = variable3;
+  variable3 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*names*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*names*/) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+    variable6 = ((mmloader___ToolContext___get_module_t)CALL( variable1 /*c*/,COLOR_mmloader___ToolContext___get_module))( variable1 /*c*/,  variable4 /*n*/,  self) /*ToolContext::get_module*/;
+    variable5 = variable6;
+    ((array___AbstractArray___add_t)CALL( variable2 /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*supers*/,  variable5 /*m*/) /*Array::add*/;
+    continue_20: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+  }
+  break_20: while(0);
+  ((abstractmetamodel___MMContext___add_module_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMContext___add_module))( variable1 /*c*/,  self,  variable2 /*supers*/) /*ToolContext::add_module*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/mmloader._sep.h b/c_src/mmloader._sep.h
new file mode 100644 (file)
index 0000000..f0b9e57
--- /dev/null
@@ -0,0 +1,141 @@
+#ifndef mmloader__sep
+#define mmloader__sep
+#include "metamodel._sep.h"
+#include "opts._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_ToolContext[];
+
+extern const classtable_elt_t VFT_ModuleLoader[];
+extern const int SFT_mmloader[];
+#define ID_ToolContext SFT_mmloader[0]
+#define COLOR_ToolContext SFT_mmloader[1]
+#define COLOR_mmloader___ToolContext____error_count SFT_mmloader[2]
+#define COLOR_mmloader___ToolContext____warning_count SFT_mmloader[3]
+#define COLOR_mmloader___ToolContext____paths SFT_mmloader[4]
+#define COLOR_mmloader___ToolContext____loaders SFT_mmloader[5]
+#define COLOR_mmloader___ToolContext____option_context SFT_mmloader[6]
+#define COLOR_mmloader___ToolContext____opt_warn SFT_mmloader[7]
+#define COLOR_mmloader___ToolContext____opt_path SFT_mmloader[8]
+#define COLOR_mmloader___ToolContext____opt_log SFT_mmloader[9]
+#define COLOR_mmloader___ToolContext____opt_only_metamodel SFT_mmloader[10]
+#define COLOR_mmloader___ToolContext____opt_only_parse SFT_mmloader[11]
+#define COLOR_mmloader___ToolContext____opt_help SFT_mmloader[12]
+#define COLOR_mmloader___ToolContext____processing_modules SFT_mmloader[13]
+#define COLOR_mmloader___ToolContext____path_dirs SFT_mmloader[14]
+#define INIT_TABLE_POS_ToolContext SFT_mmloader[15]
+#define COLOR_mmloader___ToolContext___error_count SFT_mmloader[16]
+#define COLOR_mmloader___ToolContext___warning_count SFT_mmloader[17]
+#define COLOR_mmloader___ToolContext___error SFT_mmloader[18]
+#define COLOR_mmloader___ToolContext___warning SFT_mmloader[19]
+#define COLOR_mmloader___ToolContext___paths SFT_mmloader[20]
+#define COLOR_mmloader___ToolContext___option_context SFT_mmloader[21]
+#define COLOR_mmloader___ToolContext___opt_warn SFT_mmloader[22]
+#define COLOR_mmloader___ToolContext___opt_path SFT_mmloader[23]
+#define COLOR_mmloader___ToolContext___opt_log SFT_mmloader[24]
+#define COLOR_mmloader___ToolContext___opt_only_metamodel SFT_mmloader[25]
+#define COLOR_mmloader___ToolContext___opt_only_parse SFT_mmloader[26]
+#define COLOR_mmloader___ToolContext___opt_help SFT_mmloader[27]
+#define COLOR_mmloader___ToolContext___init SFT_mmloader[28]
+#define COLOR_mmloader___ToolContext___process_options SFT_mmloader[29]
+#define COLOR_mmloader___ToolContext___try_to_load SFT_mmloader[30]
+#define COLOR_mmloader___ToolContext___get_module_from_filename SFT_mmloader[31]
+#define COLOR_mmloader___ToolContext___get_module SFT_mmloader[32]
+#define COLOR_mmloader___ToolContext___directory_for SFT_mmloader[33]
+#define COLOR_mmloader___ToolContext___register_loader SFT_mmloader[34]
+#define ID_ModuleLoader SFT_mmloader[35]
+#define COLOR_ModuleLoader SFT_mmloader[36]
+#define INIT_TABLE_POS_ModuleLoader SFT_mmloader[37]
+#define COLOR_mmloader___ModuleLoader___file_type SFT_mmloader[38]
+#define COLOR_mmloader___ModuleLoader___try_to_load_dir SFT_mmloader[39]
+#define COLOR_mmloader___ModuleLoader___can_handle SFT_mmloader[40]
+#define COLOR_mmloader___ModuleLoader___load_and_process_module SFT_mmloader[41]
+#define COLOR_mmloader___ModuleLoader___load_module SFT_mmloader[42]
+#define COLOR_mmloader___ModuleLoader___parse_file SFT_mmloader[43]
+#define COLOR_mmloader___ModuleLoader___process_metamodel SFT_mmloader[44]
+#define COLOR_mmloader___MMModule____filename SFT_mmloader[45]
+#define COLOR_mmloader___MMModule____mtime SFT_mmloader[46]
+#define COLOR_mmloader___MMModule___filename SFT_mmloader[47]
+#define COLOR_mmloader___MMModule___filename__eq SFT_mmloader[48]
+#define COLOR_mmloader___MMModule___mtime SFT_mmloader[49]
+#define COLOR_mmloader___MMModule___mtime__eq SFT_mmloader[50]
+#define COLOR_mmloader___MMModule___import_supers_modules SFT_mmloader[51]
+#define ATTR_mmloader___ToolContext____error_count(recv) ATTR(recv, COLOR_mmloader___ToolContext____error_count)
+typedef val_t (* mmloader___ToolContext___error_count_t)(val_t  self);
+val_t mmloader___ToolContext___error_count(val_t  self);
+#define ATTR_mmloader___ToolContext____warning_count(recv) ATTR(recv, COLOR_mmloader___ToolContext____warning_count)
+typedef val_t (* mmloader___ToolContext___warning_count_t)(val_t  self);
+val_t mmloader___ToolContext___warning_count(val_t  self);
+typedef void (* mmloader___ToolContext___error_t)(val_t  self, val_t  param0);
+void mmloader___ToolContext___error(val_t  self, val_t  param0);
+typedef void (* mmloader___ToolContext___warning_t)(val_t  self, val_t  param0);
+void mmloader___ToolContext___warning(val_t  self, val_t  param0);
+#define ATTR_mmloader___ToolContext____paths(recv) ATTR(recv, COLOR_mmloader___ToolContext____paths)
+typedef val_t (* mmloader___ToolContext___paths_t)(val_t  self);
+val_t mmloader___ToolContext___paths(val_t  self);
+#define ATTR_mmloader___ToolContext____loaders(recv) ATTR(recv, COLOR_mmloader___ToolContext____loaders)
+#define ATTR_mmloader___ToolContext____option_context(recv) ATTR(recv, COLOR_mmloader___ToolContext____option_context)
+typedef val_t (* mmloader___ToolContext___option_context_t)(val_t  self);
+val_t mmloader___ToolContext___option_context(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_warn(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_warn)
+typedef val_t (* mmloader___ToolContext___opt_warn_t)(val_t  self);
+val_t mmloader___ToolContext___opt_warn(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_path(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_path)
+typedef val_t (* mmloader___ToolContext___opt_path_t)(val_t  self);
+val_t mmloader___ToolContext___opt_path(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_log(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_log)
+typedef val_t (* mmloader___ToolContext___opt_log_t)(val_t  self);
+val_t mmloader___ToolContext___opt_log(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_only_metamodel(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_only_metamodel)
+typedef val_t (* mmloader___ToolContext___opt_only_metamodel_t)(val_t  self);
+val_t mmloader___ToolContext___opt_only_metamodel(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_only_parse(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_only_parse)
+typedef val_t (* mmloader___ToolContext___opt_only_parse_t)(val_t  self);
+val_t mmloader___ToolContext___opt_only_parse(val_t  self);
+#define ATTR_mmloader___ToolContext____opt_help(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_help)
+typedef val_t (* mmloader___ToolContext___opt_help_t)(val_t  self);
+val_t mmloader___ToolContext___opt_help(val_t  self);
+typedef void (* mmloader___ToolContext___init_t)(val_t  self, int* init_table);
+void mmloader___ToolContext___init(val_t  self, int* init_table);
+val_t NEW_mmloader___ToolContext___init();
+typedef void (* mmloader___ToolContext___process_options_t)(val_t  self);
+void mmloader___ToolContext___process_options(val_t  self);
+typedef val_t (* mmloader___ToolContext___try_to_load_t)(val_t  self, val_t  param0, val_t  param1);
+val_t mmloader___ToolContext___try_to_load(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_mmloader___ToolContext____processing_modules(recv) ATTR(recv, COLOR_mmloader___ToolContext____processing_modules)
+typedef val_t (* mmloader___ToolContext___get_module_from_filename_t)(val_t  self, val_t  param0);
+val_t mmloader___ToolContext___get_module_from_filename(val_t  self, val_t  param0);
+typedef val_t (* mmloader___ToolContext___get_module_t)(val_t  self, val_t  param0, val_t  param1);
+val_t mmloader___ToolContext___get_module(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* mmloader___ToolContext___directory_for_t)(val_t  self, val_t  param0);
+val_t mmloader___ToolContext___directory_for(val_t  self, val_t  param0);
+#define ATTR_mmloader___ToolContext____path_dirs(recv) ATTR(recv, COLOR_mmloader___ToolContext____path_dirs)
+typedef void (* mmloader___ToolContext___register_loader_t)(val_t  self, val_t  param0);
+void mmloader___ToolContext___register_loader(val_t  self, val_t  param0);
+typedef val_t (* mmloader___ModuleLoader___file_type_t)(val_t  self);
+val_t mmloader___ModuleLoader___file_type(val_t  self);
+typedef val_t (* mmloader___ModuleLoader___try_to_load_dir_t)(val_t  self, val_t  param0, val_t  param1);
+val_t mmloader___ModuleLoader___try_to_load_dir(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* mmloader___ModuleLoader___can_handle_t)(val_t  self, val_t  param0, val_t  param1);
+val_t mmloader___ModuleLoader___can_handle(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* mmloader___ModuleLoader___load_and_process_module_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t mmloader___ModuleLoader___load_and_process_module(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* mmloader___ModuleLoader___load_module_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+val_t mmloader___ModuleLoader___load_module(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* mmloader___ModuleLoader___parse_file_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+val_t mmloader___ModuleLoader___parse_file(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* mmloader___ModuleLoader___process_metamodel_t)(val_t  self, val_t  param0, val_t  param1);
+void mmloader___ModuleLoader___process_metamodel(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_mmloader___MMModule____filename(recv) ATTR(recv, COLOR_mmloader___MMModule____filename)
+typedef val_t (* mmloader___MMModule___filename_t)(val_t  self);
+val_t mmloader___MMModule___filename(val_t  self);
+typedef void (* mmloader___MMModule___filename__eq_t)(val_t  self, val_t  param0);
+void mmloader___MMModule___filename__eq(val_t  self, val_t  param0);
+#define ATTR_mmloader___MMModule____mtime(recv) ATTR(recv, COLOR_mmloader___MMModule____mtime)
+typedef val_t (* mmloader___MMModule___mtime_t)(val_t  self);
+val_t mmloader___MMModule___mtime(val_t  self);
+typedef void (* mmloader___MMModule___mtime__eq_t)(val_t  self, val_t  param0);
+void mmloader___MMModule___mtime__eq(val_t  self, val_t  param0);
+typedef void (* mmloader___MMModule___import_supers_modules_t)(val_t  self, val_t  param0);
+void mmloader___MMModule___import_supers_modules(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/nitc._build.sh b/c_src/nitc._build.sh
new file mode 100644 (file)
index 0000000..373a392
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/sh
+CLIBDIR="../lib"
+../bin/gccx -d .nit_compile -I $CLIBDIR -I ../lib/standard/ -o nitc "$@" \
+  $CLIBDIR/nit_main.c\
+  .nit_compile/abstracttool._sep.c\
+  .nit_compile/syntax._sep.c\
+  .nit_compile/mmbuilder._sep.c\
+  .nit_compile/syntax_base._sep.c\
+  .nit_compile/parser._sep.c\
+  .nit_compile/parser_prod._sep.c\
+  .nit_compile/lexer._sep.c\
+  .nit_compile/parser_nodes._sep.c\
+  .nit_compile/standard._sep.c\
+  .nit_compile/environ._sep.c\
+  .nit_compile/symbol._sep.c\
+  .nit_compile/hash._sep.c\
+  .nit_compile/string._sep.c\
+  .nit_compile/array._sep.c\
+  .nit_compile/abstract_collection._sep.c\
+  .nit_compile/kernel._sep.c\
+  .nit_compile/time._sep.c\
+  .nit_compile/sorter._sep.c\
+  .nit_compile/file._sep.c\
+  ../lib/standard//file_nit.c\
+  .nit_compile/stream._sep.c\
+  ../lib/standard//stream_nit.c\
+  .nit_compile/string_search._sep.c\
+  .nit_compile/exec._sep.c\
+  ../lib/standard//exec_nit.c\
+  .nit_compile/list._sep.c\
+  .nit_compile/range._sep.c\
+  .nit_compile/math._sep.c\
+  .nit_compile/parser_tables._sep.c\
+  .nit_compile/mmloader._sep.c\
+  .nit_compile/metamodel._sep.c\
+  .nit_compile/vararg._sep.c\
+  .nit_compile/genericity._sep.c\
+  .nit_compile/type_formal._sep.c\
+  .nit_compile/inheritance._sep.c\
+  .nit_compile/static_type._sep.c\
+  .nit_compile/abstractmetamodel._sep.c\
+  .nit_compile/partial_order._sep.c\
+  .nit_compile/virtualtype._sep.c\
+  .nit_compile/opts._sep.c\
+  .nit_compile/control_flow._sep.c\
+  .nit_compile/typing._sep.c\
+  .nit_compile/compiling._sep.c\
+  .nit_compile/compiling_global._sep.c\
+  .nit_compile/compiling_methods._sep.c\
+  .nit_compile/compiling_base._sep.c\
+  .nit_compile/utils._sep.c\
+  .nit_compile/nitc._sep.c\
+  .nit_compile/nitc._tables.c
diff --git a/c_src/nitc._sep.c b/c_src/nitc._sep.c
new file mode 100644 (file)
index 0000000..5bf2a64
--- /dev/null
@@ -0,0 +1,303 @@
+#include "nitc._sep.h"
+val_t nitc___NitCompiler___opt_output(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_output (src/nitc.nit:26,2--91)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_output( self) /*NitCompiler::_opt_output*/;
+}
+val_t nitc___NitCompiler___opt_boost(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_boost (src/nitc.nit:27,2--94)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_boost( self) /*NitCompiler::_opt_boost*/;
+}
+val_t nitc___NitCompiler___opt_no_cc(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_no_cc (src/nitc.nit:28,2--92)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_no_cc( self) /*NitCompiler::_opt_no_cc*/;
+}
+val_t nitc___NitCompiler___opt_attr_sim(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_attr_sim (src/nitc.nit:29,2--98)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_attr_sim( self) /*NitCompiler::_opt_attr_sim*/;
+}
+val_t nitc___NitCompiler___opt_global(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_global (src/nitc.nit:30,2--92)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_global( self) /*NitCompiler::_opt_global*/;
+}
+val_t nitc___NitCompiler___opt_clibdir(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_clibdir (src/nitc.nit:31,2--99)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_clibdir( self) /*NitCompiler::_opt_clibdir*/;
+}
+val_t nitc___NitCompiler___opt_bindir(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_bindir (src/nitc.nit:32,2--93)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_bindir( self) /*NitCompiler::_opt_bindir*/;
+}
+val_t nitc___NitCompiler___opt_extension_prefix(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::opt_extension_prefix (src/nitc.nit:33,2--131)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_nitc___NitCompiler____opt_extension_prefix( self) /*NitCompiler::_opt_extension_prefix*/;
+}
+void nitc___NitCompiler___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::init (src/nitc.nit:35,2--38:133)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_NitCompiler].i]) return;
+  ((abstracttool___AbstractCompiler___init_t)CALL( self,COLOR_abstracttool___AbstractCompiler___init))( self, init_table /*YYY*/) /*AbstractCompiler::init*/;
+  variable0 = ((mmloader___ToolContext___option_context_t)CALL( self,COLOR_mmloader___ToolContext___option_context))( self) /*NitCompiler::option_context*/;
+  variable1 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Option]*/
+  variable2 = ((nitc___NitCompiler___opt_output_t)CALL( self,COLOR_nitc___NitCompiler___opt_output))( self) /*NitCompiler::opt_output*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+  variable3 = ((nitc___NitCompiler___opt_boost_t)CALL( self,COLOR_nitc___NitCompiler___opt_boost))( self) /*NitCompiler::opt_boost*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable3) /*Array::add*/;
+  variable4 = ((nitc___NitCompiler___opt_no_cc_t)CALL( self,COLOR_nitc___NitCompiler___opt_no_cc))( self) /*NitCompiler::opt_no_cc*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable4) /*Array::add*/;
+  variable5 = ((nitc___NitCompiler___opt_attr_sim_t)CALL( self,COLOR_nitc___NitCompiler___opt_attr_sim))( self) /*NitCompiler::opt_attr_sim*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable5) /*Array::add*/;
+  variable6 = ((nitc___NitCompiler___opt_global_t)CALL( self,COLOR_nitc___NitCompiler___opt_global))( self) /*NitCompiler::opt_global*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable6) /*Array::add*/;
+  variable7 = ((nitc___NitCompiler___opt_clibdir_t)CALL( self,COLOR_nitc___NitCompiler___opt_clibdir))( self) /*NitCompiler::opt_clibdir*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable7) /*Array::add*/;
+  variable8 = ((nitc___NitCompiler___opt_bindir_t)CALL( self,COLOR_nitc___NitCompiler___opt_bindir))( self) /*NitCompiler::opt_bindir*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable8) /*Array::add*/;
+  variable9 = ((nitc___NitCompiler___opt_extension_prefix_t)CALL( self,COLOR_nitc___NitCompiler___opt_extension_prefix))( self) /*NitCompiler::opt_extension_prefix*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable9) /*Array::add*/;
+  ((opts___OptionContext___add_option_t)CALL(variable0,COLOR_opts___OptionContext___add_option))(variable0, variable1) /*OptionContext::add_option*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_NitCompiler].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void nitc___NitCompiler___process_options(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::process_options (src/nitc.nit:41,2--80:10)"};
+  val_t variable0;
+  val_t variable1;
+    static val_t once_value_variable1_2; static int once_bool_variable1_2;
+      val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+    static val_t once_value_variable1_3; static int once_bool_variable1_3;
+  trace.prev = tracehead; tracehead = &trace;
+  ((nitc___NitCompiler___process_options_t)CALL( self,COLOR_SUPER_nitc___NitCompiler___process_options))( self) /*super NitCompiler::process_options*/;
+  variable0 = NEW_mmloader___ToolContext___init(); /*new ToolContext*/
+  ((syntax___MMContext___tc__eq_t)CALL( self,COLOR_syntax___MMContext___tc__eq))( self, variable0) /*NitCompiler::tc=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_output_t)CALL( self,COLOR_nitc___NitCompiler___opt_output))( self) /*NitCompiler::opt_output*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionString::value*/;
+  ((compiling_base___ToolContext___output_file__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___output_file__eq))(variable0, variable1) /*ToolContext::output_file=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_boost_t)CALL( self,COLOR_nitc___NitCompiler___opt_boost))( self) /*NitCompiler::opt_boost*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionBool::value*/;
+  ((compiling_base___ToolContext___boost__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___boost__eq))(variable0, variable1) /*ToolContext::boost=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_no_cc_t)CALL( self,COLOR_nitc___NitCompiler___opt_no_cc))( self) /*NitCompiler::opt_no_cc*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionBool::value*/;
+  ((compiling_base___ToolContext___no_cc__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___no_cc__eq))(variable0, variable1) /*ToolContext::no_cc=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_extension_prefix_t)CALL( self,COLOR_nitc___NitCompiler___opt_extension_prefix))( self) /*NitCompiler::opt_extension_prefix*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionString::value*/;
+  ((compiling_base___ToolContext___ext_prefix__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___ext_prefix__eq))(variable0, variable1) /*ToolContext::ext_prefix=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable0 = ((compiling_base___ToolContext___ext_prefix_t)CALL(variable0,COLOR_compiling_base___ToolContext___ext_prefix))(variable0) /*ToolContext::ext_prefix*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*String::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+    variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    ((compiling_base___ToolContext___ext_prefix__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___ext_prefix__eq))(variable0, variable1) /*ToolContext::ext_prefix=*/;
+  }
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_attr_sim_t)CALL( self,COLOR_nitc___NitCompiler___opt_attr_sim))( self) /*NitCompiler::opt_attr_sim*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionBool::value*/;
+  ((compiling_base___ToolContext___attr_sim__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___attr_sim__eq))(variable0, variable1) /*ToolContext::attr_sim=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_global_t)CALL( self,COLOR_nitc___NitCompiler___opt_global))( self) /*NitCompiler::opt_global*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionBool::value*/;
+  ((compiling_base___ToolContext___global__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___global__eq))(variable0, variable1) /*ToolContext::global=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(".nit_compile"), TAG_Int(12)); /*new String*/
+  ((compiling_base___ToolContext___base_dir__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___base_dir__eq))(variable0, variable1) /*ToolContext::base_dir=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_clibdir_t)CALL( self,COLOR_nitc___NitCompiler___opt_clibdir))( self) /*NitCompiler::opt_clibdir*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionString::value*/;
+  ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___clibdir__eq))(variable0, variable1) /*ToolContext::clibdir=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable0 = ((compiling_base___ToolContext___clibdir_t)CALL(variable0,COLOR_compiling_base___ToolContext___clibdir))(variable0) /*ToolContext::clibdir*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*String::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    if (once_bool_variable1_2) variable1 = once_value_variable1_2;
+    else {
+      variable1 = NEW_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
+      variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+      variable1 = ((environ___Symbol___environ_t)CALL(variable1,COLOR_environ___Symbol___environ))(variable1) /*Symbol::environ*/;
+      once_value_variable1_2 = variable1;
+      once_bool_variable1_2 = true;
+    }
+    variable0 = variable1;
+    variable1 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*dir*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*dir*/) /*String::is_empty*/;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = (G_sys);
+      variable5 = ((string___Sys___program_name_t)CALL(variable5,COLOR_string___Sys___program_name))(variable5) /*Sys::program_name*/;
+      variable5 = ((file___String___dirname_t)CALL(variable5,COLOR_file___String___dirname))(variable5) /*String::dirname*/;
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("/../lib"), TAG_Int(7)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable1 = variable2;
+      variable2 = ((file___String___file_exists_t)CALL( variable1 /*dir*/,COLOR_file___String___file_exists))( variable1 /*dir*/) /*String::file_exists*/;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        variable2 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+        ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable2,COLOR_compiling_base___ToolContext___clibdir__eq))(variable2,  variable1 /*dir*/) /*ToolContext::clibdir=*/;
+      }
+    } else { /*if*/
+      variable1 = NEW_string___String___init(); /*new String*/
+      variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable3 = variable2;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+      variable4 =  variable0 /*dir*/;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+      variable5 = NEW_string___String___with_native(BOX_NativeString("/lib"), TAG_Int(4)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+      variable0 = variable1 /*dir=*/;
+      variable1 = ((file___String___file_exists_t)CALL( variable0 /*dir*/,COLOR_file___String___file_exists))( variable0 /*dir*/) /*String::file_exists*/;
+      if (UNTAG_Bool(variable1)) { /*if*/
+        variable1 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+        ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable1,COLOR_compiling_base___ToolContext___clibdir__eq))(variable1,  variable0 /*dir*/) /*ToolContext::clibdir=*/;
+      }
+    }
+    variable1 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+    variable1 = ((compiling_base___ToolContext___clibdir_t)CALL(variable1,COLOR_compiling_base___ToolContext___clibdir))(variable1) /*ToolContext::clibdir*/;
+    variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*String::==*/)));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 = NEW_string___String___with_native(BOX_NativeString("Error: Cannot locate NIT C library directory. Uses --clibdir or envvar NIT_DIR."), TAG_Int(79)); /*new String*/
+      ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable1) /*NitCompiler::error*/;
+      exit(UNTAG_Int( TAG_Int(1)));
+    }
+  }
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable1 = ((nitc___NitCompiler___opt_bindir_t)CALL( self,COLOR_nitc___NitCompiler___opt_bindir))( self) /*NitCompiler::opt_bindir*/;
+  variable1 = ((opts___Option___value_t)CALL(variable1,COLOR_opts___Option___value))(variable1) /*OptionString::value*/;
+  ((compiling_base___ToolContext___bindir__eq_t)CALL(variable0,COLOR_compiling_base___ToolContext___bindir__eq))(variable0, variable1) /*ToolContext::bindir=*/;
+  variable0 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+  variable0 = ((compiling_base___ToolContext___bindir_t)CALL(variable0,COLOR_compiling_base___ToolContext___bindir))(variable0) /*ToolContext::bindir*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*String::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    if (once_bool_variable1_3) variable1 = once_value_variable1_3;
+    else {
+      variable1 = NEW_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
+      variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+      variable1 = ((environ___Symbol___environ_t)CALL(variable1,COLOR_environ___Symbol___environ))(variable1) /*Symbol::environ*/;
+      once_value_variable1_3 = variable1;
+      once_bool_variable1_3 = true;
+    }
+    variable0 = variable1;
+    variable1 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*dir*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*dir*/) /*String::is_empty*/;
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = (G_sys);
+      variable5 = ((string___Sys___program_name_t)CALL(variable5,COLOR_string___Sys___program_name))(variable5) /*Sys::program_name*/;
+      variable5 = ((file___String___dirname_t)CALL(variable5,COLOR_file___String___dirname))(variable5) /*String::dirname*/;
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("/../bin"), TAG_Int(7)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      variable1 = variable2;
+      variable2 = ((file___String___file_exists_t)CALL( variable1 /*dir*/,COLOR_file___String___file_exists))( variable1 /*dir*/) /*String::file_exists*/;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        variable2 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+        ((compiling_base___ToolContext___bindir__eq_t)CALL(variable2,COLOR_compiling_base___ToolContext___bindir__eq))(variable2,  variable1 /*dir*/) /*ToolContext::bindir=*/;
+      }
+    } else { /*if*/
+      variable1 = NEW_string___String___init(); /*new String*/
+      variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable3 = variable2;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+      variable4 =  variable0 /*dir*/;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+      variable5 = NEW_string___String___with_native(BOX_NativeString("/bin"), TAG_Int(4)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+      variable0 = variable1 /*dir=*/;
+      variable1 = ((file___String___file_exists_t)CALL( variable0 /*dir*/,COLOR_file___String___file_exists))( variable0 /*dir*/) /*String::file_exists*/;
+      if (UNTAG_Bool(variable1)) { /*if*/
+        variable1 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+        ((compiling_base___ToolContext___bindir__eq_t)CALL(variable1,COLOR_compiling_base___ToolContext___bindir__eq))(variable1,  variable0 /*dir*/) /*ToolContext::bindir=*/;
+      }
+    }
+    variable1 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+    variable1 = ((compiling_base___ToolContext___bindir_t)CALL(variable1,COLOR_compiling_base___ToolContext___bindir))(variable1) /*ToolContext::bindir*/;
+    variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*String::==*/)));
+    if (UNTAG_Bool(variable1)) { /*if*/
+      variable1 = NEW_string___String___with_native(BOX_NativeString("Error: Cannot locate NIT tools directory. Uses --bindir or envvar NIT_DIR."), TAG_Int(74)); /*new String*/
+      ((mmloader___ToolContext___error_t)CALL( self,COLOR_mmloader___ToolContext___error))( self, variable1) /*NitCompiler::error*/;
+      exit(UNTAG_Int( TAG_Int(1)));
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void nitc___NitCompiler___perform_work(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "nitc::NitCompiler::perform_work (src/nitc.nit:85,2--89:27)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*mods*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*mods*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*mod*/==NIT_NULL) || VAL_ISA( variable2 /*mod*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/nitc.nit:88,4--29\n"); nit_exit(1);}
+    variable3 = ((syntax___MMContext___tc_t)CALL( self,COLOR_syntax___MMContext___tc))( self) /*NitCompiler::tc*/;
+    ((compiling___MMSrcModule___compile_prog_to_c_t)CALL( variable2 /*mod*/,COLOR_compiling___MMSrcModule___compile_prog_to_c))( variable2 /*mod*/, variable3) /*MMSrcModule::compile_prog_to_c*/;
+    continue_5: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_5: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void nitc___Sys___main(val_t  self) {
+  struct trace_t trace = {NULL, "nitc::Sys::main (src/nitc.nit:95,1--96:15)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_nitc___NitCompiler___init(); /*new NitCompiler*/
+  variable0 = variable1;
+  ((abstracttool___AbstractCompiler___exec_cmd_line_t)CALL( variable0 /*c*/,COLOR_abstracttool___AbstractCompiler___exec_cmd_line))( variable0 /*c*/) /*NitCompiler::exec_cmd_line*/;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/nitc._sep.h b/c_src/nitc._sep.h
new file mode 100644 (file)
index 0000000..5f98a41
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef nitc__sep
+#define nitc__sep
+#include "abstracttool._sep.h"
+#include "compiling._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_NitCompiler[];
+extern const int SFT_nitc[];
+#define ID_NitCompiler SFT_nitc[0]
+#define COLOR_NitCompiler SFT_nitc[1]
+#define COLOR_nitc___NitCompiler____opt_output SFT_nitc[2]
+#define COLOR_nitc___NitCompiler____opt_boost SFT_nitc[3]
+#define COLOR_nitc___NitCompiler____opt_no_cc SFT_nitc[4]
+#define COLOR_nitc___NitCompiler____opt_attr_sim SFT_nitc[5]
+#define COLOR_nitc___NitCompiler____opt_global SFT_nitc[6]
+#define COLOR_nitc___NitCompiler____opt_clibdir SFT_nitc[7]
+#define COLOR_nitc___NitCompiler____opt_bindir SFT_nitc[8]
+#define COLOR_nitc___NitCompiler____opt_extension_prefix SFT_nitc[9]
+#define INIT_TABLE_POS_NitCompiler SFT_nitc[10]
+#define COLOR_nitc___NitCompiler___opt_output SFT_nitc[11]
+#define COLOR_nitc___NitCompiler___opt_boost SFT_nitc[12]
+#define COLOR_nitc___NitCompiler___opt_no_cc SFT_nitc[13]
+#define COLOR_nitc___NitCompiler___opt_attr_sim SFT_nitc[14]
+#define COLOR_nitc___NitCompiler___opt_global SFT_nitc[15]
+#define COLOR_nitc___NitCompiler___opt_clibdir SFT_nitc[16]
+#define COLOR_nitc___NitCompiler___opt_bindir SFT_nitc[17]
+#define COLOR_nitc___NitCompiler___opt_extension_prefix SFT_nitc[18]
+#define COLOR_nitc___NitCompiler___init SFT_nitc[19]
+#define COLOR_SUPER_nitc___NitCompiler___process_options SFT_nitc[20]
+#define ATTR_nitc___NitCompiler____opt_output(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_output)
+typedef val_t (* nitc___NitCompiler___opt_output_t)(val_t  self);
+val_t nitc___NitCompiler___opt_output(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_boost(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_boost)
+typedef val_t (* nitc___NitCompiler___opt_boost_t)(val_t  self);
+val_t nitc___NitCompiler___opt_boost(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_no_cc(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_no_cc)
+typedef val_t (* nitc___NitCompiler___opt_no_cc_t)(val_t  self);
+val_t nitc___NitCompiler___opt_no_cc(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_attr_sim(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_attr_sim)
+typedef val_t (* nitc___NitCompiler___opt_attr_sim_t)(val_t  self);
+val_t nitc___NitCompiler___opt_attr_sim(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_global(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_global)
+typedef val_t (* nitc___NitCompiler___opt_global_t)(val_t  self);
+val_t nitc___NitCompiler___opt_global(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_clibdir(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_clibdir)
+typedef val_t (* nitc___NitCompiler___opt_clibdir_t)(val_t  self);
+val_t nitc___NitCompiler___opt_clibdir(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_bindir(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_bindir)
+typedef val_t (* nitc___NitCompiler___opt_bindir_t)(val_t  self);
+val_t nitc___NitCompiler___opt_bindir(val_t  self);
+#define ATTR_nitc___NitCompiler____opt_extension_prefix(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_extension_prefix)
+typedef val_t (* nitc___NitCompiler___opt_extension_prefix_t)(val_t  self);
+val_t nitc___NitCompiler___opt_extension_prefix(val_t  self);
+typedef void (* nitc___NitCompiler___init_t)(val_t  self, int* init_table);
+void nitc___NitCompiler___init(val_t  self, int* init_table);
+val_t NEW_nitc___NitCompiler___init();
+typedef void (* nitc___NitCompiler___process_options_t)(val_t  self);
+void nitc___NitCompiler___process_options(val_t  self);
+typedef void (* nitc___NitCompiler___perform_work_t)(val_t  self, val_t  param0);
+void nitc___NitCompiler___perform_work(val_t  self, val_t  param0);
+typedef void (* nitc___Sys___main_t)(val_t  self);
+void nitc___Sys___main(val_t  self);
+#endif
diff --git a/c_src/nitc._tables.c b/c_src/nitc._tables.c
new file mode 100644 (file)
index 0000000..d011cd9
--- /dev/null
@@ -0,0 +1,81352 @@
+#include "abstracttool._sep.h"
+#include "syntax._sep.h"
+#include "mmbuilder._sep.h"
+#include "syntax_base._sep.h"
+#include "parser._sep.h"
+#include "parser_prod._sep.h"
+#include "lexer._sep.h"
+#include "parser_nodes._sep.h"
+#include "standard._sep.h"
+#include "environ._sep.h"
+#include "symbol._sep.h"
+#include "hash._sep.h"
+#include "string._sep.h"
+#include "array._sep.h"
+#include "abstract_collection._sep.h"
+#include "kernel._sep.h"
+#include "time._sep.h"
+#include "sorter._sep.h"
+#include "file._sep.h"
+#include "stream._sep.h"
+#include "string_search._sep.h"
+#include "exec._sep.h"
+#include "list._sep.h"
+#include "range._sep.h"
+#include "math._sep.h"
+#include "parser_tables._sep.h"
+#include "mmloader._sep.h"
+#include "metamodel._sep.h"
+#include "vararg._sep.h"
+#include "genericity._sep.h"
+#include "type_formal._sep.h"
+#include "inheritance._sep.h"
+#include "static_type._sep.h"
+#include "abstractmetamodel._sep.h"
+#include "partial_order._sep.h"
+#include "virtualtype._sep.h"
+#include "opts._sep.h"
+#include "control_flow._sep.h"
+#include "typing._sep.h"
+#include "compiling._sep.h"
+#include "compiling_global._sep.h"
+#include "compiling_methods._sep.h"
+#include "compiling_base._sep.h"
+#include "utils._sep.h"
+#include "nitc._sep.h"
+#include <nit_common.h>
+const int SFT_abstracttool[9] = {
+  3227 /* Id of AbstractCompiler */,
+  4 /* Color of AbstractCompiler */,
+  88 /* Color of AbstractCompiler */,
+  89 /* Property init */,
+  90 /* Property exec_cmd_line */,
+  91 /* Property perform_work */,
+  92 /* Property dump_context_info */,
+  40 /* Property dump_module_info */,
+  40 /* Property dump_properties */,
+};
+const int SFT_syntax[9] = {
+  203 /* Id of SrcModuleLoader */,
+  3 /* Color of SrcModuleLoader */,
+  48 /* Color of SrcModuleLoader */,
+  49 /* Property init */,
+  1 /* Property _tc */,
+  40 /* Property tc */,
+  41 /* Property tc= */,
+  84 /* Property process_supermodules */,
+  85 /* Property process_syntax */,
+};
+const int SFT_mmbuilder[128] = {
+  2655 /* Id of CSHSorter */,
+  3 /* Color of CSHSorter */,
+  46 /* Color of CSHSorter */,
+  47 /* Property init */,
+  86 /* Property do_mmbuilder */,
+  105 /* Property add_src_local_property */,
+  2551 /* Id of MMSrcAncestor */,
+  3 /* Color of MMSrcAncestor */,
+  3 /* Property _node */,
+  4 /* Property _local_class */,
+  49 /* Color of MMSrcAncestor */,
+  50 /* Property node */,
+  51 /* Property init */,
+  3215 /* Id of ClassBuilderVisitor */,
+  4 /* Color of ClassBuilderVisitor */,
+  5 /* Property _local_class_arity */,
+  6 /* Property _formals */,
+  64 /* Color of ClassBuilderVisitor */,
+  65 /* Property local_class_arity */,
+  66 /* Property local_class_arity= */,
+  67 /* Property formals */,
+  68 /* Property formals= */,
+  69 /* Property init */,
+  3211 /* Id of ClassSpecializationBuilderVisitor */,
+  4 /* Color of ClassSpecializationBuilderVisitor */,
+  64 /* Color of ClassSpecializationBuilderVisitor */,
+  65 /* Property init */,
+  3219 /* Id of ClassAncestorBuilder */,
+  4 /* Color of ClassAncestorBuilder */,
+  64 /* Color of ClassAncestorBuilder */,
+  65 /* Property init */,
+  3207 /* Id of ClassVerifierVisitor */,
+  4 /* Color of ClassVerifierVisitor */,
+  64 /* Color of ClassVerifierVisitor */,
+  65 /* Property init */,
+  3027 /* Id of PropertyBuilderVisitor */,
+  4 /* Color of PropertyBuilderVisitor */,
+  64 /* Color of PropertyBuilderVisitor */,
+  65 /* Property init */,
+  3023 /* Id of PropertyVerifierVisitor */,
+  4 /* Color of PropertyVerifierVisitor */,
+  5 /* Property _params */,
+  6 /* Property _untyped_params */,
+  7 /* Property _vararg_rank */,
+  8 /* Property _signature */,
+  64 /* Color of PropertyVerifierVisitor */,
+  65 /* Property params */,
+  66 /* Property params= */,
+  67 /* Property untyped_params */,
+  68 /* Property untyped_params= */,
+  69 /* Property vararg_rank */,
+  70 /* Property vararg_rank= */,
+  71 /* Property signature */,
+  72 /* Property signature= */,
+  73 /* Property init */,
+  40 /* Property accept_class_builder */,
+  41 /* Property accept_class_specialization_builder */,
+  42 /* Property accept_class_ancestor_builder */,
+  43 /* Property accept_class_verifier */,
+  44 /* Property accept_property_builder */,
+  45 /* Property accept_property_verifier */,
+  67 /* Property import_super_modules */,
+  66 /* Property module_name */,
+  67 /* Property visibility_level */,
+  66 /* Property level */,
+  4 /* Property _local_class */,
+  66 /* Property name */,
+  67 /* Property arity */,
+  68 /* Property visibility_level */,
+  69 /* Property accept_class_builder */,
+  70 /* Property accept_abs_syntax_visitor */,
+  66 /* Property is_interface */,
+  67 /* Property is_universal */,
+  68 /* Property is_abstract */,
+  74 /* Property accept_class_verifier */,
+  3279 /* Id of MMSrcTypeFormalParameter */,
+  5 /* Color of MMSrcTypeFormalParameter */,
+  5 /* Property _node */,
+  71 /* Color of MMSrcTypeFormalParameter */,
+  72 /* Property node */,
+  73 /* Property init */,
+  4 /* Property _formal */,
+  67 /* Property accept_class_builder */,
+  68 /* Property accept_class_verifier */,
+  4 /* Property _ancestor */,
+  67 /* Property ancestor */,
+  68 /* Property accept_class_specialization_builder */,
+  69 /* Property accept_class_ancestor_builder */,
+  70 /* Property accept_class_verifier */,
+  66 /* Property process_and_check */,
+  67 /* Property do_and_check_intro */,
+  68 /* Property inherit_signature */,
+  69 /* Property do_and_check_redef */,
+  5 /* Property _readmethod */,
+  6 /* Property _writemethod */,
+  7 /* Property _prop */,
+  73 /* Property accept_property_builder */,
+  74 /* Property accept_property_verifier */,
+  75 /* Property accept_abs_syntax_visitor */,
+  5 /* Property _name */,
+  6 /* Property _method */,
+  74 /* Property name */,
+  75 /* Property accept_property_builder */,
+  76 /* Property accept_property_verifier */,
+  77 /* Property accept_abs_syntax_visitor */,
+  5 /* Property _prop */,
+  73 /* Property accept_property_builder */,
+  74 /* Property accept_property_verifier */,
+  75 /* Property accept_abs_syntax_visitor */,
+  2523 /* Id of MethidAccumulator */,
+  3 /* Color of MethidAccumulator */,
+  1 /* Property _name */,
+  42 /* Color of MethidAccumulator */,
+  43 /* Property name */,
+  44 /* Property init */,
+  4 /* Property _name */,
+  66 /* Property name */,
+  67 /* Property accept_property_builder */,
+  66 /* Property check_visibility */,
+  68 /* Property accept_property_verifier */,
+  4 /* Property _position */,
+  5 /* Property _variable */,
+  6 /* Property _stype */,
+  66 /* Property stype */,
+  67 /* Property stype= */,
+  68 /* Property accept_property_verifier */,
+  69 /* Property is_vararg */,
+  66 /* Property check_visibility */,
+};
+const int SFT_syntax_base[109] = {
+  2547 /* Id of MMSrcModule */,
+  3 /* Color of MMSrcModule */,
+  19 /* Property _node */,
+  20 /* Property _src_local_classes */,
+  87 /* Color of MMSrcModule */,
+  88 /* Property node */,
+  89 /* Property src_local_classes */,
+  90 /* Property init */,
+  43 /* Property check_visibility */,
+  3151 /* Id of MMSrcLocalClass */,
+  4 /* Color of MMSrcLocalClass */,
+  24 /* Property _nodes */,
+  25 /* Property _formal_dict */,
+  26 /* Property _src_local_properties */,
+  106 /* Color of MMSrcLocalClass */,
+  107 /* Property nodes */,
+  108 /* Property formal_dict */,
+  109 /* Property formal_dict= */,
+  110 /* Property src_local_properties */,
+  111 /* Property init */,
+  45 /* Property check_visibility */,
+  3147 /* Id of MMSrcLocalProperty */,
+  5 /* Color of MMSrcLocalProperty */,
+  12 /* Property _node */,
+  72 /* Color of MMSrcLocalProperty */,
+  73 /* Property node */,
+  3287 /* Id of MMSrcAttribute */,
+  6 /* Color of MMSrcAttribute */,
+  63 /* Color of MMSrcAttribute */,
+  64 /* Property init */,
+  3283 /* Id of MMSrcMethod */,
+  6 /* Color of MMSrcMethod */,
+  76 /* Color of MMSrcMethod */,
+  3615 /* Id of MMAttrImplementationMethod */,
+  7 /* Color of MMAttrImplementationMethod */,
+  77 /* Color of MMAttrImplementationMethod */,
+  3779 /* Id of MMReadImplementationMethod */,
+  8 /* Color of MMReadImplementationMethod */,
+  78 /* Color of MMReadImplementationMethod */,
+  79 /* Property init */,
+  3775 /* Id of MMWriteImplementationMethod */,
+  8 /* Color of MMWriteImplementationMethod */,
+  78 /* Color of MMWriteImplementationMethod */,
+  79 /* Property init */,
+  3611 /* Id of MMMethSrcMethod */,
+  7 /* Color of MMMethSrcMethod */,
+  77 /* Color of MMMethSrcMethod */,
+  78 /* Property init */,
+  3275 /* Id of MMSrcTypeProperty */,
+  6 /* Color of MMSrcTypeProperty */,
+  63 /* Color of MMSrcTypeProperty */,
+  64 /* Property init */,
+  15 /* Id of Variable */,
+  2 /* Color of Variable */,
+  1 /* Property _name */,
+  2 /* Property _decl */,
+  3 /* Property _stype */,
+  40 /* Color of Variable */,
+  41 /* Property name */,
+  42 /* Property decl */,
+  43 /* Property stype */,
+  44 /* Property stype= */,
+  45 /* Property init */,
+  2667 /* Id of AbsSyntaxVisitor */,
+  3 /* Color of AbsSyntaxVisitor */,
+  1 /* Property _module */,
+  2 /* Property _local_class */,
+  3 /* Property _local_property */,
+  4 /* Property _tc */,
+  42 /* Color of AbsSyntaxVisitor */,
+  43 /* Property type_bool */,
+  44 /* Property type_int */,
+  45 /* Property type_float */,
+  46 /* Property type_char */,
+  47 /* Property type_string */,
+  48 /* Property type_collection */,
+  49 /* Property type_array */,
+  50 /* Property type_discrete */,
+  51 /* Property type_range */,
+  52 /* Property type_none */,
+  53 /* Property module */,
+  54 /* Property module= */,
+  55 /* Property local_class */,
+  56 /* Property local_class= */,
+  57 /* Property local_property */,
+  58 /* Property local_property= */,
+  59 /* Property tc */,
+  60 /* Property error */,
+  61 /* Property warning */,
+  62 /* Property check_conform */,
+  63 /* Property init */,
+  46 /* Property accept_abs_syntax_visitor */,
+  2 /* Property _symbol */,
+  60 /* Property to_symbol */,
+  71 /* Property local_class */,
+  76 /* Property prop */,
+  77 /* Property readmethod */,
+  78 /* Property writemethod */,
+  78 /* Property method */,
+  76 /* Property prop */,
+  70 /* Property position */,
+  71 /* Property variable */,
+  67 /* Property get_local_class */,
+  68 /* Property get_stype */,
+  69 /* Property get_unchecked_stype */,
+  70 /* Property check_conform */,
+  5 /* Property _stype_cache */,
+  6 /* Property _stype_cached */,
+  69 /* Property stype */,
+};
+const int SFT_parser[2307] = {
+  35 /* Id of State */,
+  2 /* Color of State */,
+  1 /* Property _state */,
+  2 /* Property _nodes */,
+  40 /* Color of State */,
+  41 /* Property state */,
+  42 /* Property state= */,
+  43 /* Property nodes */,
+  44 /* Property nodes= */,
+  45 /* Property init */,
+  1 /* Property _lexer */,
+  2 /* Property _stack */,
+  3 /* Property _stack_pos */,
+  4 /* Property _reduce_table */,
+  40 /* Property init */,
+  41 /* Property go_to */,
+  42 /* Property push */,
+  43 /* Property state */,
+  44 /* Property pop */,
+  45 /* Property parse */,
+  46 /* Property build_reduce_table */,
+  207 /* Id of SearchTokensVisitor */,
+  3 /* Color of SearchTokensVisitor */,
+  1 /* Property _untokenned_nodes */,
+  2 /* Property _last_token */,
+  42 /* Color of SearchTokensVisitor */,
+  43 /* Property init */,
+  39 /* Id of ReduceAction */,
+  2 /* Color of ReduceAction */,
+  40 /* Color of ReduceAction */,
+  41 /* Property action */,
+  2487 /* Id of ReduceAction0 */,
+  3 /* Color of ReduceAction0 */,
+  42 /* Color of ReduceAction0 */,
+  43 /* Property init */,
+  2483 /* Id of ReduceAction1 */,
+  3 /* Color of ReduceAction1 */,
+  42 /* Color of ReduceAction1 */,
+  43 /* Property init */,
+  2039 /* Id of ReduceAction2 */,
+  3 /* Color of ReduceAction2 */,
+  42 /* Color of ReduceAction2 */,
+  43 /* Property init */,
+  1595 /* Id of ReduceAction3 */,
+  3 /* Color of ReduceAction3 */,
+  42 /* Color of ReduceAction3 */,
+  43 /* Property init */,
+  1151 /* Id of ReduceAction4 */,
+  3 /* Color of ReduceAction4 */,
+  42 /* Color of ReduceAction4 */,
+  43 /* Property init */,
+  707 /* Id of ReduceAction5 */,
+  3 /* Color of ReduceAction5 */,
+  42 /* Color of ReduceAction5 */,
+  43 /* Property init */,
+  387 /* Id of ReduceAction6 */,
+  3 /* Color of ReduceAction6 */,
+  42 /* Color of ReduceAction6 */,
+  43 /* Property init */,
+  343 /* Id of ReduceAction7 */,
+  3 /* Color of ReduceAction7 */,
+  42 /* Color of ReduceAction7 */,
+  43 /* Property init */,
+  299 /* Id of ReduceAction8 */,
+  3 /* Color of ReduceAction8 */,
+  42 /* Color of ReduceAction8 */,
+  43 /* Property init */,
+  255 /* Id of ReduceAction9 */,
+  3 /* Color of ReduceAction9 */,
+  42 /* Color of ReduceAction9 */,
+  43 /* Property init */,
+  2479 /* Id of ReduceAction10 */,
+  3 /* Color of ReduceAction10 */,
+  42 /* Color of ReduceAction10 */,
+  43 /* Property init */,
+  2435 /* Id of ReduceAction11 */,
+  3 /* Color of ReduceAction11 */,
+  42 /* Color of ReduceAction11 */,
+  43 /* Property init */,
+  2391 /* Id of ReduceAction12 */,
+  3 /* Color of ReduceAction12 */,
+  42 /* Color of ReduceAction12 */,
+  43 /* Property init */,
+  2347 /* Id of ReduceAction13 */,
+  3 /* Color of ReduceAction13 */,
+  42 /* Color of ReduceAction13 */,
+  43 /* Property init */,
+  2303 /* Id of ReduceAction14 */,
+  3 /* Color of ReduceAction14 */,
+  42 /* Color of ReduceAction14 */,
+  43 /* Property init */,
+  2259 /* Id of ReduceAction15 */,
+  3 /* Color of ReduceAction15 */,
+  42 /* Color of ReduceAction15 */,
+  43 /* Property init */,
+  2215 /* Id of ReduceAction16 */,
+  3 /* Color of ReduceAction16 */,
+  42 /* Color of ReduceAction16 */,
+  43 /* Property init */,
+  2171 /* Id of ReduceAction17 */,
+  3 /* Color of ReduceAction17 */,
+  42 /* Color of ReduceAction17 */,
+  43 /* Property init */,
+  2127 /* Id of ReduceAction18 */,
+  3 /* Color of ReduceAction18 */,
+  42 /* Color of ReduceAction18 */,
+  43 /* Property init */,
+  2083 /* Id of ReduceAction19 */,
+  3 /* Color of ReduceAction19 */,
+  42 /* Color of ReduceAction19 */,
+  43 /* Property init */,
+  2035 /* Id of ReduceAction20 */,
+  3 /* Color of ReduceAction20 */,
+  42 /* Color of ReduceAction20 */,
+  43 /* Property init */,
+  1991 /* Id of ReduceAction21 */,
+  3 /* Color of ReduceAction21 */,
+  42 /* Color of ReduceAction21 */,
+  43 /* Property init */,
+  1947 /* Id of ReduceAction22 */,
+  3 /* Color of ReduceAction22 */,
+  42 /* Color of ReduceAction22 */,
+  43 /* Property init */,
+  1903 /* Id of ReduceAction23 */,
+  3 /* Color of ReduceAction23 */,
+  42 /* Color of ReduceAction23 */,
+  43 /* Property init */,
+  1859 /* Id of ReduceAction24 */,
+  3 /* Color of ReduceAction24 */,
+  42 /* Color of ReduceAction24 */,
+  43 /* Property init */,
+  1815 /* Id of ReduceAction25 */,
+  3 /* Color of ReduceAction25 */,
+  42 /* Color of ReduceAction25 */,
+  43 /* Property init */,
+  1771 /* Id of ReduceAction26 */,
+  3 /* Color of ReduceAction26 */,
+  42 /* Color of ReduceAction26 */,
+  43 /* Property init */,
+  1727 /* Id of ReduceAction27 */,
+  3 /* Color of ReduceAction27 */,
+  42 /* Color of ReduceAction27 */,
+  43 /* Property init */,
+  1683 /* Id of ReduceAction28 */,
+  3 /* Color of ReduceAction28 */,
+  42 /* Color of ReduceAction28 */,
+  43 /* Property init */,
+  1639 /* Id of ReduceAction29 */,
+  3 /* Color of ReduceAction29 */,
+  42 /* Color of ReduceAction29 */,
+  43 /* Property init */,
+  1591 /* Id of ReduceAction30 */,
+  3 /* Color of ReduceAction30 */,
+  42 /* Color of ReduceAction30 */,
+  43 /* Property init */,
+  1547 /* Id of ReduceAction31 */,
+  3 /* Color of ReduceAction31 */,
+  42 /* Color of ReduceAction31 */,
+  43 /* Property init */,
+  1503 /* Id of ReduceAction32 */,
+  3 /* Color of ReduceAction32 */,
+  42 /* Color of ReduceAction32 */,
+  43 /* Property init */,
+  1459 /* Id of ReduceAction33 */,
+  3 /* Color of ReduceAction33 */,
+  42 /* Color of ReduceAction33 */,
+  43 /* Property init */,
+  1415 /* Id of ReduceAction34 */,
+  3 /* Color of ReduceAction34 */,
+  42 /* Color of ReduceAction34 */,
+  43 /* Property init */,
+  1371 /* Id of ReduceAction35 */,
+  3 /* Color of ReduceAction35 */,
+  42 /* Color of ReduceAction35 */,
+  43 /* Property init */,
+  1327 /* Id of ReduceAction36 */,
+  3 /* Color of ReduceAction36 */,
+  42 /* Color of ReduceAction36 */,
+  43 /* Property init */,
+  1283 /* Id of ReduceAction37 */,
+  3 /* Color of ReduceAction37 */,
+  42 /* Color of ReduceAction37 */,
+  43 /* Property init */,
+  1239 /* Id of ReduceAction38 */,
+  3 /* Color of ReduceAction38 */,
+  42 /* Color of ReduceAction38 */,
+  43 /* Property init */,
+  1195 /* Id of ReduceAction39 */,
+  3 /* Color of ReduceAction39 */,
+  42 /* Color of ReduceAction39 */,
+  43 /* Property init */,
+  1147 /* Id of ReduceAction40 */,
+  3 /* Color of ReduceAction40 */,
+  42 /* Color of ReduceAction40 */,
+  43 /* Property init */,
+  1103 /* Id of ReduceAction41 */,
+  3 /* Color of ReduceAction41 */,
+  42 /* Color of ReduceAction41 */,
+  43 /* Property init */,
+  1059 /* Id of ReduceAction42 */,
+  3 /* Color of ReduceAction42 */,
+  42 /* Color of ReduceAction42 */,
+  43 /* Property init */,
+  1015 /* Id of ReduceAction43 */,
+  3 /* Color of ReduceAction43 */,
+  42 /* Color of ReduceAction43 */,
+  43 /* Property init */,
+  971 /* Id of ReduceAction44 */,
+  3 /* Color of ReduceAction44 */,
+  42 /* Color of ReduceAction44 */,
+  43 /* Property init */,
+  927 /* Id of ReduceAction45 */,
+  3 /* Color of ReduceAction45 */,
+  42 /* Color of ReduceAction45 */,
+  43 /* Property init */,
+  883 /* Id of ReduceAction46 */,
+  3 /* Color of ReduceAction46 */,
+  42 /* Color of ReduceAction46 */,
+  43 /* Property init */,
+  839 /* Id of ReduceAction47 */,
+  3 /* Color of ReduceAction47 */,
+  42 /* Color of ReduceAction47 */,
+  43 /* Property init */,
+  795 /* Id of ReduceAction48 */,
+  3 /* Color of ReduceAction48 */,
+  42 /* Color of ReduceAction48 */,
+  43 /* Property init */,
+  751 /* Id of ReduceAction49 */,
+  3 /* Color of ReduceAction49 */,
+  42 /* Color of ReduceAction49 */,
+  43 /* Property init */,
+  703 /* Id of ReduceAction50 */,
+  3 /* Color of ReduceAction50 */,
+  42 /* Color of ReduceAction50 */,
+  43 /* Property init */,
+  659 /* Id of ReduceAction51 */,
+  3 /* Color of ReduceAction51 */,
+  42 /* Color of ReduceAction51 */,
+  43 /* Property init */,
+  615 /* Id of ReduceAction52 */,
+  3 /* Color of ReduceAction52 */,
+  42 /* Color of ReduceAction52 */,
+  43 /* Property init */,
+  571 /* Id of ReduceAction53 */,
+  3 /* Color of ReduceAction53 */,
+  42 /* Color of ReduceAction53 */,
+  43 /* Property init */,
+  527 /* Id of ReduceAction54 */,
+  3 /* Color of ReduceAction54 */,
+  42 /* Color of ReduceAction54 */,
+  43 /* Property init */,
+  483 /* Id of ReduceAction55 */,
+  3 /* Color of ReduceAction55 */,
+  42 /* Color of ReduceAction55 */,
+  43 /* Property init */,
+  439 /* Id of ReduceAction56 */,
+  3 /* Color of ReduceAction56 */,
+  42 /* Color of ReduceAction56 */,
+  43 /* Property init */,
+  399 /* Id of ReduceAction57 */,
+  3 /* Color of ReduceAction57 */,
+  42 /* Color of ReduceAction57 */,
+  43 /* Property init */,
+  395 /* Id of ReduceAction58 */,
+  3 /* Color of ReduceAction58 */,
+  42 /* Color of ReduceAction58 */,
+  43 /* Property init */,
+  391 /* Id of ReduceAction59 */,
+  3 /* Color of ReduceAction59 */,
+  42 /* Color of ReduceAction59 */,
+  43 /* Property init */,
+  383 /* Id of ReduceAction60 */,
+  3 /* Color of ReduceAction60 */,
+  42 /* Color of ReduceAction60 */,
+  43 /* Property init */,
+  379 /* Id of ReduceAction61 */,
+  3 /* Color of ReduceAction61 */,
+  42 /* Color of ReduceAction61 */,
+  43 /* Property init */,
+  375 /* Id of ReduceAction62 */,
+  3 /* Color of ReduceAction62 */,
+  42 /* Color of ReduceAction62 */,
+  43 /* Property init */,
+  371 /* Id of ReduceAction63 */,
+  3 /* Color of ReduceAction63 */,
+  42 /* Color of ReduceAction63 */,
+  43 /* Property init */,
+  367 /* Id of ReduceAction64 */,
+  3 /* Color of ReduceAction64 */,
+  42 /* Color of ReduceAction64 */,
+  43 /* Property init */,
+  363 /* Id of ReduceAction65 */,
+  3 /* Color of ReduceAction65 */,
+  42 /* Color of ReduceAction65 */,
+  43 /* Property init */,
+  359 /* Id of ReduceAction66 */,
+  3 /* Color of ReduceAction66 */,
+  42 /* Color of ReduceAction66 */,
+  43 /* Property init */,
+  355 /* Id of ReduceAction67 */,
+  3 /* Color of ReduceAction67 */,
+  42 /* Color of ReduceAction67 */,
+  43 /* Property init */,
+  351 /* Id of ReduceAction68 */,
+  3 /* Color of ReduceAction68 */,
+  42 /* Color of ReduceAction68 */,
+  43 /* Property init */,
+  347 /* Id of ReduceAction69 */,
+  3 /* Color of ReduceAction69 */,
+  42 /* Color of ReduceAction69 */,
+  43 /* Property init */,
+  339 /* Id of ReduceAction70 */,
+  3 /* Color of ReduceAction70 */,
+  42 /* Color of ReduceAction70 */,
+  43 /* Property init */,
+  335 /* Id of ReduceAction71 */,
+  3 /* Color of ReduceAction71 */,
+  42 /* Color of ReduceAction71 */,
+  43 /* Property init */,
+  331 /* Id of ReduceAction72 */,
+  3 /* Color of ReduceAction72 */,
+  42 /* Color of ReduceAction72 */,
+  43 /* Property init */,
+  327 /* Id of ReduceAction73 */,
+  3 /* Color of ReduceAction73 */,
+  42 /* Color of ReduceAction73 */,
+  43 /* Property init */,
+  323 /* Id of ReduceAction74 */,
+  3 /* Color of ReduceAction74 */,
+  42 /* Color of ReduceAction74 */,
+  43 /* Property init */,
+  319 /* Id of ReduceAction75 */,
+  3 /* Color of ReduceAction75 */,
+  42 /* Color of ReduceAction75 */,
+  43 /* Property init */,
+  315 /* Id of ReduceAction76 */,
+  3 /* Color of ReduceAction76 */,
+  42 /* Color of ReduceAction76 */,
+  43 /* Property init */,
+  311 /* Id of ReduceAction77 */,
+  3 /* Color of ReduceAction77 */,
+  42 /* Color of ReduceAction77 */,
+  43 /* Property init */,
+  307 /* Id of ReduceAction78 */,
+  3 /* Color of ReduceAction78 */,
+  42 /* Color of ReduceAction78 */,
+  43 /* Property init */,
+  303 /* Id of ReduceAction79 */,
+  3 /* Color of ReduceAction79 */,
+  42 /* Color of ReduceAction79 */,
+  43 /* Property init */,
+  295 /* Id of ReduceAction80 */,
+  3 /* Color of ReduceAction80 */,
+  42 /* Color of ReduceAction80 */,
+  43 /* Property init */,
+  291 /* Id of ReduceAction81 */,
+  3 /* Color of ReduceAction81 */,
+  42 /* Color of ReduceAction81 */,
+  43 /* Property init */,
+  287 /* Id of ReduceAction82 */,
+  3 /* Color of ReduceAction82 */,
+  42 /* Color of ReduceAction82 */,
+  43 /* Property init */,
+  283 /* Id of ReduceAction83 */,
+  3 /* Color of ReduceAction83 */,
+  42 /* Color of ReduceAction83 */,
+  43 /* Property init */,
+  279 /* Id of ReduceAction84 */,
+  3 /* Color of ReduceAction84 */,
+  42 /* Color of ReduceAction84 */,
+  43 /* Property init */,
+  275 /* Id of ReduceAction85 */,
+  3 /* Color of ReduceAction85 */,
+  42 /* Color of ReduceAction85 */,
+  43 /* Property init */,
+  271 /* Id of ReduceAction86 */,
+  3 /* Color of ReduceAction86 */,
+  42 /* Color of ReduceAction86 */,
+  43 /* Property init */,
+  267 /* Id of ReduceAction87 */,
+  3 /* Color of ReduceAction87 */,
+  42 /* Color of ReduceAction87 */,
+  43 /* Property init */,
+  263 /* Id of ReduceAction88 */,
+  3 /* Color of ReduceAction88 */,
+  42 /* Color of ReduceAction88 */,
+  43 /* Property init */,
+  259 /* Id of ReduceAction89 */,
+  3 /* Color of ReduceAction89 */,
+  42 /* Color of ReduceAction89 */,
+  43 /* Property init */,
+  251 /* Id of ReduceAction90 */,
+  3 /* Color of ReduceAction90 */,
+  42 /* Color of ReduceAction90 */,
+  43 /* Property init */,
+  247 /* Id of ReduceAction91 */,
+  3 /* Color of ReduceAction91 */,
+  42 /* Color of ReduceAction91 */,
+  43 /* Property init */,
+  243 /* Id of ReduceAction92 */,
+  3 /* Color of ReduceAction92 */,
+  42 /* Color of ReduceAction92 */,
+  43 /* Property init */,
+  239 /* Id of ReduceAction93 */,
+  3 /* Color of ReduceAction93 */,
+  42 /* Color of ReduceAction93 */,
+  43 /* Property init */,
+  235 /* Id of ReduceAction94 */,
+  3 /* Color of ReduceAction94 */,
+  42 /* Color of ReduceAction94 */,
+  43 /* Property init */,
+  231 /* Id of ReduceAction95 */,
+  3 /* Color of ReduceAction95 */,
+  42 /* Color of ReduceAction95 */,
+  43 /* Property init */,
+  227 /* Id of ReduceAction96 */,
+  3 /* Color of ReduceAction96 */,
+  42 /* Color of ReduceAction96 */,
+  43 /* Property init */,
+  223 /* Id of ReduceAction97 */,
+  3 /* Color of ReduceAction97 */,
+  42 /* Color of ReduceAction97 */,
+  43 /* Property init */,
+  219 /* Id of ReduceAction98 */,
+  3 /* Color of ReduceAction98 */,
+  42 /* Color of ReduceAction98 */,
+  43 /* Property init */,
+  215 /* Id of ReduceAction99 */,
+  3 /* Color of ReduceAction99 */,
+  42 /* Color of ReduceAction99 */,
+  43 /* Property init */,
+  2475 /* Id of ReduceAction100 */,
+  3 /* Color of ReduceAction100 */,
+  42 /* Color of ReduceAction100 */,
+  43 /* Property init */,
+  2471 /* Id of ReduceAction101 */,
+  3 /* Color of ReduceAction101 */,
+  42 /* Color of ReduceAction101 */,
+  43 /* Property init */,
+  2467 /* Id of ReduceAction102 */,
+  3 /* Color of ReduceAction102 */,
+  42 /* Color of ReduceAction102 */,
+  43 /* Property init */,
+  2463 /* Id of ReduceAction103 */,
+  3 /* Color of ReduceAction103 */,
+  42 /* Color of ReduceAction103 */,
+  43 /* Property init */,
+  2459 /* Id of ReduceAction104 */,
+  3 /* Color of ReduceAction104 */,
+  42 /* Color of ReduceAction104 */,
+  43 /* Property init */,
+  2455 /* Id of ReduceAction105 */,
+  3 /* Color of ReduceAction105 */,
+  42 /* Color of ReduceAction105 */,
+  43 /* Property init */,
+  2451 /* Id of ReduceAction106 */,
+  3 /* Color of ReduceAction106 */,
+  42 /* Color of ReduceAction106 */,
+  43 /* Property init */,
+  2447 /* Id of ReduceAction107 */,
+  3 /* Color of ReduceAction107 */,
+  42 /* Color of ReduceAction107 */,
+  43 /* Property init */,
+  2443 /* Id of ReduceAction108 */,
+  3 /* Color of ReduceAction108 */,
+  42 /* Color of ReduceAction108 */,
+  43 /* Property init */,
+  2439 /* Id of ReduceAction109 */,
+  3 /* Color of ReduceAction109 */,
+  42 /* Color of ReduceAction109 */,
+  43 /* Property init */,
+  2431 /* Id of ReduceAction110 */,
+  3 /* Color of ReduceAction110 */,
+  42 /* Color of ReduceAction110 */,
+  43 /* Property init */,
+  2427 /* Id of ReduceAction111 */,
+  3 /* Color of ReduceAction111 */,
+  42 /* Color of ReduceAction111 */,
+  43 /* Property init */,
+  2423 /* Id of ReduceAction112 */,
+  3 /* Color of ReduceAction112 */,
+  42 /* Color of ReduceAction112 */,
+  43 /* Property init */,
+  2419 /* Id of ReduceAction113 */,
+  3 /* Color of ReduceAction113 */,
+  42 /* Color of ReduceAction113 */,
+  43 /* Property init */,
+  2415 /* Id of ReduceAction114 */,
+  3 /* Color of ReduceAction114 */,
+  42 /* Color of ReduceAction114 */,
+  43 /* Property init */,
+  2411 /* Id of ReduceAction115 */,
+  3 /* Color of ReduceAction115 */,
+  42 /* Color of ReduceAction115 */,
+  43 /* Property init */,
+  2407 /* Id of ReduceAction116 */,
+  3 /* Color of ReduceAction116 */,
+  42 /* Color of ReduceAction116 */,
+  43 /* Property init */,
+  2403 /* Id of ReduceAction117 */,
+  3 /* Color of ReduceAction117 */,
+  42 /* Color of ReduceAction117 */,
+  43 /* Property init */,
+  2399 /* Id of ReduceAction118 */,
+  3 /* Color of ReduceAction118 */,
+  42 /* Color of ReduceAction118 */,
+  43 /* Property init */,
+  2395 /* Id of ReduceAction119 */,
+  3 /* Color of ReduceAction119 */,
+  42 /* Color of ReduceAction119 */,
+  43 /* Property init */,
+  2387 /* Id of ReduceAction120 */,
+  3 /* Color of ReduceAction120 */,
+  42 /* Color of ReduceAction120 */,
+  43 /* Property init */,
+  2383 /* Id of ReduceAction121 */,
+  3 /* Color of ReduceAction121 */,
+  42 /* Color of ReduceAction121 */,
+  43 /* Property init */,
+  2379 /* Id of ReduceAction122 */,
+  3 /* Color of ReduceAction122 */,
+  42 /* Color of ReduceAction122 */,
+  43 /* Property init */,
+  2375 /* Id of ReduceAction123 */,
+  3 /* Color of ReduceAction123 */,
+  42 /* Color of ReduceAction123 */,
+  43 /* Property init */,
+  2371 /* Id of ReduceAction124 */,
+  3 /* Color of ReduceAction124 */,
+  42 /* Color of ReduceAction124 */,
+  43 /* Property init */,
+  2367 /* Id of ReduceAction125 */,
+  3 /* Color of ReduceAction125 */,
+  42 /* Color of ReduceAction125 */,
+  43 /* Property init */,
+  2363 /* Id of ReduceAction126 */,
+  3 /* Color of ReduceAction126 */,
+  42 /* Color of ReduceAction126 */,
+  43 /* Property init */,
+  2359 /* Id of ReduceAction127 */,
+  3 /* Color of ReduceAction127 */,
+  42 /* Color of ReduceAction127 */,
+  43 /* Property init */,
+  2355 /* Id of ReduceAction128 */,
+  3 /* Color of ReduceAction128 */,
+  42 /* Color of ReduceAction128 */,
+  43 /* Property init */,
+  2351 /* Id of ReduceAction129 */,
+  3 /* Color of ReduceAction129 */,
+  42 /* Color of ReduceAction129 */,
+  43 /* Property init */,
+  2343 /* Id of ReduceAction130 */,
+  3 /* Color of ReduceAction130 */,
+  42 /* Color of ReduceAction130 */,
+  43 /* Property init */,
+  2339 /* Id of ReduceAction131 */,
+  3 /* Color of ReduceAction131 */,
+  42 /* Color of ReduceAction131 */,
+  43 /* Property init */,
+  2335 /* Id of ReduceAction132 */,
+  3 /* Color of ReduceAction132 */,
+  42 /* Color of ReduceAction132 */,
+  43 /* Property init */,
+  2331 /* Id of ReduceAction133 */,
+  3 /* Color of ReduceAction133 */,
+  42 /* Color of ReduceAction133 */,
+  43 /* Property init */,
+  2327 /* Id of ReduceAction134 */,
+  3 /* Color of ReduceAction134 */,
+  42 /* Color of ReduceAction134 */,
+  43 /* Property init */,
+  2323 /* Id of ReduceAction135 */,
+  3 /* Color of ReduceAction135 */,
+  42 /* Color of ReduceAction135 */,
+  43 /* Property init */,
+  2319 /* Id of ReduceAction136 */,
+  3 /* Color of ReduceAction136 */,
+  42 /* Color of ReduceAction136 */,
+  43 /* Property init */,
+  2315 /* Id of ReduceAction137 */,
+  3 /* Color of ReduceAction137 */,
+  42 /* Color of ReduceAction137 */,
+  43 /* Property init */,
+  2311 /* Id of ReduceAction138 */,
+  3 /* Color of ReduceAction138 */,
+  42 /* Color of ReduceAction138 */,
+  43 /* Property init */,
+  2307 /* Id of ReduceAction139 */,
+  3 /* Color of ReduceAction139 */,
+  42 /* Color of ReduceAction139 */,
+  43 /* Property init */,
+  2299 /* Id of ReduceAction140 */,
+  3 /* Color of ReduceAction140 */,
+  42 /* Color of ReduceAction140 */,
+  43 /* Property init */,
+  2295 /* Id of ReduceAction141 */,
+  3 /* Color of ReduceAction141 */,
+  42 /* Color of ReduceAction141 */,
+  43 /* Property init */,
+  2291 /* Id of ReduceAction142 */,
+  3 /* Color of ReduceAction142 */,
+  42 /* Color of ReduceAction142 */,
+  43 /* Property init */,
+  2287 /* Id of ReduceAction143 */,
+  3 /* Color of ReduceAction143 */,
+  42 /* Color of ReduceAction143 */,
+  43 /* Property init */,
+  2283 /* Id of ReduceAction144 */,
+  3 /* Color of ReduceAction144 */,
+  42 /* Color of ReduceAction144 */,
+  43 /* Property init */,
+  2279 /* Id of ReduceAction145 */,
+  3 /* Color of ReduceAction145 */,
+  42 /* Color of ReduceAction145 */,
+  43 /* Property init */,
+  2275 /* Id of ReduceAction146 */,
+  3 /* Color of ReduceAction146 */,
+  42 /* Color of ReduceAction146 */,
+  43 /* Property init */,
+  2271 /* Id of ReduceAction147 */,
+  3 /* Color of ReduceAction147 */,
+  42 /* Color of ReduceAction147 */,
+  43 /* Property init */,
+  2267 /* Id of ReduceAction148 */,
+  3 /* Color of ReduceAction148 */,
+  42 /* Color of ReduceAction148 */,
+  43 /* Property init */,
+  2263 /* Id of ReduceAction149 */,
+  3 /* Color of ReduceAction149 */,
+  42 /* Color of ReduceAction149 */,
+  43 /* Property init */,
+  2255 /* Id of ReduceAction150 */,
+  3 /* Color of ReduceAction150 */,
+  42 /* Color of ReduceAction150 */,
+  43 /* Property init */,
+  2251 /* Id of ReduceAction151 */,
+  3 /* Color of ReduceAction151 */,
+  42 /* Color of ReduceAction151 */,
+  43 /* Property init */,
+  2247 /* Id of ReduceAction152 */,
+  3 /* Color of ReduceAction152 */,
+  42 /* Color of ReduceAction152 */,
+  43 /* Property init */,
+  2243 /* Id of ReduceAction153 */,
+  3 /* Color of ReduceAction153 */,
+  42 /* Color of ReduceAction153 */,
+  43 /* Property init */,
+  2239 /* Id of ReduceAction154 */,
+  3 /* Color of ReduceAction154 */,
+  42 /* Color of ReduceAction154 */,
+  43 /* Property init */,
+  2235 /* Id of ReduceAction155 */,
+  3 /* Color of ReduceAction155 */,
+  42 /* Color of ReduceAction155 */,
+  43 /* Property init */,
+  2231 /* Id of ReduceAction156 */,
+  3 /* Color of ReduceAction156 */,
+  42 /* Color of ReduceAction156 */,
+  43 /* Property init */,
+  2227 /* Id of ReduceAction157 */,
+  3 /* Color of ReduceAction157 */,
+  42 /* Color of ReduceAction157 */,
+  43 /* Property init */,
+  2223 /* Id of ReduceAction158 */,
+  3 /* Color of ReduceAction158 */,
+  42 /* Color of ReduceAction158 */,
+  43 /* Property init */,
+  2219 /* Id of ReduceAction159 */,
+  3 /* Color of ReduceAction159 */,
+  42 /* Color of ReduceAction159 */,
+  43 /* Property init */,
+  2211 /* Id of ReduceAction160 */,
+  3 /* Color of ReduceAction160 */,
+  42 /* Color of ReduceAction160 */,
+  43 /* Property init */,
+  2207 /* Id of ReduceAction161 */,
+  3 /* Color of ReduceAction161 */,
+  42 /* Color of ReduceAction161 */,
+  43 /* Property init */,
+  2203 /* Id of ReduceAction162 */,
+  3 /* Color of ReduceAction162 */,
+  42 /* Color of ReduceAction162 */,
+  43 /* Property init */,
+  2199 /* Id of ReduceAction163 */,
+  3 /* Color of ReduceAction163 */,
+  42 /* Color of ReduceAction163 */,
+  43 /* Property init */,
+  2195 /* Id of ReduceAction164 */,
+  3 /* Color of ReduceAction164 */,
+  42 /* Color of ReduceAction164 */,
+  43 /* Property init */,
+  2191 /* Id of ReduceAction165 */,
+  3 /* Color of ReduceAction165 */,
+  42 /* Color of ReduceAction165 */,
+  43 /* Property init */,
+  2187 /* Id of ReduceAction166 */,
+  3 /* Color of ReduceAction166 */,
+  42 /* Color of ReduceAction166 */,
+  43 /* Property init */,
+  2183 /* Id of ReduceAction167 */,
+  3 /* Color of ReduceAction167 */,
+  42 /* Color of ReduceAction167 */,
+  43 /* Property init */,
+  2179 /* Id of ReduceAction168 */,
+  3 /* Color of ReduceAction168 */,
+  42 /* Color of ReduceAction168 */,
+  43 /* Property init */,
+  2175 /* Id of ReduceAction169 */,
+  3 /* Color of ReduceAction169 */,
+  42 /* Color of ReduceAction169 */,
+  43 /* Property init */,
+  2167 /* Id of ReduceAction170 */,
+  3 /* Color of ReduceAction170 */,
+  42 /* Color of ReduceAction170 */,
+  43 /* Property init */,
+  2163 /* Id of ReduceAction171 */,
+  3 /* Color of ReduceAction171 */,
+  42 /* Color of ReduceAction171 */,
+  43 /* Property init */,
+  2159 /* Id of ReduceAction172 */,
+  3 /* Color of ReduceAction172 */,
+  42 /* Color of ReduceAction172 */,
+  43 /* Property init */,
+  2155 /* Id of ReduceAction173 */,
+  3 /* Color of ReduceAction173 */,
+  42 /* Color of ReduceAction173 */,
+  43 /* Property init */,
+  2151 /* Id of ReduceAction174 */,
+  3 /* Color of ReduceAction174 */,
+  42 /* Color of ReduceAction174 */,
+  43 /* Property init */,
+  2147 /* Id of ReduceAction175 */,
+  3 /* Color of ReduceAction175 */,
+  42 /* Color of ReduceAction175 */,
+  43 /* Property init */,
+  2143 /* Id of ReduceAction176 */,
+  3 /* Color of ReduceAction176 */,
+  42 /* Color of ReduceAction176 */,
+  43 /* Property init */,
+  2139 /* Id of ReduceAction177 */,
+  3 /* Color of ReduceAction177 */,
+  42 /* Color of ReduceAction177 */,
+  43 /* Property init */,
+  2135 /* Id of ReduceAction178 */,
+  3 /* Color of ReduceAction178 */,
+  42 /* Color of ReduceAction178 */,
+  43 /* Property init */,
+  2131 /* Id of ReduceAction179 */,
+  3 /* Color of ReduceAction179 */,
+  42 /* Color of ReduceAction179 */,
+  43 /* Property init */,
+  2123 /* Id of ReduceAction180 */,
+  3 /* Color of ReduceAction180 */,
+  42 /* Color of ReduceAction180 */,
+  43 /* Property init */,
+  2119 /* Id of ReduceAction181 */,
+  3 /* Color of ReduceAction181 */,
+  42 /* Color of ReduceAction181 */,
+  43 /* Property init */,
+  2115 /* Id of ReduceAction182 */,
+  3 /* Color of ReduceAction182 */,
+  42 /* Color of ReduceAction182 */,
+  43 /* Property init */,
+  2111 /* Id of ReduceAction183 */,
+  3 /* Color of ReduceAction183 */,
+  42 /* Color of ReduceAction183 */,
+  43 /* Property init */,
+  2107 /* Id of ReduceAction184 */,
+  3 /* Color of ReduceAction184 */,
+  42 /* Color of ReduceAction184 */,
+  43 /* Property init */,
+  2103 /* Id of ReduceAction185 */,
+  3 /* Color of ReduceAction185 */,
+  42 /* Color of ReduceAction185 */,
+  43 /* Property init */,
+  2099 /* Id of ReduceAction186 */,
+  3 /* Color of ReduceAction186 */,
+  42 /* Color of ReduceAction186 */,
+  43 /* Property init */,
+  2095 /* Id of ReduceAction187 */,
+  3 /* Color of ReduceAction187 */,
+  42 /* Color of ReduceAction187 */,
+  43 /* Property init */,
+  2091 /* Id of ReduceAction188 */,
+  3 /* Color of ReduceAction188 */,
+  42 /* Color of ReduceAction188 */,
+  43 /* Property init */,
+  2087 /* Id of ReduceAction189 */,
+  3 /* Color of ReduceAction189 */,
+  42 /* Color of ReduceAction189 */,
+  43 /* Property init */,
+  2079 /* Id of ReduceAction190 */,
+  3 /* Color of ReduceAction190 */,
+  42 /* Color of ReduceAction190 */,
+  43 /* Property init */,
+  2075 /* Id of ReduceAction191 */,
+  3 /* Color of ReduceAction191 */,
+  42 /* Color of ReduceAction191 */,
+  43 /* Property init */,
+  2071 /* Id of ReduceAction192 */,
+  3 /* Color of ReduceAction192 */,
+  42 /* Color of ReduceAction192 */,
+  43 /* Property init */,
+  2067 /* Id of ReduceAction193 */,
+  3 /* Color of ReduceAction193 */,
+  42 /* Color of ReduceAction193 */,
+  43 /* Property init */,
+  2063 /* Id of ReduceAction194 */,
+  3 /* Color of ReduceAction194 */,
+  42 /* Color of ReduceAction194 */,
+  43 /* Property init */,
+  2059 /* Id of ReduceAction195 */,
+  3 /* Color of ReduceAction195 */,
+  42 /* Color of ReduceAction195 */,
+  43 /* Property init */,
+  2055 /* Id of ReduceAction196 */,
+  3 /* Color of ReduceAction196 */,
+  42 /* Color of ReduceAction196 */,
+  43 /* Property init */,
+  2051 /* Id of ReduceAction197 */,
+  3 /* Color of ReduceAction197 */,
+  42 /* Color of ReduceAction197 */,
+  43 /* Property init */,
+  2047 /* Id of ReduceAction198 */,
+  3 /* Color of ReduceAction198 */,
+  42 /* Color of ReduceAction198 */,
+  43 /* Property init */,
+  2043 /* Id of ReduceAction199 */,
+  3 /* Color of ReduceAction199 */,
+  42 /* Color of ReduceAction199 */,
+  43 /* Property init */,
+  2031 /* Id of ReduceAction200 */,
+  3 /* Color of ReduceAction200 */,
+  42 /* Color of ReduceAction200 */,
+  43 /* Property init */,
+  2027 /* Id of ReduceAction201 */,
+  3 /* Color of ReduceAction201 */,
+  42 /* Color of ReduceAction201 */,
+  43 /* Property init */,
+  2023 /* Id of ReduceAction202 */,
+  3 /* Color of ReduceAction202 */,
+  42 /* Color of ReduceAction202 */,
+  43 /* Property init */,
+  2019 /* Id of ReduceAction203 */,
+  3 /* Color of ReduceAction203 */,
+  42 /* Color of ReduceAction203 */,
+  43 /* Property init */,
+  2015 /* Id of ReduceAction204 */,
+  3 /* Color of ReduceAction204 */,
+  42 /* Color of ReduceAction204 */,
+  43 /* Property init */,
+  2011 /* Id of ReduceAction205 */,
+  3 /* Color of ReduceAction205 */,
+  42 /* Color of ReduceAction205 */,
+  43 /* Property init */,
+  2007 /* Id of ReduceAction206 */,
+  3 /* Color of ReduceAction206 */,
+  42 /* Color of ReduceAction206 */,
+  43 /* Property init */,
+  2003 /* Id of ReduceAction207 */,
+  3 /* Color of ReduceAction207 */,
+  42 /* Color of ReduceAction207 */,
+  43 /* Property init */,
+  1999 /* Id of ReduceAction208 */,
+  3 /* Color of ReduceAction208 */,
+  42 /* Color of ReduceAction208 */,
+  43 /* Property init */,
+  1995 /* Id of ReduceAction209 */,
+  3 /* Color of ReduceAction209 */,
+  42 /* Color of ReduceAction209 */,
+  43 /* Property init */,
+  1987 /* Id of ReduceAction210 */,
+  3 /* Color of ReduceAction210 */,
+  42 /* Color of ReduceAction210 */,
+  43 /* Property init */,
+  1983 /* Id of ReduceAction211 */,
+  3 /* Color of ReduceAction211 */,
+  42 /* Color of ReduceAction211 */,
+  43 /* Property init */,
+  1979 /* Id of ReduceAction212 */,
+  3 /* Color of ReduceAction212 */,
+  42 /* Color of ReduceAction212 */,
+  43 /* Property init */,
+  1975 /* Id of ReduceAction213 */,
+  3 /* Color of ReduceAction213 */,
+  42 /* Color of ReduceAction213 */,
+  43 /* Property init */,
+  1971 /* Id of ReduceAction214 */,
+  3 /* Color of ReduceAction214 */,
+  42 /* Color of ReduceAction214 */,
+  43 /* Property init */,
+  1967 /* Id of ReduceAction215 */,
+  3 /* Color of ReduceAction215 */,
+  42 /* Color of ReduceAction215 */,
+  43 /* Property init */,
+  1963 /* Id of ReduceAction216 */,
+  3 /* Color of ReduceAction216 */,
+  42 /* Color of ReduceAction216 */,
+  43 /* Property init */,
+  1959 /* Id of ReduceAction217 */,
+  3 /* Color of ReduceAction217 */,
+  42 /* Color of ReduceAction217 */,
+  43 /* Property init */,
+  1955 /* Id of ReduceAction218 */,
+  3 /* Color of ReduceAction218 */,
+  42 /* Color of ReduceAction218 */,
+  43 /* Property init */,
+  1951 /* Id of ReduceAction219 */,
+  3 /* Color of ReduceAction219 */,
+  42 /* Color of ReduceAction219 */,
+  43 /* Property init */,
+  1943 /* Id of ReduceAction220 */,
+  3 /* Color of ReduceAction220 */,
+  42 /* Color of ReduceAction220 */,
+  43 /* Property init */,
+  1939 /* Id of ReduceAction221 */,
+  3 /* Color of ReduceAction221 */,
+  42 /* Color of ReduceAction221 */,
+  43 /* Property init */,
+  1935 /* Id of ReduceAction222 */,
+  3 /* Color of ReduceAction222 */,
+  42 /* Color of ReduceAction222 */,
+  43 /* Property init */,
+  1931 /* Id of ReduceAction223 */,
+  3 /* Color of ReduceAction223 */,
+  42 /* Color of ReduceAction223 */,
+  43 /* Property init */,
+  1927 /* Id of ReduceAction224 */,
+  3 /* Color of ReduceAction224 */,
+  42 /* Color of ReduceAction224 */,
+  43 /* Property init */,
+  1923 /* Id of ReduceAction225 */,
+  3 /* Color of ReduceAction225 */,
+  42 /* Color of ReduceAction225 */,
+  43 /* Property init */,
+  1919 /* Id of ReduceAction226 */,
+  3 /* Color of ReduceAction226 */,
+  42 /* Color of ReduceAction226 */,
+  43 /* Property init */,
+  1915 /* Id of ReduceAction227 */,
+  3 /* Color of ReduceAction227 */,
+  42 /* Color of ReduceAction227 */,
+  43 /* Property init */,
+  1911 /* Id of ReduceAction228 */,
+  3 /* Color of ReduceAction228 */,
+  42 /* Color of ReduceAction228 */,
+  43 /* Property init */,
+  1907 /* Id of ReduceAction229 */,
+  3 /* Color of ReduceAction229 */,
+  42 /* Color of ReduceAction229 */,
+  43 /* Property init */,
+  1899 /* Id of ReduceAction230 */,
+  3 /* Color of ReduceAction230 */,
+  42 /* Color of ReduceAction230 */,
+  43 /* Property init */,
+  1895 /* Id of ReduceAction231 */,
+  3 /* Color of ReduceAction231 */,
+  42 /* Color of ReduceAction231 */,
+  43 /* Property init */,
+  1891 /* Id of ReduceAction232 */,
+  3 /* Color of ReduceAction232 */,
+  42 /* Color of ReduceAction232 */,
+  43 /* Property init */,
+  1887 /* Id of ReduceAction233 */,
+  3 /* Color of ReduceAction233 */,
+  42 /* Color of ReduceAction233 */,
+  43 /* Property init */,
+  1883 /* Id of ReduceAction234 */,
+  3 /* Color of ReduceAction234 */,
+  42 /* Color of ReduceAction234 */,
+  43 /* Property init */,
+  1879 /* Id of ReduceAction235 */,
+  3 /* Color of ReduceAction235 */,
+  42 /* Color of ReduceAction235 */,
+  43 /* Property init */,
+  1875 /* Id of ReduceAction236 */,
+  3 /* Color of ReduceAction236 */,
+  42 /* Color of ReduceAction236 */,
+  43 /* Property init */,
+  1871 /* Id of ReduceAction237 */,
+  3 /* Color of ReduceAction237 */,
+  42 /* Color of ReduceAction237 */,
+  43 /* Property init */,
+  1867 /* Id of ReduceAction238 */,
+  3 /* Color of ReduceAction238 */,
+  42 /* Color of ReduceAction238 */,
+  43 /* Property init */,
+  1863 /* Id of ReduceAction239 */,
+  3 /* Color of ReduceAction239 */,
+  42 /* Color of ReduceAction239 */,
+  43 /* Property init */,
+  1855 /* Id of ReduceAction240 */,
+  3 /* Color of ReduceAction240 */,
+  42 /* Color of ReduceAction240 */,
+  43 /* Property init */,
+  1851 /* Id of ReduceAction241 */,
+  3 /* Color of ReduceAction241 */,
+  42 /* Color of ReduceAction241 */,
+  43 /* Property init */,
+  1847 /* Id of ReduceAction242 */,
+  3 /* Color of ReduceAction242 */,
+  42 /* Color of ReduceAction242 */,
+  43 /* Property init */,
+  1843 /* Id of ReduceAction243 */,
+  3 /* Color of ReduceAction243 */,
+  42 /* Color of ReduceAction243 */,
+  43 /* Property init */,
+  1839 /* Id of ReduceAction244 */,
+  3 /* Color of ReduceAction244 */,
+  42 /* Color of ReduceAction244 */,
+  43 /* Property init */,
+  1835 /* Id of ReduceAction245 */,
+  3 /* Color of ReduceAction245 */,
+  42 /* Color of ReduceAction245 */,
+  43 /* Property init */,
+  1831 /* Id of ReduceAction246 */,
+  3 /* Color of ReduceAction246 */,
+  42 /* Color of ReduceAction246 */,
+  43 /* Property init */,
+  1827 /* Id of ReduceAction247 */,
+  3 /* Color of ReduceAction247 */,
+  42 /* Color of ReduceAction247 */,
+  43 /* Property init */,
+  1823 /* Id of ReduceAction248 */,
+  3 /* Color of ReduceAction248 */,
+  42 /* Color of ReduceAction248 */,
+  43 /* Property init */,
+  1819 /* Id of ReduceAction249 */,
+  3 /* Color of ReduceAction249 */,
+  42 /* Color of ReduceAction249 */,
+  43 /* Property init */,
+  1811 /* Id of ReduceAction250 */,
+  3 /* Color of ReduceAction250 */,
+  42 /* Color of ReduceAction250 */,
+  43 /* Property init */,
+  1807 /* Id of ReduceAction251 */,
+  3 /* Color of ReduceAction251 */,
+  42 /* Color of ReduceAction251 */,
+  43 /* Property init */,
+  1803 /* Id of ReduceAction252 */,
+  3 /* Color of ReduceAction252 */,
+  42 /* Color of ReduceAction252 */,
+  43 /* Property init */,
+  1799 /* Id of ReduceAction253 */,
+  3 /* Color of ReduceAction253 */,
+  42 /* Color of ReduceAction253 */,
+  43 /* Property init */,
+  1795 /* Id of ReduceAction254 */,
+  3 /* Color of ReduceAction254 */,
+  42 /* Color of ReduceAction254 */,
+  43 /* Property init */,
+  1791 /* Id of ReduceAction255 */,
+  3 /* Color of ReduceAction255 */,
+  42 /* Color of ReduceAction255 */,
+  43 /* Property init */,
+  1787 /* Id of ReduceAction256 */,
+  3 /* Color of ReduceAction256 */,
+  42 /* Color of ReduceAction256 */,
+  43 /* Property init */,
+  1783 /* Id of ReduceAction257 */,
+  3 /* Color of ReduceAction257 */,
+  42 /* Color of ReduceAction257 */,
+  43 /* Property init */,
+  1779 /* Id of ReduceAction258 */,
+  3 /* Color of ReduceAction258 */,
+  42 /* Color of ReduceAction258 */,
+  43 /* Property init */,
+  1775 /* Id of ReduceAction259 */,
+  3 /* Color of ReduceAction259 */,
+  42 /* Color of ReduceAction259 */,
+  43 /* Property init */,
+  1767 /* Id of ReduceAction260 */,
+  3 /* Color of ReduceAction260 */,
+  42 /* Color of ReduceAction260 */,
+  43 /* Property init */,
+  1763 /* Id of ReduceAction261 */,
+  3 /* Color of ReduceAction261 */,
+  42 /* Color of ReduceAction261 */,
+  43 /* Property init */,
+  1759 /* Id of ReduceAction262 */,
+  3 /* Color of ReduceAction262 */,
+  42 /* Color of ReduceAction262 */,
+  43 /* Property init */,
+  1755 /* Id of ReduceAction263 */,
+  3 /* Color of ReduceAction263 */,
+  42 /* Color of ReduceAction263 */,
+  43 /* Property init */,
+  1751 /* Id of ReduceAction264 */,
+  3 /* Color of ReduceAction264 */,
+  42 /* Color of ReduceAction264 */,
+  43 /* Property init */,
+  1747 /* Id of ReduceAction265 */,
+  3 /* Color of ReduceAction265 */,
+  42 /* Color of ReduceAction265 */,
+  43 /* Property init */,
+  1743 /* Id of ReduceAction266 */,
+  3 /* Color of ReduceAction266 */,
+  42 /* Color of ReduceAction266 */,
+  43 /* Property init */,
+  1739 /* Id of ReduceAction267 */,
+  3 /* Color of ReduceAction267 */,
+  42 /* Color of ReduceAction267 */,
+  43 /* Property init */,
+  1735 /* Id of ReduceAction268 */,
+  3 /* Color of ReduceAction268 */,
+  42 /* Color of ReduceAction268 */,
+  43 /* Property init */,
+  1731 /* Id of ReduceAction269 */,
+  3 /* Color of ReduceAction269 */,
+  42 /* Color of ReduceAction269 */,
+  43 /* Property init */,
+  1723 /* Id of ReduceAction270 */,
+  3 /* Color of ReduceAction270 */,
+  42 /* Color of ReduceAction270 */,
+  43 /* Property init */,
+  1719 /* Id of ReduceAction271 */,
+  3 /* Color of ReduceAction271 */,
+  42 /* Color of ReduceAction271 */,
+  43 /* Property init */,
+  1715 /* Id of ReduceAction272 */,
+  3 /* Color of ReduceAction272 */,
+  42 /* Color of ReduceAction272 */,
+  43 /* Property init */,
+  1711 /* Id of ReduceAction273 */,
+  3 /* Color of ReduceAction273 */,
+  42 /* Color of ReduceAction273 */,
+  43 /* Property init */,
+  1707 /* Id of ReduceAction274 */,
+  3 /* Color of ReduceAction274 */,
+  42 /* Color of ReduceAction274 */,
+  43 /* Property init */,
+  1703 /* Id of ReduceAction275 */,
+  3 /* Color of ReduceAction275 */,
+  42 /* Color of ReduceAction275 */,
+  43 /* Property init */,
+  1699 /* Id of ReduceAction276 */,
+  3 /* Color of ReduceAction276 */,
+  42 /* Color of ReduceAction276 */,
+  43 /* Property init */,
+  1695 /* Id of ReduceAction277 */,
+  3 /* Color of ReduceAction277 */,
+  42 /* Color of ReduceAction277 */,
+  43 /* Property init */,
+  1691 /* Id of ReduceAction278 */,
+  3 /* Color of ReduceAction278 */,
+  42 /* Color of ReduceAction278 */,
+  43 /* Property init */,
+  1687 /* Id of ReduceAction279 */,
+  3 /* Color of ReduceAction279 */,
+  42 /* Color of ReduceAction279 */,
+  43 /* Property init */,
+  1679 /* Id of ReduceAction280 */,
+  3 /* Color of ReduceAction280 */,
+  42 /* Color of ReduceAction280 */,
+  43 /* Property init */,
+  1675 /* Id of ReduceAction281 */,
+  3 /* Color of ReduceAction281 */,
+  42 /* Color of ReduceAction281 */,
+  43 /* Property init */,
+  1671 /* Id of ReduceAction282 */,
+  3 /* Color of ReduceAction282 */,
+  42 /* Color of ReduceAction282 */,
+  43 /* Property init */,
+  1667 /* Id of ReduceAction283 */,
+  3 /* Color of ReduceAction283 */,
+  42 /* Color of ReduceAction283 */,
+  43 /* Property init */,
+  1663 /* Id of ReduceAction284 */,
+  3 /* Color of ReduceAction284 */,
+  42 /* Color of ReduceAction284 */,
+  43 /* Property init */,
+  1659 /* Id of ReduceAction285 */,
+  3 /* Color of ReduceAction285 */,
+  42 /* Color of ReduceAction285 */,
+  43 /* Property init */,
+  1655 /* Id of ReduceAction286 */,
+  3 /* Color of ReduceAction286 */,
+  42 /* Color of ReduceAction286 */,
+  43 /* Property init */,
+  1651 /* Id of ReduceAction287 */,
+  3 /* Color of ReduceAction287 */,
+  42 /* Color of ReduceAction287 */,
+  43 /* Property init */,
+  1647 /* Id of ReduceAction288 */,
+  3 /* Color of ReduceAction288 */,
+  42 /* Color of ReduceAction288 */,
+  43 /* Property init */,
+  1643 /* Id of ReduceAction289 */,
+  3 /* Color of ReduceAction289 */,
+  42 /* Color of ReduceAction289 */,
+  43 /* Property init */,
+  1635 /* Id of ReduceAction290 */,
+  3 /* Color of ReduceAction290 */,
+  42 /* Color of ReduceAction290 */,
+  43 /* Property init */,
+  1631 /* Id of ReduceAction291 */,
+  3 /* Color of ReduceAction291 */,
+  42 /* Color of ReduceAction291 */,
+  43 /* Property init */,
+  1627 /* Id of ReduceAction292 */,
+  3 /* Color of ReduceAction292 */,
+  42 /* Color of ReduceAction292 */,
+  43 /* Property init */,
+  1623 /* Id of ReduceAction293 */,
+  3 /* Color of ReduceAction293 */,
+  42 /* Color of ReduceAction293 */,
+  43 /* Property init */,
+  1619 /* Id of ReduceAction294 */,
+  3 /* Color of ReduceAction294 */,
+  42 /* Color of ReduceAction294 */,
+  43 /* Property init */,
+  1615 /* Id of ReduceAction295 */,
+  3 /* Color of ReduceAction295 */,
+  42 /* Color of ReduceAction295 */,
+  43 /* Property init */,
+  1611 /* Id of ReduceAction296 */,
+  3 /* Color of ReduceAction296 */,
+  42 /* Color of ReduceAction296 */,
+  43 /* Property init */,
+  1607 /* Id of ReduceAction297 */,
+  3 /* Color of ReduceAction297 */,
+  42 /* Color of ReduceAction297 */,
+  43 /* Property init */,
+  1603 /* Id of ReduceAction298 */,
+  3 /* Color of ReduceAction298 */,
+  42 /* Color of ReduceAction298 */,
+  43 /* Property init */,
+  1599 /* Id of ReduceAction299 */,
+  3 /* Color of ReduceAction299 */,
+  42 /* Color of ReduceAction299 */,
+  43 /* Property init */,
+  1587 /* Id of ReduceAction300 */,
+  3 /* Color of ReduceAction300 */,
+  42 /* Color of ReduceAction300 */,
+  43 /* Property init */,
+  1583 /* Id of ReduceAction301 */,
+  3 /* Color of ReduceAction301 */,
+  42 /* Color of ReduceAction301 */,
+  43 /* Property init */,
+  1579 /* Id of ReduceAction302 */,
+  3 /* Color of ReduceAction302 */,
+  42 /* Color of ReduceAction302 */,
+  43 /* Property init */,
+  1575 /* Id of ReduceAction303 */,
+  3 /* Color of ReduceAction303 */,
+  42 /* Color of ReduceAction303 */,
+  43 /* Property init */,
+  1571 /* Id of ReduceAction304 */,
+  3 /* Color of ReduceAction304 */,
+  42 /* Color of ReduceAction304 */,
+  43 /* Property init */,
+  1567 /* Id of ReduceAction305 */,
+  3 /* Color of ReduceAction305 */,
+  42 /* Color of ReduceAction305 */,
+  43 /* Property init */,
+  1563 /* Id of ReduceAction306 */,
+  3 /* Color of ReduceAction306 */,
+  42 /* Color of ReduceAction306 */,
+  43 /* Property init */,
+  1559 /* Id of ReduceAction307 */,
+  3 /* Color of ReduceAction307 */,
+  42 /* Color of ReduceAction307 */,
+  43 /* Property init */,
+  1555 /* Id of ReduceAction308 */,
+  3 /* Color of ReduceAction308 */,
+  42 /* Color of ReduceAction308 */,
+  43 /* Property init */,
+  1551 /* Id of ReduceAction309 */,
+  3 /* Color of ReduceAction309 */,
+  42 /* Color of ReduceAction309 */,
+  43 /* Property init */,
+  1543 /* Id of ReduceAction310 */,
+  3 /* Color of ReduceAction310 */,
+  42 /* Color of ReduceAction310 */,
+  43 /* Property init */,
+  1539 /* Id of ReduceAction311 */,
+  3 /* Color of ReduceAction311 */,
+  42 /* Color of ReduceAction311 */,
+  43 /* Property init */,
+  1535 /* Id of ReduceAction312 */,
+  3 /* Color of ReduceAction312 */,
+  42 /* Color of ReduceAction312 */,
+  43 /* Property init */,
+  1531 /* Id of ReduceAction313 */,
+  3 /* Color of ReduceAction313 */,
+  42 /* Color of ReduceAction313 */,
+  43 /* Property init */,
+  1527 /* Id of ReduceAction314 */,
+  3 /* Color of ReduceAction314 */,
+  42 /* Color of ReduceAction314 */,
+  43 /* Property init */,
+  1523 /* Id of ReduceAction315 */,
+  3 /* Color of ReduceAction315 */,
+  42 /* Color of ReduceAction315 */,
+  43 /* Property init */,
+  1519 /* Id of ReduceAction316 */,
+  3 /* Color of ReduceAction316 */,
+  42 /* Color of ReduceAction316 */,
+  43 /* Property init */,
+  1515 /* Id of ReduceAction317 */,
+  3 /* Color of ReduceAction317 */,
+  42 /* Color of ReduceAction317 */,
+  43 /* Property init */,
+  1511 /* Id of ReduceAction318 */,
+  3 /* Color of ReduceAction318 */,
+  42 /* Color of ReduceAction318 */,
+  43 /* Property init */,
+  1507 /* Id of ReduceAction319 */,
+  3 /* Color of ReduceAction319 */,
+  42 /* Color of ReduceAction319 */,
+  43 /* Property init */,
+  1499 /* Id of ReduceAction320 */,
+  3 /* Color of ReduceAction320 */,
+  42 /* Color of ReduceAction320 */,
+  43 /* Property init */,
+  1495 /* Id of ReduceAction321 */,
+  3 /* Color of ReduceAction321 */,
+  42 /* Color of ReduceAction321 */,
+  43 /* Property init */,
+  1491 /* Id of ReduceAction322 */,
+  3 /* Color of ReduceAction322 */,
+  42 /* Color of ReduceAction322 */,
+  43 /* Property init */,
+  1487 /* Id of ReduceAction323 */,
+  3 /* Color of ReduceAction323 */,
+  42 /* Color of ReduceAction323 */,
+  43 /* Property init */,
+  1483 /* Id of ReduceAction324 */,
+  3 /* Color of ReduceAction324 */,
+  42 /* Color of ReduceAction324 */,
+  43 /* Property init */,
+  1479 /* Id of ReduceAction325 */,
+  3 /* Color of ReduceAction325 */,
+  42 /* Color of ReduceAction325 */,
+  43 /* Property init */,
+  1475 /* Id of ReduceAction326 */,
+  3 /* Color of ReduceAction326 */,
+  42 /* Color of ReduceAction326 */,
+  43 /* Property init */,
+  1471 /* Id of ReduceAction327 */,
+  3 /* Color of ReduceAction327 */,
+  42 /* Color of ReduceAction327 */,
+  43 /* Property init */,
+  1467 /* Id of ReduceAction328 */,
+  3 /* Color of ReduceAction328 */,
+  42 /* Color of ReduceAction328 */,
+  43 /* Property init */,
+  1463 /* Id of ReduceAction329 */,
+  3 /* Color of ReduceAction329 */,
+  42 /* Color of ReduceAction329 */,
+  43 /* Property init */,
+  1455 /* Id of ReduceAction330 */,
+  3 /* Color of ReduceAction330 */,
+  42 /* Color of ReduceAction330 */,
+  43 /* Property init */,
+  1451 /* Id of ReduceAction331 */,
+  3 /* Color of ReduceAction331 */,
+  42 /* Color of ReduceAction331 */,
+  43 /* Property init */,
+  1447 /* Id of ReduceAction332 */,
+  3 /* Color of ReduceAction332 */,
+  42 /* Color of ReduceAction332 */,
+  43 /* Property init */,
+  1443 /* Id of ReduceAction333 */,
+  3 /* Color of ReduceAction333 */,
+  42 /* Color of ReduceAction333 */,
+  43 /* Property init */,
+  1439 /* Id of ReduceAction334 */,
+  3 /* Color of ReduceAction334 */,
+  42 /* Color of ReduceAction334 */,
+  43 /* Property init */,
+  1435 /* Id of ReduceAction335 */,
+  3 /* Color of ReduceAction335 */,
+  42 /* Color of ReduceAction335 */,
+  43 /* Property init */,
+  1431 /* Id of ReduceAction336 */,
+  3 /* Color of ReduceAction336 */,
+  42 /* Color of ReduceAction336 */,
+  43 /* Property init */,
+  1427 /* Id of ReduceAction337 */,
+  3 /* Color of ReduceAction337 */,
+  42 /* Color of ReduceAction337 */,
+  43 /* Property init */,
+  1423 /* Id of ReduceAction338 */,
+  3 /* Color of ReduceAction338 */,
+  42 /* Color of ReduceAction338 */,
+  43 /* Property init */,
+  1419 /* Id of ReduceAction339 */,
+  3 /* Color of ReduceAction339 */,
+  42 /* Color of ReduceAction339 */,
+  43 /* Property init */,
+  1411 /* Id of ReduceAction340 */,
+  3 /* Color of ReduceAction340 */,
+  42 /* Color of ReduceAction340 */,
+  43 /* Property init */,
+  1407 /* Id of ReduceAction341 */,
+  3 /* Color of ReduceAction341 */,
+  42 /* Color of ReduceAction341 */,
+  43 /* Property init */,
+  1403 /* Id of ReduceAction342 */,
+  3 /* Color of ReduceAction342 */,
+  42 /* Color of ReduceAction342 */,
+  43 /* Property init */,
+  1399 /* Id of ReduceAction343 */,
+  3 /* Color of ReduceAction343 */,
+  42 /* Color of ReduceAction343 */,
+  43 /* Property init */,
+  1395 /* Id of ReduceAction344 */,
+  3 /* Color of ReduceAction344 */,
+  42 /* Color of ReduceAction344 */,
+  43 /* Property init */,
+  1391 /* Id of ReduceAction345 */,
+  3 /* Color of ReduceAction345 */,
+  42 /* Color of ReduceAction345 */,
+  43 /* Property init */,
+  1387 /* Id of ReduceAction346 */,
+  3 /* Color of ReduceAction346 */,
+  42 /* Color of ReduceAction346 */,
+  43 /* Property init */,
+  1383 /* Id of ReduceAction347 */,
+  3 /* Color of ReduceAction347 */,
+  42 /* Color of ReduceAction347 */,
+  43 /* Property init */,
+  1379 /* Id of ReduceAction348 */,
+  3 /* Color of ReduceAction348 */,
+  42 /* Color of ReduceAction348 */,
+  43 /* Property init */,
+  1375 /* Id of ReduceAction349 */,
+  3 /* Color of ReduceAction349 */,
+  42 /* Color of ReduceAction349 */,
+  43 /* Property init */,
+  1367 /* Id of ReduceAction350 */,
+  3 /* Color of ReduceAction350 */,
+  42 /* Color of ReduceAction350 */,
+  43 /* Property init */,
+  1363 /* Id of ReduceAction351 */,
+  3 /* Color of ReduceAction351 */,
+  42 /* Color of ReduceAction351 */,
+  43 /* Property init */,
+  1359 /* Id of ReduceAction352 */,
+  3 /* Color of ReduceAction352 */,
+  42 /* Color of ReduceAction352 */,
+  43 /* Property init */,
+  1355 /* Id of ReduceAction353 */,
+  3 /* Color of ReduceAction353 */,
+  42 /* Color of ReduceAction353 */,
+  43 /* Property init */,
+  1351 /* Id of ReduceAction354 */,
+  3 /* Color of ReduceAction354 */,
+  42 /* Color of ReduceAction354 */,
+  43 /* Property init */,
+  1347 /* Id of ReduceAction355 */,
+  3 /* Color of ReduceAction355 */,
+  42 /* Color of ReduceAction355 */,
+  43 /* Property init */,
+  1343 /* Id of ReduceAction356 */,
+  3 /* Color of ReduceAction356 */,
+  42 /* Color of ReduceAction356 */,
+  43 /* Property init */,
+  1339 /* Id of ReduceAction357 */,
+  3 /* Color of ReduceAction357 */,
+  42 /* Color of ReduceAction357 */,
+  43 /* Property init */,
+  1335 /* Id of ReduceAction358 */,
+  3 /* Color of ReduceAction358 */,
+  42 /* Color of ReduceAction358 */,
+  43 /* Property init */,
+  1331 /* Id of ReduceAction359 */,
+  3 /* Color of ReduceAction359 */,
+  42 /* Color of ReduceAction359 */,
+  43 /* Property init */,
+  1323 /* Id of ReduceAction360 */,
+  3 /* Color of ReduceAction360 */,
+  42 /* Color of ReduceAction360 */,
+  43 /* Property init */,
+  1319 /* Id of ReduceAction361 */,
+  3 /* Color of ReduceAction361 */,
+  42 /* Color of ReduceAction361 */,
+  43 /* Property init */,
+  1315 /* Id of ReduceAction362 */,
+  3 /* Color of ReduceAction362 */,
+  42 /* Color of ReduceAction362 */,
+  43 /* Property init */,
+  1311 /* Id of ReduceAction363 */,
+  3 /* Color of ReduceAction363 */,
+  42 /* Color of ReduceAction363 */,
+  43 /* Property init */,
+  1307 /* Id of ReduceAction364 */,
+  3 /* Color of ReduceAction364 */,
+  42 /* Color of ReduceAction364 */,
+  43 /* Property init */,
+  1303 /* Id of ReduceAction365 */,
+  3 /* Color of ReduceAction365 */,
+  42 /* Color of ReduceAction365 */,
+  43 /* Property init */,
+  1299 /* Id of ReduceAction366 */,
+  3 /* Color of ReduceAction366 */,
+  42 /* Color of ReduceAction366 */,
+  43 /* Property init */,
+  1295 /* Id of ReduceAction367 */,
+  3 /* Color of ReduceAction367 */,
+  42 /* Color of ReduceAction367 */,
+  43 /* Property init */,
+  1291 /* Id of ReduceAction368 */,
+  3 /* Color of ReduceAction368 */,
+  42 /* Color of ReduceAction368 */,
+  43 /* Property init */,
+  1287 /* Id of ReduceAction369 */,
+  3 /* Color of ReduceAction369 */,
+  42 /* Color of ReduceAction369 */,
+  43 /* Property init */,
+  1279 /* Id of ReduceAction370 */,
+  3 /* Color of ReduceAction370 */,
+  42 /* Color of ReduceAction370 */,
+  43 /* Property init */,
+  1275 /* Id of ReduceAction371 */,
+  3 /* Color of ReduceAction371 */,
+  42 /* Color of ReduceAction371 */,
+  43 /* Property init */,
+  1271 /* Id of ReduceAction372 */,
+  3 /* Color of ReduceAction372 */,
+  42 /* Color of ReduceAction372 */,
+  43 /* Property init */,
+  1267 /* Id of ReduceAction373 */,
+  3 /* Color of ReduceAction373 */,
+  42 /* Color of ReduceAction373 */,
+  43 /* Property init */,
+  1263 /* Id of ReduceAction374 */,
+  3 /* Color of ReduceAction374 */,
+  42 /* Color of ReduceAction374 */,
+  43 /* Property init */,
+  1259 /* Id of ReduceAction375 */,
+  3 /* Color of ReduceAction375 */,
+  42 /* Color of ReduceAction375 */,
+  43 /* Property init */,
+  1255 /* Id of ReduceAction376 */,
+  3 /* Color of ReduceAction376 */,
+  42 /* Color of ReduceAction376 */,
+  43 /* Property init */,
+  1251 /* Id of ReduceAction377 */,
+  3 /* Color of ReduceAction377 */,
+  42 /* Color of ReduceAction377 */,
+  43 /* Property init */,
+  1247 /* Id of ReduceAction378 */,
+  3 /* Color of ReduceAction378 */,
+  42 /* Color of ReduceAction378 */,
+  43 /* Property init */,
+  1243 /* Id of ReduceAction379 */,
+  3 /* Color of ReduceAction379 */,
+  42 /* Color of ReduceAction379 */,
+  43 /* Property init */,
+  1235 /* Id of ReduceAction380 */,
+  3 /* Color of ReduceAction380 */,
+  42 /* Color of ReduceAction380 */,
+  43 /* Property init */,
+  1231 /* Id of ReduceAction381 */,
+  3 /* Color of ReduceAction381 */,
+  42 /* Color of ReduceAction381 */,
+  43 /* Property init */,
+  1227 /* Id of ReduceAction382 */,
+  3 /* Color of ReduceAction382 */,
+  42 /* Color of ReduceAction382 */,
+  43 /* Property init */,
+  1223 /* Id of ReduceAction383 */,
+  3 /* Color of ReduceAction383 */,
+  42 /* Color of ReduceAction383 */,
+  43 /* Property init */,
+  1219 /* Id of ReduceAction384 */,
+  3 /* Color of ReduceAction384 */,
+  42 /* Color of ReduceAction384 */,
+  43 /* Property init */,
+  1215 /* Id of ReduceAction385 */,
+  3 /* Color of ReduceAction385 */,
+  42 /* Color of ReduceAction385 */,
+  43 /* Property init */,
+  1211 /* Id of ReduceAction386 */,
+  3 /* Color of ReduceAction386 */,
+  42 /* Color of ReduceAction386 */,
+  43 /* Property init */,
+  1207 /* Id of ReduceAction387 */,
+  3 /* Color of ReduceAction387 */,
+  42 /* Color of ReduceAction387 */,
+  43 /* Property init */,
+  1203 /* Id of ReduceAction388 */,
+  3 /* Color of ReduceAction388 */,
+  42 /* Color of ReduceAction388 */,
+  43 /* Property init */,
+  1199 /* Id of ReduceAction389 */,
+  3 /* Color of ReduceAction389 */,
+  42 /* Color of ReduceAction389 */,
+  43 /* Property init */,
+  1191 /* Id of ReduceAction390 */,
+  3 /* Color of ReduceAction390 */,
+  42 /* Color of ReduceAction390 */,
+  43 /* Property init */,
+  1187 /* Id of ReduceAction391 */,
+  3 /* Color of ReduceAction391 */,
+  42 /* Color of ReduceAction391 */,
+  43 /* Property init */,
+  1183 /* Id of ReduceAction392 */,
+  3 /* Color of ReduceAction392 */,
+  42 /* Color of ReduceAction392 */,
+  43 /* Property init */,
+  1179 /* Id of ReduceAction393 */,
+  3 /* Color of ReduceAction393 */,
+  42 /* Color of ReduceAction393 */,
+  43 /* Property init */,
+  1175 /* Id of ReduceAction394 */,
+  3 /* Color of ReduceAction394 */,
+  42 /* Color of ReduceAction394 */,
+  43 /* Property init */,
+  1171 /* Id of ReduceAction395 */,
+  3 /* Color of ReduceAction395 */,
+  42 /* Color of ReduceAction395 */,
+  43 /* Property init */,
+  1167 /* Id of ReduceAction396 */,
+  3 /* Color of ReduceAction396 */,
+  42 /* Color of ReduceAction396 */,
+  43 /* Property init */,
+  1163 /* Id of ReduceAction397 */,
+  3 /* Color of ReduceAction397 */,
+  42 /* Color of ReduceAction397 */,
+  43 /* Property init */,
+  1159 /* Id of ReduceAction398 */,
+  3 /* Color of ReduceAction398 */,
+  42 /* Color of ReduceAction398 */,
+  43 /* Property init */,
+  1155 /* Id of ReduceAction399 */,
+  3 /* Color of ReduceAction399 */,
+  42 /* Color of ReduceAction399 */,
+  43 /* Property init */,
+  1143 /* Id of ReduceAction400 */,
+  3 /* Color of ReduceAction400 */,
+  42 /* Color of ReduceAction400 */,
+  43 /* Property init */,
+  1139 /* Id of ReduceAction401 */,
+  3 /* Color of ReduceAction401 */,
+  42 /* Color of ReduceAction401 */,
+  43 /* Property init */,
+  1135 /* Id of ReduceAction402 */,
+  3 /* Color of ReduceAction402 */,
+  42 /* Color of ReduceAction402 */,
+  43 /* Property init */,
+  1131 /* Id of ReduceAction403 */,
+  3 /* Color of ReduceAction403 */,
+  42 /* Color of ReduceAction403 */,
+  43 /* Property init */,
+  1127 /* Id of ReduceAction404 */,
+  3 /* Color of ReduceAction404 */,
+  42 /* Color of ReduceAction404 */,
+  43 /* Property init */,
+  1123 /* Id of ReduceAction405 */,
+  3 /* Color of ReduceAction405 */,
+  42 /* Color of ReduceAction405 */,
+  43 /* Property init */,
+  1119 /* Id of ReduceAction406 */,
+  3 /* Color of ReduceAction406 */,
+  42 /* Color of ReduceAction406 */,
+  43 /* Property init */,
+  1115 /* Id of ReduceAction407 */,
+  3 /* Color of ReduceAction407 */,
+  42 /* Color of ReduceAction407 */,
+  43 /* Property init */,
+  1111 /* Id of ReduceAction408 */,
+  3 /* Color of ReduceAction408 */,
+  42 /* Color of ReduceAction408 */,
+  43 /* Property init */,
+  1107 /* Id of ReduceAction409 */,
+  3 /* Color of ReduceAction409 */,
+  42 /* Color of ReduceAction409 */,
+  43 /* Property init */,
+  1099 /* Id of ReduceAction410 */,
+  3 /* Color of ReduceAction410 */,
+  42 /* Color of ReduceAction410 */,
+  43 /* Property init */,
+  1095 /* Id of ReduceAction411 */,
+  3 /* Color of ReduceAction411 */,
+  42 /* Color of ReduceAction411 */,
+  43 /* Property init */,
+  1091 /* Id of ReduceAction412 */,
+  3 /* Color of ReduceAction412 */,
+  42 /* Color of ReduceAction412 */,
+  43 /* Property init */,
+  1087 /* Id of ReduceAction413 */,
+  3 /* Color of ReduceAction413 */,
+  42 /* Color of ReduceAction413 */,
+  43 /* Property init */,
+  1083 /* Id of ReduceAction414 */,
+  3 /* Color of ReduceAction414 */,
+  42 /* Color of ReduceAction414 */,
+  43 /* Property init */,
+  1079 /* Id of ReduceAction415 */,
+  3 /* Color of ReduceAction415 */,
+  42 /* Color of ReduceAction415 */,
+  43 /* Property init */,
+  1075 /* Id of ReduceAction416 */,
+  3 /* Color of ReduceAction416 */,
+  42 /* Color of ReduceAction416 */,
+  43 /* Property init */,
+  1071 /* Id of ReduceAction417 */,
+  3 /* Color of ReduceAction417 */,
+  42 /* Color of ReduceAction417 */,
+  43 /* Property init */,
+  1067 /* Id of ReduceAction418 */,
+  3 /* Color of ReduceAction418 */,
+  42 /* Color of ReduceAction418 */,
+  43 /* Property init */,
+  1063 /* Id of ReduceAction419 */,
+  3 /* Color of ReduceAction419 */,
+  42 /* Color of ReduceAction419 */,
+  43 /* Property init */,
+  1055 /* Id of ReduceAction420 */,
+  3 /* Color of ReduceAction420 */,
+  42 /* Color of ReduceAction420 */,
+  43 /* Property init */,
+  1051 /* Id of ReduceAction421 */,
+  3 /* Color of ReduceAction421 */,
+  42 /* Color of ReduceAction421 */,
+  43 /* Property init */,
+  1047 /* Id of ReduceAction422 */,
+  3 /* Color of ReduceAction422 */,
+  42 /* Color of ReduceAction422 */,
+  43 /* Property init */,
+  1043 /* Id of ReduceAction423 */,
+  3 /* Color of ReduceAction423 */,
+  42 /* Color of ReduceAction423 */,
+  43 /* Property init */,
+  1039 /* Id of ReduceAction424 */,
+  3 /* Color of ReduceAction424 */,
+  42 /* Color of ReduceAction424 */,
+  43 /* Property init */,
+  1035 /* Id of ReduceAction425 */,
+  3 /* Color of ReduceAction425 */,
+  42 /* Color of ReduceAction425 */,
+  43 /* Property init */,
+  1031 /* Id of ReduceAction426 */,
+  3 /* Color of ReduceAction426 */,
+  42 /* Color of ReduceAction426 */,
+  43 /* Property init */,
+  1027 /* Id of ReduceAction427 */,
+  3 /* Color of ReduceAction427 */,
+  42 /* Color of ReduceAction427 */,
+  43 /* Property init */,
+  1023 /* Id of ReduceAction428 */,
+  3 /* Color of ReduceAction428 */,
+  42 /* Color of ReduceAction428 */,
+  43 /* Property init */,
+  1019 /* Id of ReduceAction429 */,
+  3 /* Color of ReduceAction429 */,
+  42 /* Color of ReduceAction429 */,
+  43 /* Property init */,
+  1011 /* Id of ReduceAction430 */,
+  3 /* Color of ReduceAction430 */,
+  42 /* Color of ReduceAction430 */,
+  43 /* Property init */,
+  1007 /* Id of ReduceAction431 */,
+  3 /* Color of ReduceAction431 */,
+  42 /* Color of ReduceAction431 */,
+  43 /* Property init */,
+  1003 /* Id of ReduceAction432 */,
+  3 /* Color of ReduceAction432 */,
+  42 /* Color of ReduceAction432 */,
+  43 /* Property init */,
+  999 /* Id of ReduceAction433 */,
+  3 /* Color of ReduceAction433 */,
+  42 /* Color of ReduceAction433 */,
+  43 /* Property init */,
+  995 /* Id of ReduceAction434 */,
+  3 /* Color of ReduceAction434 */,
+  42 /* Color of ReduceAction434 */,
+  43 /* Property init */,
+  991 /* Id of ReduceAction435 */,
+  3 /* Color of ReduceAction435 */,
+  42 /* Color of ReduceAction435 */,
+  43 /* Property init */,
+  987 /* Id of ReduceAction436 */,
+  3 /* Color of ReduceAction436 */,
+  42 /* Color of ReduceAction436 */,
+  43 /* Property init */,
+  983 /* Id of ReduceAction437 */,
+  3 /* Color of ReduceAction437 */,
+  42 /* Color of ReduceAction437 */,
+  43 /* Property init */,
+  979 /* Id of ReduceAction438 */,
+  3 /* Color of ReduceAction438 */,
+  42 /* Color of ReduceAction438 */,
+  43 /* Property init */,
+  975 /* Id of ReduceAction439 */,
+  3 /* Color of ReduceAction439 */,
+  42 /* Color of ReduceAction439 */,
+  43 /* Property init */,
+  967 /* Id of ReduceAction440 */,
+  3 /* Color of ReduceAction440 */,
+  42 /* Color of ReduceAction440 */,
+  43 /* Property init */,
+  963 /* Id of ReduceAction441 */,
+  3 /* Color of ReduceAction441 */,
+  42 /* Color of ReduceAction441 */,
+  43 /* Property init */,
+  959 /* Id of ReduceAction442 */,
+  3 /* Color of ReduceAction442 */,
+  42 /* Color of ReduceAction442 */,
+  43 /* Property init */,
+  955 /* Id of ReduceAction443 */,
+  3 /* Color of ReduceAction443 */,
+  42 /* Color of ReduceAction443 */,
+  43 /* Property init */,
+  951 /* Id of ReduceAction444 */,
+  3 /* Color of ReduceAction444 */,
+  42 /* Color of ReduceAction444 */,
+  43 /* Property init */,
+  947 /* Id of ReduceAction445 */,
+  3 /* Color of ReduceAction445 */,
+  42 /* Color of ReduceAction445 */,
+  43 /* Property init */,
+  943 /* Id of ReduceAction446 */,
+  3 /* Color of ReduceAction446 */,
+  42 /* Color of ReduceAction446 */,
+  43 /* Property init */,
+  939 /* Id of ReduceAction447 */,
+  3 /* Color of ReduceAction447 */,
+  42 /* Color of ReduceAction447 */,
+  43 /* Property init */,
+  935 /* Id of ReduceAction448 */,
+  3 /* Color of ReduceAction448 */,
+  42 /* Color of ReduceAction448 */,
+  43 /* Property init */,
+  931 /* Id of ReduceAction449 */,
+  3 /* Color of ReduceAction449 */,
+  42 /* Color of ReduceAction449 */,
+  43 /* Property init */,
+  923 /* Id of ReduceAction450 */,
+  3 /* Color of ReduceAction450 */,
+  42 /* Color of ReduceAction450 */,
+  43 /* Property init */,
+  919 /* Id of ReduceAction451 */,
+  3 /* Color of ReduceAction451 */,
+  42 /* Color of ReduceAction451 */,
+  43 /* Property init */,
+  915 /* Id of ReduceAction452 */,
+  3 /* Color of ReduceAction452 */,
+  42 /* Color of ReduceAction452 */,
+  43 /* Property init */,
+  911 /* Id of ReduceAction453 */,
+  3 /* Color of ReduceAction453 */,
+  42 /* Color of ReduceAction453 */,
+  43 /* Property init */,
+  907 /* Id of ReduceAction454 */,
+  3 /* Color of ReduceAction454 */,
+  42 /* Color of ReduceAction454 */,
+  43 /* Property init */,
+  903 /* Id of ReduceAction455 */,
+  3 /* Color of ReduceAction455 */,
+  42 /* Color of ReduceAction455 */,
+  43 /* Property init */,
+  899 /* Id of ReduceAction456 */,
+  3 /* Color of ReduceAction456 */,
+  42 /* Color of ReduceAction456 */,
+  43 /* Property init */,
+  895 /* Id of ReduceAction457 */,
+  3 /* Color of ReduceAction457 */,
+  42 /* Color of ReduceAction457 */,
+  43 /* Property init */,
+  891 /* Id of ReduceAction458 */,
+  3 /* Color of ReduceAction458 */,
+  42 /* Color of ReduceAction458 */,
+  43 /* Property init */,
+  887 /* Id of ReduceAction459 */,
+  3 /* Color of ReduceAction459 */,
+  42 /* Color of ReduceAction459 */,
+  43 /* Property init */,
+  879 /* Id of ReduceAction460 */,
+  3 /* Color of ReduceAction460 */,
+  42 /* Color of ReduceAction460 */,
+  43 /* Property init */,
+  875 /* Id of ReduceAction461 */,
+  3 /* Color of ReduceAction461 */,
+  42 /* Color of ReduceAction461 */,
+  43 /* Property init */,
+  871 /* Id of ReduceAction462 */,
+  3 /* Color of ReduceAction462 */,
+  42 /* Color of ReduceAction462 */,
+  43 /* Property init */,
+  867 /* Id of ReduceAction463 */,
+  3 /* Color of ReduceAction463 */,
+  42 /* Color of ReduceAction463 */,
+  43 /* Property init */,
+  863 /* Id of ReduceAction464 */,
+  3 /* Color of ReduceAction464 */,
+  42 /* Color of ReduceAction464 */,
+  43 /* Property init */,
+  859 /* Id of ReduceAction465 */,
+  3 /* Color of ReduceAction465 */,
+  42 /* Color of ReduceAction465 */,
+  43 /* Property init */,
+  855 /* Id of ReduceAction466 */,
+  3 /* Color of ReduceAction466 */,
+  42 /* Color of ReduceAction466 */,
+  43 /* Property init */,
+  851 /* Id of ReduceAction467 */,
+  3 /* Color of ReduceAction467 */,
+  42 /* Color of ReduceAction467 */,
+  43 /* Property init */,
+  847 /* Id of ReduceAction468 */,
+  3 /* Color of ReduceAction468 */,
+  42 /* Color of ReduceAction468 */,
+  43 /* Property init */,
+  843 /* Id of ReduceAction469 */,
+  3 /* Color of ReduceAction469 */,
+  42 /* Color of ReduceAction469 */,
+  43 /* Property init */,
+  835 /* Id of ReduceAction470 */,
+  3 /* Color of ReduceAction470 */,
+  42 /* Color of ReduceAction470 */,
+  43 /* Property init */,
+  831 /* Id of ReduceAction471 */,
+  3 /* Color of ReduceAction471 */,
+  42 /* Color of ReduceAction471 */,
+  43 /* Property init */,
+  827 /* Id of ReduceAction472 */,
+  3 /* Color of ReduceAction472 */,
+  42 /* Color of ReduceAction472 */,
+  43 /* Property init */,
+  823 /* Id of ReduceAction473 */,
+  3 /* Color of ReduceAction473 */,
+  42 /* Color of ReduceAction473 */,
+  43 /* Property init */,
+  819 /* Id of ReduceAction474 */,
+  3 /* Color of ReduceAction474 */,
+  42 /* Color of ReduceAction474 */,
+  43 /* Property init */,
+  815 /* Id of ReduceAction475 */,
+  3 /* Color of ReduceAction475 */,
+  42 /* Color of ReduceAction475 */,
+  43 /* Property init */,
+  811 /* Id of ReduceAction476 */,
+  3 /* Color of ReduceAction476 */,
+  42 /* Color of ReduceAction476 */,
+  43 /* Property init */,
+  807 /* Id of ReduceAction477 */,
+  3 /* Color of ReduceAction477 */,
+  42 /* Color of ReduceAction477 */,
+  43 /* Property init */,
+  803 /* Id of ReduceAction478 */,
+  3 /* Color of ReduceAction478 */,
+  42 /* Color of ReduceAction478 */,
+  43 /* Property init */,
+  799 /* Id of ReduceAction479 */,
+  3 /* Color of ReduceAction479 */,
+  42 /* Color of ReduceAction479 */,
+  43 /* Property init */,
+  791 /* Id of ReduceAction480 */,
+  3 /* Color of ReduceAction480 */,
+  42 /* Color of ReduceAction480 */,
+  43 /* Property init */,
+  787 /* Id of ReduceAction481 */,
+  3 /* Color of ReduceAction481 */,
+  42 /* Color of ReduceAction481 */,
+  43 /* Property init */,
+  783 /* Id of ReduceAction482 */,
+  3 /* Color of ReduceAction482 */,
+  42 /* Color of ReduceAction482 */,
+  43 /* Property init */,
+  779 /* Id of ReduceAction483 */,
+  3 /* Color of ReduceAction483 */,
+  42 /* Color of ReduceAction483 */,
+  43 /* Property init */,
+  775 /* Id of ReduceAction484 */,
+  3 /* Color of ReduceAction484 */,
+  42 /* Color of ReduceAction484 */,
+  43 /* Property init */,
+  771 /* Id of ReduceAction485 */,
+  3 /* Color of ReduceAction485 */,
+  42 /* Color of ReduceAction485 */,
+  43 /* Property init */,
+  767 /* Id of ReduceAction486 */,
+  3 /* Color of ReduceAction486 */,
+  42 /* Color of ReduceAction486 */,
+  43 /* Property init */,
+  763 /* Id of ReduceAction487 */,
+  3 /* Color of ReduceAction487 */,
+  42 /* Color of ReduceAction487 */,
+  43 /* Property init */,
+  759 /* Id of ReduceAction488 */,
+  3 /* Color of ReduceAction488 */,
+  42 /* Color of ReduceAction488 */,
+  43 /* Property init */,
+  755 /* Id of ReduceAction489 */,
+  3 /* Color of ReduceAction489 */,
+  42 /* Color of ReduceAction489 */,
+  43 /* Property init */,
+  747 /* Id of ReduceAction490 */,
+  3 /* Color of ReduceAction490 */,
+  42 /* Color of ReduceAction490 */,
+  43 /* Property init */,
+  743 /* Id of ReduceAction491 */,
+  3 /* Color of ReduceAction491 */,
+  42 /* Color of ReduceAction491 */,
+  43 /* Property init */,
+  739 /* Id of ReduceAction492 */,
+  3 /* Color of ReduceAction492 */,
+  42 /* Color of ReduceAction492 */,
+  43 /* Property init */,
+  735 /* Id of ReduceAction493 */,
+  3 /* Color of ReduceAction493 */,
+  42 /* Color of ReduceAction493 */,
+  43 /* Property init */,
+  731 /* Id of ReduceAction494 */,
+  3 /* Color of ReduceAction494 */,
+  42 /* Color of ReduceAction494 */,
+  43 /* Property init */,
+  727 /* Id of ReduceAction495 */,
+  3 /* Color of ReduceAction495 */,
+  42 /* Color of ReduceAction495 */,
+  43 /* Property init */,
+  723 /* Id of ReduceAction496 */,
+  3 /* Color of ReduceAction496 */,
+  42 /* Color of ReduceAction496 */,
+  43 /* Property init */,
+  719 /* Id of ReduceAction497 */,
+  3 /* Color of ReduceAction497 */,
+  42 /* Color of ReduceAction497 */,
+  43 /* Property init */,
+  715 /* Id of ReduceAction498 */,
+  3 /* Color of ReduceAction498 */,
+  42 /* Color of ReduceAction498 */,
+  43 /* Property init */,
+  711 /* Id of ReduceAction499 */,
+  3 /* Color of ReduceAction499 */,
+  42 /* Color of ReduceAction499 */,
+  43 /* Property init */,
+  699 /* Id of ReduceAction500 */,
+  3 /* Color of ReduceAction500 */,
+  42 /* Color of ReduceAction500 */,
+  43 /* Property init */,
+  695 /* Id of ReduceAction501 */,
+  3 /* Color of ReduceAction501 */,
+  42 /* Color of ReduceAction501 */,
+  43 /* Property init */,
+  691 /* Id of ReduceAction502 */,
+  3 /* Color of ReduceAction502 */,
+  42 /* Color of ReduceAction502 */,
+  43 /* Property init */,
+  687 /* Id of ReduceAction503 */,
+  3 /* Color of ReduceAction503 */,
+  42 /* Color of ReduceAction503 */,
+  43 /* Property init */,
+  683 /* Id of ReduceAction504 */,
+  3 /* Color of ReduceAction504 */,
+  42 /* Color of ReduceAction504 */,
+  43 /* Property init */,
+  679 /* Id of ReduceAction505 */,
+  3 /* Color of ReduceAction505 */,
+  42 /* Color of ReduceAction505 */,
+  43 /* Property init */,
+  675 /* Id of ReduceAction506 */,
+  3 /* Color of ReduceAction506 */,
+  42 /* Color of ReduceAction506 */,
+  43 /* Property init */,
+  671 /* Id of ReduceAction507 */,
+  3 /* Color of ReduceAction507 */,
+  42 /* Color of ReduceAction507 */,
+  43 /* Property init */,
+  667 /* Id of ReduceAction508 */,
+  3 /* Color of ReduceAction508 */,
+  42 /* Color of ReduceAction508 */,
+  43 /* Property init */,
+  663 /* Id of ReduceAction509 */,
+  3 /* Color of ReduceAction509 */,
+  42 /* Color of ReduceAction509 */,
+  43 /* Property init */,
+  655 /* Id of ReduceAction510 */,
+  3 /* Color of ReduceAction510 */,
+  42 /* Color of ReduceAction510 */,
+  43 /* Property init */,
+  651 /* Id of ReduceAction511 */,
+  3 /* Color of ReduceAction511 */,
+  42 /* Color of ReduceAction511 */,
+  43 /* Property init */,
+  647 /* Id of ReduceAction512 */,
+  3 /* Color of ReduceAction512 */,
+  42 /* Color of ReduceAction512 */,
+  43 /* Property init */,
+  643 /* Id of ReduceAction513 */,
+  3 /* Color of ReduceAction513 */,
+  42 /* Color of ReduceAction513 */,
+  43 /* Property init */,
+  639 /* Id of ReduceAction514 */,
+  3 /* Color of ReduceAction514 */,
+  42 /* Color of ReduceAction514 */,
+  43 /* Property init */,
+  635 /* Id of ReduceAction515 */,
+  3 /* Color of ReduceAction515 */,
+  42 /* Color of ReduceAction515 */,
+  43 /* Property init */,
+  631 /* Id of ReduceAction516 */,
+  3 /* Color of ReduceAction516 */,
+  42 /* Color of ReduceAction516 */,
+  43 /* Property init */,
+  627 /* Id of ReduceAction517 */,
+  3 /* Color of ReduceAction517 */,
+  42 /* Color of ReduceAction517 */,
+  43 /* Property init */,
+  623 /* Id of ReduceAction518 */,
+  3 /* Color of ReduceAction518 */,
+  42 /* Color of ReduceAction518 */,
+  43 /* Property init */,
+  619 /* Id of ReduceAction519 */,
+  3 /* Color of ReduceAction519 */,
+  42 /* Color of ReduceAction519 */,
+  43 /* Property init */,
+  611 /* Id of ReduceAction520 */,
+  3 /* Color of ReduceAction520 */,
+  42 /* Color of ReduceAction520 */,
+  43 /* Property init */,
+  607 /* Id of ReduceAction521 */,
+  3 /* Color of ReduceAction521 */,
+  42 /* Color of ReduceAction521 */,
+  43 /* Property init */,
+  603 /* Id of ReduceAction522 */,
+  3 /* Color of ReduceAction522 */,
+  42 /* Color of ReduceAction522 */,
+  43 /* Property init */,
+  599 /* Id of ReduceAction523 */,
+  3 /* Color of ReduceAction523 */,
+  42 /* Color of ReduceAction523 */,
+  43 /* Property init */,
+  595 /* Id of ReduceAction524 */,
+  3 /* Color of ReduceAction524 */,
+  42 /* Color of ReduceAction524 */,
+  43 /* Property init */,
+  591 /* Id of ReduceAction525 */,
+  3 /* Color of ReduceAction525 */,
+  42 /* Color of ReduceAction525 */,
+  43 /* Property init */,
+  587 /* Id of ReduceAction526 */,
+  3 /* Color of ReduceAction526 */,
+  42 /* Color of ReduceAction526 */,
+  43 /* Property init */,
+  583 /* Id of ReduceAction527 */,
+  3 /* Color of ReduceAction527 */,
+  42 /* Color of ReduceAction527 */,
+  43 /* Property init */,
+  579 /* Id of ReduceAction528 */,
+  3 /* Color of ReduceAction528 */,
+  42 /* Color of ReduceAction528 */,
+  43 /* Property init */,
+  575 /* Id of ReduceAction529 */,
+  3 /* Color of ReduceAction529 */,
+  42 /* Color of ReduceAction529 */,
+  43 /* Property init */,
+  567 /* Id of ReduceAction530 */,
+  3 /* Color of ReduceAction530 */,
+  42 /* Color of ReduceAction530 */,
+  43 /* Property init */,
+  563 /* Id of ReduceAction531 */,
+  3 /* Color of ReduceAction531 */,
+  42 /* Color of ReduceAction531 */,
+  43 /* Property init */,
+  559 /* Id of ReduceAction532 */,
+  3 /* Color of ReduceAction532 */,
+  42 /* Color of ReduceAction532 */,
+  43 /* Property init */,
+  555 /* Id of ReduceAction533 */,
+  3 /* Color of ReduceAction533 */,
+  42 /* Color of ReduceAction533 */,
+  43 /* Property init */,
+  551 /* Id of ReduceAction534 */,
+  3 /* Color of ReduceAction534 */,
+  42 /* Color of ReduceAction534 */,
+  43 /* Property init */,
+  547 /* Id of ReduceAction535 */,
+  3 /* Color of ReduceAction535 */,
+  42 /* Color of ReduceAction535 */,
+  43 /* Property init */,
+  543 /* Id of ReduceAction536 */,
+  3 /* Color of ReduceAction536 */,
+  42 /* Color of ReduceAction536 */,
+  43 /* Property init */,
+  539 /* Id of ReduceAction537 */,
+  3 /* Color of ReduceAction537 */,
+  42 /* Color of ReduceAction537 */,
+  43 /* Property init */,
+  535 /* Id of ReduceAction538 */,
+  3 /* Color of ReduceAction538 */,
+  42 /* Color of ReduceAction538 */,
+  43 /* Property init */,
+  531 /* Id of ReduceAction539 */,
+  3 /* Color of ReduceAction539 */,
+  42 /* Color of ReduceAction539 */,
+  43 /* Property init */,
+  523 /* Id of ReduceAction540 */,
+  3 /* Color of ReduceAction540 */,
+  42 /* Color of ReduceAction540 */,
+  43 /* Property init */,
+  519 /* Id of ReduceAction541 */,
+  3 /* Color of ReduceAction541 */,
+  42 /* Color of ReduceAction541 */,
+  43 /* Property init */,
+  515 /* Id of ReduceAction542 */,
+  3 /* Color of ReduceAction542 */,
+  42 /* Color of ReduceAction542 */,
+  43 /* Property init */,
+  511 /* Id of ReduceAction543 */,
+  3 /* Color of ReduceAction543 */,
+  42 /* Color of ReduceAction543 */,
+  43 /* Property init */,
+  507 /* Id of ReduceAction544 */,
+  3 /* Color of ReduceAction544 */,
+  42 /* Color of ReduceAction544 */,
+  43 /* Property init */,
+  503 /* Id of ReduceAction545 */,
+  3 /* Color of ReduceAction545 */,
+  42 /* Color of ReduceAction545 */,
+  43 /* Property init */,
+  499 /* Id of ReduceAction546 */,
+  3 /* Color of ReduceAction546 */,
+  42 /* Color of ReduceAction546 */,
+  43 /* Property init */,
+  495 /* Id of ReduceAction547 */,
+  3 /* Color of ReduceAction547 */,
+  42 /* Color of ReduceAction547 */,
+  43 /* Property init */,
+  491 /* Id of ReduceAction548 */,
+  3 /* Color of ReduceAction548 */,
+  42 /* Color of ReduceAction548 */,
+  43 /* Property init */,
+  487 /* Id of ReduceAction549 */,
+  3 /* Color of ReduceAction549 */,
+  42 /* Color of ReduceAction549 */,
+  43 /* Property init */,
+  479 /* Id of ReduceAction550 */,
+  3 /* Color of ReduceAction550 */,
+  42 /* Color of ReduceAction550 */,
+  43 /* Property init */,
+  475 /* Id of ReduceAction551 */,
+  3 /* Color of ReduceAction551 */,
+  42 /* Color of ReduceAction551 */,
+  43 /* Property init */,
+  471 /* Id of ReduceAction552 */,
+  3 /* Color of ReduceAction552 */,
+  42 /* Color of ReduceAction552 */,
+  43 /* Property init */,
+  467 /* Id of ReduceAction553 */,
+  3 /* Color of ReduceAction553 */,
+  42 /* Color of ReduceAction553 */,
+  43 /* Property init */,
+  463 /* Id of ReduceAction554 */,
+  3 /* Color of ReduceAction554 */,
+  42 /* Color of ReduceAction554 */,
+  43 /* Property init */,
+  459 /* Id of ReduceAction555 */,
+  3 /* Color of ReduceAction555 */,
+  42 /* Color of ReduceAction555 */,
+  43 /* Property init */,
+  455 /* Id of ReduceAction556 */,
+  3 /* Color of ReduceAction556 */,
+  42 /* Color of ReduceAction556 */,
+  43 /* Property init */,
+  451 /* Id of ReduceAction557 */,
+  3 /* Color of ReduceAction557 */,
+  42 /* Color of ReduceAction557 */,
+  43 /* Property init */,
+  447 /* Id of ReduceAction558 */,
+  3 /* Color of ReduceAction558 */,
+  42 /* Color of ReduceAction558 */,
+  43 /* Property init */,
+  443 /* Id of ReduceAction559 */,
+  3 /* Color of ReduceAction559 */,
+  42 /* Color of ReduceAction559 */,
+  43 /* Property init */,
+  435 /* Id of ReduceAction560 */,
+  3 /* Color of ReduceAction560 */,
+  42 /* Color of ReduceAction560 */,
+  43 /* Property init */,
+  431 /* Id of ReduceAction561 */,
+  3 /* Color of ReduceAction561 */,
+  42 /* Color of ReduceAction561 */,
+  43 /* Property init */,
+  427 /* Id of ReduceAction562 */,
+  3 /* Color of ReduceAction562 */,
+  42 /* Color of ReduceAction562 */,
+  43 /* Property init */,
+  423 /* Id of ReduceAction563 */,
+  3 /* Color of ReduceAction563 */,
+  42 /* Color of ReduceAction563 */,
+  43 /* Property init */,
+  419 /* Id of ReduceAction564 */,
+  3 /* Color of ReduceAction564 */,
+  42 /* Color of ReduceAction564 */,
+  43 /* Property init */,
+  415 /* Id of ReduceAction565 */,
+  3 /* Color of ReduceAction565 */,
+  42 /* Color of ReduceAction565 */,
+  43 /* Property init */,
+  411 /* Id of ReduceAction566 */,
+  3 /* Color of ReduceAction566 */,
+  42 /* Color of ReduceAction566 */,
+  43 /* Property init */,
+  407 /* Id of ReduceAction567 */,
+  3 /* Color of ReduceAction567 */,
+  42 /* Color of ReduceAction567 */,
+  43 /* Property init */,
+  403 /* Id of ReduceAction568 */,
+  3 /* Color of ReduceAction568 */,
+  42 /* Color of ReduceAction568 */,
+  43 /* Property init */,
+};
+const int SFT_parser_prod[258] = {
+  1 /* Property _parent */,
+  47 /* Property parent */,
+  48 /* Property parent= */,
+  49 /* Property remove_child */,
+  50 /* Property replace_child */,
+  51 /* Property replace_with */,
+  52 /* Property visit_all */,
+  53 /* Property visit_all_reverse */,
+  54 /* Property locate */,
+  55 /* Property printl */,
+  2 /* Property _first_token */,
+  3 /* Property _last_token */,
+  60 /* Property first_token */,
+  61 /* Property first_token= */,
+  62 /* Property last_token */,
+  63 /* Property last_token= */,
+  64 /* Property replace_with */,
+  7 /* Id of Visitor */,
+  2 /* Color of Visitor */,
+  40 /* Color of Visitor */,
+  41 /* Property visit */,
+  68 /* Property empty_init */,
+  69 /* Property init_amodule */,
+  67 /* Property empty_init */,
+  68 /* Property init_apackagedecl */,
+  69 /* Property empty_init */,
+  70 /* Property init_aimport */,
+  69 /* Property empty_init */,
+  70 /* Property init_anoimport */,
+  68 /* Property empty_init */,
+  69 /* Property init_apublicvisibility */,
+  68 /* Property empty_init */,
+  69 /* Property init_aprivatevisibility */,
+  68 /* Property empty_init */,
+  69 /* Property init_aprotectedvisibility */,
+  68 /* Property empty_init */,
+  69 /* Property init_aintrudevisibility */,
+  75 /* Property empty_init */,
+  76 /* Property init_aclassdef */,
+  74 /* Property empty_init */,
+  75 /* Property init_atopclassdef */,
+  74 /* Property empty_init */,
+  75 /* Property init_amainclassdef */,
+  70 /* Property empty_init */,
+  71 /* Property init_aconcreteclasskind */,
+  70 /* Property empty_init */,
+  71 /* Property init_aabstractclasskind */,
+  70 /* Property empty_init */,
+  71 /* Property init_ainterfaceclasskind */,
+  70 /* Property empty_init */,
+  71 /* Property init_auniversalclasskind */,
+  69 /* Property empty_init */,
+  70 /* Property init_aformaldef */,
+  71 /* Property empty_init */,
+  72 /* Property init_asuperclass */,
+  79 /* Property empty_init */,
+  80 /* Property init_aattrpropdef */,
+  79 /* Property empty_init */,
+  80 /* Property init_amethpropdef */,
+  92 /* Property empty_init */,
+  93 /* Property init_adeferredmethpropdef */,
+  92 /* Property empty_init */,
+  93 /* Property init_ainternmethpropdef */,
+  92 /* Property empty_init */,
+  93 /* Property init_aexternmethpropdef */,
+  93 /* Property empty_init */,
+  94 /* Property init_aconcretemethpropdef */,
+  103 /* Property empty_init */,
+  104 /* Property init_aconcreteinitpropdef */,
+  100 /* Property empty_init */,
+  101 /* Property init_amainmethpropdef */,
+  77 /* Property empty_init */,
+  78 /* Property init_atypepropdef */,
+  69 /* Property empty_init */,
+  70 /* Property init_areadable */,
+  69 /* Property empty_init */,
+  70 /* Property init_awriteable */,
+  69 /* Property empty_init */,
+  70 /* Property init_aidmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_aplusmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_aminusmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_astarmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_aslashmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_apercentmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_aeqmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_anemethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_alemethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_agemethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_altmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_agtmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_abramethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_astarshipmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_aassignmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_abraassignmethid */,
+  69 /* Property empty_init */,
+  70 /* Property init_asignature */,
+  77 /* Property empty_init */,
+  78 /* Property init_aparam */,
+  73 /* Property empty_init */,
+  74 /* Property init_atype */,
+  75 /* Property empty_init */,
+  76 /* Property init_ablockexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_avardeclexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_areturnexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_abreakexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aabortexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_acontinueexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_adoexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aifexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aifexprexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_awhileexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_aforexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aforvardeclexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aassertexpr */,
+  79 /* Property empty_init */,
+  80 /* Property init_aonceexpr */,
+  96 /* Property empty_init */,
+  97 /* Property init_asendexpr */,
+  101 /* Property empty_init */,
+  102 /* Property init_abinopexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aorexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aandexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_anotexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aeqexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aeeexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aneexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_altexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aleexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_agtexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_ageexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aisaexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aplusexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aminusexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_astarshipexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_astarexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_aslashexpr */,
+  106 /* Property empty_init */,
+  107 /* Property init_apercentexpr */,
+  101 /* Property empty_init */,
+  102 /* Property init_auminusexpr */,
+  93 /* Property empty_init */,
+  94 /* Property init_anewexpr */,
+  94 /* Property empty_init */,
+  95 /* Property init_aattrexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aattrassignexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aattrreassignexpr */,
+  108 /* Property empty_init */,
+  109 /* Property init_acallexpr */,
+  77 /* Property empty_init */,
+  78 /* Property init_acallassignexpr */,
+  108 /* Property empty_init */,
+  109 /* Property init_acallreassignexpr */,
+  94 /* Property empty_init */,
+  95 /* Property init_asuperexpr */,
+  101 /* Property empty_init */,
+  102 /* Property init_ainitexpr */,
+  104 /* Property empty_init */,
+  105 /* Property init_abraexpr */,
+  77 /* Property empty_init */,
+  78 /* Property init_abraassignexpr */,
+  104 /* Property empty_init */,
+  105 /* Property init_abrareassignexpr */,
+  80 /* Property empty_init */,
+  81 /* Property init_avarexpr */,
+  85 /* Property empty_init */,
+  86 /* Property init_avarassignexpr */,
+  87 /* Property empty_init */,
+  88 /* Property init_avarreassignexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_arangeexpr */,
+  83 /* Property empty_init */,
+  84 /* Property init_acrangeexpr */,
+  83 /* Property empty_init */,
+  84 /* Property init_aorangeexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_aarrayexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aselfexpr */,
+  80 /* Property empty_init */,
+  81 /* Property init_aimplicitselfexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_atrueexpr */,
+  76 /* Property empty_init */,
+  77 /* Property init_afalseexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_anullexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_aintexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_afloatexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_acharexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_astringexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_astartstringexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_amidstringexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_aendstringexpr */,
+  75 /* Property empty_init */,
+  76 /* Property init_asuperstringexpr */,
+  78 /* Property empty_init */,
+  79 /* Property init_aparexpr */,
+  68 /* Property empty_init */,
+  69 /* Property init_aplusassignop */,
+  68 /* Property empty_init */,
+  69 /* Property init_aminusassignop */,
+  67 /* Property empty_init */,
+  68 /* Property init_aqualified */,
+  67 /* Property empty_init */,
+  68 /* Property init_adoc */,
+  66 /* Property init */,
+};
+const int SFT_lexer[124] = {
+  3 /* Property _text */,
+  4 /* Property _filename */,
+  5 /* Property _line */,
+  6 /* Property _pos */,
+  61 /* Property text */,
+  62 /* Property text= */,
+  63 /* Property filename */,
+  64 /* Property line */,
+  65 /* Property pos */,
+  66 /* Property parser_index */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  68 /* Property init */,
+  7 /* Property _message */,
+  70 /* Property message */,
+  71 /* Property message= */,
+  72 /* Property init_error */,
+  127 /* Id of Lexer */,
+  2 /* Color of Lexer */,
+  1 /* Property _token */,
+  2 /* Property _state */,
+  3 /* Property _filename */,
+  4 /* Property _stream */,
+  5 /* Property _stream_buf */,
+  6 /* Property _stream_pos */,
+  7 /* Property _line */,
+  8 /* Property _pos */,
+  9 /* Property _cr */,
+  10 /* Property _eof */,
+  11 /* Property _text */,
+  12 /* Property _goto_table */,
+  13 /* Property _accept_table */,
+  40 /* Color of Lexer */,
+  41 /* Property filename */,
+  42 /* Property state_initial */,
+  43 /* Property init */,
+  44 /* Property peek */,
+  45 /* Property next */,
+  46 /* Property get_token */,
+  47 /* Property get_char */,
+  48 /* Property push_back */,
+  49 /* Property build_goto_table */,
+  50 /* Property nil_array */,
+  51 /* Property build_accept_table */,
+};
+const int SFT_parser_nodes[1242] = {
+  63 /* Id of PNode */,
+  2 /* Color of PNode */,
+  56 /* Color of PNode */,
+  183 /* Id of Token */,
+  3 /* Color of Token */,
+  67 /* Color of Token */,
+  2495 /* Id of Prod */,
+  3 /* Color of Prod */,
+  65 /* Color of Prod */,
+  2959 /* Id of TEol */,
+  4 /* Color of TEol */,
+  69 /* Color of TEol */,
+  2983 /* Id of TComment */,
+  4 /* Color of TComment */,
+  69 /* Color of TComment */,
+  2819 /* Id of TKwpackage */,
+  4 /* Color of TKwpackage */,
+  69 /* Color of TKwpackage */,
+  2875 /* Id of TKwimport */,
+  4 /* Color of TKwimport */,
+  69 /* Color of TKwimport */,
+  2911 /* Id of TKwclass */,
+  4 /* Color of TKwclass */,
+  69 /* Color of TKwclass */,
+  2931 /* Id of TKwabstract */,
+  4 /* Color of TKwabstract */,
+  69 /* Color of TKwabstract */,
+  2863 /* Id of TKwinterface */,
+  4 /* Color of TKwinterface */,
+  69 /* Color of TKwinterface */,
+  2771 /* Id of TKwuniversal */,
+  4 /* Color of TKwuniversal */,
+  69 /* Color of TKwuniversal */,
+  2791 /* Id of TKwspecial */,
+  4 /* Color of TKwspecial */,
+  69 /* Color of TKwspecial */,
+  2895 /* Id of TKwend */,
+  4 /* Color of TKwend */,
+  69 /* Color of TKwend */,
+  2843 /* Id of TKwmeth */,
+  4 /* Color of TKwmeth */,
+  69 /* Color of TKwmeth */,
+  2775 /* Id of TKwtype */,
+  4 /* Color of TKwtype */,
+  69 /* Color of TKwtype */,
+  2919 /* Id of TKwattr */,
+  4 /* Color of TKwattr */,
+  69 /* Color of TKwattr */,
+  2867 /* Id of TKwinit */,
+  4 /* Color of TKwinit */,
+  69 /* Color of TKwinit */,
+  2803 /* Id of TKwredef */,
+  4 /* Color of TKwredef */,
+  69 /* Color of TKwredef */,
+  2851 /* Id of TKwis */,
+  4 /* Color of TKwis */,
+  69 /* Color of TKwis */,
+  2903 /* Id of TKwdo */,
+  4 /* Color of TKwdo */,
+  69 /* Color of TKwdo */,
+  2807 /* Id of TKwreadable */,
+  4 /* Color of TKwreadable */,
+  69 /* Color of TKwreadable */,
+  2759 /* Id of TKwwritable */,
+  4 /* Color of TKwwritable */,
+  69 /* Color of TKwwritable */,
+  2767 /* Id of TKwvar */,
+  4 /* Color of TKwvar */,
+  69 /* Color of TKwvar */,
+  2859 /* Id of TKwintern */,
+  4 /* Color of TKwintern */,
+  69 /* Color of TKwintern */,
+  2891 /* Id of TKwextern */,
+  4 /* Color of TKwextern */,
+  69 /* Color of TKwextern */,
+  2811 /* Id of TKwprotected */,
+  4 /* Color of TKwprotected */,
+  69 /* Color of TKwprotected */,
+  2815 /* Id of TKwprivate */,
+  4 /* Color of TKwprivate */,
+  69 /* Color of TKwprivate */,
+  2855 /* Id of TKwintrude */,
+  4 /* Color of TKwintrude */,
+  69 /* Color of TKwintrude */,
+  2879 /* Id of TKwif */,
+  4 /* Color of TKwif */,
+  69 /* Color of TKwif */,
+  2783 /* Id of TKwthen */,
+  4 /* Color of TKwthen */,
+  69 /* Color of TKwthen */,
+  2899 /* Id of TKwelse */,
+  4 /* Color of TKwelse */,
+  69 /* Color of TKwelse */,
+  2763 /* Id of TKwwhile */,
+  4 /* Color of TKwwhile */,
+  69 /* Color of TKwwhile */,
+  2883 /* Id of TKwfor */,
+  4 /* Color of TKwfor */,
+  69 /* Color of TKwfor */,
+  2871 /* Id of TKwin */,
+  4 /* Color of TKwin */,
+  69 /* Color of TKwin */,
+  2927 /* Id of TKwand */,
+  4 /* Color of TKwand */,
+  69 /* Color of TKwand */,
+  2823 /* Id of TKwor */,
+  4 /* Color of TKwor */,
+  69 /* Color of TKwor */,
+  2835 /* Id of TKwnot */,
+  4 /* Color of TKwnot */,
+  69 /* Color of TKwnot */,
+  2799 /* Id of TKwreturn */,
+  4 /* Color of TKwreturn */,
+  69 /* Color of TKwreturn */,
+  2907 /* Id of TKwcontinue */,
+  4 /* Color of TKwcontinue */,
+  69 /* Color of TKwcontinue */,
+  2915 /* Id of TKwbreak */,
+  4 /* Color of TKwbreak */,
+  69 /* Color of TKwbreak */,
+  2935 /* Id of TKwabort */,
+  4 /* Color of TKwabort */,
+  69 /* Color of TKwabort */,
+  2923 /* Id of TKwassert */,
+  4 /* Color of TKwassert */,
+  69 /* Color of TKwassert */,
+  2839 /* Id of TKwnew */,
+  4 /* Color of TKwnew */,
+  69 /* Color of TKwnew */,
+  2847 /* Id of TKwisa */,
+  4 /* Color of TKwisa */,
+  69 /* Color of TKwisa */,
+  2827 /* Id of TKwonce */,
+  4 /* Color of TKwonce */,
+  69 /* Color of TKwonce */,
+  2787 /* Id of TKwsuper */,
+  4 /* Color of TKwsuper */,
+  69 /* Color of TKwsuper */,
+  2795 /* Id of TKwself */,
+  4 /* Color of TKwself */,
+  69 /* Color of TKwself */,
+  2779 /* Id of TKwtrue */,
+  4 /* Color of TKwtrue */,
+  69 /* Color of TKwtrue */,
+  2887 /* Id of TKwfalse */,
+  4 /* Color of TKwfalse */,
+  69 /* Color of TKwfalse */,
+  2831 /* Id of TKwnull */,
+  4 /* Color of TKwnull */,
+  69 /* Color of TKwnull */,
+  2723 /* Id of TOpar */,
+  4 /* Color of TOpar */,
+  69 /* Color of TOpar */,
+  2979 /* Id of TCpar */,
+  4 /* Color of TCpar */,
+  69 /* Color of TCpar */,
+  2727 /* Id of TObra */,
+  4 /* Color of TObra */,
+  69 /* Color of TObra */,
+  3003 /* Id of TCbra */,
+  4 /* Color of TCbra */,
+  69 /* Color of TCbra */,
+  2987 /* Id of TComma */,
+  4 /* Color of TComma */,
+  69 /* Color of TComma */,
+  2991 /* Id of TColumn */,
+  4 /* Color of TColumn */,
+  69 /* Color of TColumn */,
+  2707 /* Id of TQuad */,
+  4 /* Color of TQuad */,
+  69 /* Color of TQuad */,
+  3011 /* Id of TAssign */,
+  4 /* Color of TAssign */,
+  69 /* Color of TAssign */,
+  2711 /* Id of TPluseq */,
+  4 /* Color of TPluseq */,
+  69 /* Color of TPluseq */,
+  2739 /* Id of TMinuseq */,
+  4 /* Color of TMinuseq */,
+  69 /* Color of TMinuseq */,
+  2967 /* Id of TDotdotdot */,
+  4 /* Color of TDotdotdot */,
+  69 /* Color of TDotdotdot */,
+  2971 /* Id of TDotdot */,
+  4 /* Color of TDotdot */,
+  69 /* Color of TDotdot */,
+  2975 /* Id of TDot */,
+  4 /* Color of TDot */,
+  69 /* Color of TDot */,
+  2715 /* Id of TPlus */,
+  4 /* Color of TPlus */,
+  69 /* Color of TPlus */,
+  2743 /* Id of TMinus */,
+  4 /* Color of TMinus */,
+  69 /* Color of TMinus */,
+  2699 /* Id of TStar */,
+  4 /* Color of TStar */,
+  69 /* Color of TStar */,
+  2703 /* Id of TSlash */,
+  4 /* Color of TSlash */,
+  69 /* Color of TSlash */,
+  2719 /* Id of TPercent */,
+  4 /* Color of TPercent */,
+  69 /* Color of TPercent */,
+  2955 /* Id of TEq */,
+  4 /* Color of TEq */,
+  69 /* Color of TEq */,
+  2735 /* Id of TNe */,
+  4 /* Color of TNe */,
+  69 /* Color of TNe */,
+  2751 /* Id of TLt */,
+  4 /* Color of TLt */,
+  69 /* Color of TLt */,
+  2755 /* Id of TLe */,
+  4 /* Color of TLe */,
+  69 /* Color of TLe */,
+  2943 /* Id of TGt */,
+  4 /* Color of TGt */,
+  69 /* Color of TGt */,
+  2947 /* Id of TGe */,
+  4 /* Color of TGe */,
+  69 /* Color of TGe */,
+  2695 /* Id of TStarship */,
+  4 /* Color of TStarship */,
+  69 /* Color of TStarship */,
+  2995 /* Id of TClassid */,
+  4 /* Color of TClassid */,
+  69 /* Color of TClassid */,
+  2939 /* Id of TId */,
+  4 /* Color of TId */,
+  69 /* Color of TId */,
+  3007 /* Id of TAttrid */,
+  4 /* Color of TAttrid */,
+  69 /* Color of TAttrid */,
+  2731 /* Id of TNumber */,
+  4 /* Color of TNumber */,
+  69 /* Color of TNumber */,
+  2951 /* Id of TFloat */,
+  4 /* Color of TFloat */,
+  69 /* Color of TFloat */,
+  2999 /* Id of TChar */,
+  4 /* Color of TChar */,
+  69 /* Color of TChar */,
+  2687 /* Id of TString */,
+  4 /* Color of TString */,
+  69 /* Color of TString */,
+  2691 /* Id of TStartString */,
+  4 /* Color of TStartString */,
+  69 /* Color of TStartString */,
+  2747 /* Id of TMidString */,
+  4 /* Color of TMidString */,
+  69 /* Color of TMidString */,
+  2963 /* Id of TEndString */,
+  4 /* Color of TEndString */,
+  69 /* Color of TEndString */,
+  3195 /* Id of EOF */,
+  4 /* Color of EOF */,
+  69 /* Color of EOF */,
+  3267 /* Id of PError */,
+  5 /* Color of PError */,
+  73 /* Color of PError */,
+  3063 /* Id of PModule */,
+  4 /* Color of PModule */,
+  66 /* Color of PModule */,
+  3059 /* Id of PPackagedecl */,
+  4 /* Color of PPackagedecl */,
+  66 /* Color of PPackagedecl */,
+  3071 /* Id of PImport */,
+  4 /* Color of PImport */,
+  68 /* Color of PImport */,
+  3031 /* Id of PVisibility */,
+  4 /* Color of PVisibility */,
+  67 /* Color of PVisibility */,
+  3091 /* Id of PClassdef */,
+  4 /* Color of PClassdef */,
+  72 /* Color of PClassdef */,
+  3087 /* Id of PClasskind */,
+  4 /* Color of PClasskind */,
+  69 /* Color of PClasskind */,
+  3075 /* Id of PFormaldef */,
+  4 /* Color of PFormaldef */,
+  66 /* Color of PFormaldef */,
+  3039 /* Id of PSuperclass */,
+  4 /* Color of PSuperclass */,
+  66 /* Color of PSuperclass */,
+  3051 /* Id of PPropdef */,
+  4 /* Color of PPropdef */,
+  4 /* Property _n_doc */,
+  70 /* Color of PPropdef */,
+  71 /* Property n_doc */,
+  72 /* Property n_doc= */,
+  3099 /* Id of PAble */,
+  4 /* Color of PAble */,
+  4 /* Property _n_kwredef */,
+  66 /* Color of PAble */,
+  67 /* Property n_kwredef */,
+  68 /* Property n_kwredef= */,
+  3067 /* Id of PMethid */,
+  4 /* Color of PMethid */,
+  68 /* Color of PMethid */,
+  3043 /* Id of PSignature */,
+  4 /* Color of PSignature */,
+  67 /* Color of PSignature */,
+  3055 /* Id of PParam */,
+  4 /* Color of PParam */,
+  7 /* Property _n_id */,
+  8 /* Property _n_type */,
+  72 /* Color of PParam */,
+  73 /* Property n_id */,
+  74 /* Property n_id= */,
+  75 /* Property n_type */,
+  76 /* Property n_type= */,
+  3035 /* Id of PType */,
+  4 /* Color of PType */,
+  71 /* Color of PType */,
+  3079 /* Id of PExpr */,
+  4 /* Color of PExpr */,
+  70 /* Color of PExpr */,
+  3095 /* Id of PAssignOp */,
+  4 /* Color of PAssignOp */,
+  67 /* Color of PAssignOp */,
+  3047 /* Id of PQualified */,
+  4 /* Color of PQualified */,
+  66 /* Color of PQualified */,
+  3083 /* Id of PDoc */,
+  4 /* Color of PDoc */,
+  66 /* Color of PDoc */,
+  3447 /* Id of AModule */,
+  5 /* Color of AModule */,
+  4 /* Property _n_packagedecl */,
+  5 /* Property _n_imports */,
+  6 /* Property _n_classdefs */,
+  70 /* Color of AModule */,
+  71 /* Property n_packagedecl */,
+  72 /* Property n_packagedecl= */,
+  73 /* Property n_imports */,
+  74 /* Property n_imports= */,
+  75 /* Property n_classdefs */,
+  76 /* Property n_classdefs= */,
+  3431 /* Id of APackagedecl */,
+  5 /* Color of APackagedecl */,
+  4 /* Property _n_doc */,
+  5 /* Property _n_kwpackage */,
+  6 /* Property _n_id */,
+  69 /* Color of APackagedecl */,
+  70 /* Property n_doc */,
+  71 /* Property n_doc= */,
+  72 /* Property n_kwpackage */,
+  73 /* Property n_kwpackage= */,
+  74 /* Property n_id */,
+  75 /* Property n_id= */,
+  3487 /* Id of AImport */,
+  5 /* Color of AImport */,
+  4 /* Property _n_visibility */,
+  5 /* Property _n_kwimport */,
+  6 /* Property _n_id */,
+  71 /* Color of AImport */,
+  72 /* Property n_visibility */,
+  73 /* Property n_visibility= */,
+  74 /* Property n_kwimport */,
+  75 /* Property n_kwimport= */,
+  76 /* Property n_id */,
+  77 /* Property n_id= */,
+  3439 /* Id of ANoImport */,
+  5 /* Color of ANoImport */,
+  4 /* Property _n_visibility */,
+  5 /* Property _n_kwimport */,
+  6 /* Property _n_kwend */,
+  71 /* Color of ANoImport */,
+  72 /* Property n_visibility */,
+  73 /* Property n_visibility= */,
+  74 /* Property n_kwimport */,
+  75 /* Property n_kwimport= */,
+  76 /* Property n_kwend */,
+  77 /* Property n_kwend= */,
+  3399 /* Id of APublicVisibility */,
+  5 /* Color of APublicVisibility */,
+  70 /* Color of APublicVisibility */,
+  3411 /* Id of APrivateVisibility */,
+  5 /* Color of APrivateVisibility */,
+  4 /* Property _n_kwprivate */,
+  70 /* Color of APrivateVisibility */,
+  71 /* Property n_kwprivate */,
+  72 /* Property n_kwprivate= */,
+  3407 /* Id of AProtectedVisibility */,
+  5 /* Color of AProtectedVisibility */,
+  4 /* Property _n_kwprotected */,
+  70 /* Color of AProtectedVisibility */,
+  71 /* Property n_kwprotected */,
+  72 /* Property n_kwprotected= */,
+  3475 /* Id of AIntrudeVisibility */,
+  5 /* Color of AIntrudeVisibility */,
+  4 /* Property _n_kwintrude */,
+  70 /* Color of AIntrudeVisibility */,
+  71 /* Property n_kwintrude */,
+  72 /* Property n_kwintrude= */,
+  3543 /* Id of AClassdef */,
+  5 /* Color of AClassdef */,
+  5 /* Property _n_doc */,
+  6 /* Property _n_kwredef */,
+  7 /* Property _n_visibility */,
+  8 /* Property _n_classkind */,
+  9 /* Property _n_id */,
+  10 /* Property _n_formaldefs */,
+  11 /* Property _n_superclasses */,
+  12 /* Property _n_propdefs */,
+  77 /* Color of AClassdef */,
+  78 /* Property n_doc */,
+  79 /* Property n_doc= */,
+  80 /* Property n_kwredef */,
+  81 /* Property n_kwredef= */,
+  82 /* Property n_visibility */,
+  83 /* Property n_visibility= */,
+  84 /* Property n_classkind */,
+  85 /* Property n_classkind= */,
+  86 /* Property n_id */,
+  87 /* Property n_id= */,
+  88 /* Property n_formaldefs */,
+  89 /* Property n_formaldefs= */,
+  90 /* Property n_superclasses */,
+  91 /* Property n_superclasses= */,
+  92 /* Property n_propdefs */,
+  93 /* Property n_propdefs= */,
+  3343 /* Id of ATopClassdef */,
+  5 /* Color of ATopClassdef */,
+  5 /* Property _n_propdefs */,
+  76 /* Color of ATopClassdef */,
+  77 /* Property n_propdefs */,
+  78 /* Property n_propdefs= */,
+  3463 /* Id of AMainClassdef */,
+  5 /* Color of AMainClassdef */,
+  5 /* Property _n_propdefs */,
+  76 /* Color of AMainClassdef */,
+  77 /* Property n_propdefs */,
+  78 /* Property n_propdefs= */,
+  3539 /* Id of AConcreteClasskind */,
+  5 /* Color of AConcreteClasskind */,
+  4 /* Property _n_kwclass */,
+  72 /* Color of AConcreteClasskind */,
+  73 /* Property n_kwclass */,
+  74 /* Property n_kwclass= */,
+  3595 /* Id of AAbstractClasskind */,
+  5 /* Color of AAbstractClasskind */,
+  4 /* Property _n_kwabstract */,
+  5 /* Property _n_kwclass */,
+  72 /* Color of AAbstractClasskind */,
+  73 /* Property n_kwabstract */,
+  74 /* Property n_kwabstract= */,
+  75 /* Property n_kwclass */,
+  76 /* Property n_kwclass= */,
+  3479 /* Id of AInterfaceClasskind */,
+  5 /* Color of AInterfaceClasskind */,
+  4 /* Property _n_kwinterface */,
+  72 /* Color of AInterfaceClasskind */,
+  73 /* Property n_kwinterface */,
+  74 /* Property n_kwinterface= */,
+  3331 /* Id of AUniversalClasskind */,
+  5 /* Color of AUniversalClasskind */,
+  4 /* Property _n_kwuniversal */,
+  72 /* Color of AUniversalClasskind */,
+  73 /* Property n_kwuniversal */,
+  74 /* Property n_kwuniversal= */,
+  3511 /* Id of AFormaldef */,
+  5 /* Color of AFormaldef */,
+  5 /* Property _n_id */,
+  6 /* Property _n_type */,
+  71 /* Color of AFormaldef */,
+  72 /* Property n_id */,
+  73 /* Property n_id= */,
+  74 /* Property n_type */,
+  75 /* Property n_type= */,
+  3351 /* Id of ASuperclass */,
+  5 /* Color of ASuperclass */,
+  5 /* Property _n_kwspecial */,
+  6 /* Property _n_type */,
+  73 /* Color of ASuperclass */,
+  74 /* Property n_kwspecial */,
+  75 /* Property n_kwspecial= */,
+  76 /* Property n_type */,
+  77 /* Property n_type= */,
+  3571 /* Id of AAttrPropdef */,
+  5 /* Color of AAttrPropdef */,
+  8 /* Property _n_kwredef */,
+  9 /* Property _n_visibility */,
+  10 /* Property _n_kwattr */,
+  11 /* Property _n_id */,
+  12 /* Property _n_type */,
+  13 /* Property _n_readable */,
+  14 /* Property _n_writable */,
+  15 /* Property _n_expr */,
+  81 /* Color of AAttrPropdef */,
+  82 /* Property n_kwredef */,
+  83 /* Property n_kwredef= */,
+  84 /* Property n_visibility */,
+  85 /* Property n_visibility= */,
+  86 /* Property n_kwattr */,
+  87 /* Property n_kwattr= */,
+  88 /* Property n_id */,
+  89 /* Property n_id= */,
+  90 /* Property n_type */,
+  91 /* Property n_type= */,
+  92 /* Property n_readable */,
+  93 /* Property n_readable= */,
+  94 /* Property n_writable */,
+  95 /* Property n_writable= */,
+  96 /* Property n_expr */,
+  97 /* Property n_expr= */,
+  3459 /* Id of AMethPropdef */,
+  5 /* Color of AMethPropdef */,
+  7 /* Property _n_kwredef */,
+  8 /* Property _n_visibility */,
+  9 /* Property _n_methid */,
+  10 /* Property _n_signature */,
+  81 /* Color of AMethPropdef */,
+  82 /* Property n_kwredef */,
+  83 /* Property n_kwredef= */,
+  84 /* Property n_visibility */,
+  85 /* Property n_visibility= */,
+  86 /* Property n_methid */,
+  87 /* Property n_methid= */,
+  88 /* Property n_signature */,
+  89 /* Property n_signature= */,
+  3735 /* Id of ADeferredMethPropdef */,
+  6 /* Color of ADeferredMethPropdef */,
+  11 /* Property _n_kwmeth */,
+  94 /* Color of ADeferredMethPropdef */,
+  95 /* Property n_kwmeth */,
+  96 /* Property n_kwmeth= */,
+  3707 /* Id of AInternMethPropdef */,
+  6 /* Color of AInternMethPropdef */,
+  11 /* Property _n_kwmeth */,
+  94 /* Color of AInternMethPropdef */,
+  95 /* Property n_kwmeth */,
+  96 /* Property n_kwmeth= */,
+  3723 /* Id of AExternMethPropdef */,
+  6 /* Color of AExternMethPropdef */,
+  11 /* Property _n_kwmeth */,
+  12 /* Property _n_extern */,
+  94 /* Color of AExternMethPropdef */,
+  95 /* Property n_kwmeth */,
+  96 /* Property n_kwmeth= */,
+  97 /* Property n_extern */,
+  98 /* Property n_extern= */,
+  3747 /* Id of AConcreteMethPropdef */,
+  6 /* Color of AConcreteMethPropdef */,
+  11 /* Property _n_kwmeth */,
+  12 /* Property _n_block */,
+  95 /* Color of AConcreteMethPropdef */,
+  96 /* Property n_kwmeth */,
+  97 /* Property n_kwmeth= */,
+  98 /* Property n_block */,
+  99 /* Property n_block= */,
+  3799 /* Id of AConcreteInitPropdef */,
+  7 /* Color of AConcreteInitPropdef */,
+  15 /* Property _n_kwinit */,
+  105 /* Color of AConcreteInitPropdef */,
+  106 /* Property n_kwinit */,
+  107 /* Property n_kwinit= */,
+  3795 /* Id of AMainMethPropdef */,
+  7 /* Color of AMainMethPropdef */,
+  102 /* Color of AMainMethPropdef */,
+  3335 /* Id of ATypePropdef */,
+  5 /* Color of ATypePropdef */,
+  6 /* Property _n_kwredef */,
+  7 /* Property _n_visibility */,
+  8 /* Property _n_kwtype */,
+  9 /* Property _n_id */,
+  10 /* Property _n_type */,
+  79 /* Color of ATypePropdef */,
+  80 /* Property n_kwredef */,
+  81 /* Property n_kwredef= */,
+  82 /* Property n_visibility */,
+  83 /* Property n_visibility= */,
+  84 /* Property n_kwtype */,
+  85 /* Property n_kwtype= */,
+  86 /* Property n_id */,
+  87 /* Property n_id= */,
+  88 /* Property n_type */,
+  89 /* Property n_type= */,
+  3387 /* Id of AReadAble */,
+  5 /* Color of AReadAble */,
+  5 /* Property _n_kwreadable */,
+  71 /* Color of AReadAble */,
+  72 /* Property n_kwreadable */,
+  73 /* Property n_kwreadable= */,
+  3319 /* Id of AWriteAble */,
+  5 /* Color of AWriteAble */,
+  5 /* Property _n_kwwritable */,
+  71 /* Color of AWriteAble */,
+  72 /* Property n_kwwritable */,
+  73 /* Property n_kwwritable= */,
+  3499 /* Id of AIdMethid */,
+  5 /* Color of AIdMethid */,
+  5 /* Property _n_id */,
+  71 /* Color of AIdMethid */,
+  72 /* Property n_id */,
+  73 /* Property n_id= */,
+  3415 /* Id of APlusMethid */,
+  5 /* Color of APlusMethid */,
+  5 /* Property _n_plus */,
+  71 /* Color of APlusMethid */,
+  72 /* Property n_plus */,
+  73 /* Property n_plus= */,
+  3451 /* Id of AMinusMethid */,
+  5 /* Color of AMinusMethid */,
+  5 /* Property _n_minus */,
+  71 /* Color of AMinusMethid */,
+  72 /* Property n_minus */,
+  73 /* Property n_minus= */,
+  3363 /* Id of AStarMethid */,
+  5 /* Color of AStarMethid */,
+  5 /* Property _n_star */,
+  71 /* Color of AStarMethid */,
+  72 /* Property n_star */,
+  73 /* Property n_star= */,
+  3367 /* Id of ASlashMethid */,
+  5 /* Color of ASlashMethid */,
+  5 /* Property _n_slash */,
+  71 /* Color of ASlashMethid */,
+  72 /* Property n_slash */,
+  73 /* Property n_slash= */,
+  3423 /* Id of APercentMethid */,
+  5 /* Color of APercentMethid */,
+  5 /* Property _n_percent */,
+  71 /* Color of APercentMethid */,
+  72 /* Property n_percent */,
+  73 /* Property n_percent= */,
+  3523 /* Id of AEqMethid */,
+  5 /* Color of AEqMethid */,
+  5 /* Property _n_eq */,
+  71 /* Color of AEqMethid */,
+  72 /* Property n_eq */,
+  73 /* Property n_eq= */,
+  3443 /* Id of ANeMethid */,
+  5 /* Color of ANeMethid */,
+  5 /* Property _n_ne */,
+  71 /* Color of ANeMethid */,
+  72 /* Property n_ne */,
+  73 /* Property n_ne= */,
+  3471 /* Id of ALeMethid */,
+  5 /* Color of ALeMethid */,
+  5 /* Property _n_le */,
+  71 /* Color of ALeMethid */,
+  72 /* Property n_le */,
+  73 /* Property n_le= */,
+  3507 /* Id of AGeMethid */,
+  5 /* Color of AGeMethid */,
+  5 /* Property _n_ge */,
+  71 /* Color of AGeMethid */,
+  72 /* Property n_ge */,
+  73 /* Property n_ge= */,
+  3467 /* Id of ALtMethid */,
+  5 /* Color of ALtMethid */,
+  5 /* Property _n_lt */,
+  71 /* Color of ALtMethid */,
+  72 /* Property n_lt */,
+  73 /* Property n_lt= */,
+  3503 /* Id of AGtMethid */,
+  5 /* Color of AGtMethid */,
+  5 /* Property _n_gt */,
+  71 /* Color of AGtMethid */,
+  72 /* Property n_gt */,
+  73 /* Property n_gt= */,
+  3555 /* Id of ABraMethid */,
+  5 /* Color of ABraMethid */,
+  5 /* Property _n_obra */,
+  6 /* Property _n_cbra */,
+  71 /* Color of ABraMethid */,
+  72 /* Property n_obra */,
+  73 /* Property n_obra= */,
+  74 /* Property n_cbra */,
+  75 /* Property n_cbra= */,
+  3359 /* Id of AStarshipMethid */,
+  5 /* Color of AStarshipMethid */,
+  5 /* Property _n_starship */,
+  71 /* Color of AStarshipMethid */,
+  72 /* Property n_starship */,
+  73 /* Property n_starship= */,
+  3579 /* Id of AAssignMethid */,
+  5 /* Color of AAssignMethid */,
+  5 /* Property _n_id */,
+  6 /* Property _n_assign */,
+  71 /* Color of AAssignMethid */,
+  72 /* Property n_id */,
+  73 /* Property n_id= */,
+  74 /* Property n_assign */,
+  75 /* Property n_assign= */,
+  3551 /* Id of ABraassignMethid */,
+  5 /* Color of ABraassignMethid */,
+  5 /* Property _n_obra */,
+  6 /* Property _n_cbra */,
+  7 /* Property _n_assign */,
+  71 /* Color of ABraassignMethid */,
+  72 /* Property n_obra */,
+  73 /* Property n_obra= */,
+  74 /* Property n_cbra */,
+  75 /* Property n_cbra= */,
+  76 /* Property n_assign */,
+  77 /* Property n_assign= */,
+  3371 /* Id of ASignature */,
+  5 /* Color of ASignature */,
+  4 /* Property _n_params */,
+  5 /* Property _n_type */,
+  71 /* Color of ASignature */,
+  72 /* Property n_params */,
+  73 /* Property n_params= */,
+  74 /* Property n_type */,
+  75 /* Property n_type= */,
+  3427 /* Id of AParam */,
+  5 /* Color of AParam */,
+  9 /* Property _n_dotdotdot */,
+  79 /* Color of AParam */,
+  80 /* Property n_dotdotdot */,
+  81 /* Property n_dotdotdot= */,
+  3339 /* Id of AType */,
+  5 /* Color of AType */,
+  7 /* Property _n_id */,
+  8 /* Property _n_types */,
+  75 /* Color of AType */,
+  76 /* Property n_id */,
+  77 /* Property n_id= */,
+  78 /* Property n_types */,
+  79 /* Property n_types= */,
+  3563 /* Id of ABlockExpr */,
+  5 /* Color of ABlockExpr */,
+  6 /* Property _n_expr */,
+  77 /* Color of ABlockExpr */,
+  78 /* Property n_expr */,
+  79 /* Property n_expr= */,
+  3323 /* Id of AVardeclExpr */,
+  5 /* Color of AVardeclExpr */,
+  7 /* Property _n_kwvar */,
+  8 /* Property _n_id */,
+  9 /* Property _n_type */,
+  10 /* Property _n_assign */,
+  11 /* Property _n_expr */,
+  78 /* Color of AVardeclExpr */,
+  79 /* Property n_kwvar */,
+  80 /* Property n_kwvar= */,
+  81 /* Property n_id */,
+  82 /* Property n_id= */,
+  83 /* Property n_type */,
+  84 /* Property n_type= */,
+  85 /* Property n_assign */,
+  86 /* Property n_assign= */,
+  87 /* Property n_expr */,
+  88 /* Property n_expr= */,
+  3379 /* Id of AReturnExpr */,
+  5 /* Color of AReturnExpr */,
+  6 /* Property _n_kwreturn */,
+  7 /* Property _n_expr */,
+  78 /* Color of AReturnExpr */,
+  79 /* Property n_kwreturn */,
+  80 /* Property n_kwreturn= */,
+  81 /* Property n_expr */,
+  82 /* Property n_expr= */,
+  3751 /* Id of ABreakExpr */,
+  6 /* Color of ABreakExpr */,
+  7 /* Property _n_kwbreak */,
+  80 /* Color of ABreakExpr */,
+  81 /* Property n_kwbreak */,
+  82 /* Property n_kwbreak= */,
+  3603 /* Id of AAbortExpr */,
+  5 /* Color of AAbortExpr */,
+  6 /* Property _n_kwabort */,
+  78 /* Color of AAbortExpr */,
+  79 /* Property n_kwabort */,
+  80 /* Property n_kwabort= */,
+  3743 /* Id of AContinueExpr */,
+  6 /* Color of AContinueExpr */,
+  7 /* Property _n_kwcontinue */,
+  80 /* Color of AContinueExpr */,
+  81 /* Property n_kwcontinue */,
+  82 /* Property n_kwcontinue= */,
+  3531 /* Id of ADoExpr */,
+  5 /* Color of ADoExpr */,
+  6 /* Property _n_kwdo */,
+  7 /* Property _n_block */,
+  77 /* Color of ADoExpr */,
+  78 /* Property n_kwdo */,
+  79 /* Property n_kwdo= */,
+  80 /* Property n_block */,
+  81 /* Property n_block= */,
+  3495 /* Id of AIfExpr */,
+  5 /* Color of AIfExpr */,
+  6 /* Property _n_kwif */,
+  7 /* Property _n_expr */,
+  8 /* Property _n_then */,
+  9 /* Property _n_else */,
+  77 /* Color of AIfExpr */,
+  78 /* Property n_kwif */,
+  79 /* Property n_kwif= */,
+  80 /* Property n_expr */,
+  81 /* Property n_expr= */,
+  82 /* Property n_then */,
+  83 /* Property n_then= */,
+  84 /* Property n_else */,
+  85 /* Property n_else= */,
+  3491 /* Id of AIfexprExpr */,
+  5 /* Color of AIfexprExpr */,
+  6 /* Property _n_kwif */,
+  7 /* Property _n_expr */,
+  8 /* Property _n_kwthen */,
+  9 /* Property _n_then */,
+  10 /* Property _n_kwelse */,
+  11 /* Property _n_else */,
+  77 /* Color of AIfexprExpr */,
+  78 /* Property n_kwif */,
+  79 /* Property n_kwif= */,
+  80 /* Property n_expr */,
+  81 /* Property n_expr= */,
+  82 /* Property n_kwthen */,
+  83 /* Property n_kwthen= */,
+  84 /* Property n_then */,
+  85 /* Property n_then= */,
+  86 /* Property n_kwelse */,
+  87 /* Property n_kwelse= */,
+  88 /* Property n_else */,
+  89 /* Property n_else= */,
+  3643 /* Id of AWhileExpr */,
+  6 /* Color of AWhileExpr */,
+  6 /* Property _n_kwwhile */,
+  7 /* Property _n_expr */,
+  8 /* Property _n_kwdo */,
+  9 /* Property _n_block */,
+  80 /* Color of AWhileExpr */,
+  81 /* Property n_kwwhile */,
+  82 /* Property n_kwwhile= */,
+  83 /* Property n_expr */,
+  84 /* Property n_expr= */,
+  85 /* Property n_kwdo */,
+  86 /* Property n_kwdo= */,
+  87 /* Property n_block */,
+  88 /* Property n_block= */,
+  3715 /* Id of AForExpr */,
+  6 /* Color of AForExpr */,
+  6 /* Property _n_vardecl */,
+  7 /* Property _n_kwdo */,
+  8 /* Property _n_block */,
+  80 /* Color of AForExpr */,
+  81 /* Property n_vardecl */,
+  82 /* Property n_vardecl= */,
+  83 /* Property n_kwdo */,
+  84 /* Property n_kwdo= */,
+  85 /* Property n_block */,
+  86 /* Property n_block= */,
+  3515 /* Id of AForVardeclExpr */,
+  5 /* Color of AForVardeclExpr */,
+  7 /* Property _n_kwfor */,
+  8 /* Property _n_id */,
+  9 /* Property _n_expr */,
+  78 /* Color of AForVardeclExpr */,
+  79 /* Property n_kwfor */,
+  80 /* Property n_kwfor= */,
+  81 /* Property n_id */,
+  82 /* Property n_id= */,
+  83 /* Property n_expr */,
+  84 /* Property n_expr= */,
+  3587 /* Id of AAssertExpr */,
+  5 /* Color of AAssertExpr */,
+  6 /* Property _n_kwassert */,
+  7 /* Property _n_id */,
+  8 /* Property _n_expr */,
+  77 /* Color of AAssertExpr */,
+  78 /* Property n_kwassert */,
+  79 /* Property n_kwassert= */,
+  80 /* Property n_id */,
+  81 /* Property n_id= */,
+  82 /* Property n_expr */,
+  83 /* Property n_expr= */,
+  3583 /* Id of AAssignFormExpr */,
+  6 /* Color of AAssignFormExpr */,
+  8 /* Property _n_assign */,
+  9 /* Property _n_value */,
+  80 /* Color of AAssignFormExpr */,
+  81 /* Property n_assign */,
+  82 /* Property n_assign= */,
+  83 /* Property n_value */,
+  84 /* Property n_value= */,
+  3383 /* Id of AReassignFormExpr */,
+  6 /* Color of AReassignFormExpr */,
+  9 /* Property _n_assign_op */,
+  10 /* Property _n_value */,
+  82 /* Color of AReassignFormExpr */,
+  83 /* Property n_assign_op */,
+  84 /* Property n_assign_op= */,
+  85 /* Property n_value */,
+  86 /* Property n_value= */,
+  3687 /* Id of AOnceExpr */,
+  6 /* Color of AOnceExpr */,
+  7 /* Property _n_kwonce */,
+  81 /* Color of AOnceExpr */,
+  82 /* Property n_kwonce */,
+  83 /* Property n_kwonce= */,
+  3791 /* Id of ASendExpr */,
+  8 /* Color of ASendExpr */,
+  11 /* Property _n_expr */,
+  98 /* Color of ASendExpr */,
+  99 /* Property n_expr */,
+  100 /* Property n_expr= */,
+  3823 /* Id of ABinopExpr */,
+  9 /* Color of ABinopExpr */,
+  12 /* Property _n_expr2 */,
+  103 /* Color of ABinopExpr */,
+  104 /* Property n_expr2 */,
+  105 /* Property n_expr2= */,
+  3559 /* Id of ABoolExpr */,
+  5 /* Color of ABoolExpr */,
+  75 /* Color of ABoolExpr */,
+  3683 /* Id of AOrExpr */,
+  6 /* Color of AOrExpr */,
+  6 /* Property _n_expr */,
+  7 /* Property _n_expr2 */,
+  78 /* Color of AOrExpr */,
+  79 /* Property n_expr */,
+  80 /* Property n_expr= */,
+  81 /* Property n_expr2 */,
+  82 /* Property n_expr2= */,
+  3767 /* Id of AAndExpr */,
+  6 /* Color of AAndExpr */,
+  6 /* Property _n_expr */,
+  7 /* Property _n_expr2 */,
+  78 /* Color of AAndExpr */,
+  79 /* Property n_expr */,
+  80 /* Property n_expr= */,
+  81 /* Property n_expr2 */,
+  82 /* Property n_expr2= */,
+  3691 /* Id of ANotExpr */,
+  6 /* Color of ANotExpr */,
+  6 /* Property _n_kwnot */,
+  7 /* Property _n_expr */,
+  78 /* Color of ANotExpr */,
+  79 /* Property n_kwnot */,
+  80 /* Property n_kwnot= */,
+  81 /* Property n_expr */,
+  82 /* Property n_expr= */,
+  3871 /* Id of AEqExpr */,
+  10 /* Color of AEqExpr */,
+  108 /* Color of AEqExpr */,
+  3731 /* Id of AEeExpr */,
+  6 /* Color of AEeExpr */,
+  6 /* Property _n_expr */,
+  7 /* Property _n_expr2 */,
+  78 /* Color of AEeExpr */,
+  79 /* Property n_expr */,
+  80 /* Property n_expr= */,
+  81 /* Property n_expr2 */,
+  82 /* Property n_expr2= */,
+  3847 /* Id of ANeExpr */,
+  10 /* Color of ANeExpr */,
+  108 /* Color of ANeExpr */,
+  3855 /* Id of ALtExpr */,
+  10 /* Color of ALtExpr */,
+  108 /* Color of ALtExpr */,
+  3859 /* Id of ALeExpr */,
+  10 /* Color of ALeExpr */,
+  108 /* Color of ALeExpr */,
+  3863 /* Id of AGtExpr */,
+  10 /* Color of AGtExpr */,
+  108 /* Color of AGtExpr */,
+  3867 /* Id of AGeExpr */,
+  10 /* Color of AGeExpr */,
+  108 /* Color of AGeExpr */,
+  3703 /* Id of AIsaExpr */,
+  6 /* Color of AIsaExpr */,
+  6 /* Property _n_expr */,
+  7 /* Property _n_type */,
+  78 /* Color of AIsaExpr */,
+  79 /* Property n_expr */,
+  80 /* Property n_expr= */,
+  81 /* Property n_type */,
+  82 /* Property n_type= */,
+  3839 /* Id of APlusExpr */,
+  10 /* Color of APlusExpr */,
+  108 /* Color of APlusExpr */,
+  3851 /* Id of AMinusExpr */,
+  10 /* Color of AMinusExpr */,
+  108 /* Color of AMinusExpr */,
+  3827 /* Id of AStarshipExpr */,
+  10 /* Color of AStarshipExpr */,
+  108 /* Color of AStarshipExpr */,
+  3831 /* Id of AStarExpr */,
+  10 /* Color of AStarExpr */,
+  108 /* Color of AStarExpr */,
+  3835 /* Id of ASlashExpr */,
+  10 /* Color of ASlashExpr */,
+  108 /* Color of ASlashExpr */,
+  3843 /* Id of APercentExpr */,
+  10 /* Color of APercentExpr */,
+  108 /* Color of APercentExpr */,
+  3803 /* Id of AUminusExpr */,
+  9 /* Color of AUminusExpr */,
+  12 /* Property _n_minus */,
+  103 /* Color of AUminusExpr */,
+  104 /* Property n_minus */,
+  105 /* Property n_minus= */,
+  3695 /* Id of ANewExpr */,
+  6 /* Color of ANewExpr */,
+  8 /* Property _n_kwnew */,
+  9 /* Property _n_type */,
+  10 /* Property _n_id */,
+  11 /* Property _n_args */,
+  95 /* Color of ANewExpr */,
+  96 /* Property n_kwnew */,
+  97 /* Property n_kwnew= */,
+  98 /* Property n_type */,
+  99 /* Property n_type= */,
+  100 /* Property n_id */,
+  101 /* Property n_id= */,
+  102 /* Property n_args */,
+  103 /* Property n_args= */,
+  3575 /* Id of AAttrFormExpr */,
+  5 /* Color of AAttrFormExpr */,
+  12 /* Property _n_expr */,
+  13 /* Property _n_id */,
+  89 /* Color of AAttrFormExpr */,
+  90 /* Property n_expr */,
+  91 /* Property n_expr= */,
+  92 /* Property n_id */,
+  93 /* Property n_id= */,
+  3759 /* Id of AAttrExpr */,
+  6 /* Color of AAttrExpr */,
+  96 /* Color of AAttrExpr */,
+  3763 /* Id of AAttrAssignExpr */,
+  7 /* Color of AAttrAssignExpr */,
+  77 /* Color of AAttrAssignExpr */,
+  3815 /* Id of ACallFormExpr */,
+  10 /* Color of ACallFormExpr */,
+  13 /* Property _n_id */,
+  14 /* Property _n_args */,
+  103 /* Color of ACallFormExpr */,
+  104 /* Property n_id */,
+  105 /* Property n_id= */,
+  106 /* Property n_args */,
+  107 /* Property n_args= */,
+  3755 /* Id of AAttrReassignExpr */,
+  7 /* Color of AAttrReassignExpr */,
+  77 /* Color of AAttrReassignExpr */,
+  3879 /* Id of ACallExpr */,
+  11 /* Color of ACallExpr */,
+  110 /* Color of ACallExpr */,
+  3883 /* Id of ACallAssignExpr */,
+  9 /* Color of ACallAssignExpr */,
+  79 /* Color of ACallAssignExpr */,
+  3875 /* Id of ACallReassignExpr */,
+  11 /* Color of ACallReassignExpr */,
+  110 /* Color of ACallReassignExpr */,
+  3787 /* Id of ASuperExpr */,
+  8 /* Color of ASuperExpr */,
+  9 /* Property _n_qualified */,
+  10 /* Property _n_kwsuper */,
+  11 /* Property _n_args */,
+  96 /* Color of ASuperExpr */,
+  97 /* Property n_qualified */,
+  98 /* Property n_qualified= */,
+  99 /* Property n_kwsuper */,
+  100 /* Property n_kwsuper= */,
+  101 /* Property n_args */,
+  102 /* Property n_args= */,
+  3811 /* Id of AInitExpr */,
+  9 /* Color of AInitExpr */,
+  12 /* Property _n_kwinit */,
+  13 /* Property _n_args */,
+  103 /* Color of AInitExpr */,
+  104 /* Property n_kwinit */,
+  105 /* Property n_kwinit= */,
+  106 /* Property n_args */,
+  107 /* Property n_args= */,
+  3819 /* Id of ABraFormExpr */,
+  10 /* Color of ABraFormExpr */,
+  13 /* Property _n_args */,
+  101 /* Color of ABraFormExpr */,
+  102 /* Property n_args */,
+  103 /* Property n_args= */,
+  3891 /* Id of ABraExpr */,
+  11 /* Color of ABraExpr */,
+  106 /* Color of ABraExpr */,
+  3895 /* Id of ABraAssignExpr */,
+  9 /* Color of ABraAssignExpr */,
+  79 /* Color of ABraAssignExpr */,
+  3327 /* Id of AVarFormExpr */,
+  5 /* Color of AVarFormExpr */,
+  7 /* Property _n_id */,
+  77 /* Color of AVarFormExpr */,
+  78 /* Property n_id */,
+  79 /* Property n_id= */,
+  3887 /* Id of ABraReassignExpr */,
+  11 /* Color of ABraReassignExpr */,
+  106 /* Color of ABraReassignExpr */,
+  3651 /* Id of AVarExpr */,
+  6 /* Color of AVarExpr */,
+  82 /* Color of AVarExpr */,
+  3655 /* Id of AVarAssignExpr */,
+  7 /* Color of AVarAssignExpr */,
+  87 /* Color of AVarAssignExpr */,
+  3647 /* Id of AVarReassignExpr */,
+  7 /* Color of AVarReassignExpr */,
+  89 /* Color of AVarReassignExpr */,
+  3391 /* Id of ARangeExpr */,
+  5 /* Color of ARangeExpr */,
+  6 /* Property _n_expr */,
+  7 /* Property _n_expr2 */,
+  78 /* Color of ARangeExpr */,
+  79 /* Property n_expr */,
+  80 /* Property n_expr= */,
+  81 /* Property n_expr2 */,
+  82 /* Property n_expr2= */,
+  3739 /* Id of ACrangeExpr */,
+  6 /* Color of ACrangeExpr */,
+  85 /* Color of ACrangeExpr */,
+  3679 /* Id of AOrangeExpr */,
+  6 /* Color of AOrangeExpr */,
+  85 /* Color of AOrangeExpr */,
+  3591 /* Id of AArrayExpr */,
+  5 /* Color of AArrayExpr */,
+  6 /* Property _n_exprs */,
+  78 /* Color of AArrayExpr */,
+  79 /* Property n_exprs */,
+  80 /* Property n_exprs= */,
+  3375 /* Id of ASelfExpr */,
+  5 /* Color of ASelfExpr */,
+  6 /* Property _n_kwself */,
+  77 /* Color of ASelfExpr */,
+  78 /* Property n_kwself */,
+  79 /* Property n_kwself= */,
+  3711 /* Id of AImplicitSelfExpr */,
+  6 /* Color of AImplicitSelfExpr */,
+  82 /* Color of AImplicitSelfExpr */,
+  3659 /* Id of ATrueExpr */,
+  6 /* Color of ATrueExpr */,
+  6 /* Property _n_kwtrue */,
+  78 /* Color of ATrueExpr */,
+  79 /* Property n_kwtrue */,
+  80 /* Property n_kwtrue= */,
+  3719 /* Id of AFalseExpr */,
+  6 /* Color of AFalseExpr */,
+  6 /* Property _n_kwfalse */,
+  78 /* Color of AFalseExpr */,
+  79 /* Property n_kwfalse */,
+  80 /* Property n_kwfalse= */,
+  3435 /* Id of ANullExpr */,
+  5 /* Color of ANullExpr */,
+  6 /* Property _n_kwnull */,
+  77 /* Color of ANullExpr */,
+  78 /* Property n_kwnull */,
+  79 /* Property n_kwnull= */,
+  3483 /* Id of AIntExpr */,
+  5 /* Color of AIntExpr */,
+  6 /* Property _n_number */,
+  77 /* Color of AIntExpr */,
+  78 /* Property n_number */,
+  79 /* Property n_number= */,
+  3519 /* Id of AFloatExpr */,
+  5 /* Color of AFloatExpr */,
+  6 /* Property _n_float */,
+  77 /* Color of AFloatExpr */,
+  78 /* Property n_float */,
+  79 /* Property n_float= */,
+  3547 /* Id of ACharExpr */,
+  5 /* Color of ACharExpr */,
+  6 /* Property _n_char */,
+  77 /* Color of ACharExpr */,
+  78 /* Property n_char */,
+  79 /* Property n_char= */,
+  3355 /* Id of AStringFormExpr */,
+  5 /* Color of AStringFormExpr */,
+  77 /* Color of AStringFormExpr */,
+  3667 /* Id of AStringExpr */,
+  6 /* Color of AStringExpr */,
+  8 /* Property _n_string */,
+  80 /* Color of AStringExpr */,
+  81 /* Property n_string */,
+  82 /* Property n_string= */,
+  3671 /* Id of AStartStringExpr */,
+  6 /* Color of AStartStringExpr */,
+  8 /* Property _n_string */,
+  80 /* Color of AStartStringExpr */,
+  81 /* Property n_string */,
+  82 /* Property n_string= */,
+  3699 /* Id of AMidStringExpr */,
+  6 /* Color of AMidStringExpr */,
+  8 /* Property _n_string */,
+  80 /* Color of AMidStringExpr */,
+  81 /* Property n_string */,
+  82 /* Property n_string= */,
+  3727 /* Id of AEndStringExpr */,
+  6 /* Color of AEndStringExpr */,
+  8 /* Property _n_string */,
+  80 /* Color of AEndStringExpr */,
+  81 /* Property n_string */,
+  82 /* Property n_string= */,
+  3347 /* Id of ASuperstringExpr */,
+  5 /* Color of ASuperstringExpr */,
+  6 /* Property _n_exprs */,
+  77 /* Color of ASuperstringExpr */,
+  78 /* Property n_exprs */,
+  79 /* Property n_exprs= */,
+  3675 /* Id of AParExpr */,
+  6 /* Color of AParExpr */,
+  80 /* Color of AParExpr */,
+  3403 /* Id of AProxyExpr */,
+  5 /* Color of AProxyExpr */,
+  6 /* Property _n_expr */,
+  75 /* Color of AProxyExpr */,
+  76 /* Property n_expr */,
+  77 /* Property n_expr= */,
+  3419 /* Id of APlusAssignOp */,
+  5 /* Color of APlusAssignOp */,
+  4 /* Property _n_pluseq */,
+  70 /* Color of APlusAssignOp */,
+  71 /* Property n_pluseq */,
+  72 /* Property n_pluseq= */,
+  3455 /* Id of AMinusAssignOp */,
+  5 /* Color of AMinusAssignOp */,
+  4 /* Property _n_minuseq */,
+  70 /* Color of AMinusAssignOp */,
+  71 /* Property n_minuseq */,
+  72 /* Property n_minuseq= */,
+  3395 /* Id of AQualified */,
+  5 /* Color of AQualified */,
+  4 /* Property _n_id */,
+  5 /* Property _n_classid */,
+  69 /* Color of AQualified */,
+  70 /* Property n_id */,
+  71 /* Property n_id= */,
+  72 /* Property n_classid */,
+  73 /* Property n_classid= */,
+  3527 /* Id of ADoc */,
+  5 /* Color of ADoc */,
+  4 /* Property _n_comment */,
+  69 /* Color of ADoc */,
+  70 /* Property n_comment */,
+  71 /* Property n_comment= */,
+  3015 /* Id of Start */,
+  4 /* Color of Start */,
+  4 /* Property _n_base */,
+  5 /* Property _n_eof */,
+  67 /* Color of Start */,
+  68 /* Property n_base */,
+  69 /* Property n_base= */,
+  70 /* Property n_eof */,
+  71 /* Property n_eof= */,
+};
+const int SFT_environ[8] = {
+  40 /* Property environ */,
+  41 /* Property environ= */,
+  42 /* Property environ_default= */,
+  43 /* Property unset */,
+  40 /* Property get_environ */,
+  41 /* Property put_environ */,
+  42 /* Property unset_environ */,
+  43 /* Property set_environ */,
+};
+const int SFT_symbol[6] = {
+  98 /* Property to_symbol */,
+  27 /* Id of Symbol */,
+  2 /* Color of Symbol */,
+  1 /* Property _string */,
+  44 /* Color of Symbol */,
+  45 /* Property init */,
+};
+const int SFT_hash[57] = {
+  15 /* Property hash */,
+  2615 /* Id of HashCollection */,
+  3 /* Color of HashCollection */,
+  1 /* Property _array */,
+  2 /* Property _capacity */,
+  3 /* Property _length */,
+  4 /* Property _first_item */,
+  5 /* Property _last_item */,
+  6 /* Property _last_accessed_index */,
+  7 /* Property _last_accessed_key */,
+  42 /* Color of HashCollection */,
+  43 /* Property first_item */,
+  44 /* Property index_at */,
+  45 /* Property store */,
+  46 /* Property remove_index */,
+  47 /* Property raz */,
+  48 /* Property enlarge */,
+  139 /* Id of HashNode */,
+  2 /* Color of HashNode */,
+  1 /* Property _next_item */,
+  2 /* Property _prev_item */,
+  40 /* Color of HashNode */,
+  41 /* Property key */,
+  42 /* Property next_item */,
+  43 /* Property next_item= */,
+  44 /* Property prev_item */,
+  45 /* Property prev_item= */,
+  3627 /* Id of HashMap */,
+  7 /* Color of HashMap */,
+  51 /* Color of HashMap */,
+  52 /* Property init */,
+  2611 /* Id of HashMapNode */,
+  4 /* Color of HashMapNode */,
+  52 /* Color of HashMapNode */,
+  53 /* Property init */,
+  3183 /* Id of HashMapIterator */,
+  4 /* Color of HashMapIterator */,
+  1 /* Property _map */,
+  2 /* Property _node */,
+  48 /* Color of HashMapIterator */,
+  49 /* Property init */,
+  3623 /* Id of HashSet */,
+  8 /* Color of HashSet */,
+  50 /* Color of HashSet */,
+  51 /* Property init */,
+  2603 /* Id of HashSetNode */,
+  3 /* Color of HashSetNode */,
+  3 /* Property _key */,
+  46 /* Color of HashSetNode */,
+  47 /* Property key= */,
+  48 /* Property init */,
+  2607 /* Id of HashSetIterator */,
+  3 /* Color of HashSetIterator */,
+  1 /* Property _set */,
+  2 /* Property _node */,
+  45 /* Color of HashSetIterator */,
+  46 /* Property init */,
+};
+const int SFT_string[54] = {
+  3771 /* Id of String */,
+  11 /* Color of String */,
+  2 /* Property _items */,
+  3 /* Property _capacity */,
+  99 /* Color of String */,
+  100 /* Property append */,
+  101 /* Property + */,
+  102 /* Property * */,
+  103 /* Property to_i */,
+  104 /* Property to_hex */,
+  105 /* Property a_to */,
+  106 /* Property to_cstring */,
+  107 /* Property substring */,
+  108 /* Property substring_from */,
+  109 /* Property has_substring */,
+  110 /* Property has_prefix */,
+  111 /* Property has_suffix */,
+  112 /* Property init */,
+  113 /* Property from */,
+  114 /* Property with_capacity */,
+  115 /* Property with_native */,
+  116 /* Property from_cstring */,
+  117 /* Property filled_with */,
+  118 /* Property to_upper */,
+  119 /* Property to_lower */,
+  120 /* Property items */,
+  121 /* Property capacity */,
+  16 /* Property to_s */,
+  17 /* Property inspect */,
+  18 /* Property inspect_head */,
+  19 /* Property args */,
+  62 /* Property fill_string */,
+  63 /* Property to_hex */,
+  64 /* Property to_base */,
+  40 /* Property to_precision */,
+  56 /* Property join */,
+  73 /* Property map_join */,
+  -5 /* Id of NativeString */,
+  2 /* Color of NativeString */,
+  44 /* Color of NativeString */,
+  45 /* Property [] */,
+  46 /* Property []= */,
+  47 /* Property copy_to */,
+  48 /* Property cstring_length */,
+  49 /* Property atoi */,
+  31 /* Id of StringCapable */,
+  2 /* Color of StringCapable */,
+  40 /* Color of StringCapable */,
+  41 /* Property calloc_string */,
+  1 /* Property _args_cache */,
+  41 /* Property program_name */,
+  42 /* Property init_args */,
+  43 /* Property native_argc */,
+  44 /* Property native_argv */,
+};
+const int SFT_array[61] = {
+  3639 /* Id of AbstractArray */,
+  10 /* Color of AbstractArray */,
+  1 /* Property _length */,
+  90 /* Color of AbstractArray */,
+  91 /* Property enlarge */,
+  92 /* Property insert */,
+  93 /* Property last_index_of */,
+  94 /* Property index_of_from */,
+  95 /* Property last_index_of_from */,
+  96 /* Property reversed */,
+  97 /* Property copy_to */,
+  3783 /* Id of Array */,
+  3 /* Color of Array */,
+  2 /* Property _items */,
+  3 /* Property _capacity */,
+  42 /* Color of Array */,
+  43 /* Property init */,
+  44 /* Property with */,
+  45 /* Property with_capacity */,
+  46 /* Property filled_with */,
+  47 /* Property with_native */,
+  3315 /* Id of ArrayIterator */,
+  5 /* Color of ArrayIterator */,
+  1 /* Property _index */,
+  2 /* Property _array */,
+  50 /* Color of ArrayIterator */,
+  51 /* Property init */,
+  3631 /* Id of ArraySet */,
+  8 /* Color of ArraySet */,
+  1 /* Property _array */,
+  73 /* Color of ArraySet */,
+  74 /* Property enlarge */,
+  75 /* Property remove_at */,
+  76 /* Property init */,
+  77 /* Property with_capacity */,
+  2663 /* Id of ArraySetIterator */,
+  3 /* Color of ArraySetIterator */,
+  1 /* Property _iter */,
+  45 /* Color of ArraySetIterator */,
+  46 /* Property init */,
+  3635 /* Id of ArrayMap */,
+  9 /* Color of ArrayMap */,
+  1 /* Property _items */,
+  2 /* Property _last_index */,
+  80 /* Color of ArrayMap */,
+  81 /* Property enlarge */,
+  82 /* Property remove_at_index */,
+  83 /* Property index */,
+  84 /* Property init */,
+  40 /* Property to_a */,
+  57 /* Property to_a */,
+  171 /* Id of ArrayCapable */,
+  2 /* Color of ArrayCapable */,
+  40 /* Color of ArrayCapable */,
+  41 /* Property calloc_array */,
+  -9 /* Id of NativeArray */,
+  2 /* Color of NativeArray */,
+  40 /* Color of NativeArray */,
+  41 /* Property [] */,
+  42 /* Property []= */,
+  43 /* Property copy_to */,
+};
+const int SFT_abstract_collection[94] = {
+  163 /* Id of Collection */,
+  5 /* Color of Collection */,
+  58 /* Color of Collection */,
+  59 /* Property iterator */,
+  60 /* Property is_empty */,
+  61 /* Property length */,
+  62 /* Property has */,
+  63 /* Property has_only */,
+  64 /* Property count */,
+  65 /* Property first */,
+  2519 /* Id of NaiveCollection */,
+  6 /* Color of NaiveCollection */,
+  66 /* Color of NaiveCollection */,
+  131 /* Id of Iterator */,
+  2 /* Color of Iterator */,
+  41 /* Color of Iterator */,
+  42 /* Property item */,
+  43 /* Property next */,
+  44 /* Property is_ok */,
+  2639 /* Id of Container */,
+  6 /* Color of Container */,
+  1 /* Property _item */,
+  66 /* Color of Container */,
+  67 /* Property init */,
+  68 /* Property item */,
+  69 /* Property item= */,
+  2635 /* Id of ContainerIterator */,
+  3 /* Color of ContainerIterator */,
+  1 /* Property _is_ok */,
+  2 /* Property _container */,
+  45 /* Color of ContainerIterator */,
+  46 /* Property init */,
+  211 /* Id of RemovableCollection */,
+  6 /* Color of RemovableCollection */,
+  66 /* Color of RemovableCollection */,
+  67 /* Property clear */,
+  68 /* Property remove */,
+  69 /* Property remove_all */,
+  3019 /* Id of SimpleCollection */,
+  7 /* Color of SimpleCollection */,
+  70 /* Color of SimpleCollection */,
+  71 /* Property add */,
+  72 /* Property add_all */,
+  3263 /* Id of Set */,
+  4 /* Color of Set */,
+  49 /* Color of Set */,
+  3127 /* Id of Map */,
+  8 /* Color of Map */,
+  74 /* Color of Map */,
+  75 /* Property [] */,
+  76 /* Property []= */,
+  77 /* Property has_key */,
+  78 /* Property remove_at */,
+  79 /* Property recover_with */,
+  2527 /* Id of MapIterator */,
+  3 /* Color of MapIterator */,
+  45 /* Color of MapIterator */,
+  46 /* Property key */,
+  47 /* Property item= */,
+  3295 /* Id of IndexedCollection */,
+  9 /* Color of IndexedCollection */,
+  80 /* Color of IndexedCollection */,
+  81 /* Property first= */,
+  82 /* Property last */,
+  83 /* Property last= */,
+  84 /* Property push */,
+  85 /* Property append */,
+  86 /* Property pop */,
+  87 /* Property unshift */,
+  88 /* Property shift */,
+  89 /* Property index_of */,
+  3171 /* Id of IndexedIterator */,
+  4 /* Color of IndexedIterator */,
+  48 /* Color of IndexedIterator */,
+  49 /* Property index */,
+  3311 /* Id of CoupleMap */,
+  4 /* Color of CoupleMap */,
+  49 /* Color of CoupleMap */,
+  50 /* Property couple_at */,
+  3199 /* Id of CoupleMapIterator */,
+  4 /* Color of CoupleMapIterator */,
+  1 /* Property _iter */,
+  48 /* Color of CoupleMapIterator */,
+  49 /* Property init */,
+  143 /* Id of Couple */,
+  3 /* Color of Couple */,
+  3 /* Property _first */,
+  4 /* Property _second */,
+  46 /* Color of Couple */,
+  47 /* Property first */,
+  48 /* Property first= */,
+  49 /* Property second */,
+  50 /* Property second= */,
+  51 /* Property init */,
+};
+const int SFT_kernel[72] = {
+  3 /* Id of Object */,
+  1 /* Color of Object */,
+  20 /* Color of Object */,
+  21 /* Property object_id */,
+  22 /* Property is_same_type */,
+  23 /* Property == */,
+  24 /* Property != */,
+  25 /* Property output */,
+  26 /* Property exit */,
+  27 /* Property sys */,
+  23 /* Id of Sys */,
+  2 /* Color of Sys */,
+  45 /* Color of Sys */,
+  46 /* Property main */,
+  155 /* Id of Comparable */,
+  4 /* Color of Comparable */,
+  47 /* Color of Comparable */,
+  48 /* Property < */,
+  49 /* Property <= */,
+  50 /* Property >= */,
+  51 /* Property > */,
+  52 /* Property <=> */,
+  53 /* Property is_between */,
+  54 /* Property max */,
+  55 /* Property min */,
+  2631 /* Id of Discrete */,
+  2 /* Color of Discrete */,
+  56 /* Color of Discrete */,
+  57 /* Property succ */,
+  58 /* Property prec */,
+  59 /* Property + */,
+  60 /* Property - */,
+  61 /* Property distance */,
+  -17 /* Id of Bool */,
+  2 /* Color of Bool */,
+  40 /* Color of Bool */,
+  -13 /* Id of Float */,
+  2 /* Color of Float */,
+  41 /* Color of Float */,
+  42 /* Property <= */,
+  43 /* Property < */,
+  44 /* Property >= */,
+  45 /* Property > */,
+  46 /* Property + */,
+  47 /* Property unary - */,
+  48 /* Property - */,
+  49 /* Property * */,
+  50 /* Property / */,
+  51 /* Property to_i */,
+  -33 /* Id of Int */,
+  5 /* Color of Int */,
+  65 /* Color of Int */,
+  66 /* Property unary - */,
+  67 /* Property * */,
+  68 /* Property / */,
+  69 /* Property % */,
+  70 /* Property lshift */,
+  71 /* Property rshift */,
+  72 /* Property to_f */,
+  73 /* Property ascii */,
+  74 /* Property digit_count */,
+  75 /* Property to_c */,
+  -37 /* Id of Char */,
+  5 /* Color of Char */,
+  62 /* Color of Char */,
+  63 /* Property to_i */,
+  64 /* Property ascii */,
+  65 /* Property to_lower */,
+  66 /* Property to_upper */,
+  -1 /* Id of Pointer */,
+  2 /* Color of Pointer */,
+  40 /* Color of Pointer */,
+};
+const int SFT_time[1] = {
+  28 /* Property get_time */,
+};
+const int SFT_sorter[12] = {
+  175 /* Id of AbstractSorter */,
+  2 /* Color of AbstractSorter */,
+  40 /* Color of AbstractSorter */,
+  41 /* Property compare */,
+  42 /* Property sort */,
+  43 /* Property sub_sort */,
+  44 /* Property quick_sort */,
+  45 /* Property bubble_sort */,
+  2647 /* Id of ComparableSorter */,
+  3 /* Color of ComparableSorter */,
+  46 /* Color of ComparableSorter */,
+  47 /* Property init */,
+};
+const int SFT_file[73] = {
+  29 /* Property printn */,
+  30 /* Property print */,
+  31 /* Property getc */,
+  32 /* Property gets */,
+  33 /* Property stdin */,
+  34 /* Property stdout */,
+  35 /* Property stderr */,
+  2623 /* Id of FStream */,
+  6 /* Color of FStream */,
+  1 /* Property _path */,
+  2 /* Property _file */,
+  46 /* Color of FStream */,
+  47 /* Property path */,
+  48 /* Property file_stat */,
+  3303 /* Id of IFStream */,
+  7 /* Color of IFStream */,
+  5 /* Property _end_reached */,
+  67 /* Color of IFStream */,
+  68 /* Property reopen */,
+  69 /* Property open */,
+  70 /* Property without_file */,
+  3123 /* Id of OFStream */,
+  5 /* Color of OFStream */,
+  3 /* Property _writable */,
+  56 /* Color of OFStream */,
+  57 /* Property write_native */,
+  58 /* Property open */,
+  59 /* Property without_file */,
+  3607 /* Id of Stdin */,
+  8 /* Color of Stdin */,
+  71 /* Color of Stdin */,
+  72 /* Property init */,
+  3255 /* Id of Stdout */,
+  7 /* Color of Stdout */,
+  60 /* Color of Stdout */,
+  61 /* Property init */,
+  3259 /* Id of Stderr */,
+  7 /* Color of Stderr */,
+  60 /* Color of Stderr */,
+  61 /* Property init */,
+  122 /* Property file_exists */,
+  123 /* Property file_stat */,
+  124 /* Property strip_extension */,
+  125 /* Property basename */,
+  126 /* Property dirname */,
+  127 /* Property file_path */,
+  128 /* Property mkdir */,
+  50 /* Property file_exists */,
+  51 /* Property file_stat */,
+  52 /* Property file_mkdir */,
+  -29 /* Id of FileStat */,
+  3 /* Color of FileStat */,
+  41 /* Color of FileStat */,
+  42 /* Property mode */,
+  43 /* Property atime */,
+  44 /* Property ctime */,
+  45 /* Property mtime */,
+  46 /* Property size */,
+  -25 /* Id of NativeFile */,
+  3 /* Color of NativeFile */,
+  41 /* Color of NativeFile */,
+  42 /* Property io_read */,
+  43 /* Property io_write */,
+  44 /* Property io_close */,
+  45 /* Property file_stat */,
+  75 /* Id of NativeFileCapable */,
+  2 /* Color of NativeFileCapable */,
+  40 /* Color of NativeFileCapable */,
+  41 /* Property io_open_read */,
+  42 /* Property io_open_write */,
+  43 /* Property native_stdin */,
+  44 /* Property native_stdout */,
+  45 /* Property native_stderr */,
+};
+const int SFT_stream[52] = {
+  135 /* Id of IOS */,
+  3 /* Color of IOS */,
+  51 /* Color of IOS */,
+  52 /* Property close */,
+  2599 /* Id of IStream */,
+  5 /* Color of IStream */,
+  56 /* Color of IStream */,
+  57 /* Property read_char */,
+  58 /* Property read */,
+  59 /* Property read_line */,
+  60 /* Property read_all */,
+  61 /* Property append_line_to */,
+  62 /* Property eof */,
+  2515 /* Id of OStream */,
+  4 /* Color of OStream */,
+  53 /* Color of OStream */,
+  54 /* Property write */,
+  55 /* Property is_writable */,
+  3223 /* Id of BufferedIStream */,
+  4 /* Color of BufferedIStream */,
+  3 /* Property _buffer */,
+  4 /* Property _buffer_pos */,
+  63 /* Color of BufferedIStream */,
+  64 /* Property fill_buffer */,
+  65 /* Property end_reached */,
+  66 /* Property prepare_buffer */,
+  3179 /* Id of IOStream */,
+  8 /* Color of IOStream */,
+  69 /* Color of IOStream */,
+  2627 /* Id of FDStream */,
+  2 /* Color of FDStream */,
+  1 /* Property _fd */,
+  40 /* Color of FDStream */,
+  41 /* Property native_close */,
+  42 /* Property native_read_char */,
+  43 /* Property native_read */,
+  44 /* Property native_write */,
+  45 /* Property init */,
+  3191 /* Id of FDIStream */,
+  7 /* Color of FDIStream */,
+  3 /* Property _eof */,
+  48 /* Color of FDIStream */,
+  49 /* Property init */,
+  3187 /* Id of FDOStream */,
+  6 /* Color of FDOStream */,
+  2 /* Property _is_writable */,
+  46 /* Color of FDOStream */,
+  47 /* Property init */,
+  3307 /* Id of FDIOStream */,
+  9 /* Color of FDIOStream */,
+  63 /* Color of FDIOStream */,
+  64 /* Property init */,
+};
+const int SFT_string_search[35] = {
+  51 /* Id of Pattern */,
+  3 /* Color of Pattern */,
+  42 /* Color of Pattern */,
+  43 /* Property search_index_in */,
+  44 /* Property search_in */,
+  45 /* Property search_all_in */,
+  46 /* Property split_in */,
+  2659 /* Id of BM_Pattern */,
+  4 /* Color of BM_Pattern */,
+  1 /* Property _motif */,
+  2 /* Property _length */,
+  3 /* Property _gs */,
+  4 /* Property _bc_table */,
+  47 /* Color of BM_Pattern */,
+  48 /* Property init */,
+  49 /* Property bc */,
+  50 /* Property compute_bc */,
+  51 /* Property suffixes */,
+  52 /* Property compute_gs */,
+  83 /* Id of Match */,
+  2 /* Color of Match */,
+  1 /* Property _string */,
+  2 /* Property _from */,
+  3 /* Property _length */,
+  40 /* Color of Match */,
+  41 /* Property string */,
+  42 /* Property from */,
+  43 /* Property length */,
+  44 /* Property after */,
+  45 /* Property init */,
+  129 /* Property search */,
+  130 /* Property search_from */,
+  131 /* Property search_all */,
+  132 /* Property split_with */,
+  133 /* Property split */,
+};
+const int SFT_exec[44] = {
+  43 /* Id of Process */,
+  2 /* Color of Process */,
+  1 /* Property _data */,
+  40 /* Color of Process */,
+  41 /* Property id */,
+  42 /* Property is_finished */,
+  43 /* Property wait */,
+  44 /* Property status */,
+  45 /* Property kill */,
+  46 /* Property term */,
+  47 /* Property init */,
+  48 /* Property init_ */,
+  49 /* Property execute */,
+  50 /* Property basic_exec_execute */,
+  3175 /* Id of IProcess */,
+  7 /* Color of IProcess */,
+  3 /* Property _in */,
+  66 /* Color of IProcess */,
+  67 /* Property init */,
+  68 /* Property init_ */,
+  3119 /* Id of OProcess */,
+  6 /* Color of OProcess */,
+  2 /* Property _out */,
+  63 /* Color of OProcess */,
+  64 /* Property init */,
+  65 /* Property init_ */,
+  3299 /* Id of IOProcess */,
+  9 /* Color of IOProcess */,
+  70 /* Color of IOProcess */,
+  71 /* Property init */,
+  72 /* Property init_ */,
+  40 /* Property system */,
+  53 /* Property system */,
+  -21 /* Id of NativeProcess */,
+  3 /* Color of NativeProcess */,
+  41 /* Color of NativeProcess */,
+  42 /* Property id */,
+  43 /* Property is_finished */,
+  44 /* Property status */,
+  45 /* Property wait */,
+  46 /* Property kill */,
+  47 /* Property in_fd */,
+  48 /* Property out_fd */,
+  49 /* Property err_fd */,
+};
+const int SFT_list[28] = {
+  3619 /* Id of List */,
+  10 /* Color of List */,
+  1 /* Property _head */,
+  2 /* Property _tail */,
+  90 /* Color of List */,
+  91 /* Property link */,
+  92 /* Property init */,
+  93 /* Property from */,
+  94 /* Property get_node */,
+  95 /* Property search_node_after */,
+  96 /* Property remove_node */,
+  97 /* Property insert_before */,
+  3291 /* Id of ListIterator */,
+  5 /* Color of ListIterator */,
+  1 /* Property _node */,
+  2 /* Property _index */,
+  50 /* Color of ListIterator */,
+  51 /* Property init */,
+  3167 /* Id of ListNode */,
+  7 /* Color of ListNode */,
+  2 /* Property _next */,
+  3 /* Property _prev */,
+  70 /* Color of ListNode */,
+  71 /* Property init */,
+  72 /* Property next */,
+  73 /* Property next= */,
+  74 /* Property prev */,
+  75 /* Property prev= */,
+};
+const int SFT_range[16] = {
+  2491 /* Id of Range */,
+  6 /* Color of Range */,
+  1 /* Property _first */,
+  2 /* Property _last */,
+  3 /* Property _after */,
+  66 /* Color of Range */,
+  67 /* Property last */,
+  68 /* Property after */,
+  69 /* Property init */,
+  70 /* Property without_last */,
+  2595 /* Id of IteratorRange */,
+  3 /* Color of IteratorRange */,
+  1 /* Property _range */,
+  2 /* Property _item */,
+  45 /* Color of IteratorRange */,
+  46 /* Property init */,
+};
+const int SFT_math[16] = {
+  76 /* Property rand */,
+  52 /* Property sqrt */,
+  53 /* Property cos */,
+  54 /* Property sin */,
+  55 /* Property tan */,
+  56 /* Property acos */,
+  57 /* Property asin */,
+  58 /* Property atan */,
+  59 /* Property pow */,
+  60 /* Property log */,
+  61 /* Property exp */,
+  62 /* Property rand */,
+  36 /* Property atan2 */,
+  37 /* Property pi */,
+  38 /* Property srand_from */,
+  39 /* Property srand */,
+};
+const int SFT_parser_tables[1153] = {
+  59 /* Id of Parser */,
+  2 /* Color of Parser */,
+  5 /* Property _action_table */,
+  6 /* Property _goto_table */,
+  47 /* Color of Parser */,
+  48 /* Property build_action_table */,
+  49 /* Property action_table_row1 */,
+  50 /* Property action_table_row2 */,
+  51 /* Property action_table_row3 */,
+  52 /* Property action_table_row4 */,
+  53 /* Property action_table_row5 */,
+  54 /* Property action_table_row6 */,
+  55 /* Property action_table_row7 */,
+  56 /* Property action_table_row8 */,
+  57 /* Property action_table_row9 */,
+  58 /* Property action_table_row10 */,
+  59 /* Property action_table_row11 */,
+  60 /* Property action_table_row12 */,
+  61 /* Property action_table_row13 */,
+  62 /* Property action_table_row14 */,
+  63 /* Property action_table_row15 */,
+  64 /* Property action_table_row16 */,
+  65 /* Property action_table_row17 */,
+  66 /* Property action_table_row18 */,
+  67 /* Property action_table_row19 */,
+  68 /* Property action_table_row20 */,
+  69 /* Property action_table_row21 */,
+  70 /* Property action_table_row22 */,
+  71 /* Property action_table_row23 */,
+  72 /* Property action_table_row24 */,
+  73 /* Property action_table_row25 */,
+  74 /* Property action_table_row26 */,
+  75 /* Property action_table_row27 */,
+  76 /* Property action_table_row28 */,
+  77 /* Property action_table_row29 */,
+  78 /* Property action_table_row30 */,
+  79 /* Property action_table_row31 */,
+  80 /* Property action_table_row32 */,
+  81 /* Property action_table_row33 */,
+  82 /* Property action_table_row34 */,
+  83 /* Property action_table_row35 */,
+  84 /* Property action_table_row36 */,
+  85 /* Property action_table_row37 */,
+  86 /* Property action_table_row38 */,
+  87 /* Property action_table_row39 */,
+  88 /* Property action_table_row40 */,
+  89 /* Property action_table_row41 */,
+  90 /* Property action_table_row42 */,
+  91 /* Property action_table_row43 */,
+  92 /* Property action_table_row44 */,
+  93 /* Property action_table_row45 */,
+  94 /* Property action_table_row46 */,
+  95 /* Property action_table_row47 */,
+  96 /* Property action_table_row48 */,
+  97 /* Property action_table_row49 */,
+  98 /* Property action_table_row50 */,
+  99 /* Property action_table_row51 */,
+  100 /* Property action_table_row52 */,
+  101 /* Property action_table_row53 */,
+  102 /* Property action_table_row54 */,
+  103 /* Property action_table_row55 */,
+  104 /* Property action_table_row56 */,
+  105 /* Property action_table_row57 */,
+  106 /* Property action_table_row58 */,
+  107 /* Property action_table_row59 */,
+  108 /* Property action_table_row60 */,
+  109 /* Property action_table_row61 */,
+  110 /* Property action_table_row62 */,
+  111 /* Property action_table_row63 */,
+  112 /* Property action_table_row64 */,
+  113 /* Property action_table_row65 */,
+  114 /* Property action_table_row66 */,
+  115 /* Property action_table_row67 */,
+  116 /* Property action_table_row68 */,
+  117 /* Property action_table_row69 */,
+  118 /* Property action_table_row70 */,
+  119 /* Property action_table_row71 */,
+  120 /* Property action_table_row72 */,
+  121 /* Property action_table_row73 */,
+  122 /* Property action_table_row74 */,
+  123 /* Property action_table_row75 */,
+  124 /* Property action_table_row76 */,
+  125 /* Property action_table_row77 */,
+  126 /* Property action_table_row78 */,
+  127 /* Property action_table_row79 */,
+  128 /* Property action_table_row80 */,
+  129 /* Property action_table_row81 */,
+  130 /* Property action_table_row82 */,
+  131 /* Property action_table_row83 */,
+  132 /* Property action_table_row84 */,
+  133 /* Property action_table_row85 */,
+  134 /* Property action_table_row86 */,
+  135 /* Property action_table_row87 */,
+  136 /* Property action_table_row88 */,
+  137 /* Property action_table_row89 */,
+  138 /* Property action_table_row90 */,
+  139 /* Property action_table_row91 */,
+  140 /* Property action_table_row92 */,
+  141 /* Property action_table_row93 */,
+  142 /* Property action_table_row94 */,
+  143 /* Property action_table_row95 */,
+  144 /* Property action_table_row96 */,
+  145 /* Property action_table_row97 */,
+  146 /* Property action_table_row98 */,
+  147 /* Property action_table_row99 */,
+  148 /* Property action_table_row100 */,
+  149 /* Property action_table_row101 */,
+  150 /* Property action_table_row102 */,
+  151 /* Property action_table_row103 */,
+  152 /* Property action_table_row104 */,
+  153 /* Property action_table_row105 */,
+  154 /* Property action_table_row106 */,
+  155 /* Property action_table_row107 */,
+  156 /* Property action_table_row108 */,
+  157 /* Property action_table_row109 */,
+  158 /* Property action_table_row110 */,
+  159 /* Property action_table_row111 */,
+  160 /* Property action_table_row112 */,
+  161 /* Property action_table_row113 */,
+  162 /* Property action_table_row114 */,
+  163 /* Property action_table_row115 */,
+  164 /* Property action_table_row116 */,
+  165 /* Property action_table_row117 */,
+  166 /* Property action_table_row118 */,
+  167 /* Property action_table_row119 */,
+  168 /* Property action_table_row120 */,
+  169 /* Property action_table_row121 */,
+  170 /* Property action_table_row122 */,
+  171 /* Property action_table_row123 */,
+  172 /* Property action_table_row124 */,
+  173 /* Property action_table_row125 */,
+  174 /* Property action_table_row126 */,
+  175 /* Property action_table_row127 */,
+  176 /* Property action_table_row128 */,
+  177 /* Property action_table_row129 */,
+  178 /* Property action_table_row130 */,
+  179 /* Property action_table_row131 */,
+  180 /* Property action_table_row132 */,
+  181 /* Property action_table_row133 */,
+  182 /* Property action_table_row134 */,
+  183 /* Property action_table_row135 */,
+  184 /* Property action_table_row136 */,
+  185 /* Property action_table_row137 */,
+  186 /* Property action_table_row138 */,
+  187 /* Property action_table_row139 */,
+  188 /* Property action_table_row140 */,
+  189 /* Property action_table_row141 */,
+  190 /* Property action_table_row142 */,
+  191 /* Property action_table_row143 */,
+  192 /* Property action_table_row144 */,
+  193 /* Property action_table_row145 */,
+  194 /* Property action_table_row146 */,
+  195 /* Property action_table_row147 */,
+  196 /* Property action_table_row148 */,
+  197 /* Property action_table_row149 */,
+  198 /* Property action_table_row150 */,
+  199 /* Property action_table_row151 */,
+  200 /* Property action_table_row152 */,
+  201 /* Property action_table_row153 */,
+  202 /* Property action_table_row154 */,
+  203 /* Property action_table_row155 */,
+  204 /* Property action_table_row156 */,
+  205 /* Property action_table_row157 */,
+  206 /* Property action_table_row158 */,
+  207 /* Property action_table_row159 */,
+  208 /* Property action_table_row160 */,
+  209 /* Property action_table_row161 */,
+  210 /* Property action_table_row162 */,
+  211 /* Property action_table_row163 */,
+  212 /* Property action_table_row164 */,
+  213 /* Property action_table_row165 */,
+  214 /* Property action_table_row166 */,
+  215 /* Property action_table_row167 */,
+  216 /* Property action_table_row168 */,
+  217 /* Property action_table_row169 */,
+  218 /* Property action_table_row170 */,
+  219 /* Property action_table_row171 */,
+  220 /* Property action_table_row172 */,
+  221 /* Property action_table_row173 */,
+  222 /* Property action_table_row174 */,
+  223 /* Property action_table_row175 */,
+  224 /* Property action_table_row176 */,
+  225 /* Property action_table_row177 */,
+  226 /* Property action_table_row178 */,
+  227 /* Property action_table_row179 */,
+  228 /* Property action_table_row180 */,
+  229 /* Property action_table_row181 */,
+  230 /* Property action_table_row182 */,
+  231 /* Property action_table_row183 */,
+  232 /* Property action_table_row184 */,
+  233 /* Property action_table_row185 */,
+  234 /* Property action_table_row186 */,
+  235 /* Property action_table_row187 */,
+  236 /* Property action_table_row188 */,
+  237 /* Property action_table_row189 */,
+  238 /* Property action_table_row190 */,
+  239 /* Property action_table_row191 */,
+  240 /* Property action_table_row192 */,
+  241 /* Property action_table_row193 */,
+  242 /* Property action_table_row194 */,
+  243 /* Property action_table_row195 */,
+  244 /* Property action_table_row196 */,
+  245 /* Property action_table_row197 */,
+  246 /* Property action_table_row198 */,
+  247 /* Property action_table_row199 */,
+  248 /* Property action_table_row200 */,
+  249 /* Property action_table_row201 */,
+  250 /* Property action_table_row202 */,
+  251 /* Property action_table_row203 */,
+  252 /* Property action_table_row204 */,
+  253 /* Property action_table_row205 */,
+  254 /* Property action_table_row206 */,
+  255 /* Property action_table_row207 */,
+  256 /* Property action_table_row208 */,
+  257 /* Property action_table_row209 */,
+  258 /* Property action_table_row210 */,
+  259 /* Property action_table_row211 */,
+  260 /* Property action_table_row212 */,
+  261 /* Property action_table_row213 */,
+  262 /* Property action_table_row214 */,
+  263 /* Property action_table_row215 */,
+  264 /* Property action_table_row216 */,
+  265 /* Property action_table_row217 */,
+  266 /* Property action_table_row218 */,
+  267 /* Property action_table_row219 */,
+  268 /* Property action_table_row220 */,
+  269 /* Property action_table_row221 */,
+  270 /* Property action_table_row222 */,
+  271 /* Property action_table_row223 */,
+  272 /* Property action_table_row224 */,
+  273 /* Property action_table_row225 */,
+  274 /* Property action_table_row226 */,
+  275 /* Property action_table_row227 */,
+  276 /* Property action_table_row228 */,
+  277 /* Property action_table_row229 */,
+  278 /* Property action_table_row230 */,
+  279 /* Property action_table_row231 */,
+  280 /* Property action_table_row232 */,
+  281 /* Property action_table_row233 */,
+  282 /* Property action_table_row234 */,
+  283 /* Property action_table_row235 */,
+  284 /* Property action_table_row236 */,
+  285 /* Property action_table_row237 */,
+  286 /* Property action_table_row238 */,
+  287 /* Property action_table_row239 */,
+  288 /* Property action_table_row240 */,
+  289 /* Property action_table_row241 */,
+  290 /* Property action_table_row242 */,
+  291 /* Property action_table_row243 */,
+  292 /* Property action_table_row244 */,
+  293 /* Property action_table_row245 */,
+  294 /* Property action_table_row246 */,
+  295 /* Property action_table_row247 */,
+  296 /* Property action_table_row248 */,
+  297 /* Property action_table_row249 */,
+  298 /* Property action_table_row250 */,
+  299 /* Property action_table_row251 */,
+  300 /* Property action_table_row252 */,
+  301 /* Property action_table_row253 */,
+  302 /* Property action_table_row254 */,
+  303 /* Property action_table_row255 */,
+  304 /* Property action_table_row256 */,
+  305 /* Property action_table_row257 */,
+  306 /* Property action_table_row258 */,
+  307 /* Property action_table_row259 */,
+  308 /* Property action_table_row260 */,
+  309 /* Property action_table_row261 */,
+  310 /* Property action_table_row262 */,
+  311 /* Property action_table_row263 */,
+  312 /* Property action_table_row264 */,
+  313 /* Property action_table_row265 */,
+  314 /* Property action_table_row266 */,
+  315 /* Property action_table_row267 */,
+  316 /* Property action_table_row268 */,
+  317 /* Property action_table_row269 */,
+  318 /* Property action_table_row270 */,
+  319 /* Property action_table_row271 */,
+  320 /* Property action_table_row272 */,
+  321 /* Property action_table_row273 */,
+  322 /* Property action_table_row274 */,
+  323 /* Property action_table_row275 */,
+  324 /* Property action_table_row276 */,
+  325 /* Property action_table_row277 */,
+  326 /* Property action_table_row278 */,
+  327 /* Property action_table_row279 */,
+  328 /* Property action_table_row280 */,
+  329 /* Property action_table_row281 */,
+  330 /* Property action_table_row282 */,
+  331 /* Property action_table_row283 */,
+  332 /* Property action_table_row284 */,
+  333 /* Property action_table_row285 */,
+  334 /* Property action_table_row286 */,
+  335 /* Property action_table_row287 */,
+  336 /* Property action_table_row288 */,
+  337 /* Property action_table_row289 */,
+  338 /* Property action_table_row290 */,
+  339 /* Property action_table_row291 */,
+  340 /* Property action_table_row292 */,
+  341 /* Property action_table_row293 */,
+  342 /* Property action_table_row294 */,
+  343 /* Property action_table_row295 */,
+  344 /* Property action_table_row296 */,
+  345 /* Property action_table_row297 */,
+  346 /* Property action_table_row298 */,
+  347 /* Property action_table_row299 */,
+  348 /* Property action_table_row300 */,
+  349 /* Property action_table_row301 */,
+  350 /* Property action_table_row302 */,
+  351 /* Property action_table_row303 */,
+  352 /* Property action_table_row304 */,
+  353 /* Property action_table_row305 */,
+  354 /* Property action_table_row306 */,
+  355 /* Property action_table_row307 */,
+  356 /* Property action_table_row308 */,
+  357 /* Property action_table_row309 */,
+  358 /* Property action_table_row310 */,
+  359 /* Property action_table_row311 */,
+  360 /* Property action_table_row312 */,
+  361 /* Property action_table_row313 */,
+  362 /* Property action_table_row314 */,
+  363 /* Property action_table_row315 */,
+  364 /* Property action_table_row316 */,
+  365 /* Property action_table_row317 */,
+  366 /* Property action_table_row318 */,
+  367 /* Property action_table_row319 */,
+  368 /* Property action_table_row320 */,
+  369 /* Property action_table_row321 */,
+  370 /* Property action_table_row322 */,
+  371 /* Property action_table_row323 */,
+  372 /* Property action_table_row324 */,
+  373 /* Property action_table_row325 */,
+  374 /* Property action_table_row326 */,
+  375 /* Property action_table_row327 */,
+  376 /* Property action_table_row328 */,
+  377 /* Property action_table_row329 */,
+  378 /* Property action_table_row330 */,
+  379 /* Property action_table_row331 */,
+  380 /* Property action_table_row332 */,
+  381 /* Property action_table_row333 */,
+  382 /* Property action_table_row334 */,
+  383 /* Property action_table_row335 */,
+  384 /* Property action_table_row336 */,
+  385 /* Property action_table_row337 */,
+  386 /* Property action_table_row338 */,
+  387 /* Property action_table_row339 */,
+  388 /* Property action_table_row340 */,
+  389 /* Property action_table_row341 */,
+  390 /* Property action_table_row342 */,
+  391 /* Property action_table_row343 */,
+  392 /* Property action_table_row344 */,
+  393 /* Property action_table_row345 */,
+  394 /* Property action_table_row346 */,
+  395 /* Property action_table_row347 */,
+  396 /* Property action_table_row348 */,
+  397 /* Property action_table_row349 */,
+  398 /* Property action_table_row350 */,
+  399 /* Property action_table_row351 */,
+  400 /* Property action_table_row352 */,
+  401 /* Property action_table_row353 */,
+  402 /* Property action_table_row354 */,
+  403 /* Property action_table_row355 */,
+  404 /* Property action_table_row356 */,
+  405 /* Property action_table_row357 */,
+  406 /* Property action_table_row358 */,
+  407 /* Property action_table_row359 */,
+  408 /* Property action_table_row360 */,
+  409 /* Property action_table_row361 */,
+  410 /* Property action_table_row362 */,
+  411 /* Property action_table_row363 */,
+  412 /* Property action_table_row364 */,
+  413 /* Property action_table_row365 */,
+  414 /* Property action_table_row366 */,
+  415 /* Property action_table_row367 */,
+  416 /* Property action_table_row368 */,
+  417 /* Property action_table_row369 */,
+  418 /* Property action_table_row370 */,
+  419 /* Property action_table_row371 */,
+  420 /* Property action_table_row372 */,
+  421 /* Property action_table_row373 */,
+  422 /* Property action_table_row374 */,
+  423 /* Property action_table_row375 */,
+  424 /* Property action_table_row376 */,
+  425 /* Property action_table_row377 */,
+  426 /* Property action_table_row378 */,
+  427 /* Property action_table_row379 */,
+  428 /* Property action_table_row380 */,
+  429 /* Property action_table_row381 */,
+  430 /* Property action_table_row382 */,
+  431 /* Property action_table_row383 */,
+  432 /* Property action_table_row384 */,
+  433 /* Property action_table_row385 */,
+  434 /* Property action_table_row386 */,
+  435 /* Property action_table_row387 */,
+  436 /* Property action_table_row388 */,
+  437 /* Property action_table_row389 */,
+  438 /* Property action_table_row390 */,
+  439 /* Property action_table_row391 */,
+  440 /* Property action_table_row392 */,
+  441 /* Property action_table_row393 */,
+  442 /* Property action_table_row394 */,
+  443 /* Property action_table_row395 */,
+  444 /* Property action_table_row396 */,
+  445 /* Property action_table_row397 */,
+  446 /* Property action_table_row398 */,
+  447 /* Property action_table_row399 */,
+  448 /* Property action_table_row400 */,
+  449 /* Property action_table_row401 */,
+  450 /* Property action_table_row402 */,
+  451 /* Property action_table_row403 */,
+  452 /* Property action_table_row404 */,
+  453 /* Property action_table_row405 */,
+  454 /* Property action_table_row406 */,
+  455 /* Property action_table_row407 */,
+  456 /* Property action_table_row408 */,
+  457 /* Property action_table_row409 */,
+  458 /* Property action_table_row410 */,
+  459 /* Property action_table_row411 */,
+  460 /* Property action_table_row412 */,
+  461 /* Property action_table_row413 */,
+  462 /* Property action_table_row414 */,
+  463 /* Property action_table_row415 */,
+  464 /* Property action_table_row416 */,
+  465 /* Property action_table_row417 */,
+  466 /* Property action_table_row418 */,
+  467 /* Property action_table_row419 */,
+  468 /* Property action_table_row420 */,
+  469 /* Property action_table_row421 */,
+  470 /* Property action_table_row422 */,
+  471 /* Property action_table_row423 */,
+  472 /* Property action_table_row424 */,
+  473 /* Property action_table_row425 */,
+  474 /* Property action_table_row426 */,
+  475 /* Property action_table_row427 */,
+  476 /* Property action_table_row428 */,
+  477 /* Property action_table_row429 */,
+  478 /* Property action_table_row430 */,
+  479 /* Property action_table_row431 */,
+  480 /* Property action_table_row432 */,
+  481 /* Property action_table_row433 */,
+  482 /* Property action_table_row434 */,
+  483 /* Property action_table_row435 */,
+  484 /* Property action_table_row436 */,
+  485 /* Property action_table_row437 */,
+  486 /* Property action_table_row438 */,
+  487 /* Property action_table_row439 */,
+  488 /* Property action_table_row440 */,
+  489 /* Property action_table_row441 */,
+  490 /* Property action_table_row442 */,
+  491 /* Property action_table_row443 */,
+  492 /* Property action_table_row444 */,
+  493 /* Property action_table_row445 */,
+  494 /* Property action_table_row446 */,
+  495 /* Property action_table_row447 */,
+  496 /* Property action_table_row448 */,
+  497 /* Property action_table_row449 */,
+  498 /* Property action_table_row450 */,
+  499 /* Property action_table_row451 */,
+  500 /* Property action_table_row452 */,
+  501 /* Property action_table_row453 */,
+  502 /* Property action_table_row454 */,
+  503 /* Property action_table_row455 */,
+  504 /* Property action_table_row456 */,
+  505 /* Property action_table_row457 */,
+  506 /* Property action_table_row458 */,
+  507 /* Property action_table_row459 */,
+  508 /* Property action_table_row460 */,
+  509 /* Property action_table_row461 */,
+  510 /* Property action_table_row462 */,
+  511 /* Property action_table_row463 */,
+  512 /* Property action_table_row464 */,
+  513 /* Property action_table_row465 */,
+  514 /* Property action_table_row466 */,
+  515 /* Property action_table_row467 */,
+  516 /* Property action_table_row468 */,
+  517 /* Property action_table_row469 */,
+  518 /* Property action_table_row470 */,
+  519 /* Property action_table_row471 */,
+  520 /* Property action_table_row472 */,
+  521 /* Property action_table_row473 */,
+  522 /* Property action_table_row474 */,
+  523 /* Property action_table_row475 */,
+  524 /* Property action_table_row476 */,
+  525 /* Property action_table_row477 */,
+  526 /* Property action_table_row478 */,
+  527 /* Property action_table_row479 */,
+  528 /* Property action_table_row480 */,
+  529 /* Property action_table_row481 */,
+  530 /* Property action_table_row482 */,
+  531 /* Property action_table_row483 */,
+  532 /* Property action_table_row484 */,
+  533 /* Property action_table_row485 */,
+  534 /* Property action_table_row486 */,
+  535 /* Property action_table_row487 */,
+  536 /* Property action_table_row488 */,
+  537 /* Property action_table_row489 */,
+  538 /* Property action_table_row490 */,
+  539 /* Property action_table_row491 */,
+  540 /* Property action_table_row492 */,
+  541 /* Property action_table_row493 */,
+  542 /* Property action_table_row494 */,
+  543 /* Property action_table_row495 */,
+  544 /* Property action_table_row496 */,
+  545 /* Property action_table_row497 */,
+  546 /* Property action_table_row498 */,
+  547 /* Property action_table_row499 */,
+  548 /* Property action_table_row500 */,
+  549 /* Property action_table_row501 */,
+  550 /* Property action_table_row502 */,
+  551 /* Property action_table_row503 */,
+  552 /* Property action_table_row504 */,
+  553 /* Property action_table_row505 */,
+  554 /* Property action_table_row506 */,
+  555 /* Property action_table_row507 */,
+  556 /* Property action_table_row508 */,
+  557 /* Property action_table_row509 */,
+  558 /* Property action_table_row510 */,
+  559 /* Property action_table_row511 */,
+  560 /* Property action_table_row512 */,
+  561 /* Property action_table_row513 */,
+  562 /* Property action_table_row514 */,
+  563 /* Property action_table_row515 */,
+  564 /* Property action_table_row516 */,
+  565 /* Property action_table_row517 */,
+  566 /* Property action_table_row518 */,
+  567 /* Property action_table_row519 */,
+  568 /* Property action_table_row520 */,
+  569 /* Property action_table_row521 */,
+  570 /* Property action_table_row522 */,
+  571 /* Property action_table_row523 */,
+  572 /* Property action_table_row524 */,
+  573 /* Property action_table_row525 */,
+  574 /* Property action_table_row526 */,
+  575 /* Property action_table_row527 */,
+  576 /* Property action_table_row528 */,
+  577 /* Property action_table_row529 */,
+  578 /* Property action_table_row530 */,
+  579 /* Property action_table_row531 */,
+  580 /* Property action_table_row532 */,
+  581 /* Property action_table_row533 */,
+  582 /* Property action_table_row534 */,
+  583 /* Property action_table_row535 */,
+  584 /* Property action_table_row536 */,
+  585 /* Property action_table_row537 */,
+  586 /* Property action_table_row538 */,
+  587 /* Property action_table_row539 */,
+  588 /* Property action_table_row540 */,
+  589 /* Property action_table_row541 */,
+  590 /* Property action_table_row542 */,
+  591 /* Property action_table_row543 */,
+  592 /* Property action_table_row544 */,
+  593 /* Property action_table_row545 */,
+  594 /* Property action_table_row546 */,
+  595 /* Property action_table_row547 */,
+  596 /* Property action_table_row548 */,
+  597 /* Property action_table_row549 */,
+  598 /* Property action_table_row550 */,
+  599 /* Property action_table_row551 */,
+  600 /* Property action_table_row552 */,
+  601 /* Property action_table_row553 */,
+  602 /* Property action_table_row554 */,
+  603 /* Property action_table_row555 */,
+  604 /* Property action_table_row556 */,
+  605 /* Property action_table_row557 */,
+  606 /* Property action_table_row558 */,
+  607 /* Property action_table_row559 */,
+  608 /* Property action_table_row560 */,
+  609 /* Property action_table_row561 */,
+  610 /* Property action_table_row562 */,
+  611 /* Property action_table_row563 */,
+  612 /* Property action_table_row564 */,
+  613 /* Property action_table_row565 */,
+  614 /* Property action_table_row566 */,
+  615 /* Property action_table_row567 */,
+  616 /* Property action_table_row568 */,
+  617 /* Property action_table_row569 */,
+  618 /* Property action_table_row570 */,
+  619 /* Property action_table_row571 */,
+  620 /* Property action_table_row572 */,
+  621 /* Property action_table_row573 */,
+  622 /* Property action_table_row574 */,
+  623 /* Property action_table_row575 */,
+  624 /* Property action_table_row576 */,
+  625 /* Property action_table_row577 */,
+  626 /* Property action_table_row578 */,
+  627 /* Property action_table_row579 */,
+  628 /* Property action_table_row580 */,
+  629 /* Property action_table_row581 */,
+  630 /* Property action_table_row582 */,
+  631 /* Property action_table_row583 */,
+  632 /* Property action_table_row584 */,
+  633 /* Property action_table_row585 */,
+  634 /* Property action_table_row586 */,
+  635 /* Property action_table_row587 */,
+  636 /* Property action_table_row588 */,
+  637 /* Property action_table_row589 */,
+  638 /* Property action_table_row590 */,
+  639 /* Property action_table_row591 */,
+  640 /* Property action_table_row592 */,
+  641 /* Property action_table_row593 */,
+  642 /* Property action_table_row594 */,
+  643 /* Property action_table_row595 */,
+  644 /* Property action_table_row596 */,
+  645 /* Property action_table_row597 */,
+  646 /* Property action_table_row598 */,
+  647 /* Property action_table_row599 */,
+  648 /* Property action_table_row600 */,
+  649 /* Property action_table_row601 */,
+  650 /* Property action_table_row602 */,
+  651 /* Property action_table_row603 */,
+  652 /* Property action_table_row604 */,
+  653 /* Property action_table_row605 */,
+  654 /* Property action_table_row606 */,
+  655 /* Property action_table_row607 */,
+  656 /* Property action_table_row608 */,
+  657 /* Property action_table_row609 */,
+  658 /* Property action_table_row610 */,
+  659 /* Property action_table_row611 */,
+  660 /* Property action_table_row612 */,
+  661 /* Property action_table_row613 */,
+  662 /* Property action_table_row614 */,
+  663 /* Property action_table_row615 */,
+  664 /* Property action_table_row616 */,
+  665 /* Property action_table_row617 */,
+  666 /* Property action_table_row618 */,
+  667 /* Property action_table_row619 */,
+  668 /* Property action_table_row620 */,
+  669 /* Property action_table_row621 */,
+  670 /* Property action_table_row622 */,
+  671 /* Property action_table_row623 */,
+  672 /* Property action_table_row624 */,
+  673 /* Property action_table_row625 */,
+  674 /* Property action_table_row626 */,
+  675 /* Property action_table_row627 */,
+  676 /* Property action_table_row628 */,
+  677 /* Property action_table_row629 */,
+  678 /* Property action_table_row630 */,
+  679 /* Property action_table_row631 */,
+  680 /* Property action_table_row632 */,
+  681 /* Property action_table_row633 */,
+  682 /* Property action_table_row634 */,
+  683 /* Property action_table_row635 */,
+  684 /* Property action_table_row636 */,
+  685 /* Property action_table_row637 */,
+  686 /* Property action_table_row638 */,
+  687 /* Property action_table_row639 */,
+  688 /* Property action_table_row640 */,
+  689 /* Property action_table_row641 */,
+  690 /* Property action_table_row642 */,
+  691 /* Property action_table_row643 */,
+  692 /* Property action_table_row644 */,
+  693 /* Property action_table_row645 */,
+  694 /* Property action_table_row646 */,
+  695 /* Property action_table_row647 */,
+  696 /* Property action_table_row648 */,
+  697 /* Property action_table_row649 */,
+  698 /* Property action_table_row650 */,
+  699 /* Property action_table_row651 */,
+  700 /* Property action_table_row652 */,
+  701 /* Property action_table_row653 */,
+  702 /* Property action_table_row654 */,
+  703 /* Property action_table_row655 */,
+  704 /* Property action_table_row656 */,
+  705 /* Property action_table_row657 */,
+  706 /* Property action_table_row658 */,
+  707 /* Property action_table_row659 */,
+  708 /* Property action_table_row660 */,
+  709 /* Property action_table_row661 */,
+  710 /* Property action_table_row662 */,
+  711 /* Property action_table_row663 */,
+  712 /* Property action_table_row664 */,
+  713 /* Property action_table_row665 */,
+  714 /* Property action_table_row666 */,
+  715 /* Property action_table_row667 */,
+  716 /* Property action_table_row668 */,
+  717 /* Property action_table_row669 */,
+  718 /* Property action_table_row670 */,
+  719 /* Property action_table_row671 */,
+  720 /* Property action_table_row672 */,
+  721 /* Property action_table_row673 */,
+  722 /* Property action_table_row674 */,
+  723 /* Property action_table_row675 */,
+  724 /* Property action_table_row676 */,
+  725 /* Property action_table_row677 */,
+  726 /* Property action_table_row678 */,
+  727 /* Property action_table_row679 */,
+  728 /* Property action_table_row680 */,
+  729 /* Property action_table_row681 */,
+  730 /* Property action_table_row682 */,
+  731 /* Property action_table_row683 */,
+  732 /* Property action_table_row684 */,
+  733 /* Property action_table_row685 */,
+  734 /* Property action_table_row686 */,
+  735 /* Property action_table_row687 */,
+  736 /* Property action_table_row688 */,
+  737 /* Property action_table_row689 */,
+  738 /* Property action_table_row690 */,
+  739 /* Property action_table_row691 */,
+  740 /* Property action_table_row692 */,
+  741 /* Property action_table_row693 */,
+  742 /* Property action_table_row694 */,
+  743 /* Property action_table_row695 */,
+  744 /* Property action_table_row696 */,
+  745 /* Property action_table_row697 */,
+  746 /* Property action_table_row698 */,
+  747 /* Property action_table_row699 */,
+  748 /* Property action_table_row700 */,
+  749 /* Property action_table_row701 */,
+  750 /* Property action_table_row702 */,
+  751 /* Property action_table_row703 */,
+  752 /* Property action_table_row704 */,
+  753 /* Property action_table_row705 */,
+  754 /* Property action_table_row706 */,
+  755 /* Property action_table_row707 */,
+  756 /* Property action_table_row708 */,
+  757 /* Property action_table_row709 */,
+  758 /* Property action_table_row710 */,
+  759 /* Property action_table_row711 */,
+  760 /* Property action_table_row712 */,
+  761 /* Property action_table_row713 */,
+  762 /* Property action_table_row714 */,
+  763 /* Property action_table_row715 */,
+  764 /* Property action_table_row716 */,
+  765 /* Property action_table_row717 */,
+  766 /* Property action_table_row718 */,
+  767 /* Property action_table_row719 */,
+  768 /* Property action_table_row720 */,
+  769 /* Property action_table_row721 */,
+  770 /* Property action_table_row722 */,
+  771 /* Property action_table_row723 */,
+  772 /* Property action_table_row724 */,
+  773 /* Property action_table_row725 */,
+  774 /* Property action_table_row726 */,
+  775 /* Property action_table_row727 */,
+  776 /* Property action_table_row728 */,
+  777 /* Property action_table_row729 */,
+  778 /* Property action_table_row730 */,
+  779 /* Property action_table_row731 */,
+  780 /* Property action_table_row732 */,
+  781 /* Property action_table_row733 */,
+  782 /* Property action_table_row734 */,
+  783 /* Property action_table_row735 */,
+  784 /* Property action_table_row736 */,
+  785 /* Property action_table_row737 */,
+  786 /* Property action_table_row738 */,
+  787 /* Property action_table_row739 */,
+  788 /* Property action_table_row740 */,
+  789 /* Property action_table_row741 */,
+  790 /* Property action_table_row742 */,
+  791 /* Property action_table_row743 */,
+  792 /* Property action_table_row744 */,
+  793 /* Property action_table_row745 */,
+  794 /* Property action_table_row746 */,
+  795 /* Property action_table_row747 */,
+  796 /* Property action_table_row748 */,
+  797 /* Property action_table_row749 */,
+  798 /* Property action_table_row750 */,
+  799 /* Property action_table_row751 */,
+  800 /* Property action_table_row752 */,
+  801 /* Property action_table_row753 */,
+  802 /* Property action_table_row754 */,
+  803 /* Property action_table_row755 */,
+  804 /* Property action_table_row756 */,
+  805 /* Property action_table_row757 */,
+  806 /* Property action_table_row758 */,
+  807 /* Property action_table_row759 */,
+  808 /* Property action_table_row760 */,
+  809 /* Property action_table_row761 */,
+  810 /* Property action_table_row762 */,
+  811 /* Property action_table_row763 */,
+  812 /* Property action_table_row764 */,
+  813 /* Property action_table_row765 */,
+  814 /* Property action_table_row766 */,
+  815 /* Property action_table_row767 */,
+  816 /* Property action_table_row768 */,
+  817 /* Property action_table_row769 */,
+  818 /* Property action_table_row770 */,
+  819 /* Property action_table_row771 */,
+  820 /* Property action_table_row772 */,
+  821 /* Property action_table_row773 */,
+  822 /* Property action_table_row774 */,
+  823 /* Property action_table_row775 */,
+  824 /* Property action_table_row776 */,
+  825 /* Property action_table_row777 */,
+  826 /* Property action_table_row778 */,
+  827 /* Property action_table_row779 */,
+  828 /* Property action_table_row780 */,
+  829 /* Property action_table_row781 */,
+  830 /* Property action_table_row782 */,
+  831 /* Property action_table_row783 */,
+  832 /* Property action_table_row784 */,
+  833 /* Property action_table_row785 */,
+  834 /* Property action_table_row786 */,
+  835 /* Property action_table_row787 */,
+  836 /* Property action_table_row788 */,
+  837 /* Property action_table_row789 */,
+  838 /* Property action_table_row790 */,
+  839 /* Property action_table_row791 */,
+  840 /* Property action_table_row792 */,
+  841 /* Property action_table_row793 */,
+  842 /* Property action_table_row794 */,
+  843 /* Property action_table_row795 */,
+  844 /* Property action_table_row796 */,
+  845 /* Property action_table_row797 */,
+  846 /* Property action_table_row798 */,
+  847 /* Property action_table_row799 */,
+  848 /* Property action_table_row800 */,
+  849 /* Property action_table_row801 */,
+  850 /* Property action_table_row802 */,
+  851 /* Property action_table_row803 */,
+  852 /* Property action_table_row804 */,
+  853 /* Property action_table_row805 */,
+  854 /* Property action_table_row806 */,
+  855 /* Property action_table_row807 */,
+  856 /* Property action_table_row808 */,
+  857 /* Property action_table_row809 */,
+  858 /* Property action_table_row810 */,
+  859 /* Property action_table_row811 */,
+  860 /* Property action_table_row812 */,
+  861 /* Property action_table_row813 */,
+  862 /* Property action_table_row814 */,
+  863 /* Property action_table_row815 */,
+  864 /* Property action_table_row816 */,
+  865 /* Property action_table_row817 */,
+  866 /* Property action_table_row818 */,
+  867 /* Property action_table_row819 */,
+  868 /* Property action_table_row820 */,
+  869 /* Property action_table_row821 */,
+  870 /* Property action_table_row822 */,
+  871 /* Property action_table_row823 */,
+  872 /* Property action_table_row824 */,
+  873 /* Property action_table_row825 */,
+  874 /* Property action_table_row826 */,
+  875 /* Property action_table_row827 */,
+  876 /* Property action_table_row828 */,
+  877 /* Property action_table_row829 */,
+  878 /* Property action_table_row830 */,
+  879 /* Property action_table_row831 */,
+  880 /* Property action_table_row832 */,
+  881 /* Property action_table_row833 */,
+  882 /* Property action_table_row834 */,
+  883 /* Property action_table_row835 */,
+  884 /* Property action_table_row836 */,
+  885 /* Property action_table_row837 */,
+  886 /* Property action_table_row838 */,
+  887 /* Property action_table_row839 */,
+  888 /* Property action_table_row840 */,
+  889 /* Property action_table_row841 */,
+  890 /* Property action_table_row842 */,
+  891 /* Property action_table_row843 */,
+  892 /* Property action_table_row844 */,
+  893 /* Property action_table_row845 */,
+  894 /* Property action_table_row846 */,
+  895 /* Property action_table_row847 */,
+  896 /* Property action_table_row848 */,
+  897 /* Property action_table_row849 */,
+  898 /* Property action_table_row850 */,
+  899 /* Property action_table_row851 */,
+  900 /* Property action_table_row852 */,
+  901 /* Property action_table_row853 */,
+  902 /* Property action_table_row854 */,
+  903 /* Property action_table_row855 */,
+  904 /* Property action_table_row856 */,
+  905 /* Property action_table_row857 */,
+  906 /* Property action_table_row858 */,
+  907 /* Property action_table_row859 */,
+  908 /* Property action_table_row860 */,
+  909 /* Property action_table_row861 */,
+  910 /* Property action_table_row862 */,
+  911 /* Property action_table_row863 */,
+  912 /* Property action_table_row864 */,
+  913 /* Property action_table_row865 */,
+  914 /* Property action_table_row866 */,
+  915 /* Property action_table_row867 */,
+  916 /* Property action_table_row868 */,
+  917 /* Property action_table_row869 */,
+  918 /* Property action_table_row870 */,
+  919 /* Property action_table_row871 */,
+  920 /* Property action_table_row872 */,
+  921 /* Property action_table_row873 */,
+  922 /* Property action_table_row874 */,
+  923 /* Property action_table_row875 */,
+  924 /* Property action_table_row876 */,
+  925 /* Property action_table_row877 */,
+  926 /* Property action_table_row878 */,
+  927 /* Property action_table_row879 */,
+  928 /* Property action_table_row880 */,
+  929 /* Property action_table_row881 */,
+  930 /* Property action_table_row882 */,
+  931 /* Property action_table_row883 */,
+  932 /* Property action_table_row884 */,
+  933 /* Property action_table_row885 */,
+  934 /* Property action_table_row886 */,
+  935 /* Property action_table_row887 */,
+  936 /* Property action_table_row888 */,
+  937 /* Property action_table_row889 */,
+  938 /* Property action_table_row890 */,
+  939 /* Property action_table_row891 */,
+  940 /* Property action_table_row892 */,
+  941 /* Property action_table_row893 */,
+  942 /* Property action_table_row894 */,
+  943 /* Property action_table_row895 */,
+  944 /* Property action_table_row896 */,
+  945 /* Property action_table_row897 */,
+  946 /* Property action_table_row898 */,
+  947 /* Property action_table_row899 */,
+  948 /* Property action_table_row900 */,
+  949 /* Property action_table_row901 */,
+  950 /* Property action_table_row902 */,
+  951 /* Property action_table_row903 */,
+  952 /* Property action_table_row904 */,
+  953 /* Property action_table_row905 */,
+  954 /* Property action_table_row906 */,
+  955 /* Property action_table_row907 */,
+  956 /* Property action_table_row908 */,
+  957 /* Property action_table_row909 */,
+  958 /* Property action_table_row910 */,
+  959 /* Property action_table_row911 */,
+  960 /* Property action_table_row912 */,
+  961 /* Property action_table_row913 */,
+  962 /* Property action_table_row914 */,
+  963 /* Property action_table_row915 */,
+  964 /* Property action_table_row916 */,
+  965 /* Property action_table_row917 */,
+  966 /* Property action_table_row918 */,
+  967 /* Property action_table_row919 */,
+  968 /* Property action_table_row920 */,
+  969 /* Property action_table_row921 */,
+  970 /* Property action_table_row922 */,
+  971 /* Property action_table_row923 */,
+  972 /* Property action_table_row924 */,
+  973 /* Property action_table_row925 */,
+  974 /* Property action_table_row926 */,
+  975 /* Property action_table_row927 */,
+  976 /* Property action_table_row928 */,
+  977 /* Property action_table_row929 */,
+  978 /* Property action_table_row930 */,
+  979 /* Property action_table_row931 */,
+  980 /* Property action_table_row932 */,
+  981 /* Property action_table_row933 */,
+  982 /* Property action_table_row934 */,
+  983 /* Property action_table_row935 */,
+  984 /* Property action_table_row936 */,
+  985 /* Property action_table_row937 */,
+  986 /* Property action_table_row938 */,
+  987 /* Property action_table_row939 */,
+  988 /* Property action_table_row940 */,
+  989 /* Property action_table_row941 */,
+  990 /* Property action_table_row942 */,
+  991 /* Property action_table_row943 */,
+  992 /* Property action_table_row944 */,
+  993 /* Property action_table_row945 */,
+  994 /* Property action_table_row946 */,
+  995 /* Property action_table_row947 */,
+  996 /* Property action_table_row948 */,
+  997 /* Property action_table_row949 */,
+  998 /* Property action_table_row950 */,
+  999 /* Property action_table_row951 */,
+  1000 /* Property action_table_row952 */,
+  1001 /* Property action_table_row953 */,
+  1002 /* Property action_table_row954 */,
+  1003 /* Property action_table_row955 */,
+  1004 /* Property action_table_row956 */,
+  1005 /* Property action_table_row957 */,
+  1006 /* Property action_table_row958 */,
+  1007 /* Property action_table_row959 */,
+  1008 /* Property action_table_row960 */,
+  1009 /* Property action_table_row961 */,
+  1010 /* Property action_table_row962 */,
+  1011 /* Property action_table_row963 */,
+  1012 /* Property action_table_row964 */,
+  1013 /* Property action_table_row965 */,
+  1014 /* Property action_table_row966 */,
+  1015 /* Property action_table_row967 */,
+  1016 /* Property action_table_row968 */,
+  1017 /* Property action_table_row969 */,
+  1018 /* Property action_table_row970 */,
+  1019 /* Property action_table_row971 */,
+  1020 /* Property action_table_row972 */,
+  1021 /* Property action_table_row973 */,
+  1022 /* Property action_table_row974 */,
+  1023 /* Property action_table_row975 */,
+  1024 /* Property action_table_row976 */,
+  1025 /* Property action_table_row977 */,
+  1026 /* Property action_table_row978 */,
+  1027 /* Property action_table_row979 */,
+  1028 /* Property action_table_row980 */,
+  1029 /* Property action_table_row981 */,
+  1030 /* Property action_table_row982 */,
+  1031 /* Property action_table_row983 */,
+  1032 /* Property action_table_row984 */,
+  1033 /* Property action_table_row985 */,
+  1034 /* Property action_table_row986 */,
+  1035 /* Property action_table_row987 */,
+  1036 /* Property action_table_row988 */,
+  1037 /* Property action_table_row989 */,
+  1038 /* Property action_table_row990 */,
+  1039 /* Property action_table_row991 */,
+  1040 /* Property action_table_row992 */,
+  1041 /* Property action_table_row993 */,
+  1042 /* Property action_table_row994 */,
+  1043 /* Property action_table_row995 */,
+  1044 /* Property action_table_row996 */,
+  1045 /* Property action_table_row997 */,
+  1046 /* Property action_table_row998 */,
+  1047 /* Property action_table_row999 */,
+  1048 /* Property action_table_row1000 */,
+  1049 /* Property action_table_row1001 */,
+  1050 /* Property action_table_row1002 */,
+  1051 /* Property action_table_row1003 */,
+  1052 /* Property action_table_row1004 */,
+  1053 /* Property action_table_row1005 */,
+  1054 /* Property action_table_row1006 */,
+  1055 /* Property action_table_row1007 */,
+  1056 /* Property action_table_row1008 */,
+  1057 /* Property action_table_row1009 */,
+  1058 /* Property action_table_row1010 */,
+  1059 /* Property action_table_row1011 */,
+  1060 /* Property action_table_row1012 */,
+  1061 /* Property action_table_row1013 */,
+  1062 /* Property action_table_row1014 */,
+  1063 /* Property action_table_row1015 */,
+  1064 /* Property action_table_row1016 */,
+  1065 /* Property action_table_row1017 */,
+  1066 /* Property action_table_row1018 */,
+  1067 /* Property action_table_row1019 */,
+  1068 /* Property action_table_row1020 */,
+  1069 /* Property action_table_row1021 */,
+  1070 /* Property action_table_row1022 */,
+  1071 /* Property action_table_row1023 */,
+  1072 /* Property action_table_row1024 */,
+  1073 /* Property action_table_row1025 */,
+  1074 /* Property action_table_row1026 */,
+  1075 /* Property action_table_row1027 */,
+  1076 /* Property action_table_row1028 */,
+  1077 /* Property action_table_row1029 */,
+  1078 /* Property action_table_row1030 */,
+  1079 /* Property action_table_row1031 */,
+  1080 /* Property action_table_row1032 */,
+  1081 /* Property action_table_row1033 */,
+  1082 /* Property action_table_row1034 */,
+  1083 /* Property action_table_row1035 */,
+  1084 /* Property action_table_row1036 */,
+  1085 /* Property action_table_row1037 */,
+  1086 /* Property action_table_row1038 */,
+  1087 /* Property action_table_row1039 */,
+  1088 /* Property action_table_row1040 */,
+  1089 /* Property action_table_row1041 */,
+  1090 /* Property action_table_row1042 */,
+  1091 /* Property action_table_row1043 */,
+  1092 /* Property action_table_row1044 */,
+  1093 /* Property action_table_row1045 */,
+  1094 /* Property action_table_row1046 */,
+  1095 /* Property action_table_row1047 */,
+  1096 /* Property action_table_row1048 */,
+  1097 /* Property action_table_row1049 */,
+  1098 /* Property action_table_row1050 */,
+  1099 /* Property action_table_row1051 */,
+  1100 /* Property action_table_row1052 */,
+  1101 /* Property action_table_row1053 */,
+  1102 /* Property action_table_row1054 */,
+  1103 /* Property action_table_row1055 */,
+  1104 /* Property action_table_row1056 */,
+  1105 /* Property action_table_row1057 */,
+  1106 /* Property action_table_row1058 */,
+  1107 /* Property action_table_row1059 */,
+  1108 /* Property action_table_row1060 */,
+  1109 /* Property action_table_row1061 */,
+  1110 /* Property action_table_row1062 */,
+  1111 /* Property action_table_row1063 */,
+  1112 /* Property action_table_row1064 */,
+  1113 /* Property action_table_row1065 */,
+  1114 /* Property action_table_row1066 */,
+  1115 /* Property action_table_row1067 */,
+  1116 /* Property action_table_row1068 */,
+  1117 /* Property action_table_row1069 */,
+  1118 /* Property action_table_row1070 */,
+  1119 /* Property action_table_row1071 */,
+  1120 /* Property action_table_row1072 */,
+  1121 /* Property action_table_row1073 */,
+  1122 /* Property action_table_row1074 */,
+  1123 /* Property action_table_row1075 */,
+  1124 /* Property action_table_row1076 */,
+  1125 /* Property action_table_row1077 */,
+  1126 /* Property action_table_row1078 */,
+  1127 /* Property action_table_row1079 */,
+  1128 /* Property action_table_row1080 */,
+  1129 /* Property action_table_row1081 */,
+  1130 /* Property action_table_row1082 */,
+  1131 /* Property action_table_row1083 */,
+  1132 /* Property action_table_row1084 */,
+  1133 /* Property action_table_row1085 */,
+  1134 /* Property action_table_row1086 */,
+  1135 /* Property action_table_row1087 */,
+  1136 /* Property action_table_row1088 */,
+  1137 /* Property action_table_row1089 */,
+  1138 /* Property action_table_row1090 */,
+  1139 /* Property action_table_row1091 */,
+  1140 /* Property action_table_row1092 */,
+  1141 /* Property action_table_row1093 */,
+  1142 /* Property action_table_row1094 */,
+  1143 /* Property action_table_row1095 */,
+  1144 /* Property action_table_row1096 */,
+  1145 /* Property action_table_row1097 */,
+  1146 /* Property action_table_row1098 */,
+  1147 /* Property action_table_row1099 */,
+  1148 /* Property action_table_row1100 */,
+  1149 /* Property action_table_row1101 */,
+  1150 /* Property action_table_row1102 */,
+  1151 /* Property action_table_row1103 */,
+  1152 /* Property action_table_row1104 */,
+  1153 /* Property action_table_row1105 */,
+  1154 /* Property action_table_row1106 */,
+  1155 /* Property action_table_row1107 */,
+  1156 /* Property action_table_row1108 */,
+  1157 /* Property action_table_row1109 */,
+  1158 /* Property action_table_row1110 */,
+  1159 /* Property action_table_row1111 */,
+  1160 /* Property action_table_row1112 */,
+  1161 /* Property action_table_row1113 */,
+  1162 /* Property action_table_row1114 */,
+  1163 /* Property action_table_row1115 */,
+  1164 /* Property action_table_row1116 */,
+  1165 /* Property action_table_row1117 */,
+  1166 /* Property action_table_row1118 */,
+  1167 /* Property action_table_row1119 */,
+  1168 /* Property action_table_row1120 */,
+  1169 /* Property action_table_row1121 */,
+  1170 /* Property action_table_row1122 */,
+  1171 /* Property action_table_row1123 */,
+  1172 /* Property action_table_row1124 */,
+  1173 /* Property action_table_row1125 */,
+  1174 /* Property action_table_row1126 */,
+  1175 /* Property action_table_row1127 */,
+  1176 /* Property action_table_row1128 */,
+  1177 /* Property action_table_row1129 */,
+  1178 /* Property action_table_row1130 */,
+  1179 /* Property action_table_row1131 */,
+  1180 /* Property action_table_row1132 */,
+  1181 /* Property action_table_row1133 */,
+  1182 /* Property action_table_row1134 */,
+  1183 /* Property action_table_row1135 */,
+  1184 /* Property action_table_row1136 */,
+  1185 /* Property action_table_row1137 */,
+  1186 /* Property action_table_row1138 */,
+  1187 /* Property action_table_row1139 */,
+  1188 /* Property action_table_row1140 */,
+  1189 /* Property action_table_row1141 */,
+  1190 /* Property action_table_row1142 */,
+  1191 /* Property action_table_row1143 */,
+  1192 /* Property action_table_row1144 */,
+  1193 /* Property build_goto_table */,
+  1194 /* Property error_messages */,
+  1195 /* Property errors */,
+};
+const int SFT_mmloader[52] = {
+  179 /* Id of ToolContext */,
+  3 /* Color of ToolContext */,
+  15 /* Property _error_count */,
+  16 /* Property _warning_count */,
+  17 /* Property _paths */,
+  18 /* Property _loaders */,
+  19 /* Property _option_context */,
+  20 /* Property _opt_warn */,
+  21 /* Property _opt_path */,
+  22 /* Property _opt_log */,
+  23 /* Property _opt_only_metamodel */,
+  24 /* Property _opt_only_parse */,
+  25 /* Property _opt_help */,
+  26 /* Property _processing_modules */,
+  27 /* Property _path_dirs */,
+  68 /* Color of ToolContext */,
+  69 /* Property error_count */,
+  70 /* Property warning_count */,
+  71 /* Property error */,
+  72 /* Property warning */,
+  73 /* Property paths */,
+  74 /* Property option_context */,
+  75 /* Property opt_warn */,
+  76 /* Property opt_path */,
+  77 /* Property opt_log */,
+  78 /* Property opt_only_metamodel */,
+  79 /* Property opt_only_parse */,
+  80 /* Property opt_help */,
+  81 /* Property init */,
+  82 /* Property process_options */,
+  83 /* Property try_to_load */,
+  84 /* Property get_module_from_filename */,
+  85 /* Property get_module */,
+  86 /* Property directory_for */,
+  87 /* Property register_loader */,
+  79 /* Id of ModuleLoader */,
+  2 /* Color of ModuleLoader */,
+  40 /* Color of ModuleLoader */,
+  41 /* Property file_type */,
+  42 /* Property try_to_load_dir */,
+  43 /* Property can_handle */,
+  44 /* Property load_and_process_module */,
+  45 /* Property load_module */,
+  46 /* Property parse_file */,
+  47 /* Property process_metamodel */,
+  1 /* Property _filename */,
+  2 /* Property _mtime */,
+  41 /* Property filename */,
+  42 /* Property filename= */,
+  43 /* Property mtime */,
+  44 /* Property mtime= */,
+  45 /* Property import_supers_modules */,
+};
+const int SFT_vararg[6] = {
+  1 /* Property _vararg_rank */,
+  40 /* Property vararg_rank */,
+  41 /* Property vararg_rank= */,
+  42 /* Property has_vararg */,
+  43 /* Property adaptation_to */,
+  44 /* Property init */,
+};
+const int SFT_genericity[36] = {
+  1 /* Property _types */,
+  2 /* Property _formals_types */,
+  41 /* Property get_formal */,
+  42 /* Property register_formal */,
+  43 /* Property get_instantiate_type */,
+  44 /* Property formals_types */,
+  45 /* Property get_type */,
+  46 /* Property is_generic */,
+  45 /* Property adaptation_to */,
+  2 /* Property _recv_alone */,
+  42 /* Property recv */,
+  43 /* Property recv= */,
+  44 /* Property adapt_property */,
+  45 /* Property inherit_from */,
+  46 /* Property is_generic */,
+  3139 /* Id of MMTypeGeneric */,
+  4 /* Color of MMTypeGeneric */,
+  2 /* Property _params */,
+  3 /* Property _props */,
+  63 /* Color of MMTypeGeneric */,
+  64 /* Property params */,
+  65 /* Property upcast_for */,
+  66 /* Property params_equals */,
+  67 /* Property to_s */,
+  68 /* Property is_subtype */,
+  69 /* Property init */,
+  3143 /* Id of MMTypeFormalParameter */,
+  4 /* Color of MMTypeFormalParameter */,
+  3 /* Property _def_class */,
+  4 /* Property _position */,
+  65 /* Color of MMTypeFormalParameter */,
+  66 /* Property def_class */,
+  67 /* Property position */,
+  68 /* Property bound= */,
+  69 /* Property with_bound */,
+  70 /* Property init */,
+};
+const int SFT_type_formal[9] = {
+  47 /* Property direct_type */,
+  2539 /* Id of MMTypeFormal */,
+  3 /* Color of MMTypeFormal */,
+  1 /* Property _name */,
+  2 /* Property _bound */,
+  61 /* Color of MMTypeFormal */,
+  62 /* Property name */,
+  63 /* Property bound */,
+  64 /* Property init */,
+};
+const int SFT_inheritance[56] = {
+  46 /* Property type_any */,
+  47 /* Property import_global_classes */,
+  48 /* Property import_local_classes */,
+  3 /* Property _direct_parents */,
+  4 /* Property _computing_super */,
+  47 /* Property compute_super_classes */,
+  48 /* Property compute_ancestors */,
+  49 /* Property inherit_global_properties */,
+  50 /* Property add_direct_parent */,
+  51 /* Property computed_super_classes */,
+  52 /* Property computed_ancestors */,
+  53 /* Property ancestor_for */,
+  54 /* Property [] */,
+  55 /* Property add_default_any_class */,
+  56 /* Property add_super_classes */,
+  57 /* Property add_explicit_classes */,
+  58 /* Property compute_super_parents */,
+  59 /* Property build_ancestors */,
+  60 /* Property group_ancestors */,
+  61 /* Property merge_ancestors */,
+  62 /* Property inherit_local_property */,
+  65 /* Property is_deferred */,
+  47 /* Property get_compatible_concrete_properties_for */,
+  46 /* Property inherit_global */,
+  47 /* Property inherit_to */,
+  48 /* Property inherit_from */,
+  2567 /* Id of MMImplicitProperty */,
+  4 /* Color of MMImplicitProperty */,
+  65 /* Color of MMImplicitProperty */,
+  66 /* Property init */,
+  3159 /* Id of MMImplicitMethod */,
+  5 /* Color of MMImplicitMethod */,
+  67 /* Color of MMImplicitMethod */,
+  68 /* Property init */,
+  3163 /* Id of MMImplicitAttribute */,
+  5 /* Color of MMImplicitAttribute */,
+  63 /* Color of MMImplicitAttribute */,
+  64 /* Property init */,
+  40 /* Property add_in */,
+  2571 /* Id of MMImplicitLocalClass */,
+  3 /* Color of MMImplicitLocalClass */,
+  99 /* Color of MMImplicitLocalClass */,
+  100 /* Property init */,
+  2559 /* Id of MMRefineAncestor */,
+  3 /* Color of MMRefineAncestor */,
+  3 /* Property _local_class */,
+  49 /* Color of MMRefineAncestor */,
+  50 /* Property init */,
+  2555 /* Id of MMSpecAncestor */,
+  3 /* Color of MMSpecAncestor */,
+  49 /* Color of MMSpecAncestor */,
+  50 /* Property init */,
+  2575 /* Id of MMDefaultAncestor */,
+  3 /* Color of MMDefaultAncestor */,
+  49 /* Color of MMDefaultAncestor */,
+  50 /* Property init */,
+};
+const int SFT_static_type[63] = {
+  5 /* Property _base_type_cache */,
+  6 /* Property _ancestors */,
+  63 /* Property get_type */,
+  64 /* Property add_ancestor */,
+  65 /* Property ancestors */,
+  66 /* Property ancestor */,
+  3 /* Property _signature_cache */,
+  49 /* Property signature */,
+  50 /* Property signature= */,
+  91 /* Id of MMSignature */,
+  2 /* Color of MMSignature */,
+  2 /* Property _recv */,
+  3 /* Property _params */,
+  4 /* Property _return_type */,
+  46 /* Color of MMSignature */,
+  47 /* Property recv */,
+  48 /* Property return_type */,
+  49 /* Property arity */,
+  50 /* Property < */,
+  51 /* Property [] */,
+  52 /* Property init */,
+  123 /* Id of MMAncestor */,
+  2 /* Color of MMAncestor */,
+  1 /* Property _stype */,
+  2 /* Property _inheriter */,
+  41 /* Color of MMAncestor */,
+  42 /* Property stype */,
+  43 /* Property stype= */,
+  44 /* Property inheriter */,
+  45 /* Property inheriter= */,
+  46 /* Property is_reffinement */,
+  47 /* Property is_specialisation */,
+  48 /* Property local_class */,
+  87 /* Id of MMType */,
+  2 /* Color of MMType */,
+  48 /* Color of MMType */,
+  49 /* Property module */,
+  50 /* Property local_class */,
+  51 /* Property < */,
+  52 /* Property is_supertype */,
+  53 /* Property select_method */,
+  54 /* Property select_attribute */,
+  55 /* Property select_property */,
+  56 /* Property for_module */,
+  57 /* Property adapt_to */,
+  58 /* Property upcast_for */,
+  59 /* Property not_for_self */,
+  2543 /* Id of MMTypeClass */,
+  3 /* Color of MMTypeClass */,
+  1 /* Property _local_class */,
+  61 /* Color of MMTypeClass */,
+  62 /* Property init */,
+  3135 /* Id of MMTypeSimpleClass */,
+  4 /* Color of MMTypeSimpleClass */,
+  63 /* Color of MMTypeSimpleClass */,
+  64 /* Property init */,
+  2535 /* Id of MMTypeNone */,
+  3 /* Color of MMTypeNone */,
+  1 /* Property _module */,
+  61 /* Color of MMTypeNone */,
+  62 /* Property init */,
+  3 /* Property _type_none */,
+  49 /* Property type_none */,
+};
+const int SFT_abstractmetamodel[184] = {
+  119 /* Id of MMContext */,
+  2 /* Color of MMContext */,
+  2 /* Property _module_hierarchy */,
+  3 /* Property _class_hierarchy */,
+  4 /* Property _global_classes */,
+  5 /* Property _modules */,
+  42 /* Color of MMContext */,
+  43 /* Property init */,
+  44 /* Property module_hierarchy */,
+  45 /* Property class_hierarchy */,
+  46 /* Property modules */,
+  47 /* Property add_module */,
+  48 /* Property add_global_class */,
+  49 /* Property add_local_class */,
+  115 /* Id of MMDirectory */,
+  2 /* Color of MMDirectory */,
+  1 /* Property _name */,
+  2 /* Property _path */,
+  3 /* Property _parent */,
+  4 /* Property _owner */,
+  5 /* Property _modules */,
+  6 /* Property _dhe */,
+  40 /* Color of MMDirectory */,
+  41 /* Property name */,
+  42 /* Property path */,
+  43 /* Property parent */,
+  44 /* Property owner */,
+  45 /* Property owner= */,
+  46 /* Property modules */,
+  47 /* Property add_module */,
+  48 /* Property dhe */,
+  49 /* Property init */,
+  50 /* Property full_name_for */,
+  95 /* Id of MMModule */,
+  2 /* Color of MMModule */,
+  4 /* Property _context */,
+  5 /* Property _name */,
+  6 /* Property _full_name */,
+  7 /* Property _directory */,
+  8 /* Property _mhe */,
+  9 /* Property _global_classes */,
+  10 /* Property _local_classes */,
+  11 /* Property _class_specialization_hierarchy */,
+  12 /* Property _intrude_modules */,
+  13 /* Property _public_modules */,
+  14 /* Property _private_modules */,
+  15 /* Property _explicit_imported_modules */,
+  16 /* Property _local_class_by_global */,
+  17 /* Property _global_class_by_name */,
+  50 /* Color of MMModule */,
+  51 /* Property context */,
+  52 /* Property name */,
+  53 /* Property full_name */,
+  54 /* Property directory */,
+  55 /* Property mhe */,
+  56 /* Property global_classes */,
+  57 /* Property local_classes */,
+  58 /* Property class_specialization_hierarchy */,
+  59 /* Property explicit_imported_modules */,
+  60 /* Property init */,
+  61 /* Property add_super_module */,
+  62 /* Property visibility_for */,
+  63 /* Property [] */,
+  64 /* Property add_local_class */,
+  65 /* Property class_by_name */,
+  66 /* Property has_global_class_named */,
+  67 /* Property global_class_named */,
+  68 /* Property set_supers_class */,
+  69 /* Property register_global_class */,
+  111 /* Id of MMGlobalClass */,
+  2 /* Color of MMGlobalClass */,
+  1 /* Property _intro */,
+  2 /* Property _class_refinement_hierarchy */,
+  3 /* Property _is_interface */,
+  4 /* Property _is_abstract */,
+  5 /* Property _is_universal */,
+  6 /* Property _visibility_level */,
+  44 /* Color of MMGlobalClass */,
+  45 /* Property intro */,
+  46 /* Property class_refinement_hierarchy */,
+  47 /* Property init */,
+  48 /* Property name */,
+  49 /* Property module */,
+  50 /* Property register_local_class */,
+  51 /* Property is_interface */,
+  52 /* Property is_interface= */,
+  53 /* Property is_abstract */,
+  54 /* Property is_abstract= */,
+  55 /* Property is_universal */,
+  56 /* Property is_universal= */,
+  57 /* Property visibility_level */,
+  58 /* Property visibility_level= */,
+  103 /* Id of MMLocalClass */,
+  2 /* Color of MMLocalClass */,
+  7 /* Property _name */,
+  8 /* Property _arity */,
+  9 /* Property _module */,
+  10 /* Property _abstract */,
+  11 /* Property _global */,
+  12 /* Property _crhe */,
+  13 /* Property _cshe */,
+  14 /* Property _che */,
+  15 /* Property _local_property_by_global */,
+  16 /* Property _global_properties */,
+  17 /* Property _properties_by_name */,
+  67 /* Color of MMLocalClass */,
+  68 /* Property name */,
+  69 /* Property arity */,
+  70 /* Property module */,
+  71 /* Property abstract */,
+  72 /* Property abstract= */,
+  73 /* Property global */,
+  74 /* Property crhe */,
+  75 /* Property cshe */,
+  76 /* Property che */,
+  77 /* Property local_property_by_global */,
+  78 /* Property global_properties */,
+  79 /* Property properties_by_name */,
+  80 /* Property init */,
+  81 /* Property for_module */,
+  82 /* Property new_global */,
+  83 /* Property set_global */,
+  84 /* Property has_global_property_by_name */,
+  85 /* Property get_property_by_name */,
+  86 /* Property attribute */,
+  87 /* Property method */,
+  88 /* Property super_methods_named */,
+  89 /* Property register_local_property */,
+  90 /* Property register_global_property */,
+  91 /* Property [] */,
+  92 /* Property context */,
+  107 /* Id of MMGlobalProperty */,
+  2 /* Color of MMGlobalProperty */,
+  2 /* Property _intro */,
+  3 /* Property _concrete_property_hierarchy */,
+  4 /* Property _is_init */,
+  5 /* Property _visibility_level */,
+  48 /* Color of MMGlobalProperty */,
+  49 /* Property intro */,
+  50 /* Property local_class */,
+  51 /* Property concrete_property_hierarchy */,
+  52 /* Property init */,
+  53 /* Property add_concrete_property */,
+  54 /* Property is_attribute */,
+  55 /* Property is_method */,
+  56 /* Property is_init */,
+  57 /* Property is_init= */,
+  58 /* Property visibility_level */,
+  59 /* Property visibility_level= */,
+  99 /* Id of MMLocalProperty */,
+  2 /* Color of MMLocalProperty */,
+  4 /* Property _name */,
+  5 /* Property _local_class */,
+  6 /* Property _global */,
+  7 /* Property _super_prop */,
+  8 /* Property _concrete_property */,
+  51 /* Color of MMLocalProperty */,
+  52 /* Property name */,
+  53 /* Property local_class */,
+  54 /* Property global */,
+  55 /* Property super_prop */,
+  56 /* Property concrete_property */,
+  57 /* Property module */,
+  58 /* Property full_name */,
+  59 /* Property set_global */,
+  60 /* Property init */,
+  2587 /* Id of MMAttribute */,
+  3 /* Color of MMAttribute */,
+  62 /* Color of MMAttribute */,
+  2563 /* Id of MMMethod */,
+  3 /* Color of MMMethod */,
+  64 /* Color of MMMethod */,
+  2583 /* Id of MMConcreteClass */,
+  3 /* Color of MMConcreteClass */,
+  99 /* Color of MMConcreteClass */,
+  2579 /* Id of MMConcreteProperty */,
+  4 /* Color of MMConcreteProperty */,
+  10 /* Property _cprhe */,
+  11 /* Property _need_super */,
+  66 /* Color of MMConcreteProperty */,
+  67 /* Property cprhe */,
+  68 /* Property need_super */,
+  69 /* Property need_super= */,
+  70 /* Property new_global */,
+};
+const int SFT_partial_order[49] = {
+  2499 /* Id of PartialOrder */,
+  6 /* Color of PartialOrder */,
+  1 /* Property _elements */,
+  2 /* Property _elements_list */,
+  3 /* Property _roots */,
+  66 /* Color of PartialOrder */,
+  67 /* Property roots */,
+  68 /* Property [] */,
+  69 /* Property to_dot */,
+  70 /* Property to_dot_header */,
+  71 /* Property to_dot_node */,
+  72 /* Property to_dot_edge */,
+  73 /* Property select_smallests */,
+  74 /* Property add */,
+  75 /* Property has_all */,
+  76 /* Property new_poe */,
+  77 /* Property add_to_smallests */,
+  78 /* Property compute_smallers_for */,
+  79 /* Property init */,
+  55 /* Id of PartialOrderElement */,
+  2 /* Color of PartialOrderElement */,
+  1 /* Property _order */,
+  2 /* Property _value */,
+  3 /* Property _rank */,
+  4 /* Property _direct_greaters */,
+  5 /* Property _direct_smallers */,
+  6 /* Property _greaters */,
+  7 /* Property _greaters_and_self_cache */,
+  8 /* Property _smallers_last_length */,
+  9 /* Property _smallers_cache */,
+  10 /* Property _linear_extension_cache */,
+  11 /* Property _reverse_linear_extension_cache */,
+  40 /* Color of PartialOrderElement */,
+  41 /* Property order */,
+  42 /* Property value */,
+  43 /* Property rank */,
+  44 /* Property direct_greaters */,
+  45 /* Property direct_smallers */,
+  46 /* Property greaters */,
+  47 /* Property greaters_and_self */,
+  48 /* Property smallers */,
+  49 /* Property linear_extension */,
+  50 /* Property reverse_linear_extension */,
+  51 /* Property < */,
+  52 /* Property <= */,
+  53 /* Property > */,
+  54 /* Property >= */,
+  55 /* Property register_direct_smallers */,
+  56 /* Property init */,
+};
+const int SFT_virtualtype[18] = {
+  46 /* Property is_virtual_type */,
+  2531 /* Id of MMTypeProperty */,
+  3 /* Color of MMTypeProperty */,
+  9 /* Property _stype_cache */,
+  61 /* Color of MMTypeProperty */,
+  62 /* Property stype */,
+  60 /* Property select_virtual_type */,
+  3131 /* Id of MMVirtualType */,
+  4 /* Color of MMVirtualType */,
+  3 /* Property _property */,
+  65 /* Color of MMVirtualType */,
+  66 /* Property property */,
+  67 /* Property init */,
+  93 /* Property virtual_type */,
+  3155 /* Id of MMImplicitType */,
+  5 /* Color of MMImplicitType */,
+  63 /* Color of MMImplicitType */,
+  64 /* Property init */,
+};
+const int SFT_opts[69] = {
+  71 /* Id of Option */,
+  2 /* Color of Option */,
+  1 /* Property _names */,
+  2 /* Property _helptext */,
+  3 /* Property _mandatory */,
+  4 /* Property _context */,
+  5 /* Property _value */,
+  6 /* Property _default_value */,
+  40 /* Color of Option */,
+  41 /* Property names */,
+  42 /* Property helptext */,
+  43 /* Property mandatory */,
+  44 /* Property mandatory= */,
+  45 /* Property context */,
+  46 /* Property context= */,
+  47 /* Property value */,
+  48 /* Property value= */,
+  49 /* Property default_value */,
+  50 /* Property default_value= */,
+  51 /* Property init_opt */,
+  52 /* Property add_aliases */,
+  53 /* Property pretty */,
+  54 /* Property pretty_default */,
+  55 /* Property read_param */,
+  2503 /* Id of OptionText */,
+  3 /* Color of OptionText */,
+  56 /* Color of OptionText */,
+  57 /* Property init */,
+  2511 /* Id of OptionBool */,
+  3 /* Color of OptionBool */,
+  56 /* Color of OptionBool */,
+  57 /* Property init */,
+  2507 /* Id of OptionParameter */,
+  3 /* Color of OptionParameter */,
+  56 /* Color of OptionParameter */,
+  57 /* Property convert */,
+  58 /* Property init_opt */,
+  3103 /* Id of OptionString */,
+  4 /* Color of OptionString */,
+  59 /* Color of OptionString */,
+  60 /* Property init */,
+  3111 /* Id of OptionEnum */,
+  4 /* Color of OptionEnum */,
+  7 /* Property _enum */,
+  59 /* Color of OptionEnum */,
+  60 /* Property init */,
+  3107 /* Id of OptionInt */,
+  4 /* Color of OptionInt */,
+  59 /* Color of OptionInt */,
+  60 /* Property init */,
+  3115 /* Id of OptionArray */,
+  4 /* Color of OptionArray */,
+  7 /* Property _values */,
+  59 /* Color of OptionArray */,
+  60 /* Property init */,
+  67 /* Id of OptionContext */,
+  2 /* Color of OptionContext */,
+  1 /* Property _options */,
+  2 /* Property _rest */,
+  3 /* Property _optmap */,
+  40 /* Color of OptionContext */,
+  41 /* Property options */,
+  42 /* Property rest */,
+  43 /* Property usage */,
+  44 /* Property parse */,
+  45 /* Property parse_intern */,
+  46 /* Property add_option */,
+  47 /* Property init */,
+  48 /* Property build */,
+};
+const int SFT_control_flow[48] = {
+  91 /* Property do_control_flow */,
+  3203 /* Id of ControlFlowVisitor */,
+  4 /* Color of ControlFlowVisitor */,
+  5 /* Property _once_count */,
+  6 /* Property _control_flow_ctx */,
+  64 /* Color of ControlFlowVisitor */,
+  65 /* Property once_count */,
+  66 /* Property once_count= */,
+  67 /* Property control_flow_ctx */,
+  68 /* Property control_flow_ctx= */,
+  69 /* Property init */,
+  147 /* Id of ControlFlowContext */,
+  2 /* Color of ControlFlowContext */,
+  1 /* Property _prev */,
+  2 /* Property _has_return */,
+  3 /* Property _unreash */,
+  4 /* Property _already_unreash */,
+  5 /* Property _base_block */,
+  40 /* Color of ControlFlowContext */,
+  41 /* Property prev */,
+  42 /* Property has_return */,
+  43 /* Property has_return= */,
+  44 /* Property unreash */,
+  45 /* Property unreash= */,
+  46 /* Property already_unreash */,
+  47 /* Property already_unreash= */,
+  48 /* Property base_block */,
+  49 /* Property base_block= */,
+  50 /* Property sub */,
+  51 /* Property init */,
+  52 /* Property with */,
+  57 /* Property accept_control_flow */,
+  90 /* Property accept_control_flow */,
+  92 /* Property accept_control_flow */,
+  75 /* Property accept_control_flow */,
+  3567 /* Id of ABlockControler */,
+  5 /* Color of ABlockControler */,
+  6 /* Property _block */,
+  75 /* Color of ABlockControler */,
+  76 /* Property block */,
+  77 /* Property accept_control_flow */,
+  77 /* Property accept_control_flow */,
+  75 /* Property accept_control_flow */,
+  3535 /* Id of AControlableBlock */,
+  5 /* Color of AControlableBlock */,
+  76 /* Color of AControlableBlock */,
+  77 /* Property accept_control_flow */,
+  78 /* Property accept_control_flow */,
+};
+const int SFT_typing[99] = {
+  92 /* Property do_typing */,
+  2671 /* Id of TypingVisitor */,
+  4 /* Color of TypingVisitor */,
+  5 /* Property _variable_ctx */,
+  6 /* Property _self_type */,
+  7 /* Property _top_block */,
+  8 /* Property _explicit_super_init_calls */,
+  9 /* Property _explicit_other_init_call */,
+  64 /* Color of TypingVisitor */,
+  65 /* Property variable_ctx */,
+  66 /* Property variable_ctx= */,
+  67 /* Property self_type */,
+  68 /* Property self_type= */,
+  69 /* Property top_block */,
+  70 /* Property top_block= */,
+  71 /* Property explicit_super_init_calls */,
+  72 /* Property explicit_super_init_calls= */,
+  73 /* Property explicit_other_init_call */,
+  74 /* Property explicit_other_init_call= */,
+  75 /* Property init */,
+  76 /* Property get_default_constructor_for */,
+  11 /* Id of VariableContext */,
+  2 /* Color of VariableContext */,
+  1 /* Property _dico */,
+  40 /* Color of VariableContext */,
+  41 /* Property [] */,
+  42 /* Property add */,
+  43 /* Property stype */,
+  44 /* Property sub */,
+  45 /* Property sub_with */,
+  46 /* Property init */,
+  199 /* Id of SubVariableContext */,
+  3 /* Color of SubVariableContext */,
+  2 /* Property _prev */,
+  3 /* Property _variable */,
+  4 /* Property _var_type */,
+  47 /* Color of SubVariableContext */,
+  48 /* Property prev */,
+  49 /* Property with */,
+  58 /* Property accept_typing */,
+  59 /* Property after_typing */,
+  73 /* Property accept_typing */,
+  98 /* Property accept_typing */,
+  91 /* Property accept_typing */,
+  13 /* Property _super_init_calls */,
+  14 /* Property _explicit_super_init_calls */,
+  100 /* Property super_init_calls */,
+  101 /* Property explicit_super_init_calls */,
+  102 /* Property accept_typing */,
+  4 /* Property _stype */,
+  72 /* Property stype */,
+  4 /* Property _stype */,
+  5 /* Property _if_true_variable_ctx */,
+  71 /* Property is_implicit_self */,
+  72 /* Property is_self */,
+  73 /* Property is_variable */,
+  74 /* Property if_true_variable_ctx */,
+  6 /* Property _variable */,
+  75 /* Property variable */,
+  80 /* Property accept_typing */,
+  6 /* Property _variable */,
+  75 /* Property variable */,
+  6 /* Property _variable */,
+  75 /* Property variable */,
+  76 /* Property variable= */,
+  8 /* Property _assign_method */,
+  80 /* Property do_lvalue_typing */,
+  81 /* Property assign_method */,
+  66 /* Property method_name */,
+  75 /* Property stype= */,
+  8 /* Property _init_in_superclass */,
+  93 /* Property init_in_superclass */,
+  11 /* Property _prop */,
+  87 /* Property prop */,
+  88 /* Property do_typing */,
+  3599 /* Id of AAbsSendExpr */,
+  5 /* Color of AAbsSendExpr */,
+  6 /* Property _prop */,
+  7 /* Property _arguments */,
+  87 /* Color of AAbsSendExpr */,
+  88 /* Property do_typing */,
+  89 /* Property get_property */,
+  90 /* Property process_signature */,
+  91 /* Property prop */,
+  92 /* Property arguments */,
+  3663 /* Id of ASuperInitCall */,
+  7 /* Color of ASuperInitCall */,
+  75 /* Color of ASuperInitCall */,
+  76 /* Property register_super_init_call */,
+  93 /* Property name */,
+  94 /* Property raw_arguments */,
+  95 /* Property do_all_typing */,
+  3807 /* Id of ASendReassignExpr */,
+  9 /* Color of ASendReassignExpr */,
+  12 /* Property _read_prop */,
+  77 /* Color of ASendReassignExpr */,
+  78 /* Property read_prop */,
+  101 /* Property after_typing */,
+  102 /* Property variable_create */,
+};
+const int SFT_compiling[3] = {
+  70 /* Property compile_prog_to_c */,
+  71 /* Property compile_main */,
+  72 /* Property compile_separate_module */,
+};
+const int SFT_compiling_global[140] = {
+  159 /* Id of ColorContext */,
+  2 /* Color of ColorContext */,
+  1 /* Property _colors */,
+  40 /* Color of ColorContext */,
+  41 /* Property color */,
+  42 /* Property has_color */,
+  43 /* Property color= */,
+  2619 /* Id of GlobalAnalysis */,
+  3 /* Color of GlobalAnalysis */,
+  2 /* Property _compiled_classes */,
+  3 /* Property _module */,
+  4 /* Property _max_class_table_length */,
+  44 /* Color of GlobalAnalysis */,
+  45 /* Property compiled_classes */,
+  46 /* Property module */,
+  47 /* Property max_class_table_length */,
+  48 /* Property max_class_table_length= */,
+  49 /* Property init */,
+  1 /* Property _global_analysis */,
+  40 /* Property global_analysis */,
+  41 /* Property global_analysis= */,
+  2643 /* Id of CompiledClass */,
+  3 /* Color of CompiledClass */,
+  2 /* Property _local_class */,
+  3 /* Property _id */,
+  4 /* Property _class_table */,
+  5 /* Property _instance_table */,
+  6 /* Property _class_layout */,
+  7 /* Property _instance_layout */,
+  44 /* Color of CompiledClass */,
+  45 /* Property local_class */,
+  46 /* Property id */,
+  47 /* Property id= */,
+  48 /* Property class_table */,
+  49 /* Property class_table= */,
+  50 /* Property instance_table */,
+  51 /* Property instance_table= */,
+  52 /* Property class_layout */,
+  53 /* Property class_layout= */,
+  54 /* Property instance_layout */,
+  55 /* Property instance_layout= */,
+  56 /* Property init */,
+  1 /* Property _pos_of */,
+  40 /* Property pos_of */,
+  41 /* Property pos_of= */,
+  20 /* Property _base_attr_pos */,
+  21 /* Property _class_color_pos */,
+  22 /* Property _class_layout */,
+  23 /* Property _instance_layout */,
+  100 /* Property base_attr_pos */,
+  101 /* Property class_color_pos */,
+  102 /* Property class_layout */,
+  103 /* Property instance_layout */,
+  104 /* Property build_layout_in */,
+  18 /* Property _local_table */,
+  73 /* Property local_analysis */,
+  74 /* Property global_analysis */,
+  75 /* Property append_to_table */,
+  76 /* Property build_tables */,
+  77 /* Property colorize */,
+  78 /* Property free_color */,
+  79 /* Property compile_tables_to_c */,
+  80 /* Property declare_class_tables_to_c */,
+  81 /* Property compile_main_part */,
+  82 /* Property compile_mod_to_c */,
+  83 /* Property compile_local_table_to_c */,
+  19 /* Id of TableElt */,
+  2 /* Color of TableElt */,
+  40 /* Color of TableElt */,
+  41 /* Property is_related_to */,
+  42 /* Property length */,
+  43 /* Property item */,
+  44 /* Property compile_to_c */,
+  2591 /* Id of LocalTableElt */,
+  3 /* Color of LocalTableElt */,
+  45 /* Color of LocalTableElt */,
+  46 /* Property symbol */,
+  47 /* Property value */,
+  2675 /* Id of TableEltPropPos */,
+  4 /* Color of TableEltPropPos */,
+  1 /* Property _property */,
+  48 /* Color of TableEltPropPos */,
+  49 /* Property init */,
+  3235 /* Id of TableEltMethPos */,
+  5 /* Color of TableEltMethPos */,
+  50 /* Color of TableEltMethPos */,
+  51 /* Property init */,
+  3231 /* Id of TableEltSuperPos */,
+  5 /* Color of TableEltSuperPos */,
+  50 /* Color of TableEltSuperPos */,
+  51 /* Property init */,
+  3251 /* Id of TableEltAttrPos */,
+  5 /* Color of TableEltAttrPos */,
+  50 /* Color of TableEltAttrPos */,
+  51 /* Property init */,
+  2679 /* Id of TableEltClassPos */,
+  4 /* Color of TableEltClassPos */,
+  1 /* Property _local_class */,
+  48 /* Color of TableEltClassPos */,
+  49 /* Property init */,
+  3243 /* Id of TableEltClassIdPos */,
+  5 /* Color of TableEltClassIdPos */,
+  50 /* Color of TableEltClassIdPos */,
+  51 /* Property init */,
+  3239 /* Id of TableEltClassInitTablePos */,
+  5 /* Color of TableEltClassInitTablePos */,
+  50 /* Color of TableEltClassInitTablePos */,
+  51 /* Property init */,
+  3247 /* Id of TableEltClassColorPos */,
+  5 /* Color of TableEltClassColorPos */,
+  50 /* Color of TableEltClassColorPos */,
+  51 /* Property init */,
+  2683 /* Id of TableEltBaseAttrPos */,
+  4 /* Color of TableEltBaseAttrPos */,
+  1 /* Property _local_class */,
+  48 /* Color of TableEltBaseAttrPos */,
+  49 /* Property init */,
+  191 /* Id of TableEltComposite */,
+  3 /* Color of TableEltComposite */,
+  1 /* Property _table */,
+  2 /* Property _cc */,
+  3 /* Property _offsets */,
+  45 /* Color of TableEltComposite */,
+  46 /* Property add */,
+  47 /* Property init */,
+  195 /* Id of TableEltClassSelfId */,
+  3 /* Color of TableEltClassSelfId */,
+  45 /* Color of TableEltClassSelfId */,
+  46 /* Property init */,
+  187 /* Id of TableEltVftPointer */,
+  3 /* Color of TableEltVftPointer */,
+  45 /* Color of TableEltVftPointer */,
+  46 /* Property init */,
+  2651 /* Id of ClassSorter */,
+  3 /* Color of ClassSorter */,
+  46 /* Color of ClassSorter */,
+  47 /* Property init */,
+  94 /* Property compare */,
+  95 /* Property declare_tables_to_c */,
+  96 /* Property compile_tables_to_c */,
+};
+const int SFT_compiling_methods[54] = {
+  2 /* Property _variable_index */,
+  3 /* Property _variable_index_max */,
+  4 /* Property _varnames */,
+  5 /* Property _has_return */,
+  6 /* Property _method_params */,
+  7 /* Property _method */,
+  8 /* Property _return_label */,
+  9 /* Property _break_label */,
+  10 /* Property _continue_label */,
+  11 /* Property _return_value */,
+  42 /* Property compile_stmt */,
+  43 /* Property compile_expr */,
+  44 /* Property ensure_var */,
+  45 /* Property add_assignment */,
+  46 /* Property variable */,
+  47 /* Property get_var */,
+  48 /* Property free_var */,
+  49 /* Property clear */,
+  50 /* Property varnames */,
+  51 /* Property has_return */,
+  52 /* Property has_return= */,
+  53 /* Property method_params */,
+  54 /* Property method_params= */,
+  55 /* Property method */,
+  56 /* Property method= */,
+  57 /* Property return_label */,
+  58 /* Property return_label= */,
+  59 /* Property break_label */,
+  60 /* Property break_label= */,
+  61 /* Property continue_label */,
+  62 /* Property continue_label= */,
+  63 /* Property return_value */,
+  64 /* Property return_value= */,
+  65 /* Property init */,
+  66 /* Property invoke_super_init_calls_after */,
+  61 /* Property compile_call */,
+  62 /* Property compile_constructor_call */,
+  63 /* Property compile_super_call */,
+  61 /* Property compile_access */,
+  71 /* Property compile_property_to_c */,
+  74 /* Property decl_csignature */,
+  75 /* Property do_compile_inside */,
+  40 /* Property compile_cast */,
+  41 /* Property compile_type_check */,
+  73 /* Property do_compile_inside */,
+  66 /* Property compile_expr */,
+  67 /* Property prepare_compile_stmt */,
+  68 /* Property compile_stmt */,
+  75 /* Property compile_inside_block */,
+  6 /* Property _cstring */,
+  7 /* Property _cstring_length */,
+  75 /* Property string_text */,
+  76 /* Property compute_string_info */,
+  75 /* Property propname */,
+};
+const int SFT_compiling_base[88] = {
+  6 /* Property _global */,
+  7 /* Property _attr_sim */,
+  8 /* Property _base_dir */,
+  9 /* Property _clibdir */,
+  10 /* Property _bindir */,
+  11 /* Property _output_file */,
+  12 /* Property _boost */,
+  13 /* Property _no_cc */,
+  14 /* Property _ext_prefix */,
+  50 /* Property global */,
+  51 /* Property global= */,
+  52 /* Property attr_sim */,
+  53 /* Property attr_sim= */,
+  54 /* Property base_dir */,
+  55 /* Property base_dir= */,
+  56 /* Property clibdir */,
+  57 /* Property clibdir= */,
+  58 /* Property bindir */,
+  59 /* Property bindir= */,
+  60 /* Property output_file */,
+  61 /* Property output_file= */,
+  62 /* Property boost */,
+  63 /* Property boost= */,
+  64 /* Property no_cc */,
+  65 /* Property no_cc= */,
+  66 /* Property ext_prefix */,
+  67 /* Property ext_prefix= */,
+  151 /* Id of CompilerVisitor */,
+  2 /* Color of CompilerVisitor */,
+  12 /* Property _number_cpt */,
+  13 /* Property _module */,
+  14 /* Property _ctx */,
+  15 /* Property _indent_level */,
+  16 /* Property _tc */,
+  67 /* Color of CompilerVisitor */,
+  68 /* Property add_decl */,
+  69 /* Property add_instr */,
+  70 /* Property new_number */,
+  71 /* Property indent */,
+  72 /* Property unindent */,
+  73 /* Property module */,
+  74 /* Property module= */,
+  75 /* Property ctx */,
+  76 /* Property ctx= */,
+  77 /* Property indent_level */,
+  78 /* Property indent_level= */,
+  79 /* Property tc */,
+  80 /* Property tc= */,
+  81 /* Property init */,
+  167 /* Id of CContext */,
+  2 /* Color of CContext */,
+  1 /* Property _decls */,
+  2 /* Property _instrs */,
+  40 /* Color of CContext */,
+  41 /* Property decls */,
+  42 /* Property instrs */,
+  43 /* Property append */,
+  44 /* Property init */,
+  42 /* Property meth_call */,
+  43 /* Property attr_access */,
+  44 /* Property color_id */,
+  40 /* Property id_id */,
+  41 /* Property color_id */,
+  42 /* Property init_table_pos_id */,
+  18 /* Property _primitive_info_cache */,
+  19 /* Property _primitive_info_b */,
+  97 /* Property primitive_info */,
+  98 /* Property primitive_ctypes */,
+  47 /* Id of PrimitiveInfo */,
+  2 /* Color of PrimitiveInfo */,
+  1 /* Property _name */,
+  2 /* Property _tagged */,
+  3 /* Property _cname */,
+  40 /* Color of PrimitiveInfo */,
+  41 /* Property name */,
+  42 /* Property name= */,
+  43 /* Property tagged */,
+  44 /* Property tagged= */,
+  45 /* Property cname */,
+  46 /* Property cname= */,
+  47 /* Property init */,
+  42 /* Property cname */,
+  43 /* Property default_cvalue */,
+  44 /* Property boxtype */,
+  45 /* Property unboxtype */,
+  1 /* Property _cname_cache */,
+  40 /* Property cname */,
+  41 /* Property color_id_for_super */,
+};
+const int SFT_utils[2] = {
+  13 /* Property cmangle */,
+  14 /* Property cmangle_table */,
+};
+const int SFT_nitc[21] = {
+  3271 /* Id of NitCompiler */,
+  5 /* Color of NitCompiler */,
+  28 /* Property _opt_output */,
+  29 /* Property _opt_boost */,
+  30 /* Property _opt_no_cc */,
+  31 /* Property _opt_attr_sim */,
+  32 /* Property _opt_global */,
+  33 /* Property _opt_clibdir */,
+  34 /* Property _opt_bindir */,
+  35 /* Property _opt_extension_prefix */,
+  93 /* Color of NitCompiler */,
+  94 /* Property opt_output */,
+  95 /* Property opt_boost */,
+  96 /* Property opt_no_cc */,
+  97 /* Property opt_attr_sim */,
+  98 /* Property opt_global */,
+  99 /* Property opt_clibdir */,
+  100 /* Property opt_bindir */,
+  101 /* Property opt_extension_prefix */,
+  102 /* Property init */,
+  103 /* Property process_options */,
+};
+const classtable_elt_t VFT_NitCompiler[104] = {
+  {(int) 3271 /* 0: Identity */},
+  {(int) 3 /* 1: NitCompiler < Object: superclass typecheck marker */},
+  {(int) 119 /* 2: NitCompiler < MMContext: superclass typecheck marker */},
+  {(int) 179 /* 3: NitCompiler < ToolContext: superclass typecheck marker */},
+  {(int) 3227 /* 4: NitCompiler < AbstractCompiler: superclass typecheck marker */},
+  {(int) 3271 /* 5: NitCompiler < NitCompiler: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 3 /* 20: NitCompiler < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) syntax___MMContext___tc},
+  {(int) syntax___MMContext___tc__eq},
+  {(int) 2 /* 42: NitCompiler < MMContext: superclass init_table position */},
+  {(int) abstractmetamodel___MMContext___init},
+  {(int) abstractmetamodel___MMContext___module_hierarchy},
+  {(int) abstractmetamodel___MMContext___class_hierarchy},
+  {(int) abstractmetamodel___MMContext___modules},
+  {(int) abstractmetamodel___MMContext___add_module},
+  {(int) abstractmetamodel___MMContext___add_global_class},
+  {(int) abstractmetamodel___MMContext___add_local_class},
+  {(int) compiling_base___ToolContext___global},
+  {(int) compiling_base___ToolContext___global__eq},
+  {(int) compiling_base___ToolContext___attr_sim},
+  {(int) compiling_base___ToolContext___attr_sim__eq},
+  {(int) compiling_base___ToolContext___base_dir},
+  {(int) compiling_base___ToolContext___base_dir__eq},
+  {(int) compiling_base___ToolContext___clibdir},
+  {(int) compiling_base___ToolContext___clibdir__eq},
+  {(int) compiling_base___ToolContext___bindir},
+  {(int) compiling_base___ToolContext___bindir__eq},
+  {(int) compiling_base___ToolContext___output_file},
+  {(int) compiling_base___ToolContext___output_file__eq},
+  {(int) compiling_base___ToolContext___boost},
+  {(int) compiling_base___ToolContext___boost__eq},
+  {(int) compiling_base___ToolContext___no_cc},
+  {(int) compiling_base___ToolContext___no_cc__eq},
+  {(int) compiling_base___ToolContext___ext_prefix},
+  {(int) compiling_base___ToolContext___ext_prefix__eq},
+  {(int) 1 /* 68: NitCompiler < ToolContext: superclass init_table position */},
+  {(int) mmloader___ToolContext___error_count},
+  {(int) mmloader___ToolContext___warning_count},
+  {(int) mmloader___ToolContext___error},
+  {(int) mmloader___ToolContext___warning},
+  {(int) mmloader___ToolContext___paths},
+  {(int) mmloader___ToolContext___option_context},
+  {(int) mmloader___ToolContext___opt_warn},
+  {(int) mmloader___ToolContext___opt_path},
+  {(int) mmloader___ToolContext___opt_log},
+  {(int) mmloader___ToolContext___opt_only_metamodel},
+  {(int) mmloader___ToolContext___opt_only_parse},
+  {(int) mmloader___ToolContext___opt_help},
+  {(int) mmloader___ToolContext___init},
+  {(int) nitc___NitCompiler___process_options},
+  {(int) mmloader___ToolContext___try_to_load},
+  {(int) mmloader___ToolContext___get_module_from_filename},
+  {(int) mmloader___ToolContext___get_module},
+  {(int) mmloader___ToolContext___directory_for},
+  {(int) mmloader___ToolContext___register_loader},
+  {(int) 0 /* 88: NitCompiler < AbstractCompiler: superclass init_table position */},
+  {(int) abstracttool___AbstractCompiler___init},
+  {(int) abstracttool___AbstractCompiler___exec_cmd_line},
+  {(int) nitc___NitCompiler___perform_work},
+  {(int) abstracttool___AbstractCompiler___dump_context_info},
+  {(int) 4 /* 93: NitCompiler < NitCompiler: superclass init_table position */},
+  {(int) nitc___NitCompiler___opt_output},
+  {(int) nitc___NitCompiler___opt_boost},
+  {(int) nitc___NitCompiler___opt_no_cc},
+  {(int) nitc___NitCompiler___opt_attr_sim},
+  {(int) nitc___NitCompiler___opt_global},
+  {(int) nitc___NitCompiler___opt_clibdir},
+  {(int) nitc___NitCompiler___opt_bindir},
+  {(int) nitc___NitCompiler___opt_extension_prefix},
+  {(int) nitc___NitCompiler___init},
+  {(int) mmloader___ToolContext___process_options},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute NitCompiler::_tc */
+/* 2: Attribute NitCompiler::_module_hierarchy */
+/* 3: Attribute NitCompiler::_class_hierarchy */
+/* 4: Attribute NitCompiler::_global_classes */
+/* 5: Attribute NitCompiler::_modules */
+/* 6: Attribute NitCompiler::_global */
+/* 7: Attribute NitCompiler::_attr_sim */
+/* 8: Attribute NitCompiler::_base_dir */
+/* 9: Attribute NitCompiler::_clibdir */
+/* 10: Attribute NitCompiler::_bindir */
+/* 11: Attribute NitCompiler::_output_file */
+/* 12: Attribute NitCompiler::_boost */
+/* 13: Attribute NitCompiler::_no_cc */
+/* 14: Attribute NitCompiler::_ext_prefix */
+/* 15: Attribute NitCompiler::_error_count */
+/* 16: Attribute NitCompiler::_warning_count */
+/* 17: Attribute NitCompiler::_paths */
+/* 18: Attribute NitCompiler::_loaders */
+/* 19: Attribute NitCompiler::_option_context */
+/* 20: Attribute NitCompiler::_opt_warn */
+/* 21: Attribute NitCompiler::_opt_path */
+/* 22: Attribute NitCompiler::_opt_log */
+/* 23: Attribute NitCompiler::_opt_only_metamodel */
+/* 24: Attribute NitCompiler::_opt_only_parse */
+/* 25: Attribute NitCompiler::_opt_help */
+/* 26: Attribute NitCompiler::_processing_modules */
+/* 27: Attribute NitCompiler::_path_dirs */
+/* 28: Attribute NitCompiler::_opt_output */
+/* 29: Attribute NitCompiler::_opt_boost */
+/* 30: Attribute NitCompiler::_opt_no_cc */
+/* 31: Attribute NitCompiler::_opt_attr_sim */
+/* 32: Attribute NitCompiler::_opt_global */
+/* 33: Attribute NitCompiler::_opt_clibdir */
+/* 34: Attribute NitCompiler::_opt_bindir */
+/* 35: Attribute NitCompiler::_opt_extension_prefix */
+val_t NEW_NitCompiler(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  val_t variable28;
+  val_t variable29;
+  val_t variable30;
+  val_t variable31;
+  val_t variable32;
+  val_t variable33;
+  val_t variable34;
+  val_t variable35;
+  val_t variable36;
+  val_t variable37;
+  val_t variable38;
+  val_t variable39;
+  val_t variable40;
+  val_t variable41;
+  val_t variable42;
+  val_t variable43;
+  val_t variable44;
+  val_t variable45;
+  val_t variable46;
+  val_t variable47;
+  val_t variable48;
+  val_t variable49;
+  val_t variable50;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 36);
+  obj->vft = (classtable_elt_t*)VFT_NitCompiler;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
+  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
+  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((int)0);
+  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((int)0);
+  variable4 = NEW_array___Array___init(); /*new Array[ModuleLoader]*/
+  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
+  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
+  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
+  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*Array::add*/;
+  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
+  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*Array::add*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*Array::add*/;
+  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
+  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
+  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*Array::add*/;
+  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
+  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*Array::add*/;
+  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
+  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*Array::add*/;
+  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
+  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
+  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*Array::add*/;
+  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*Array::add*/;
+  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*Array::add*/;
+  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
+  variable24 = NEW_hash___HashSet___init(); /*new HashSet[Symbol]*/
+  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
+  variable25 = NEW_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
+  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
+  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
+  variable26 = NEW_string___String___with_native(BOX_NativeString("Output file"), TAG_Int(11)); /*new String*/
+  variable27 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable28 = NEW_string___String___with_native(BOX_NativeString("-o"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27, variable28) /*Array::add*/;
+  variable29 = NEW_string___String___with_native(BOX_NativeString("--output"), TAG_Int(8)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27, variable29) /*Array::add*/;
+  variable28 = NEW_opts___OptionString___init(variable26, variable27); /*new OptionString*/
+  ATTR_nitc___NitCompiler____opt_output(obj) = variable28;
+  variable29 = NEW_string___String___with_native(BOX_NativeString("Optimize compilation"), TAG_Int(20)); /*new String*/
+  variable30 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable31 = NEW_string___String___with_native(BOX_NativeString("-O"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable31) /*Array::add*/;
+  variable32 = NEW_string___String___with_native(BOX_NativeString("--boost"), TAG_Int(7)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable32) /*Array::add*/;
+  variable31 = NEW_opts___OptionBool___init(variable29, variable30); /*new OptionBool*/
+  ATTR_nitc___NitCompiler____opt_boost(obj) = variable31;
+  variable32 = NEW_string___String___with_native(BOX_NativeString("Do not invoke C compiler"), TAG_Int(24)); /*new String*/
+  variable33 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable34 = NEW_string___String___with_native(BOX_NativeString("--no_cc"), TAG_Int(7)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable34) /*Array::add*/;
+  variable34 = NEW_opts___OptionBool___init(variable32, variable33); /*new OptionBool*/
+  ATTR_nitc___NitCompiler____opt_no_cc(obj) = variable34;
+  variable35 = NEW_string___String___with_native(BOX_NativeString("Use attribute simulation"), TAG_Int(24)); /*new String*/
+  variable36 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable37 = NEW_string___String___with_native(BOX_NativeString("--attr-sim"), TAG_Int(10)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable37) /*Array::add*/;
+  variable37 = NEW_opts___OptionBool___init(variable35, variable36); /*new OptionBool*/
+  ATTR_nitc___NitCompiler____opt_attr_sim(obj) = variable37;
+  variable38 = NEW_string___String___with_native(BOX_NativeString("Use global compilation"), TAG_Int(22)); /*new String*/
+  variable39 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable40 = NEW_string___String___with_native(BOX_NativeString("--global"), TAG_Int(8)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable40) /*Array::add*/;
+  variable40 = NEW_opts___OptionBool___init(variable38, variable39); /*new OptionBool*/
+  ATTR_nitc___NitCompiler____opt_global(obj) = variable40;
+  variable41 = NEW_string___String___with_native(BOX_NativeString("NIT C library directory"), TAG_Int(23)); /*new String*/
+  variable42 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable43 = NEW_string___String___with_native(BOX_NativeString("--clibdir"), TAG_Int(9)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable43) /*Array::add*/;
+  variable43 = NEW_opts___OptionString___init(variable41, variable42); /*new OptionString*/
+  ATTR_nitc___NitCompiler____opt_clibdir(obj) = variable43;
+  variable44 = NEW_string___String___with_native(BOX_NativeString("NIT tools directory"), TAG_Int(19)); /*new String*/
+  variable45 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable46 = NEW_string___String___with_native(BOX_NativeString("--bindir"), TAG_Int(8)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable46) /*Array::add*/;
+  variable46 = NEW_opts___OptionString___init(variable44, variable45); /*new OptionString*/
+  ATTR_nitc___NitCompiler____opt_bindir(obj) = variable46;
+  variable47 = NEW_string___String___with_native(BOX_NativeString("Append prefix to file extension"), TAG_Int(31)); /*new String*/
+  variable48 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable49 = NEW_string___String___with_native(BOX_NativeString("-p"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48, variable49) /*Array::add*/;
+  variable50 = NEW_string___String___with_native(BOX_NativeString("--extension-prefix"), TAG_Int(18)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48, variable50) /*Array::add*/;
+  variable49 = NEW_opts___OptionString___init(variable47, variable48); /*new OptionString*/
+  ATTR_nitc___NitCompiler____opt_extension_prefix(obj) = variable49;
+  return OBJ2VAL(obj);
+}
+val_t NEW_nitc___NitCompiler___init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_NitCompiler();
+  nitc___NitCompiler___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Sys[47] = {
+  {(int) 23 /* 0: Identity */},
+  {(int) 3 /* 1: Sys < Object: superclass typecheck marker */},
+  {(int) 23 /* 2: Sys < Sys: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Sys___args},
+  {(int) 0 /* 20: Sys < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) exec___Sys___system},
+  {(int) string___Sys___program_name},
+  {(int) string___Sys___init_args},
+  {(int) string___Sys___native_argc},
+  {(int) string___Sys___native_argv},
+  {(int) 1 /* 45: Sys < Sys: superclass init_table position */},
+  {(int) nitc___Sys___main},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Sys::_args_cache */
+val_t NEW_Sys(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Sys;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Object[40] = {
+  {(int) 3 /* 0: Identity */},
+  {(int) 3 /* 1: Object < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Object < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Object(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Object;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Comparable[56] = {
+  {(int) 155 /* 0: Identity */},
+  {(int) 3 /* 1: Comparable < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 155 /* 4: Comparable < Comparable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Comparable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 47: Comparable < Comparable: superclass init_table position */},
+  {(int) kernel___Comparable_____l},
+  {(int) kernel___Comparable_____leq},
+  {(int) kernel___Comparable_____geq},
+  {(int) kernel___Comparable_____g},
+  {(int) kernel___Comparable_____leqg},
+  {(int) kernel___Comparable___is_between},
+  {(int) kernel___Comparable___max},
+  {(int) kernel___Comparable___min},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Comparable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Comparable;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Discrete[62] = {
+  {(int) 2631 /* 0: Identity */},
+  {(int) 3 /* 1: Discrete < Object: superclass typecheck marker */},
+  {(int) 2631 /* 2: Discrete < Discrete: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 155 /* 4: Discrete < Comparable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Discrete < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 47: Discrete < Comparable: superclass init_table position */},
+  {(int) kernel___Comparable_____l},
+  {(int) kernel___Comparable_____leq},
+  {(int) kernel___Comparable_____geq},
+  {(int) kernel___Comparable_____g},
+  {(int) kernel___Comparable_____leqg},
+  {(int) kernel___Comparable___is_between},
+  {(int) kernel___Comparable___max},
+  {(int) kernel___Comparable___min},
+  {(int) 2 /* 56: Discrete < Discrete: superclass init_table position */},
+  {(int) kernel___Discrete___succ},
+  {(int) kernel___Discrete___prec},
+  {(int) kernel___Discrete_____plus},
+  {(int) kernel___Discrete_____minus},
+  {(int) kernel___Discrete___distance},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Discrete(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Discrete;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Bool[41] = {
+  {(int) -17 /* 0: Identity */},
+  {(int) 3 /* 1: Bool < Object: superclass typecheck marker */},
+  {(int) -17 /* 2: Bool < Bool: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Bool___hash},
+  {(int) string___Bool___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Bool < Object: superclass init_table position */},
+  {(int) kernel___Bool___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Bool_____eqeq},
+  {(int) kernel___Bool_____neq},
+  {(int) kernel___Bool___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Bool < Bool: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+const classtable_elt_t VFT_Float[63] = {
+  {(int) -13 /* 0: Identity */},
+  {(int) 3 /* 1: Float < Object: superclass typecheck marker */},
+  {(int) -13 /* 2: Float < Float: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Float___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Float < Object: superclass init_table position */},
+  {(int) kernel___Float___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Float___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) string___Float___to_precision},
+  {(int) 1 /* 41: Float < Float: superclass init_table position */},
+  {(int) kernel___Float_____leq},
+  {(int) kernel___Float_____l},
+  {(int) kernel___Float_____geq},
+  {(int) kernel___Float_____g},
+  {(int) kernel___Float_____plus},
+  {(int) kernel___Float___unary__minus},
+  {(int) kernel___Float_____minus},
+  {(int) kernel___Float_____star},
+  {(int) kernel___Float_____slash},
+  {(int) kernel___Float___to_i},
+  {(int) math___Float___sqrt},
+  {(int) math___Float___cos},
+  {(int) math___Float___sin},
+  {(int) math___Float___tan},
+  {(int) math___Float___acos},
+  {(int) math___Float___asin},
+  {(int) math___Float___atan},
+  {(int) math___Float___pow},
+  {(int) math___Float___log},
+  {(int) math___Float___exp},
+  {(int) math___Float___rand},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_Float(float val) {
+  struct TBOX_Float *box = (struct TBOX_Float*)alloc(sizeof(struct TBOX_Float));
+  box->vft = VFT_Float;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_Int[77] = {
+  {(int) -33 /* 0: Identity */},
+  {(int) 3 /* 1: Int < Object: superclass typecheck marker */},
+  {(int) 2631 /* 2: Int < Discrete: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 155 /* 4: Int < Comparable: superclass typecheck marker */},
+  {(int) -33 /* 5: Int < Int: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Int___hash},
+  {(int) string___Int___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Int < Object: superclass init_table position */},
+  {(int) kernel___Int___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Int_____eqeq},
+  {(int) kernel___Int_____neq},
+  {(int) kernel___Int___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 47: Int < Comparable: superclass init_table position */},
+  {(int) kernel___Int_____l},
+  {(int) kernel___Int_____leq},
+  {(int) kernel___Int_____geq},
+  {(int) kernel___Int_____g},
+  {(int) kernel___Int_____leqg},
+  {(int) kernel___Int___is_between},
+  {(int) kernel___Int___max},
+  {(int) kernel___Int___min},
+  {(int) 2 /* 56: Int < Discrete: superclass init_table position */},
+  {(int) kernel___Int___succ},
+  {(int) kernel___Int___prec},
+  {(int) kernel___Int_____plus},
+  {(int) kernel___Int_____minus},
+  {(int) kernel___Int___distance},
+  {(int) string___Int___fill_string},
+  {(int) string___Int___to_hex},
+  {(int) string___Int___to_base},
+  {(int) 3 /* 65: Int < Int: superclass init_table position */},
+  {(int) kernel___Int___unary__minus},
+  {(int) kernel___Int_____star},
+  {(int) kernel___Int_____slash},
+  {(int) kernel___Int_____percent},
+  {(int) kernel___Int___lshift},
+  {(int) kernel___Int___rshift},
+  {(int) kernel___Int___to_f},
+  {(int) kernel___Int___ascii},
+  {(int) kernel___Int___digit_count},
+  {(int) kernel___Int___to_c},
+  {(int) math___Int___rand},
+};
+/* 0: Pointer to the classtable */
+const classtable_elt_t VFT_Char[67] = {
+  {(int) -37 /* 0: Identity */},
+  {(int) 3 /* 1: Char < Object: superclass typecheck marker */},
+  {(int) 2631 /* 2: Char < Discrete: superclass typecheck marker */},
+  {(int) 51 /* 3: Char < Pattern: superclass typecheck marker */},
+  {(int) 155 /* 4: Char < Comparable: superclass typecheck marker */},
+  {(int) -37 /* 5: Char < Char: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Char___hash},
+  {(int) string___Char___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Char < Object: superclass init_table position */},
+  {(int) kernel___Char___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Char_____eqeq},
+  {(int) kernel___Char_____neq},
+  {(int) kernel___Char___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3 /* 42: Char < Pattern: superclass init_table position */},
+  {(int) string_search___Char___search_index_in},
+  {(int) string_search___Char___search_in},
+  {(int) string_search___Pattern___search_all_in},
+  {(int) string_search___Pattern___split_in},
+  {(int) 1 /* 47: Char < Comparable: superclass init_table position */},
+  {(int) kernel___Char_____l},
+  {(int) kernel___Char_____leq},
+  {(int) kernel___Char_____geq},
+  {(int) kernel___Char_____g},
+  {(int) kernel___Comparable_____leqg},
+  {(int) kernel___Comparable___is_between},
+  {(int) kernel___Comparable___max},
+  {(int) kernel___Comparable___min},
+  {(int) 2 /* 56: Char < Discrete: superclass init_table position */},
+  {(int) kernel___Char___succ},
+  {(int) kernel___Char___prec},
+  {(int) kernel___Char_____plus},
+  {(int) kernel___Char_____minus},
+  {(int) kernel___Char___distance},
+  {(int) 4 /* 62: Char < Char: superclass init_table position */},
+  {(int) kernel___Char___to_i},
+  {(int) kernel___Char___ascii},
+  {(int) kernel___Char___to_lower},
+  {(int) kernel___Char___to_upper},
+};
+/* 0: Pointer to the classtable */
+const classtable_elt_t VFT_Pointer[41] = {
+  {(int) -1 /* 0: Identity */},
+  {(int) 3 /* 1: Pointer < Object: superclass typecheck marker */},
+  {(int) -1 /* 2: Pointer < Pointer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Pointer < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Pointer < Pointer: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_Pointer(void * val) {
+  struct TBOX_Pointer *box = (struct TBOX_Pointer*)alloc(sizeof(struct TBOX_Pointer));
+  box->vft = VFT_Pointer;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_Collection[66] = {
+  {(int) 163 /* 0: Identity */},
+  {(int) 3 /* 1: Collection < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: Collection < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Collection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Collection < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Collection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Collection;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_NaiveCollection[67] = {
+  {(int) 2519 /* 0: Identity */},
+  {(int) 3 /* 1: NaiveCollection < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: NaiveCollection < Collection: superclass typecheck marker */},
+  {(int) 2519 /* 6: NaiveCollection < NaiveCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NaiveCollection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: NaiveCollection < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___NaiveCollection___is_empty},
+  {(int) abstract_collection___NaiveCollection___length},
+  {(int) abstract_collection___NaiveCollection___has},
+  {(int) abstract_collection___NaiveCollection___has_only},
+  {(int) abstract_collection___NaiveCollection___count},
+  {(int) abstract_collection___NaiveCollection___first},
+  {(int) 2 /* 66: NaiveCollection < NaiveCollection: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_NaiveCollection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_NaiveCollection;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Iterator[45] = {
+  {(int) 131 /* 0: Identity */},
+  {(int) 3 /* 1: Iterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: Iterator < Iterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Iterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: Iterator < Iterator: superclass init_table position */},
+  {(int) abstract_collection___Iterator___item},
+  {(int) abstract_collection___Iterator___next},
+  {(int) abstract_collection___Iterator___is_ok},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Iterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Iterator;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Container[70] = {
+  {(int) 2639 /* 0: Identity */},
+  {(int) 3 /* 1: Container < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: Container < Collection: superclass typecheck marker */},
+  {(int) 2639 /* 6: Container < Container: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Container < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Container < Collection: superclass init_table position */},
+  {(int) abstract_collection___Container___iterator},
+  {(int) abstract_collection___Container___is_empty},
+  {(int) abstract_collection___Container___length},
+  {(int) abstract_collection___Container___has},
+  {(int) abstract_collection___Container___has_only},
+  {(int) abstract_collection___Container___count},
+  {(int) abstract_collection___Container___first},
+  {(int) 2 /* 66: Container < Container: superclass init_table position */},
+  {(int) abstract_collection___Container___init},
+  {(int) abstract_collection___Container___item},
+  {(int) abstract_collection___Container___item__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Container::_item */
+val_t NEW_Container(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Container;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstract_collection___Container___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_Container();
+  abstract_collection___Container___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ContainerIterator[47] = {
+  {(int) 2635 /* 0: Identity */},
+  {(int) 3 /* 1: ContainerIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: ContainerIterator < Iterator: superclass typecheck marker */},
+  {(int) 2635 /* 3: ContainerIterator < ContainerIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ContainerIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: ContainerIterator < Iterator: superclass init_table position */},
+  {(int) abstract_collection___ContainerIterator___item},
+  {(int) abstract_collection___ContainerIterator___next},
+  {(int) abstract_collection___ContainerIterator___is_ok},
+  {(int) 2 /* 45: ContainerIterator < ContainerIterator: superclass init_table position */},
+  {(int) abstract_collection___ContainerIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ContainerIterator::_is_ok */
+/* 2: Attribute ContainerIterator::_container */
+val_t NEW_ContainerIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ContainerIterator;
+  ATTR_abstract_collection___ContainerIterator____is_ok(obj) =  TAG_Bool(true);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstract_collection___ContainerIterator___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ContainerIterator();
+  abstract_collection___ContainerIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_RemovableCollection[70] = {
+  {(int) 211 /* 0: Identity */},
+  {(int) 3 /* 1: RemovableCollection < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: RemovableCollection < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: RemovableCollection < RemovableCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: RemovableCollection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: RemovableCollection < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+  {(int) 2 /* 66: RemovableCollection < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_RemovableCollection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_RemovableCollection;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_SimpleCollection[73] = {
+  {(int) 3019 /* 0: Identity */},
+  {(int) 3 /* 1: SimpleCollection < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: SimpleCollection < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: SimpleCollection < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: SimpleCollection < SimpleCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: SimpleCollection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: SimpleCollection < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+  {(int) 2 /* 66: SimpleCollection < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {(int) 3 /* 70: SimpleCollection < SimpleCollection: superclass init_table position */},
+  {(int) abstract_collection___SimpleCollection___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_SimpleCollection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_SimpleCollection;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Set[73] = {
+  {(int) 3263 /* 0: Identity */},
+  {(int) 3 /* 1: Set < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3263 /* 4: Set < Set: superclass typecheck marker */},
+  {(int) 163 /* 5: Set < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: Set < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: Set < SimpleCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Set < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 49: Set < Set: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Set < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Set___has_only},
+  {(int) abstract_collection___Set___count},
+  {(int) abstract_collection___Collection___first},
+  {(int) 2 /* 66: Set < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___Set___remove_all},
+  {(int) 3 /* 70: Set < SimpleCollection: superclass init_table position */},
+  {(int) abstract_collection___SimpleCollection___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Set(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Set;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Map[80] = {
+  {(int) 3127 /* 0: Identity */},
+  {(int) 3 /* 1: Map < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: Map < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: Map < RemovableCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3127 /* 8: Map < Map: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Map < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Map < Collection: superclass init_table position */},
+  {(int) abstract_collection___Map___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+  {(int) 2 /* 66: Map < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: Map < Map: superclass init_table position */},
+  {(int) abstract_collection___Map_____bra},
+  {(int) abstract_collection___Map_____braeq},
+  {(int) abstract_collection___Map___has_key},
+  {(int) abstract_collection___Map___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Map(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Map;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MapIterator[48] = {
+  {(int) 2527 /* 0: Identity */},
+  {(int) 3 /* 1: MapIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: MapIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: MapIterator < MapIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MapIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: MapIterator < Iterator: superclass init_table position */},
+  {(int) abstract_collection___Iterator___item},
+  {(int) abstract_collection___Iterator___next},
+  {(int) abstract_collection___Iterator___is_ok},
+  {(int) 2 /* 45: MapIterator < MapIterator: superclass init_table position */},
+  {(int) abstract_collection___MapIterator___key},
+  {(int) abstract_collection___MapIterator___item__eq},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_MapIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_MapIterator;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_IndexedCollection[90] = {
+  {(int) 3295 /* 0: Identity */},
+  {(int) 3 /* 1: IndexedCollection < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: IndexedCollection < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: IndexedCollection < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: IndexedCollection < SimpleCollection: superclass typecheck marker */},
+  {(int) 3127 /* 8: IndexedCollection < Map: superclass typecheck marker */},
+  {(int) 3295 /* 9: IndexedCollection < IndexedCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IndexedCollection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: IndexedCollection < Collection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___IndexedCollection___first},
+  {(int) 2 /* 66: IndexedCollection < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {(int) 4 /* 70: IndexedCollection < SimpleCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: IndexedCollection < Map: superclass init_table position */},
+  {(int) abstract_collection___Map_____bra},
+  {(int) abstract_collection___Map_____braeq},
+  {(int) abstract_collection___Map___has_key},
+  {(int) abstract_collection___Map___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: IndexedCollection < IndexedCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___first__eq},
+  {(int) abstract_collection___IndexedCollection___last},
+  {(int) abstract_collection___IndexedCollection___last__eq},
+  {(int) abstract_collection___IndexedCollection___push},
+  {(int) abstract_collection___IndexedCollection___append},
+  {(int) abstract_collection___IndexedCollection___pop},
+  {(int) abstract_collection___IndexedCollection___unshift},
+  {(int) abstract_collection___IndexedCollection___shift},
+  {(int) abstract_collection___IndexedCollection___index_of},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_IndexedCollection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_IndexedCollection;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_IndexedIterator[50] = {
+  {(int) 3171 /* 0: Identity */},
+  {(int) 3 /* 1: IndexedIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: IndexedIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: IndexedIterator < MapIterator: superclass typecheck marker */},
+  {(int) 3171 /* 4: IndexedIterator < IndexedIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IndexedIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: IndexedIterator < Iterator: superclass init_table position */},
+  {(int) abstract_collection___Iterator___item},
+  {(int) abstract_collection___Iterator___next},
+  {(int) abstract_collection___Iterator___is_ok},
+  {(int) 2 /* 45: IndexedIterator < MapIterator: superclass init_table position */},
+  {(int) abstract_collection___IndexedIterator___key},
+  {(int) abstract_collection___MapIterator___item__eq},
+  {(int) 3 /* 48: IndexedIterator < IndexedIterator: superclass init_table position */},
+  {(int) abstract_collection___IndexedIterator___index},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_IndexedIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_IndexedIterator;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_CoupleMap[80] = {
+  {(int) 3311 /* 0: Identity */},
+  {(int) 3 /* 1: CoupleMap < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3311 /* 4: CoupleMap < CoupleMap: superclass typecheck marker */},
+  {(int) 163 /* 5: CoupleMap < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: CoupleMap < RemovableCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3127 /* 8: CoupleMap < Map: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CoupleMap < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 49: CoupleMap < CoupleMap: superclass init_table position */},
+  {(int) abstract_collection___CoupleMap___couple_at},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: CoupleMap < Collection: superclass init_table position */},
+  {(int) abstract_collection___Map___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) abstract_collection___Collection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+  {(int) 2 /* 66: CoupleMap < RemovableCollection: superclass init_table position */},
+  {(int) abstract_collection___RemovableCollection___clear},
+  {(int) abstract_collection___RemovableCollection___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: CoupleMap < Map: superclass init_table position */},
+  {(int) abstract_collection___CoupleMap_____bra},
+  {(int) abstract_collection___Map_____braeq},
+  {(int) abstract_collection___CoupleMap___has_key},
+  {(int) abstract_collection___Map___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_CoupleMap(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_CoupleMap;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_CoupleMapIterator[50] = {
+  {(int) 3199 /* 0: Identity */},
+  {(int) 3 /* 1: CoupleMapIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: CoupleMapIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: CoupleMapIterator < MapIterator: superclass typecheck marker */},
+  {(int) 3199 /* 4: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CoupleMapIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: CoupleMapIterator < Iterator: superclass init_table position */},
+  {(int) abstract_collection___CoupleMapIterator___item},
+  {(int) abstract_collection___CoupleMapIterator___next},
+  {(int) abstract_collection___CoupleMapIterator___is_ok},
+  {(int) 2 /* 45: CoupleMapIterator < MapIterator: superclass init_table position */},
+  {(int) abstract_collection___CoupleMapIterator___key},
+  {(int) abstract_collection___CoupleMapIterator___item__eq},
+  {(int) 3 /* 48: CoupleMapIterator < CoupleMapIterator: superclass init_table position */},
+  {(int) abstract_collection___CoupleMapIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute CoupleMapIterator::_iter */
+val_t NEW_CoupleMapIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_CoupleMapIterator;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstract_collection___CoupleMapIterator___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_CoupleMapIterator();
+  abstract_collection___CoupleMapIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Couple[52] = {
+  {(int) 143 /* 0: Identity */},
+  {(int) 3 /* 1: Couple < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 143 /* 3: Couple < Couple: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Couple < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 46: Couple < Couple: superclass init_table position */},
+  {(int) abstract_collection___Couple___first},
+  {(int) abstract_collection___Couple___first__eq},
+  {(int) abstract_collection___Couple___second},
+  {(int) abstract_collection___Couple___second__eq},
+  {(int) abstract_collection___Couple___init},
+};
+/* 0: Pointer to the classtable */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 3: Attribute Couple::_first */
+/* 4: Attribute Couple::_second */
+val_t NEW_Couple(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Couple;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstract_collection___Couple___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Couple();
+  abstract_collection___Couple___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AbstractArray[98] = {
+  {(int) 3639 /* 0: Identity */},
+  {(int) 3 /* 1: AbstractArray < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: AbstractArray < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: AbstractArray < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: AbstractArray < SimpleCollection: superclass typecheck marker */},
+  {(int) 3127 /* 8: AbstractArray < Map: superclass typecheck marker */},
+  {(int) 3295 /* 9: AbstractArray < IndexedCollection: superclass typecheck marker */},
+  {(int) 3639 /* 10: AbstractArray < AbstractArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AbstractArray < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) array___AbstractArray_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) array___AbstractArray___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: AbstractArray < Collection: superclass init_table position */},
+  {(int) array___AbstractArray___iterator},
+  {(int) array___AbstractArray___is_empty},
+  {(int) array___AbstractArray___length},
+  {(int) array___AbstractArray___has},
+  {(int) array___AbstractArray___has_only},
+  {(int) array___AbstractArray___count},
+  {(int) abstract_collection___IndexedCollection___first},
+  {(int) 2 /* 66: AbstractArray < RemovableCollection: superclass init_table position */},
+  {(int) array___AbstractArray___clear},
+  {(int) array___AbstractArray___remove},
+  {(int) array___AbstractArray___remove_all},
+  {(int) 4 /* 70: AbstractArray < SimpleCollection: superclass init_table position */},
+  {(int) array___AbstractArray___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: AbstractArray < Map: superclass init_table position */},
+  {(int) abstract_collection___Map_____bra},
+  {(int) abstract_collection___Map_____braeq},
+  {(int) array___AbstractArray___has_key},
+  {(int) array___AbstractArray___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: AbstractArray < IndexedCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___first__eq},
+  {(int) abstract_collection___IndexedCollection___last},
+  {(int) abstract_collection___IndexedCollection___last__eq},
+  {(int) array___AbstractArray___push},
+  {(int) abstract_collection___IndexedCollection___append},
+  {(int) array___AbstractArray___pop},
+  {(int) array___AbstractArray___unshift},
+  {(int) array___AbstractArray___shift},
+  {(int) array___AbstractArray___index_of},
+  {(int) 6 /* 90: AbstractArray < AbstractArray: superclass init_table position */},
+  {(int) array___AbstractArray___enlarge},
+  {(int) array___AbstractArray___insert},
+  {(int) array___AbstractArray___last_index_of},
+  {(int) array___AbstractArray___index_of_from},
+  {(int) array___AbstractArray___last_index_of_from},
+  {(int) array___AbstractArray___reversed},
+  {(int) array___AbstractArray___copy_to},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AbstractArray::_length */
+val_t NEW_AbstractArray(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_AbstractArray;
+  ATTR_array___AbstractArray____length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Array[98] = {
+  {(int) 3783 /* 0: Identity */},
+  {(int) 3 /* 1: Array < Object: superclass typecheck marker */},
+  {(int) 171 /* 2: Array < ArrayCapable: superclass typecheck marker */},
+  {(int) 3783 /* 3: Array < Array: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: Array < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: Array < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: Array < SimpleCollection: superclass typecheck marker */},
+  {(int) 3127 /* 8: Array < Map: superclass typecheck marker */},
+  {(int) 3295 /* 9: Array < IndexedCollection: superclass typecheck marker */},
+  {(int) 3639 /* 10: Array < AbstractArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Array < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) array___AbstractArray_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) array___AbstractArray___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 7 /* 40: Array < ArrayCapable: superclass init_table position */},
+  {(int) array___ArrayCapable___calloc_array},
+  {(int) 8 /* 42: Array < Array: superclass init_table position */},
+  {(int) array___Array___init},
+  {(int) array___Array___with},
+  {(int) array___Array___with_capacity},
+  {(int) array___Array___filled_with},
+  {(int) array___Array___with_native},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Array < Collection: superclass init_table position */},
+  {(int) array___AbstractArray___iterator},
+  {(int) array___AbstractArray___is_empty},
+  {(int) array___AbstractArray___length},
+  {(int) array___AbstractArray___has},
+  {(int) array___AbstractArray___has_only},
+  {(int) array___AbstractArray___count},
+  {(int) abstract_collection___IndexedCollection___first},
+  {(int) 2 /* 66: Array < RemovableCollection: superclass init_table position */},
+  {(int) array___AbstractArray___clear},
+  {(int) array___AbstractArray___remove},
+  {(int) array___AbstractArray___remove_all},
+  {(int) 4 /* 70: Array < SimpleCollection: superclass init_table position */},
+  {(int) array___AbstractArray___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: Array < Map: superclass init_table position */},
+  {(int) array___Array_____bra},
+  {(int) array___Array_____braeq},
+  {(int) array___AbstractArray___has_key},
+  {(int) array___AbstractArray___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: Array < IndexedCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___first__eq},
+  {(int) abstract_collection___IndexedCollection___last},
+  {(int) abstract_collection___IndexedCollection___last__eq},
+  {(int) array___AbstractArray___push},
+  {(int) abstract_collection___IndexedCollection___append},
+  {(int) array___AbstractArray___pop},
+  {(int) array___AbstractArray___unshift},
+  {(int) array___AbstractArray___shift},
+  {(int) array___AbstractArray___index_of},
+  {(int) 6 /* 90: Array < AbstractArray: superclass init_table position */},
+  {(int) array___Array___enlarge},
+  {(int) array___AbstractArray___insert},
+  {(int) array___AbstractArray___last_index_of},
+  {(int) array___AbstractArray___index_of_from},
+  {(int) array___AbstractArray___last_index_of_from},
+  {(int) array___AbstractArray___reversed},
+  {(int) array___AbstractArray___copy_to},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Array::_length */
+/* 2: Attribute Array::_items */
+/* 3: Attribute Array::_capacity */
+val_t NEW_Array(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Array;
+  ATTR_array___AbstractArray____length(obj) = TAG_Int((int)0);
+  ATTR_array___Array____capacity(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_array___Array___init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Array();
+  array___Array___init(self, init_table);
+  return self;
+}
+val_t NEW_array___Array___with(val_t p0) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Array();
+  array___Array___with(self, p0, init_table);
+  return self;
+}
+val_t NEW_array___Array___with_capacity(val_t p0) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Array();
+  array___Array___with_capacity(self, p0, init_table);
+  return self;
+}
+val_t NEW_array___Array___filled_with(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Array();
+  array___Array___filled_with(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_array___Array___with_native(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Array();
+  array___Array___with_native(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ArrayIterator[52] = {
+  {(int) 3315 /* 0: Identity */},
+  {(int) 3 /* 1: ArrayIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: ArrayIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: ArrayIterator < MapIterator: superclass typecheck marker */},
+  {(int) 3171 /* 4: ArrayIterator < IndexedIterator: superclass typecheck marker */},
+  {(int) 3315 /* 5: ArrayIterator < ArrayIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ArrayIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: ArrayIterator < Iterator: superclass init_table position */},
+  {(int) array___ArrayIterator___item},
+  {(int) array___ArrayIterator___next},
+  {(int) array___ArrayIterator___is_ok},
+  {(int) 2 /* 45: ArrayIterator < MapIterator: superclass init_table position */},
+  {(int) abstract_collection___IndexedIterator___key},
+  {(int) array___ArrayIterator___item__eq},
+  {(int) 3 /* 48: ArrayIterator < IndexedIterator: superclass init_table position */},
+  {(int) array___ArrayIterator___index},
+  {(int) 4 /* 50: ArrayIterator < ArrayIterator: superclass init_table position */},
+  {(int) array___ArrayIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ArrayIterator::_index */
+/* 2: Attribute ArrayIterator::_array */
+val_t NEW_ArrayIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ArrayIterator;
+  ATTR_array___ArrayIterator____index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_array___ArrayIterator___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ArrayIterator();
+  array___ArrayIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ArraySet[78] = {
+  {(int) 3631 /* 0: Identity */},
+  {(int) 3 /* 1: ArraySet < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3263 /* 4: ArraySet < Set: superclass typecheck marker */},
+  {(int) 163 /* 5: ArraySet < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: ArraySet < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: ArraySet < SimpleCollection: superclass typecheck marker */},
+  {(int) 3631 /* 8: ArraySet < ArraySet: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ArraySet < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 49: ArraySet < Set: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: ArraySet < Collection: superclass init_table position */},
+  {(int) array___ArraySet___iterator},
+  {(int) array___ArraySet___is_empty},
+  {(int) array___ArraySet___length},
+  {(int) array___ArraySet___has},
+  {(int) abstract_collection___Set___has_only},
+  {(int) abstract_collection___Set___count},
+  {(int) array___ArraySet___first},
+  {(int) 2 /* 66: ArraySet < RemovableCollection: superclass init_table position */},
+  {(int) array___ArraySet___clear},
+  {(int) array___ArraySet___remove},
+  {(int) array___ArraySet___remove_all},
+  {(int) 3 /* 70: ArraySet < SimpleCollection: superclass init_table position */},
+  {(int) array___ArraySet___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) 5 /* 73: ArraySet < ArraySet: superclass init_table position */},
+  {(int) array___ArraySet___enlarge},
+  {(int) array___ArraySet___remove_at},
+  {(int) array___ArraySet___init},
+  {(int) array___ArraySet___with_capacity},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ArraySet::_array */
+val_t NEW_ArraySet(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ArraySet;
+  return OBJ2VAL(obj);
+}
+val_t NEW_array___ArraySet___init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ArraySet();
+  array___ArraySet___init(self, init_table);
+  return self;
+}
+val_t NEW_array___ArraySet___with_capacity(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ArraySet();
+  array___ArraySet___with_capacity(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ArraySetIterator[47] = {
+  {(int) 2663 /* 0: Identity */},
+  {(int) 3 /* 1: ArraySetIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: ArraySetIterator < Iterator: superclass typecheck marker */},
+  {(int) 2663 /* 3: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ArraySetIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: ArraySetIterator < Iterator: superclass init_table position */},
+  {(int) array___ArraySetIterator___item},
+  {(int) array___ArraySetIterator___next},
+  {(int) array___ArraySetIterator___is_ok},
+  {(int) 2 /* 45: ArraySetIterator < ArraySetIterator: superclass init_table position */},
+  {(int) array___ArraySetIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ArraySetIterator::_iter */
+val_t NEW_ArraySetIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ArraySetIterator;
+  return OBJ2VAL(obj);
+}
+val_t NEW_array___ArraySetIterator___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ArraySetIterator();
+  array___ArraySetIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ArrayMap[85] = {
+  {(int) 3635 /* 0: Identity */},
+  {(int) 3 /* 1: ArrayMap < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3311 /* 4: ArrayMap < CoupleMap: superclass typecheck marker */},
+  {(int) 163 /* 5: ArrayMap < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: ArrayMap < RemovableCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3127 /* 8: ArrayMap < Map: superclass typecheck marker */},
+  {(int) 3635 /* 9: ArrayMap < ArrayMap: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ArrayMap < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 49: ArrayMap < CoupleMap: superclass init_table position */},
+  {(int) array___ArrayMap___couple_at},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: ArrayMap < Collection: superclass init_table position */},
+  {(int) array___ArrayMap___iterator},
+  {(int) array___ArrayMap___is_empty},
+  {(int) array___ArrayMap___length},
+  {(int) array___ArrayMap___has},
+  {(int) array___ArrayMap___has_only},
+  {(int) array___ArrayMap___count},
+  {(int) array___ArrayMap___first},
+  {(int) 2 /* 66: ArrayMap < RemovableCollection: superclass init_table position */},
+  {(int) array___ArrayMap___clear},
+  {(int) array___ArrayMap___remove},
+  {(int) array___ArrayMap___remove_all},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: ArrayMap < Map: superclass init_table position */},
+  {(int) array___ArrayMap_____bra},
+  {(int) array___ArrayMap_____braeq},
+  {(int) array___ArrayMap___has_key},
+  {(int) array___ArrayMap___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: ArrayMap < ArrayMap: superclass init_table position */},
+  {(int) array___ArrayMap___enlarge},
+  {(int) array___ArrayMap___remove_at_index},
+  {(int) array___ArrayMap___index},
+  {(int) array___ArrayMap___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ArrayMap::_items */
+/* 2: Attribute ArrayMap::_last_index */
+val_t NEW_ArrayMap(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ArrayMap;
+  ATTR_array___ArrayMap____last_index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_array___ArrayMap___init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ArrayMap();
+  array___ArrayMap___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ArrayCapable[42] = {
+  {(int) 171 /* 0: Identity */},
+  {(int) 3 /* 1: ArrayCapable < Object: superclass typecheck marker */},
+  {(int) 171 /* 2: ArrayCapable < ArrayCapable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ArrayCapable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ArrayCapable < ArrayCapable: superclass init_table position */},
+  {(int) array___ArrayCapable___calloc_array},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ArrayCapable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ArrayCapable;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_NativeArray[44] = {
+  {(int) -9 /* 0: Identity */},
+  {(int) 3 /* 1: NativeArray < Object: superclass typecheck marker */},
+  {(int) -9 /* 2: NativeArray < NativeArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NativeArray < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: NativeArray < NativeArray: superclass init_table position */},
+  {(int) array___NativeArray_____bra},
+  {(int) array___NativeArray_____braeq},
+  {(int) array___NativeArray___copy_to},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_NativeArray(val_t * val) {
+  struct TBOX_NativeArray *box = (struct TBOX_NativeArray*)alloc(sizeof(struct TBOX_NativeArray));
+  box->vft = VFT_NativeArray;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_String[134] = {
+  {(int) 3771 /* 0: Identity */},
+  {(int) 3 /* 1: String < Object: superclass typecheck marker */},
+  {(int) 31 /* 2: String < StringCapable: superclass typecheck marker */},
+  {(int) 51 /* 3: String < Pattern: superclass typecheck marker */},
+  {(int) 155 /* 4: String < Comparable: superclass typecheck marker */},
+  {(int) 163 /* 5: String < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: String < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: String < SimpleCollection: superclass typecheck marker */},
+  {(int) 3127 /* 8: String < Map: superclass typecheck marker */},
+  {(int) 3295 /* 9: String < IndexedCollection: superclass typecheck marker */},
+  {(int) 3639 /* 10: String < AbstractArray: superclass typecheck marker */},
+  {(int) 3771 /* 11: String < String: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___String___hash},
+  {(int) string___String___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: String < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) string___String_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) string___String___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 8 /* 40: String < StringCapable: superclass init_table position */},
+  {(int) string___StringCapable___calloc_string},
+  {(int) 9 /* 42: String < Pattern: superclass init_table position */},
+  {(int) string_search___String___search_index_in},
+  {(int) string_search___String___search_in},
+  {(int) string_search___Pattern___search_all_in},
+  {(int) string_search___Pattern___split_in},
+  {(int) 7 /* 47: String < Comparable: superclass init_table position */},
+  {(int) string___String_____l},
+  {(int) kernel___Comparable_____leq},
+  {(int) kernel___Comparable_____geq},
+  {(int) kernel___Comparable_____g},
+  {(int) kernel___Comparable_____leqg},
+  {(int) kernel___Comparable___is_between},
+  {(int) kernel___Comparable___max},
+  {(int) kernel___Comparable___min},
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: String < Collection: superclass init_table position */},
+  {(int) array___AbstractArray___iterator},
+  {(int) array___AbstractArray___is_empty},
+  {(int) array___AbstractArray___length},
+  {(int) array___AbstractArray___has},
+  {(int) array___AbstractArray___has_only},
+  {(int) array___AbstractArray___count},
+  {(int) abstract_collection___IndexedCollection___first},
+  {(int) 2 /* 66: String < RemovableCollection: superclass init_table position */},
+  {(int) array___AbstractArray___clear},
+  {(int) array___AbstractArray___remove},
+  {(int) array___AbstractArray___remove_all},
+  {(int) 4 /* 70: String < SimpleCollection: superclass init_table position */},
+  {(int) string___String___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: String < Map: superclass init_table position */},
+  {(int) string___String_____bra},
+  {(int) string___String_____braeq},
+  {(int) array___AbstractArray___has_key},
+  {(int) array___AbstractArray___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: String < IndexedCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___first__eq},
+  {(int) abstract_collection___IndexedCollection___last},
+  {(int) abstract_collection___IndexedCollection___last__eq},
+  {(int) array___AbstractArray___push},
+  {(int) string___String___append},
+  {(int) array___AbstractArray___pop},
+  {(int) array___AbstractArray___unshift},
+  {(int) array___AbstractArray___shift},
+  {(int) array___AbstractArray___index_of},
+  {(int) 6 /* 90: String < AbstractArray: superclass init_table position */},
+  {(int) string___String___enlarge},
+  {(int) array___AbstractArray___insert},
+  {(int) array___AbstractArray___last_index_of},
+  {(int) array___AbstractArray___index_of_from},
+  {(int) array___AbstractArray___last_index_of_from},
+  {(int) array___AbstractArray___reversed},
+  {(int) array___AbstractArray___copy_to},
+  {(int) symbol___String___to_symbol},
+  {(int) 10 /* 99: String < String: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___append},
+  {(int) string___String_____plus},
+  {(int) string___String_____star},
+  {(int) string___String___to_i},
+  {(int) string___String___to_hex},
+  {(int) string___String___a_to},
+  {(int) string___String___to_cstring},
+  {(int) string___String___substring},
+  {(int) string___String___substring_from},
+  {(int) string___String___has_substring},
+  {(int) string___String___has_prefix},
+  {(int) string___String___has_suffix},
+  {(int) string___String___init},
+  {(int) string___String___from},
+  {(int) string___String___with_capacity},
+  {(int) string___String___with_native},
+  {(int) string___String___from_cstring},
+  {(int) string___String___filled_with},
+  {(int) string___String___to_upper},
+  {(int) string___String___to_lower},
+  {(int) string___String___items},
+  {(int) string___String___capacity},
+  {(int) file___String___file_exists},
+  {(int) file___String___file_stat},
+  {(int) file___String___strip_extension},
+  {(int) file___String___basename},
+  {(int) file___String___dirname},
+  {(int) file___String___file_path},
+  {(int) file___String___mkdir},
+  {(int) string_search___String___search},
+  {(int) string_search___String___search_from},
+  {(int) string_search___String___search_all},
+  {(int) string_search___String___split_with},
+  {(int) string_search___String___split},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute String::_length */
+/* 2: Attribute String::_items */
+/* 3: Attribute String::_capacity */
+val_t NEW_String(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_String;
+  ATTR_array___AbstractArray____length(obj) = TAG_Int((int)0);
+  ATTR_string___String____capacity(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_string___String___init() {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___init(self, init_table);
+  return self;
+}
+val_t NEW_string___String___from(val_t p0) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___from(self, p0, init_table);
+  return self;
+}
+val_t NEW_string___String___with_capacity(val_t p0) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___with_capacity(self, p0, init_table);
+  return self;
+}
+val_t NEW_string___String___with_native(val_t p0, val_t p1) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___with_native(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_string___String___from_cstring(val_t p0) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___from_cstring(self, p0, init_table);
+  return self;
+}
+val_t NEW_string___String___filled_with(val_t p0, val_t p1) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_String();
+  string___String___filled_with(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_NativeString[54] = {
+  {(int) -5 /* 0: Identity */},
+  {(int) 3 /* 1: NativeString < Object: superclass typecheck marker */},
+  {(int) -5 /* 2: NativeString < NativeString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NativeString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) environ___NativeString___get_environ},
+  {(int) environ___NativeString___put_environ},
+  {(int) environ___NativeString___unset_environ},
+  {(int) environ___NativeString___set_environ},
+  {(int) 1 /* 44: NativeString < NativeString: superclass init_table position */},
+  {(int) string___NativeString_____bra},
+  {(int) string___NativeString_____braeq},
+  {(int) string___NativeString___copy_to},
+  {(int) string___NativeString___cstring_length},
+  {(int) string___NativeString___atoi},
+  {(int) file___NativeString___file_exists},
+  {(int) file___NativeString___file_stat},
+  {(int) file___NativeString___file_mkdir},
+  {(int) exec___NativeString___system},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_NativeString(char * val) {
+  struct TBOX_NativeString *box = (struct TBOX_NativeString*)alloc(sizeof(struct TBOX_NativeString));
+  box->vft = VFT_NativeString;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_StringCapable[42] = {
+  {(int) 31 /* 0: Identity */},
+  {(int) 3 /* 1: StringCapable < Object: superclass typecheck marker */},
+  {(int) 31 /* 2: StringCapable < StringCapable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: StringCapable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: StringCapable < StringCapable: superclass init_table position */},
+  {(int) string___StringCapable___calloc_string},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_StringCapable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_StringCapable;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_HashCollection[66] = {
+  {(int) 2615 /* 0: Identity */},
+  {(int) 3 /* 1: HashCollection < Object: superclass typecheck marker */},
+  {(int) 171 /* 2: HashCollection < ArrayCapable: superclass typecheck marker */},
+  {(int) 2615 /* 3: HashCollection < HashCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: HashCollection < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashCollection < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: HashCollection < ArrayCapable: superclass init_table position */},
+  {(int) array___ArrayCapable___calloc_array},
+  {(int) 3 /* 42: HashCollection < HashCollection: superclass init_table position */},
+  {(int) hash___HashCollection___first_item},
+  {(int) hash___HashCollection___index_at},
+  {(int) hash___HashCollection___store},
+  {(int) hash___HashCollection___remove_index},
+  {(int) hash___HashCollection___raz},
+  {(int) hash___HashCollection___enlarge},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: HashCollection < Collection: superclass init_table position */},
+  {(int) abstract_collection___Collection___iterator},
+  {(int) abstract_collection___Collection___is_empty},
+  {(int) hash___HashCollection___length},
+  {(int) abstract_collection___Collection___has},
+  {(int) abstract_collection___Collection___has_only},
+  {(int) abstract_collection___Collection___count},
+  {(int) abstract_collection___Collection___first},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashCollection::_array */
+/* 2: Attribute HashCollection::_capacity */
+/* 3: Attribute HashCollection::_length */
+/* 4: Attribute HashCollection::_first_item */
+/* 5: Attribute HashCollection::_last_item */
+/* 6: Attribute HashCollection::_last_accessed_index */
+/* 7: Attribute HashCollection::_last_accessed_key */
+val_t NEW_HashCollection(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_HashCollection;
+  ATTR_hash___HashCollection____capacity(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____length(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_HashNode[46] = {
+  {(int) 139 /* 0: Identity */},
+  {(int) 3 /* 1: HashNode < Object: superclass typecheck marker */},
+  {(int) 139 /* 2: HashNode < HashNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashNode < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: HashNode < HashNode: superclass init_table position */},
+  {(int) hash___HashNode___key},
+  {(int) hash___HashNode___next_item},
+  {(int) hash___HashNode___next_item__eq},
+  {(int) hash___HashNode___prev_item},
+  {(int) hash___HashNode___prev_item__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashNode::_next_item */
+/* 2: Attribute HashNode::_prev_item */
+val_t NEW_HashNode(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_HashNode;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_HashMap[80] = {
+  {(int) 3627 /* 0: Identity */},
+  {(int) 3 /* 1: HashMap < Object: superclass typecheck marker */},
+  {(int) 171 /* 2: HashMap < ArrayCapable: superclass typecheck marker */},
+  {(int) 2615 /* 3: HashMap < HashCollection: superclass typecheck marker */},
+  {(int) 3311 /* 4: HashMap < CoupleMap: superclass typecheck marker */},
+  {(int) 163 /* 5: HashMap < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: HashMap < RemovableCollection: superclass typecheck marker */},
+  {(int) 3627 /* 7: HashMap < HashMap: superclass typecheck marker */},
+  {(int) 3127 /* 8: HashMap < Map: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashMap < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 5 /* 40: HashMap < ArrayCapable: superclass init_table position */},
+  {(int) array___ArrayCapable___calloc_array},
+  {(int) 6 /* 42: HashMap < HashCollection: superclass init_table position */},
+  {(int) hash___HashCollection___first_item},
+  {(int) hash___HashCollection___index_at},
+  {(int) hash___HashCollection___store},
+  {(int) hash___HashCollection___remove_index},
+  {(int) hash___HashCollection___raz},
+  {(int) hash___HashCollection___enlarge},
+  {(int) 4 /* 49: HashMap < CoupleMap: superclass init_table position */},
+  {(int) hash___HashMap___couple_at},
+  {(int) 7 /* 51: HashMap < HashMap: superclass init_table position */},
+  {(int) hash___HashMap___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: HashMap < Collection: superclass init_table position */},
+  {(int) hash___HashMap___iterator},
+  {(int) hash___HashMap___is_empty},
+  {(int) hash___HashCollection___length},
+  {(int) hash___HashMap___has},
+  {(int) hash___HashMap___has_only},
+  {(int) hash___HashMap___count},
+  {(int) hash___HashMap___first},
+  {(int) 2 /* 66: HashMap < RemovableCollection: superclass init_table position */},
+  {(int) hash___HashMap___clear},
+  {(int) hash___HashMap___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: HashMap < Map: superclass init_table position */},
+  {(int) abstract_collection___CoupleMap_____bra},
+  {(int) hash___HashMap_____braeq},
+  {(int) abstract_collection___CoupleMap___has_key},
+  {(int) hash___HashMap___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashMap::_array */
+/* 2: Attribute HashMap::_capacity */
+/* 3: Attribute HashMap::_length */
+/* 4: Attribute HashMap::_first_item */
+/* 5: Attribute HashMap::_last_item */
+/* 6: Attribute HashMap::_last_accessed_index */
+/* 7: Attribute HashMap::_last_accessed_key */
+val_t NEW_HashMap(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_HashMap;
+  ATTR_hash___HashCollection____capacity(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____length(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashMap___init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_HashMap();
+  hash___HashMap___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_HashMapNode[54] = {
+  {(int) 2611 /* 0: Identity */},
+  {(int) 3 /* 1: HashMapNode < Object: superclass typecheck marker */},
+  {(int) 139 /* 2: HashMapNode < HashNode: superclass typecheck marker */},
+  {(int) 143 /* 3: HashMapNode < Couple: superclass typecheck marker */},
+  {(int) 2611 /* 4: HashMapNode < HashMapNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashMapNode < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: HashMapNode < HashNode: superclass init_table position */},
+  {(int) hash___HashMapNode___key},
+  {(int) hash___HashNode___next_item},
+  {(int) hash___HashNode___next_item__eq},
+  {(int) hash___HashNode___prev_item},
+  {(int) hash___HashNode___prev_item__eq},
+  {(int) 1 /* 46: HashMapNode < Couple: superclass init_table position */},
+  {(int) abstract_collection___Couple___first},
+  {(int) abstract_collection___Couple___first__eq},
+  {(int) abstract_collection___Couple___second},
+  {(int) abstract_collection___Couple___second__eq},
+  {(int) abstract_collection___Couple___init},
+  {(int) 3 /* 52: HashMapNode < HashMapNode: superclass init_table position */},
+  {(int) hash___HashMapNode___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashMapNode::_next_item */
+/* 2: Attribute HashMapNode::_prev_item */
+/* 3: Attribute HashMapNode::_first */
+/* 4: Attribute HashMapNode::_second */
+val_t NEW_HashMapNode(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_HashMapNode;
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashMapNode___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_HashMapNode();
+  hash___HashMapNode___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_HashMapIterator[50] = {
+  {(int) 3183 /* 0: Identity */},
+  {(int) 3 /* 1: HashMapIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: HashMapIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: HashMapIterator < MapIterator: superclass typecheck marker */},
+  {(int) 3183 /* 4: HashMapIterator < HashMapIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashMapIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: HashMapIterator < Iterator: superclass init_table position */},
+  {(int) hash___HashMapIterator___item},
+  {(int) hash___HashMapIterator___next},
+  {(int) hash___HashMapIterator___is_ok},
+  {(int) 2 /* 45: HashMapIterator < MapIterator: superclass init_table position */},
+  {(int) hash___HashMapIterator___key},
+  {(int) hash___HashMapIterator___item__eq},
+  {(int) 3 /* 48: HashMapIterator < HashMapIterator: superclass init_table position */},
+  {(int) hash___HashMapIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashMapIterator::_map */
+/* 2: Attribute HashMapIterator::_node */
+val_t NEW_HashMapIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_HashMapIterator;
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashMapIterator___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_HashMapIterator();
+  hash___HashMapIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_HashSet[73] = {
+  {(int) 3623 /* 0: Identity */},
+  {(int) 3 /* 1: HashSet < Object: superclass typecheck marker */},
+  {(int) 171 /* 2: HashSet < ArrayCapable: superclass typecheck marker */},
+  {(int) 2615 /* 3: HashSet < HashCollection: superclass typecheck marker */},
+  {(int) 3263 /* 4: HashSet < Set: superclass typecheck marker */},
+  {(int) 163 /* 5: HashSet < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: HashSet < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: HashSet < SimpleCollection: superclass typecheck marker */},
+  {(int) 3623 /* 8: HashSet < HashSet: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashSet < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 5 /* 40: HashSet < ArrayCapable: superclass init_table position */},
+  {(int) array___ArrayCapable___calloc_array},
+  {(int) 6 /* 42: HashSet < HashCollection: superclass init_table position */},
+  {(int) hash___HashCollection___first_item},
+  {(int) hash___HashCollection___index_at},
+  {(int) hash___HashCollection___store},
+  {(int) hash___HashCollection___remove_index},
+  {(int) hash___HashCollection___raz},
+  {(int) hash___HashCollection___enlarge},
+  {(int) 4 /* 49: HashSet < Set: superclass init_table position */},
+  {(int) 7 /* 50: HashSet < HashSet: superclass init_table position */},
+  {(int) hash___HashSet___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: HashSet < Collection: superclass init_table position */},
+  {(int) hash___HashSet___iterator},
+  {(int) hash___HashSet___is_empty},
+  {(int) hash___HashCollection___length},
+  {(int) hash___HashSet___has},
+  {(int) abstract_collection___Set___has_only},
+  {(int) abstract_collection___Set___count},
+  {(int) hash___HashSet___first},
+  {(int) 2 /* 66: HashSet < RemovableCollection: superclass init_table position */},
+  {(int) hash___HashSet___clear},
+  {(int) hash___HashSet___remove},
+  {(int) abstract_collection___Set___remove_all},
+  {(int) 3 /* 70: HashSet < SimpleCollection: superclass init_table position */},
+  {(int) hash___HashSet___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashSet::_array */
+/* 2: Attribute HashSet::_capacity */
+/* 3: Attribute HashSet::_length */
+/* 4: Attribute HashSet::_first_item */
+/* 5: Attribute HashSet::_last_item */
+/* 6: Attribute HashSet::_last_accessed_index */
+/* 7: Attribute HashSet::_last_accessed_key */
+val_t NEW_HashSet(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_HashSet;
+  ATTR_hash___HashCollection____capacity(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____length(obj) = TAG_Int((int)0);
+  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashSet___init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_HashSet();
+  hash___HashSet___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_HashSetNode[49] = {
+  {(int) 2603 /* 0: Identity */},
+  {(int) 3 /* 1: HashSetNode < Object: superclass typecheck marker */},
+  {(int) 139 /* 2: HashSetNode < HashNode: superclass typecheck marker */},
+  {(int) 2603 /* 3: HashSetNode < HashSetNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashSetNode < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: HashSetNode < HashNode: superclass init_table position */},
+  {(int) hash___HashSetNode___key},
+  {(int) hash___HashNode___next_item},
+  {(int) hash___HashNode___next_item__eq},
+  {(int) hash___HashNode___prev_item},
+  {(int) hash___HashNode___prev_item__eq},
+  {(int) 2 /* 46: HashSetNode < HashSetNode: superclass init_table position */},
+  {(int) hash___HashSetNode___key__eq},
+  {(int) hash___HashSetNode___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashSetNode::_next_item */
+/* 2: Attribute HashSetNode::_prev_item */
+/* 3: Attribute HashSetNode::_key */
+val_t NEW_HashSetNode(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_HashSetNode;
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashSetNode___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_HashSetNode();
+  hash___HashSetNode___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_HashSetIterator[47] = {
+  {(int) 2607 /* 0: Identity */},
+  {(int) 3 /* 1: HashSetIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: HashSetIterator < Iterator: superclass typecheck marker */},
+  {(int) 2607 /* 3: HashSetIterator < HashSetIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: HashSetIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: HashSetIterator < Iterator: superclass init_table position */},
+  {(int) hash___HashSetIterator___item},
+  {(int) hash___HashSetIterator___next},
+  {(int) hash___HashSetIterator___is_ok},
+  {(int) 2 /* 45: HashSetIterator < HashSetIterator: superclass init_table position */},
+  {(int) hash___HashSetIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute HashSetIterator::_set */
+/* 2: Attribute HashSetIterator::_node */
+val_t NEW_HashSetIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_HashSetIterator;
+  return OBJ2VAL(obj);
+}
+val_t NEW_hash___HashSetIterator___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_HashSetIterator();
+  hash___HashSetIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Symbol[46] = {
+  {(int) 27 /* 0: Identity */},
+  {(int) 3 /* 1: Symbol < Object: superclass typecheck marker */},
+  {(int) 27 /* 2: Symbol < Symbol: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) symbol___Symbol___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Symbol < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) environ___Symbol___environ},
+  {(int) environ___Symbol___environ__eq},
+  {(int) environ___Symbol___environ_default__eq},
+  {(int) environ___Symbol___unset},
+  {(int) 1 /* 44: Symbol < Symbol: superclass init_table position */},
+  {(int) symbol___Symbol___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Symbol::_string */
+val_t NEW_Symbol(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Symbol;
+  return OBJ2VAL(obj);
+}
+val_t NEW_symbol___Symbol___init(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Symbol();
+  symbol___Symbol___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AbstractSorter[46] = {
+  {(int) 175 /* 0: Identity */},
+  {(int) 3 /* 1: AbstractSorter < Object: superclass typecheck marker */},
+  {(int) 175 /* 2: AbstractSorter < AbstractSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AbstractSorter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: AbstractSorter < AbstractSorter: superclass init_table position */},
+  {(int) sorter___AbstractSorter___compare},
+  {(int) sorter___AbstractSorter___sort},
+  {(int) sorter___AbstractSorter___sub_sort},
+  {(int) sorter___AbstractSorter___quick_sort},
+  {(int) sorter___AbstractSorter___bubble_sort},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_AbstractSorter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_AbstractSorter;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ComparableSorter[48] = {
+  {(int) 2647 /* 0: Identity */},
+  {(int) 3 /* 1: ComparableSorter < Object: superclass typecheck marker */},
+  {(int) 175 /* 2: ComparableSorter < AbstractSorter: superclass typecheck marker */},
+  {(int) 2647 /* 3: ComparableSorter < ComparableSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ComparableSorter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ComparableSorter < AbstractSorter: superclass init_table position */},
+  {(int) sorter___ComparableSorter___compare},
+  {(int) sorter___AbstractSorter___sort},
+  {(int) sorter___AbstractSorter___sub_sort},
+  {(int) sorter___AbstractSorter___quick_sort},
+  {(int) sorter___AbstractSorter___bubble_sort},
+  {(int) 2 /* 46: ComparableSorter < ComparableSorter: superclass init_table position */},
+  {(int) sorter___ComparableSorter___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ComparableSorter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ComparableSorter;
+  return OBJ2VAL(obj);
+}
+val_t NEW_sorter___ComparableSorter___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ComparableSorter();
+  sorter___ComparableSorter___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_IOS[53] = {
+  {(int) 135 /* 0: Identity */},
+  {(int) 3 /* 1: IOS < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 135 /* 3: IOS < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IOS < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: IOS < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_IOS(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_IOS;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_IStream[63] = {
+  {(int) 2599 /* 0: Identity */},
+  {(int) 3 /* 1: IStream < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 135 /* 3: IStream < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2599 /* 5: IStream < IStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: IStream < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 2 /* 56: IStream < IStream: superclass init_table position */},
+  {(int) stream___IStream___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) stream___IStream___eof},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_IStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_IStream;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_OStream[56] = {
+  {(int) 2515 /* 0: Identity */},
+  {(int) 3 /* 1: OStream < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 135 /* 3: OStream < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: OStream < OStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: OStream < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+  {(int) 2 /* 53: OStream < OStream: superclass init_table position */},
+  {(int) stream___OStream___write},
+  {(int) stream___OStream___is_writable},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_OStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_OStream;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_BufferedIStream[67] = {
+  {(int) 3223 /* 0: Identity */},
+  {(int) 3 /* 1: BufferedIStream < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 135 /* 3: BufferedIStream < IOS: superclass typecheck marker */},
+  {(int) 3223 /* 4: BufferedIStream < BufferedIStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: BufferedIStream < IStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: BufferedIStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: BufferedIStream < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 2 /* 56: BufferedIStream < IStream: superclass init_table position */},
+  {(int) stream___BufferedIStream___read_char},
+  {(int) stream___BufferedIStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___BufferedIStream___read_all},
+  {(int) stream___BufferedIStream___append_line_to},
+  {(int) stream___BufferedIStream___eof},
+  {(int) 3 /* 63: BufferedIStream < BufferedIStream: superclass init_table position */},
+  {(int) stream___BufferedIStream___fill_buffer},
+  {(int) stream___BufferedIStream___end_reached},
+  {(int) stream___BufferedIStream___prepare_buffer},
+};
+/* 0: Pointer to the classtable */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 3: Attribute BufferedIStream::_buffer */
+/* 4: Attribute BufferedIStream::_buffer_pos */
+val_t NEW_BufferedIStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_BufferedIStream;
+  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_IOStream[70] = {
+  {(int) 3179 /* 0: Identity */},
+  {(int) 3 /* 1: IOStream < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 135 /* 3: IOStream < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: IOStream < OStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: IOStream < IStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3179 /* 8: IOStream < IOStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IOStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: IOStream < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+  {(int) 3 /* 53: IOStream < OStream: superclass init_table position */},
+  {(int) stream___OStream___write},
+  {(int) stream___OStream___is_writable},
+  {(int) 2 /* 56: IOStream < IStream: superclass init_table position */},
+  {(int) stream___IStream___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) stream___IStream___eof},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 69: IOStream < IOStream: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_IOStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_IOStream;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_FDStream[53] = {
+  {(int) 2627 /* 0: Identity */},
+  {(int) 3 /* 1: FDStream < Object: superclass typecheck marker */},
+  {(int) 2627 /* 2: FDStream < FDStream: superclass typecheck marker */},
+  {(int) 135 /* 3: FDStream < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FDStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: FDStream < FDStream: superclass init_table position */},
+  {(int) stream___FDStream___native_close},
+  {(int) stream___FDStream___native_read_char},
+  {(int) stream___FDStream___native_read},
+  {(int) stream___FDStream___native_write},
+  {(int) stream___FDStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: FDStream < IOS: superclass init_table position */},
+  {(int) stream___FDStream___close},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute FDStream::_fd */
+val_t NEW_FDStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_FDStream;
+  ATTR_stream___FDStream____fd(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_stream___FDStream___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_FDStream();
+  stream___FDStream___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_FDIStream[63] = {
+  {(int) 3191 /* 0: Identity */},
+  {(int) 3 /* 1: FDIStream < Object: superclass typecheck marker */},
+  {(int) 2627 /* 2: FDIStream < FDStream: superclass typecheck marker */},
+  {(int) 135 /* 3: FDIStream < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2599 /* 5: FDIStream < IStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3191 /* 7: FDIStream < FDIStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FDIStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: FDIStream < FDStream: superclass init_table position */},
+  {(int) stream___FDStream___native_close},
+  {(int) stream___FDStream___native_read_char},
+  {(int) stream___FDStream___native_read},
+  {(int) stream___FDStream___native_write},
+  {(int) stream___FDStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 48: FDIStream < FDIStream: superclass init_table position */},
+  {(int) stream___FDIStream___init},
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: FDIStream < IOS: superclass init_table position */},
+  {(int) stream___FDStream___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3 /* 56: FDIStream < IStream: superclass init_table position */},
+  {(int) stream___FDIStream___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) stream___FDIStream___eof},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute FDIStream::_fd */
+/* Instance Hole :( */
+/* 3: Attribute FDIStream::_eof */
+val_t NEW_FDIStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_FDIStream;
+  ATTR_stream___FDStream____fd(obj) = TAG_Int((int)0);
+  ATTR_stream___FDIStream____eof(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_stream___FDIStream___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_FDIStream();
+  stream___FDIStream___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_FDOStream[56] = {
+  {(int) 3187 /* 0: Identity */},
+  {(int) 3 /* 1: FDOStream < Object: superclass typecheck marker */},
+  {(int) 2627 /* 2: FDOStream < FDStream: superclass typecheck marker */},
+  {(int) 135 /* 3: FDOStream < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: FDOStream < OStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3187 /* 6: FDOStream < FDOStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FDOStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: FDOStream < FDStream: superclass init_table position */},
+  {(int) stream___FDStream___native_close},
+  {(int) stream___FDStream___native_read_char},
+  {(int) stream___FDStream___native_read},
+  {(int) stream___FDStream___native_write},
+  {(int) stream___FDStream___init},
+  {(int) 4 /* 46: FDOStream < FDOStream: superclass init_table position */},
+  {(int) stream___FDOStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: FDOStream < IOS: superclass init_table position */},
+  {(int) stream___FDStream___close},
+  {(int) 3 /* 53: FDOStream < OStream: superclass init_table position */},
+  {(int) stream___FDOStream___write},
+  {(int) stream___FDOStream___is_writable},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute FDOStream::_fd */
+/* 2: Attribute FDOStream::_is_writable */
+val_t NEW_FDOStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_FDOStream;
+  ATTR_stream___FDStream____fd(obj) = TAG_Int((int)0);
+  ATTR_stream___FDOStream____is_writable(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_stream___FDOStream___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_FDOStream();
+  stream___FDOStream___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_FDIOStream[70] = {
+  {(int) 3307 /* 0: Identity */},
+  {(int) 3 /* 1: FDIOStream < Object: superclass typecheck marker */},
+  {(int) 2627 /* 2: FDIOStream < FDStream: superclass typecheck marker */},
+  {(int) 135 /* 3: FDIOStream < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: FDIOStream < OStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: FDIOStream < IStream: superclass typecheck marker */},
+  {(int) 3187 /* 6: FDIOStream < FDOStream: superclass typecheck marker */},
+  {(int) 3191 /* 7: FDIOStream < FDIStream: superclass typecheck marker */},
+  {(int) 3179 /* 8: FDIOStream < IOStream: superclass typecheck marker */},
+  {(int) 3307 /* 9: FDIOStream < FDIOStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FDIOStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: FDIOStream < FDStream: superclass init_table position */},
+  {(int) stream___FDStream___native_close},
+  {(int) stream___FDStream___native_read_char},
+  {(int) stream___FDStream___native_read},
+  {(int) stream___FDStream___native_write},
+  {(int) stream___FDStream___init},
+  {(int) 6 /* 46: FDIOStream < FDOStream: superclass init_table position */},
+  {(int) stream___FDOStream___init},
+  {(int) 4 /* 48: FDIOStream < FDIStream: superclass init_table position */},
+  {(int) stream___FDIStream___init},
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: FDIOStream < IOS: superclass init_table position */},
+  {(int) stream___FDStream___close},
+  {(int) 5 /* 53: FDIOStream < OStream: superclass init_table position */},
+  {(int) stream___FDOStream___write},
+  {(int) stream___FDOStream___is_writable},
+  {(int) 3 /* 56: FDIOStream < IStream: superclass init_table position */},
+  {(int) stream___FDIStream___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) stream___FDIStream___eof},
+  {(int) 8 /* 63: FDIOStream < FDIOStream: superclass init_table position */},
+  {(int) stream___FDIOStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 7 /* 69: FDIOStream < IOStream: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute FDIOStream::_fd */
+/* 2: Attribute FDIOStream::_is_writable */
+/* 3: Attribute FDIOStream::_eof */
+val_t NEW_FDIOStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_FDIOStream;
+  ATTR_stream___FDStream____fd(obj) = TAG_Int((int)0);
+  ATTR_stream___FDIStream____eof(obj) = TAG_Bool((int)0);
+  ATTR_stream___FDOStream____is_writable(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_stream___FDIOStream___init(val_t p0) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_FDIOStream();
+  stream___FDIOStream___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Pattern[47] = {
+  {(int) 51 /* 0: Identity */},
+  {(int) 3 /* 1: Pattern < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 51 /* 3: Pattern < Pattern: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Pattern < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 42: Pattern < Pattern: superclass init_table position */},
+  {(int) string_search___Pattern___search_index_in},
+  {(int) string_search___Pattern___search_in},
+  {(int) string_search___Pattern___search_all_in},
+  {(int) string_search___Pattern___split_in},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Pattern(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Pattern;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_BM_Pattern[53] = {
+  {(int) 2659 /* 0: Identity */},
+  {(int) 3 /* 1: BM_Pattern < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 51 /* 3: BM_Pattern < Pattern: superclass typecheck marker */},
+  {(int) 2659 /* 4: BM_Pattern < BM_Pattern: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string_search___BM_Pattern___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: BM_Pattern < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 42: BM_Pattern < Pattern: superclass init_table position */},
+  {(int) string_search___BM_Pattern___search_index_in},
+  {(int) string_search___BM_Pattern___search_in},
+  {(int) string_search___Pattern___search_all_in},
+  {(int) string_search___Pattern___split_in},
+  {(int) 2 /* 47: BM_Pattern < BM_Pattern: superclass init_table position */},
+  {(int) string_search___BM_Pattern___init},
+  {(int) string_search___BM_Pattern___bc},
+  {(int) string_search___BM_Pattern___compute_bc},
+  {(int) string_search___BM_Pattern___suffixes},
+  {(int) string_search___BM_Pattern___compute_gs},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute BM_Pattern::_motif */
+/* 2: Attribute BM_Pattern::_length */
+/* 3: Attribute BM_Pattern::_gs */
+/* 4: Attribute BM_Pattern::_bc_table */
+val_t NEW_BM_Pattern(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_BM_Pattern;
+  ATTR_string_search___BM_Pattern____length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_string_search___BM_Pattern___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_BM_Pattern();
+  string_search___BM_Pattern___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Match[46] = {
+  {(int) 83 /* 0: Identity */},
+  {(int) 3 /* 1: Match < Object: superclass typecheck marker */},
+  {(int) 83 /* 2: Match < Match: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string_search___Match___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Match < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Match < Match: superclass init_table position */},
+  {(int) string_search___Match___string},
+  {(int) string_search___Match___from},
+  {(int) string_search___Match___length},
+  {(int) string_search___Match___after},
+  {(int) string_search___Match___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Match::_string */
+/* 2: Attribute Match::_from */
+/* 3: Attribute Match::_length */
+val_t NEW_Match(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Match;
+  ATTR_string_search___Match____from(obj) = TAG_Int((int)0);
+  ATTR_string_search___Match____length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_string_search___Match___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Match();
+  string_search___Match___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_FStream[53] = {
+  {(int) 2623 /* 0: Identity */},
+  {(int) 3 /* 1: FStream < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: FStream < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: FStream < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 2623 /* 6: FStream < FStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: FStream < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: FStream < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: FStream < IOS: superclass init_table position */},
+  {(int) stream___IOS___close},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute FStream::_path */
+/* 2: Attribute FStream::_file */
+val_t NEW_FStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_FStream;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_IFStream[71] = {
+  {(int) 3303 /* 0: Identity */},
+  {(int) 3 /* 1: IFStream < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: IFStream < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: IFStream < IOS: superclass typecheck marker */},
+  {(int) 3223 /* 4: IFStream < BufferedIStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: IFStream < IStream: superclass typecheck marker */},
+  {(int) 2623 /* 6: IFStream < FStream: superclass typecheck marker */},
+  {(int) 3303 /* 7: IFStream < IFStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IFStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: IFStream < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: IFStream < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: IFStream < IOS: superclass init_table position */},
+  {(int) file___IFStream___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 56: IFStream < IStream: superclass init_table position */},
+  {(int) stream___BufferedIStream___read_char},
+  {(int) stream___BufferedIStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___BufferedIStream___read_all},
+  {(int) stream___BufferedIStream___append_line_to},
+  {(int) stream___BufferedIStream___eof},
+  {(int) 5 /* 63: IFStream < BufferedIStream: superclass init_table position */},
+  {(int) file___IFStream___fill_buffer},
+  {(int) file___IFStream___end_reached},
+  {(int) stream___BufferedIStream___prepare_buffer},
+  {(int) 6 /* 67: IFStream < IFStream: superclass init_table position */},
+  {(int) file___IFStream___reopen},
+  {(int) file___IFStream___open},
+  {(int) file___IFStream___without_file},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute IFStream::_path */
+/* 2: Attribute IFStream::_file */
+/* 3: Attribute IFStream::_buffer */
+/* 4: Attribute IFStream::_buffer_pos */
+/* 5: Attribute IFStream::_end_reached */
+val_t NEW_IFStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IFStream;
+  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((int)0);
+  ATTR_file___IFStream____end_reached(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_file___IFStream___open(val_t p0) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_IFStream();
+  file___IFStream___open(self, p0, init_table);
+  return self;
+}
+val_t NEW_file___IFStream___without_file() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_IFStream();
+  file___IFStream___without_file(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OFStream[60] = {
+  {(int) 3123 /* 0: Identity */},
+  {(int) 3 /* 1: OFStream < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: OFStream < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: OFStream < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: OFStream < OStream: superclass typecheck marker */},
+  {(int) 3123 /* 5: OFStream < OFStream: superclass typecheck marker */},
+  {(int) 2623 /* 6: OFStream < FStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OFStream < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: OFStream < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: OFStream < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: OFStream < IOS: superclass init_table position */},
+  {(int) file___OFStream___close},
+  {(int) 4 /* 53: OFStream < OStream: superclass init_table position */},
+  {(int) file___OFStream___write},
+  {(int) file___OFStream___is_writable},
+  {(int) 5 /* 56: OFStream < OFStream: superclass init_table position */},
+  {(int) file___OFStream___write_native},
+  {(int) file___OFStream___open},
+  {(int) file___OFStream___without_file},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OFStream::_path */
+/* 2: Attribute OFStream::_file */
+/* 3: Attribute OFStream::_writable */
+val_t NEW_OFStream(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_OFStream;
+  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_file___OFStream___open(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_OFStream();
+  file___OFStream___open(self, p0, init_table);
+  return self;
+}
+val_t NEW_file___OFStream___without_file() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_OFStream();
+  file___OFStream___without_file(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Stdin[73] = {
+  {(int) 3607 /* 0: Identity */},
+  {(int) 3 /* 1: Stdin < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: Stdin < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: Stdin < IOS: superclass typecheck marker */},
+  {(int) 3223 /* 4: Stdin < BufferedIStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: Stdin < IStream: superclass typecheck marker */},
+  {(int) 2623 /* 6: Stdin < FStream: superclass typecheck marker */},
+  {(int) 3303 /* 7: Stdin < IFStream: superclass typecheck marker */},
+  {(int) 3607 /* 8: Stdin < Stdin: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Stdin < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: Stdin < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: Stdin < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: Stdin < IOS: superclass init_table position */},
+  {(int) file___IFStream___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 56: Stdin < IStream: superclass init_table position */},
+  {(int) stream___BufferedIStream___read_char},
+  {(int) stream___BufferedIStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___BufferedIStream___read_all},
+  {(int) stream___BufferedIStream___append_line_to},
+  {(int) stream___BufferedIStream___eof},
+  {(int) 5 /* 63: Stdin < BufferedIStream: superclass init_table position */},
+  {(int) file___IFStream___fill_buffer},
+  {(int) file___IFStream___end_reached},
+  {(int) stream___BufferedIStream___prepare_buffer},
+  {(int) 6 /* 67: Stdin < IFStream: superclass init_table position */},
+  {(int) file___IFStream___reopen},
+  {(int) file___IFStream___open},
+  {(int) file___IFStream___without_file},
+  {(int) 7 /* 71: Stdin < Stdin: superclass init_table position */},
+  {(int) file___Stdin___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Stdin::_path */
+/* 2: Attribute Stdin::_file */
+/* 3: Attribute Stdin::_buffer */
+/* 4: Attribute Stdin::_buffer_pos */
+/* 5: Attribute Stdin::_end_reached */
+val_t NEW_Stdin(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_Stdin;
+  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((int)0);
+  ATTR_file___IFStream____end_reached(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_file___Stdin___init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Stdin();
+  file___Stdin___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Stdout[62] = {
+  {(int) 3255 /* 0: Identity */},
+  {(int) 3 /* 1: Stdout < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: Stdout < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: Stdout < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: Stdout < OStream: superclass typecheck marker */},
+  {(int) 3123 /* 5: Stdout < OFStream: superclass typecheck marker */},
+  {(int) 2623 /* 6: Stdout < FStream: superclass typecheck marker */},
+  {(int) 3255 /* 7: Stdout < Stdout: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Stdout < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: Stdout < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: Stdout < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: Stdout < IOS: superclass init_table position */},
+  {(int) file___OFStream___close},
+  {(int) 4 /* 53: Stdout < OStream: superclass init_table position */},
+  {(int) file___OFStream___write},
+  {(int) file___OFStream___is_writable},
+  {(int) 5 /* 56: Stdout < OFStream: superclass init_table position */},
+  {(int) file___OFStream___write_native},
+  {(int) file___OFStream___open},
+  {(int) file___OFStream___without_file},
+  {(int) 6 /* 60: Stdout < Stdout: superclass init_table position */},
+  {(int) file___Stdout___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Stdout::_path */
+/* 2: Attribute Stdout::_file */
+/* 3: Attribute Stdout::_writable */
+val_t NEW_Stdout(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Stdout;
+  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_file___Stdout___init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Stdout();
+  file___Stdout___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Stderr[62] = {
+  {(int) 3259 /* 0: Identity */},
+  {(int) 3 /* 1: Stderr < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: Stderr < NativeFileCapable: superclass typecheck marker */},
+  {(int) 135 /* 3: Stderr < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: Stderr < OStream: superclass typecheck marker */},
+  {(int) 3123 /* 5: Stderr < OFStream: superclass typecheck marker */},
+  {(int) 2623 /* 6: Stderr < FStream: superclass typecheck marker */},
+  {(int) 3259 /* 7: Stderr < Stderr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Stderr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 2 /* 40: Stderr < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+  {(int) 3 /* 46: Stderr < FStream: superclass init_table position */},
+  {(int) file___FStream___path},
+  {(int) file___FStream___file_stat},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 51: Stderr < IOS: superclass init_table position */},
+  {(int) file___OFStream___close},
+  {(int) 4 /* 53: Stderr < OStream: superclass init_table position */},
+  {(int) file___OFStream___write},
+  {(int) file___OFStream___is_writable},
+  {(int) 5 /* 56: Stderr < OFStream: superclass init_table position */},
+  {(int) file___OFStream___write_native},
+  {(int) file___OFStream___open},
+  {(int) file___OFStream___without_file},
+  {(int) 6 /* 60: Stderr < Stderr: superclass init_table position */},
+  {(int) file___Stderr___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Stderr::_path */
+/* 2: Attribute Stderr::_file */
+/* 3: Attribute Stderr::_writable */
+val_t NEW_Stderr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Stderr;
+  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_file___Stderr___init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_Stderr();
+  file___Stderr___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_FileStat[47] = {
+  {(int) -29 /* 0: Identity */},
+  {(int) 3 /* 1: FileStat < Object: superclass typecheck marker */},
+  {(int) -1 /* 2: FileStat < Pointer: superclass typecheck marker */},
+  {(int) -29 /* 3: FileStat < FileStat: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: FileStat < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: FileStat < Pointer: superclass init_table position */},
+  {(int) 2 /* 41: FileStat < FileStat: superclass init_table position */},
+  {(int) file___FileStat___mode},
+  {(int) file___FileStat___atime},
+  {(int) file___FileStat___ctime},
+  {(int) file___FileStat___mtime},
+  {(int) file___FileStat___size},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_FileStat(void * val) {
+  struct TBOX_FileStat *box = (struct TBOX_FileStat*)alloc(sizeof(struct TBOX_FileStat));
+  box->vft = VFT_FileStat;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_NativeFile[46] = {
+  {(int) -25 /* 0: Identity */},
+  {(int) 3 /* 1: NativeFile < Object: superclass typecheck marker */},
+  {(int) -1 /* 2: NativeFile < Pointer: superclass typecheck marker */},
+  {(int) -25 /* 3: NativeFile < NativeFile: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NativeFile < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: NativeFile < Pointer: superclass init_table position */},
+  {(int) 2 /* 41: NativeFile < NativeFile: superclass init_table position */},
+  {(int) file___NativeFile___io_read},
+  {(int) file___NativeFile___io_write},
+  {(int) file___NativeFile___io_close},
+  {(int) file___NativeFile___file_stat},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_NativeFile(void * val) {
+  struct TBOX_NativeFile *box = (struct TBOX_NativeFile*)alloc(sizeof(struct TBOX_NativeFile));
+  box->vft = VFT_NativeFile;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_NativeFileCapable[46] = {
+  {(int) 75 /* 0: Identity */},
+  {(int) 3 /* 1: NativeFileCapable < Object: superclass typecheck marker */},
+  {(int) 75 /* 2: NativeFileCapable < NativeFileCapable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NativeFileCapable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: NativeFileCapable < NativeFileCapable: superclass init_table position */},
+  {(int) file___NativeFileCapable___io_open_read},
+  {(int) file___NativeFileCapable___io_open_write},
+  {(int) file___NativeFileCapable___native_stdin},
+  {(int) file___NativeFileCapable___native_stdout},
+  {(int) file___NativeFileCapable___native_stderr},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_NativeFileCapable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_NativeFileCapable;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Process[51] = {
+  {(int) 43 /* 0: Identity */},
+  {(int) 3 /* 1: Process < Object: superclass typecheck marker */},
+  {(int) 43 /* 2: Process < Process: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Process < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Process < Process: superclass init_table position */},
+  {(int) exec___Process___id},
+  {(int) exec___Process___is_finished},
+  {(int) exec___Process___wait},
+  {(int) exec___Process___status},
+  {(int) exec___Process___kill},
+  {(int) exec___Process___term},
+  {(int) exec___Process___init},
+  {(int) exec___Process___init_},
+  {(int) exec___Process___execute},
+  {(int) exec___Process___basic_exec_execute},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Process::_data */
+val_t NEW_Process(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Process;
+  return OBJ2VAL(obj);
+}
+val_t NEW_exec___Process___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Process();
+  exec___Process___init(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_exec___Process___init_(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Process();
+  exec___Process___init_(self, p0, init_table);
+  return self;
+}
+val_t NEW_exec___Process___execute(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Process();
+  exec___Process___execute(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_IProcess[69] = {
+  {(int) 3175 /* 0: Identity */},
+  {(int) 3 /* 1: IProcess < Object: superclass typecheck marker */},
+  {(int) 43 /* 2: IProcess < Process: superclass typecheck marker */},
+  {(int) 135 /* 3: IProcess < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2599 /* 5: IProcess < IStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3175 /* 7: IProcess < IProcess: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IProcess < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: IProcess < Process: superclass init_table position */},
+  {(int) exec___Process___id},
+  {(int) exec___Process___is_finished},
+  {(int) exec___Process___wait},
+  {(int) exec___Process___status},
+  {(int) exec___Process___kill},
+  {(int) exec___Process___term},
+  {(int) exec___Process___init},
+  {(int) exec___Process___init_},
+  {(int) exec___Process___execute},
+  {(int) exec___Process___basic_exec_execute},
+  {(int) 2 /* 51: IProcess < IOS: superclass init_table position */},
+  {(int) exec___IProcess___close},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 3 /* 56: IProcess < IStream: superclass init_table position */},
+  {(int) exec___IProcess___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) exec___IProcess___eof},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 66: IProcess < IProcess: superclass init_table position */},
+  {(int) exec___IProcess___init},
+  {(int) exec___IProcess___init_},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute IProcess::_data */
+/* Instance Hole :( */
+/* 3: Attribute IProcess::_in */
+val_t NEW_IProcess(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_IProcess;
+  return OBJ2VAL(obj);
+}
+val_t NEW_exec___IProcess___init(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_IProcess();
+  exec___IProcess___init(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_exec___IProcess___init_(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_IProcess();
+  exec___IProcess___init_(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OProcess[66] = {
+  {(int) 3119 /* 0: Identity */},
+  {(int) 3 /* 1: OProcess < Object: superclass typecheck marker */},
+  {(int) 43 /* 2: OProcess < Process: superclass typecheck marker */},
+  {(int) 135 /* 3: OProcess < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: OProcess < OStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3119 /* 6: OProcess < OProcess: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OProcess < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OProcess < Process: superclass init_table position */},
+  {(int) exec___Process___id},
+  {(int) exec___Process___is_finished},
+  {(int) exec___Process___wait},
+  {(int) exec___Process___status},
+  {(int) exec___Process___kill},
+  {(int) exec___Process___term},
+  {(int) exec___Process___init},
+  {(int) exec___Process___init_},
+  {(int) exec___Process___execute},
+  {(int) exec___Process___basic_exec_execute},
+  {(int) 2 /* 51: OProcess < IOS: superclass init_table position */},
+  {(int) exec___OProcess___close},
+  {(int) 3 /* 53: OProcess < OStream: superclass init_table position */},
+  {(int) exec___OProcess___write},
+  {(int) exec___OProcess___is_writable},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 63: OProcess < OProcess: superclass init_table position */},
+  {(int) exec___OProcess___init},
+  {(int) exec___OProcess___init_},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OProcess::_data */
+/* 2: Attribute OProcess::_out */
+val_t NEW_OProcess(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_OProcess;
+  return OBJ2VAL(obj);
+}
+val_t NEW_exec___OProcess___init(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_OProcess();
+  exec___OProcess___init(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_exec___OProcess___init_(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_OProcess();
+  exec___OProcess___init_(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_IOProcess[73] = {
+  {(int) 3299 /* 0: Identity */},
+  {(int) 3 /* 1: IOProcess < Object: superclass typecheck marker */},
+  {(int) 43 /* 2: IOProcess < Process: superclass typecheck marker */},
+  {(int) 135 /* 3: IOProcess < IOS: superclass typecheck marker */},
+  {(int) 2515 /* 4: IOProcess < OStream: superclass typecheck marker */},
+  {(int) 2599 /* 5: IOProcess < IStream: superclass typecheck marker */},
+  {(int) 3119 /* 6: IOProcess < OProcess: superclass typecheck marker */},
+  {(int) 3175 /* 7: IOProcess < IProcess: superclass typecheck marker */},
+  {(int) 3179 /* 8: IOProcess < IOStream: superclass typecheck marker */},
+  {(int) 3299 /* 9: IOProcess < IOProcess: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IOProcess < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: IOProcess < Process: superclass init_table position */},
+  {(int) exec___Process___id},
+  {(int) exec___Process___is_finished},
+  {(int) exec___Process___wait},
+  {(int) exec___Process___status},
+  {(int) exec___Process___kill},
+  {(int) exec___Process___term},
+  {(int) exec___Process___init},
+  {(int) exec___Process___init_},
+  {(int) exec___Process___execute},
+  {(int) exec___Process___basic_exec_execute},
+  {(int) 2 /* 51: IOProcess < IOS: superclass init_table position */},
+  {(int) exec___IOProcess___close},
+  {(int) 5 /* 53: IOProcess < OStream: superclass init_table position */},
+  {(int) exec___OProcess___write},
+  {(int) exec___OProcess___is_writable},
+  {(int) 3 /* 56: IOProcess < IStream: superclass init_table position */},
+  {(int) exec___IProcess___read_char},
+  {(int) stream___IStream___read},
+  {(int) stream___IStream___read_line},
+  {(int) stream___IStream___read_all},
+  {(int) stream___IStream___append_line_to},
+  {(int) exec___IProcess___eof},
+  {(int) 6 /* 63: IOProcess < OProcess: superclass init_table position */},
+  {(int) exec___OProcess___init},
+  {(int) exec___OProcess___init_},
+  {(int) 4 /* 66: IOProcess < IProcess: superclass init_table position */},
+  {(int) exec___IProcess___init},
+  {(int) exec___IProcess___init_},
+  {(int) 7 /* 69: IOProcess < IOStream: superclass init_table position */},
+  {(int) 8 /* 70: IOProcess < IOProcess: superclass init_table position */},
+  {(int) exec___IOProcess___init},
+  {(int) exec___IOProcess___init_},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute IOProcess::_data */
+/* 2: Attribute IOProcess::_out */
+/* 3: Attribute IOProcess::_in */
+val_t NEW_IOProcess(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_IOProcess;
+  return OBJ2VAL(obj);
+}
+val_t NEW_exec___IOProcess___init(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_IOProcess();
+  exec___IOProcess___init(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_exec___IOProcess___init_(val_t p0) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_IOProcess();
+  exec___IOProcess___init_(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_NativeProcess[50] = {
+  {(int) -21 /* 0: Identity */},
+  {(int) 3 /* 1: NativeProcess < Object: superclass typecheck marker */},
+  {(int) -1 /* 2: NativeProcess < Pointer: superclass typecheck marker */},
+  {(int) -21 /* 3: NativeProcess < NativeProcess: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: NativeProcess < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: NativeProcess < Pointer: superclass init_table position */},
+  {(int) 2 /* 41: NativeProcess < NativeProcess: superclass init_table position */},
+  {(int) exec___NativeProcess___id},
+  {(int) exec___NativeProcess___is_finished},
+  {(int) exec___NativeProcess___status},
+  {(int) exec___NativeProcess___wait},
+  {(int) exec___NativeProcess___kill},
+  {(int) exec___NativeProcess___in_fd},
+  {(int) exec___NativeProcess___out_fd},
+  {(int) exec___NativeProcess___err_fd},
+};
+/* 0: Pointer to the classtable */
+val_t BOX_NativeProcess(void * val) {
+  struct TBOX_NativeProcess *box = (struct TBOX_NativeProcess*)alloc(sizeof(struct TBOX_NativeProcess));
+  box->vft = VFT_NativeProcess;
+  box->val = val;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_List[98] = {
+  {(int) 3619 /* 0: Identity */},
+  {(int) 3 /* 1: List < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: List < Collection: superclass typecheck marker */},
+  {(int) 211 /* 6: List < RemovableCollection: superclass typecheck marker */},
+  {(int) 3019 /* 7: List < SimpleCollection: superclass typecheck marker */},
+  {(int) 3127 /* 8: List < Map: superclass typecheck marker */},
+  {(int) 3295 /* 9: List < IndexedCollection: superclass typecheck marker */},
+  {(int) 3619 /* 10: List < List: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: List < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: List < Collection: superclass init_table position */},
+  {(int) list___List___iterator},
+  {(int) list___List___is_empty},
+  {(int) list___List___length},
+  {(int) list___List___has},
+  {(int) list___List___has_only},
+  {(int) list___List___count},
+  {(int) list___List___first},
+  {(int) 2 /* 66: List < RemovableCollection: superclass init_table position */},
+  {(int) list___List___clear},
+  {(int) list___List___remove},
+  {(int) abstract_collection___RemovableCollection___remove_all},
+  {(int) 4 /* 70: List < SimpleCollection: superclass init_table position */},
+  {(int) abstract_collection___IndexedCollection___add},
+  {(int) abstract_collection___SimpleCollection___add_all},
+  {(int) string___Map___map_join},
+  {(int) 3 /* 74: List < Map: superclass init_table position */},
+  {(int) list___List_____bra},
+  {(int) list___List_____braeq},
+  {(int) list___List___has_key},
+  {(int) list___List___remove_at},
+  {(int) abstract_collection___Map___recover_with},
+  {(int) 5 /* 80: List < IndexedCollection: superclass init_table position */},
+  {(int) list___List___first__eq},
+  {(int) list___List___last},
+  {(int) list___List___last__eq},
+  {(int) list___List___push},
+  {(int) abstract_collection___IndexedCollection___append},
+  {(int) list___List___pop},
+  {(int) list___List___unshift},
+  {(int) list___List___shift},
+  {(int) abstract_collection___IndexedCollection___index_of},
+  {(int) 6 /* 90: List < List: superclass init_table position */},
+  {(int) list___List___link},
+  {(int) list___List___init},
+  {(int) list___List___from},
+  {(int) list___List___get_node},
+  {(int) list___List___search_node_after},
+  {(int) list___List___remove_node},
+  {(int) list___List___insert_before},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute List::_head */
+/* 2: Attribute List::_tail */
+val_t NEW_List(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_List;
+  return OBJ2VAL(obj);
+}
+val_t NEW_list___List___init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_List();
+  list___List___init(self, init_table);
+  return self;
+}
+val_t NEW_list___List___from(val_t p0) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_List();
+  list___List___from(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ListIterator[52] = {
+  {(int) 3291 /* 0: Identity */},
+  {(int) 3 /* 1: ListIterator < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: ListIterator < Iterator: superclass typecheck marker */},
+  {(int) 2527 /* 3: ListIterator < MapIterator: superclass typecheck marker */},
+  {(int) 3171 /* 4: ListIterator < IndexedIterator: superclass typecheck marker */},
+  {(int) 3291 /* 5: ListIterator < ListIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ListIterator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: ListIterator < Iterator: superclass init_table position */},
+  {(int) list___ListIterator___item},
+  {(int) list___ListIterator___next},
+  {(int) list___ListIterator___is_ok},
+  {(int) 2 /* 45: ListIterator < MapIterator: superclass init_table position */},
+  {(int) abstract_collection___IndexedIterator___key},
+  {(int) list___ListIterator___item__eq},
+  {(int) 3 /* 48: ListIterator < IndexedIterator: superclass init_table position */},
+  {(int) list___ListIterator___index},
+  {(int) 4 /* 50: ListIterator < ListIterator: superclass init_table position */},
+  {(int) list___ListIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ListIterator::_node */
+/* 2: Attribute ListIterator::_index */
+val_t NEW_ListIterator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ListIterator;
+  ATTR_list___ListIterator____index(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_list___ListIterator___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ListIterator();
+  list___ListIterator___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ListNode[76] = {
+  {(int) 3167 /* 0: Identity */},
+  {(int) 3 /* 1: ListNode < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: ListNode < Collection: superclass typecheck marker */},
+  {(int) 2639 /* 6: ListNode < Container: superclass typecheck marker */},
+  {(int) 3167 /* 7: ListNode < ListNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ListNode < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: ListNode < Collection: superclass init_table position */},
+  {(int) abstract_collection___Container___iterator},
+  {(int) abstract_collection___Container___is_empty},
+  {(int) abstract_collection___Container___length},
+  {(int) abstract_collection___Container___has},
+  {(int) abstract_collection___Container___has_only},
+  {(int) abstract_collection___Container___count},
+  {(int) abstract_collection___Container___first},
+  {(int) 2 /* 66: ListNode < Container: superclass init_table position */},
+  {(int) abstract_collection___Container___init},
+  {(int) abstract_collection___Container___item},
+  {(int) abstract_collection___Container___item__eq},
+  {(int) 3 /* 70: ListNode < ListNode: superclass init_table position */},
+  {(int) list___ListNode___init},
+  {(int) list___ListNode___next},
+  {(int) list___ListNode___next__eq},
+  {(int) list___ListNode___prev},
+  {(int) list___ListNode___prev__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ListNode::_item */
+/* 2: Attribute ListNode::_next */
+/* 3: Attribute ListNode::_prev */
+val_t NEW_ListNode(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ListNode;
+  return OBJ2VAL(obj);
+}
+val_t NEW_list___ListNode___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ListNode();
+  list___ListNode___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Range[71] = {
+  {(int) 2491 /* 0: Identity */},
+  {(int) 3 /* 1: Range < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: Range < Collection: superclass typecheck marker */},
+  {(int) 2491 /* 6: Range < Range: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Range < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: Range < Collection: superclass init_table position */},
+  {(int) range___Range___iterator},
+  {(int) range___Range___is_empty},
+  {(int) range___Range___length},
+  {(int) range___Range___has},
+  {(int) range___Range___has_only},
+  {(int) range___Range___count},
+  {(int) range___Range___first},
+  {(int) 2 /* 66: Range < Range: superclass init_table position */},
+  {(int) range___Range___last},
+  {(int) range___Range___after},
+  {(int) range___Range___init},
+  {(int) range___Range___without_last},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Range::_first */
+/* 2: Attribute Range::_last */
+/* 3: Attribute Range::_after */
+val_t NEW_Range(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Range;
+  return OBJ2VAL(obj);
+}
+val_t NEW_range___Range___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_Range();
+  range___Range___init(self, p0, p1, init_table);
+  return self;
+}
+val_t NEW_range___Range___without_last(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_Range();
+  range___Range___without_last(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_IteratorRange[47] = {
+  {(int) 2595 /* 0: Identity */},
+  {(int) 3 /* 1: IteratorRange < Object: superclass typecheck marker */},
+  {(int) 131 /* 2: IteratorRange < Iterator: superclass typecheck marker */},
+  {(int) 2595 /* 3: IteratorRange < IteratorRange: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: IteratorRange < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) array___Iterator___to_a},
+  {(int) 1 /* 41: IteratorRange < Iterator: superclass init_table position */},
+  {(int) range___IteratorRange___item},
+  {(int) range___IteratorRange___next},
+  {(int) range___IteratorRange___is_ok},
+  {(int) 2 /* 45: IteratorRange < IteratorRange: superclass init_table position */},
+  {(int) range___IteratorRange___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute IteratorRange::_range */
+/* 2: Attribute IteratorRange::_item */
+val_t NEW_IteratorRange(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_IteratorRange;
+  return OBJ2VAL(obj);
+}
+val_t NEW_range___IteratorRange___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_IteratorRange();
+  range___IteratorRange___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PNode[60] = {
+  {(int) 63 /* 0: Identity */},
+  {(int) 3 /* 1: PNode < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PNode < PNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PNode < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___PNode___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PNode < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PNode::_parent */
+val_t NEW_PNode(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_PNode;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Token[68] = {
+  {(int) 183 /* 0: Identity */},
+  {(int) 3 /* 1: Token < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: Token < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: Token < Token: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Token < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: Token < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___Token___parser_index},
+  {(int) 2 /* 67: Token < Token: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Token::_parent */
+/* 2: Attribute Token::_symbol */
+/* 3: Attribute Token::_text */
+/* 4: Attribute Token::_filename */
+/* 5: Attribute Token::_line */
+/* 6: Attribute Token::_pos */
+val_t NEW_Token(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_Token;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Prod[66] = {
+  {(int) 2495 /* 0: Identity */},
+  {(int) 3 /* 1: Prod < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: Prod < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: Prod < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Prod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: Prod < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: Prod < Prod: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Prod::_parent */
+/* 2: Attribute Prod::_first_token */
+/* 3: Attribute Prod::_last_token */
+val_t NEW_Prod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Prod;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_TEol[70] = {
+  {(int) 2959 /* 0: Identity */},
+  {(int) 3 /* 1: TEol < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TEol < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TEol < Token: superclass typecheck marker */},
+  {(int) 2959 /* 4: TEol < TEol: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TEol < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TEol < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TEol___parser_index},
+  {(int) 2 /* 67: TEol < Token: superclass init_table position */},
+  {(int) lexer___TEol___init},
+  {(int) 3 /* 69: TEol < TEol: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TEol::_parent */
+/* 2: Attribute TEol::_symbol */
+/* 3: Attribute TEol::_text */
+/* 4: Attribute TEol::_filename */
+/* 5: Attribute TEol::_line */
+/* 6: Attribute TEol::_pos */
+val_t NEW_TEol(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TEol;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TEol___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TEol();
+  lexer___TEol___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TComment[70] = {
+  {(int) 2983 /* 0: Identity */},
+  {(int) 3 /* 1: TComment < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TComment < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TComment < Token: superclass typecheck marker */},
+  {(int) 2983 /* 4: TComment < TComment: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TComment < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TComment < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TComment___parser_index},
+  {(int) 2 /* 67: TComment < Token: superclass init_table position */},
+  {(int) lexer___TComment___init},
+  {(int) 3 /* 69: TComment < TComment: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TComment::_parent */
+/* 2: Attribute TComment::_symbol */
+/* 3: Attribute TComment::_text */
+/* 4: Attribute TComment::_filename */
+/* 5: Attribute TComment::_line */
+/* 6: Attribute TComment::_pos */
+val_t NEW_TComment(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TComment;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TComment___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TComment();
+  lexer___TComment___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwpackage[70] = {
+  {(int) 2819 /* 0: Identity */},
+  {(int) 3 /* 1: TKwpackage < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwpackage < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwpackage < Token: superclass typecheck marker */},
+  {(int) 2819 /* 4: TKwpackage < TKwpackage: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwpackage < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwpackage < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwpackage___parser_index},
+  {(int) 2 /* 67: TKwpackage < Token: superclass init_table position */},
+  {(int) lexer___TKwpackage___init},
+  {(int) 3 /* 69: TKwpackage < TKwpackage: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwpackage::_parent */
+/* 2: Attribute TKwpackage::_symbol */
+/* 3: Attribute TKwpackage::_text */
+/* 4: Attribute TKwpackage::_filename */
+/* 5: Attribute TKwpackage::_line */
+/* 6: Attribute TKwpackage::_pos */
+val_t NEW_TKwpackage(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwpackage;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwpackage___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwpackage();
+  lexer___TKwpackage___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwimport[70] = {
+  {(int) 2875 /* 0: Identity */},
+  {(int) 3 /* 1: TKwimport < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwimport < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwimport < Token: superclass typecheck marker */},
+  {(int) 2875 /* 4: TKwimport < TKwimport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwimport < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwimport < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwimport___parser_index},
+  {(int) 2 /* 67: TKwimport < Token: superclass init_table position */},
+  {(int) lexer___TKwimport___init},
+  {(int) 3 /* 69: TKwimport < TKwimport: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwimport::_parent */
+/* 2: Attribute TKwimport::_symbol */
+/* 3: Attribute TKwimport::_text */
+/* 4: Attribute TKwimport::_filename */
+/* 5: Attribute TKwimport::_line */
+/* 6: Attribute TKwimport::_pos */
+val_t NEW_TKwimport(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwimport;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwimport___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwimport();
+  lexer___TKwimport___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwclass[70] = {
+  {(int) 2911 /* 0: Identity */},
+  {(int) 3 /* 1: TKwclass < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwclass < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwclass < Token: superclass typecheck marker */},
+  {(int) 2911 /* 4: TKwclass < TKwclass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwclass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwclass < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwclass___parser_index},
+  {(int) 2 /* 67: TKwclass < Token: superclass init_table position */},
+  {(int) lexer___TKwclass___init},
+  {(int) 3 /* 69: TKwclass < TKwclass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwclass::_parent */
+/* 2: Attribute TKwclass::_symbol */
+/* 3: Attribute TKwclass::_text */
+/* 4: Attribute TKwclass::_filename */
+/* 5: Attribute TKwclass::_line */
+/* 6: Attribute TKwclass::_pos */
+val_t NEW_TKwclass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwclass;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwclass___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwclass();
+  lexer___TKwclass___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwabstract[70] = {
+  {(int) 2931 /* 0: Identity */},
+  {(int) 3 /* 1: TKwabstract < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwabstract < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwabstract < Token: superclass typecheck marker */},
+  {(int) 2931 /* 4: TKwabstract < TKwabstract: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwabstract < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwabstract < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwabstract___parser_index},
+  {(int) 2 /* 67: TKwabstract < Token: superclass init_table position */},
+  {(int) lexer___TKwabstract___init},
+  {(int) 3 /* 69: TKwabstract < TKwabstract: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwabstract::_parent */
+/* 2: Attribute TKwabstract::_symbol */
+/* 3: Attribute TKwabstract::_text */
+/* 4: Attribute TKwabstract::_filename */
+/* 5: Attribute TKwabstract::_line */
+/* 6: Attribute TKwabstract::_pos */
+val_t NEW_TKwabstract(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwabstract;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwabstract___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwabstract();
+  lexer___TKwabstract___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwinterface[70] = {
+  {(int) 2863 /* 0: Identity */},
+  {(int) 3 /* 1: TKwinterface < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwinterface < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwinterface < Token: superclass typecheck marker */},
+  {(int) 2863 /* 4: TKwinterface < TKwinterface: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwinterface < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwinterface < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwinterface___parser_index},
+  {(int) 2 /* 67: TKwinterface < Token: superclass init_table position */},
+  {(int) lexer___TKwinterface___init},
+  {(int) 3 /* 69: TKwinterface < TKwinterface: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwinterface::_parent */
+/* 2: Attribute TKwinterface::_symbol */
+/* 3: Attribute TKwinterface::_text */
+/* 4: Attribute TKwinterface::_filename */
+/* 5: Attribute TKwinterface::_line */
+/* 6: Attribute TKwinterface::_pos */
+val_t NEW_TKwinterface(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwinterface;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwinterface___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwinterface();
+  lexer___TKwinterface___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwuniversal[70] = {
+  {(int) 2771 /* 0: Identity */},
+  {(int) 3 /* 1: TKwuniversal < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwuniversal < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwuniversal < Token: superclass typecheck marker */},
+  {(int) 2771 /* 4: TKwuniversal < TKwuniversal: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwuniversal < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwuniversal < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwuniversal___parser_index},
+  {(int) 2 /* 67: TKwuniversal < Token: superclass init_table position */},
+  {(int) lexer___TKwuniversal___init},
+  {(int) 3 /* 69: TKwuniversal < TKwuniversal: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwuniversal::_parent */
+/* 2: Attribute TKwuniversal::_symbol */
+/* 3: Attribute TKwuniversal::_text */
+/* 4: Attribute TKwuniversal::_filename */
+/* 5: Attribute TKwuniversal::_line */
+/* 6: Attribute TKwuniversal::_pos */
+val_t NEW_TKwuniversal(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwuniversal;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwuniversal___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwuniversal();
+  lexer___TKwuniversal___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwspecial[70] = {
+  {(int) 2791 /* 0: Identity */},
+  {(int) 3 /* 1: TKwspecial < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwspecial < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwspecial < Token: superclass typecheck marker */},
+  {(int) 2791 /* 4: TKwspecial < TKwspecial: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwspecial < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwspecial < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwspecial___parser_index},
+  {(int) 2 /* 67: TKwspecial < Token: superclass init_table position */},
+  {(int) lexer___TKwspecial___init},
+  {(int) 3 /* 69: TKwspecial < TKwspecial: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwspecial::_parent */
+/* 2: Attribute TKwspecial::_symbol */
+/* 3: Attribute TKwspecial::_text */
+/* 4: Attribute TKwspecial::_filename */
+/* 5: Attribute TKwspecial::_line */
+/* 6: Attribute TKwspecial::_pos */
+val_t NEW_TKwspecial(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwspecial;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwspecial___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwspecial();
+  lexer___TKwspecial___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwend[70] = {
+  {(int) 2895 /* 0: Identity */},
+  {(int) 3 /* 1: TKwend < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwend < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwend < Token: superclass typecheck marker */},
+  {(int) 2895 /* 4: TKwend < TKwend: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwend < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwend < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwend___parser_index},
+  {(int) 2 /* 67: TKwend < Token: superclass init_table position */},
+  {(int) lexer___TKwend___init},
+  {(int) 3 /* 69: TKwend < TKwend: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwend::_parent */
+/* 2: Attribute TKwend::_symbol */
+/* 3: Attribute TKwend::_text */
+/* 4: Attribute TKwend::_filename */
+/* 5: Attribute TKwend::_line */
+/* 6: Attribute TKwend::_pos */
+val_t NEW_TKwend(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwend;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwend___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwend();
+  lexer___TKwend___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwmeth[70] = {
+  {(int) 2843 /* 0: Identity */},
+  {(int) 3 /* 1: TKwmeth < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwmeth < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwmeth < Token: superclass typecheck marker */},
+  {(int) 2843 /* 4: TKwmeth < TKwmeth: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwmeth < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwmeth < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwmeth___parser_index},
+  {(int) 2 /* 67: TKwmeth < Token: superclass init_table position */},
+  {(int) lexer___TKwmeth___init},
+  {(int) 3 /* 69: TKwmeth < TKwmeth: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwmeth::_parent */
+/* 2: Attribute TKwmeth::_symbol */
+/* 3: Attribute TKwmeth::_text */
+/* 4: Attribute TKwmeth::_filename */
+/* 5: Attribute TKwmeth::_line */
+/* 6: Attribute TKwmeth::_pos */
+val_t NEW_TKwmeth(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwmeth;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwmeth___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwmeth();
+  lexer___TKwmeth___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwtype[70] = {
+  {(int) 2775 /* 0: Identity */},
+  {(int) 3 /* 1: TKwtype < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwtype < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwtype < Token: superclass typecheck marker */},
+  {(int) 2775 /* 4: TKwtype < TKwtype: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwtype < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwtype < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwtype___parser_index},
+  {(int) 2 /* 67: TKwtype < Token: superclass init_table position */},
+  {(int) lexer___TKwtype___init},
+  {(int) 3 /* 69: TKwtype < TKwtype: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwtype::_parent */
+/* 2: Attribute TKwtype::_symbol */
+/* 3: Attribute TKwtype::_text */
+/* 4: Attribute TKwtype::_filename */
+/* 5: Attribute TKwtype::_line */
+/* 6: Attribute TKwtype::_pos */
+val_t NEW_TKwtype(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwtype;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwtype___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwtype();
+  lexer___TKwtype___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwattr[70] = {
+  {(int) 2919 /* 0: Identity */},
+  {(int) 3 /* 1: TKwattr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwattr < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwattr < Token: superclass typecheck marker */},
+  {(int) 2919 /* 4: TKwattr < TKwattr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwattr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwattr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwattr___parser_index},
+  {(int) 2 /* 67: TKwattr < Token: superclass init_table position */},
+  {(int) lexer___TKwattr___init},
+  {(int) 3 /* 69: TKwattr < TKwattr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwattr::_parent */
+/* 2: Attribute TKwattr::_symbol */
+/* 3: Attribute TKwattr::_text */
+/* 4: Attribute TKwattr::_filename */
+/* 5: Attribute TKwattr::_line */
+/* 6: Attribute TKwattr::_pos */
+val_t NEW_TKwattr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwattr;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwattr___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwattr();
+  lexer___TKwattr___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwinit[70] = {
+  {(int) 2867 /* 0: Identity */},
+  {(int) 3 /* 1: TKwinit < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwinit < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwinit < Token: superclass typecheck marker */},
+  {(int) 2867 /* 4: TKwinit < TKwinit: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwinit < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwinit < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwinit___parser_index},
+  {(int) 2 /* 67: TKwinit < Token: superclass init_table position */},
+  {(int) lexer___TKwinit___init},
+  {(int) 3 /* 69: TKwinit < TKwinit: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwinit::_parent */
+/* 2: Attribute TKwinit::_symbol */
+/* 3: Attribute TKwinit::_text */
+/* 4: Attribute TKwinit::_filename */
+/* 5: Attribute TKwinit::_line */
+/* 6: Attribute TKwinit::_pos */
+val_t NEW_TKwinit(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwinit;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwinit___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwinit();
+  lexer___TKwinit___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwredef[70] = {
+  {(int) 2803 /* 0: Identity */},
+  {(int) 3 /* 1: TKwredef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwredef < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwredef < Token: superclass typecheck marker */},
+  {(int) 2803 /* 4: TKwredef < TKwredef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwredef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwredef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwredef___parser_index},
+  {(int) 2 /* 67: TKwredef < Token: superclass init_table position */},
+  {(int) lexer___TKwredef___init},
+  {(int) 3 /* 69: TKwredef < TKwredef: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwredef::_parent */
+/* 2: Attribute TKwredef::_symbol */
+/* 3: Attribute TKwredef::_text */
+/* 4: Attribute TKwredef::_filename */
+/* 5: Attribute TKwredef::_line */
+/* 6: Attribute TKwredef::_pos */
+val_t NEW_TKwredef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwredef;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwredef___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwredef();
+  lexer___TKwredef___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwis[70] = {
+  {(int) 2851 /* 0: Identity */},
+  {(int) 3 /* 1: TKwis < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwis < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwis < Token: superclass typecheck marker */},
+  {(int) 2851 /* 4: TKwis < TKwis: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwis < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwis < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwis___parser_index},
+  {(int) 2 /* 67: TKwis < Token: superclass init_table position */},
+  {(int) lexer___TKwis___init},
+  {(int) 3 /* 69: TKwis < TKwis: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwis::_parent */
+/* 2: Attribute TKwis::_symbol */
+/* 3: Attribute TKwis::_text */
+/* 4: Attribute TKwis::_filename */
+/* 5: Attribute TKwis::_line */
+/* 6: Attribute TKwis::_pos */
+val_t NEW_TKwis(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwis;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwis___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwis();
+  lexer___TKwis___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwdo[70] = {
+  {(int) 2903 /* 0: Identity */},
+  {(int) 3 /* 1: TKwdo < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwdo < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwdo < Token: superclass typecheck marker */},
+  {(int) 2903 /* 4: TKwdo < TKwdo: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwdo < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwdo < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwdo___parser_index},
+  {(int) 2 /* 67: TKwdo < Token: superclass init_table position */},
+  {(int) lexer___TKwdo___init},
+  {(int) 3 /* 69: TKwdo < TKwdo: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwdo::_parent */
+/* 2: Attribute TKwdo::_symbol */
+/* 3: Attribute TKwdo::_text */
+/* 4: Attribute TKwdo::_filename */
+/* 5: Attribute TKwdo::_line */
+/* 6: Attribute TKwdo::_pos */
+val_t NEW_TKwdo(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwdo;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwdo___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwdo();
+  lexer___TKwdo___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwreadable[70] = {
+  {(int) 2807 /* 0: Identity */},
+  {(int) 3 /* 1: TKwreadable < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwreadable < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwreadable < Token: superclass typecheck marker */},
+  {(int) 2807 /* 4: TKwreadable < TKwreadable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwreadable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwreadable < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwreadable___parser_index},
+  {(int) 2 /* 67: TKwreadable < Token: superclass init_table position */},
+  {(int) lexer___TKwreadable___init},
+  {(int) 3 /* 69: TKwreadable < TKwreadable: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwreadable::_parent */
+/* 2: Attribute TKwreadable::_symbol */
+/* 3: Attribute TKwreadable::_text */
+/* 4: Attribute TKwreadable::_filename */
+/* 5: Attribute TKwreadable::_line */
+/* 6: Attribute TKwreadable::_pos */
+val_t NEW_TKwreadable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwreadable;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwreadable___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwreadable();
+  lexer___TKwreadable___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwwritable[70] = {
+  {(int) 2759 /* 0: Identity */},
+  {(int) 3 /* 1: TKwwritable < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwwritable < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwwritable < Token: superclass typecheck marker */},
+  {(int) 2759 /* 4: TKwwritable < TKwwritable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwwritable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwwritable < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwwritable___parser_index},
+  {(int) 2 /* 67: TKwwritable < Token: superclass init_table position */},
+  {(int) lexer___TKwwritable___init},
+  {(int) 3 /* 69: TKwwritable < TKwwritable: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwwritable::_parent */
+/* 2: Attribute TKwwritable::_symbol */
+/* 3: Attribute TKwwritable::_text */
+/* 4: Attribute TKwwritable::_filename */
+/* 5: Attribute TKwwritable::_line */
+/* 6: Attribute TKwwritable::_pos */
+val_t NEW_TKwwritable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwwritable;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwwritable___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwwritable();
+  lexer___TKwwritable___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwvar[70] = {
+  {(int) 2767 /* 0: Identity */},
+  {(int) 3 /* 1: TKwvar < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwvar < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwvar < Token: superclass typecheck marker */},
+  {(int) 2767 /* 4: TKwvar < TKwvar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwvar < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwvar < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwvar___parser_index},
+  {(int) 2 /* 67: TKwvar < Token: superclass init_table position */},
+  {(int) lexer___TKwvar___init},
+  {(int) 3 /* 69: TKwvar < TKwvar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwvar::_parent */
+/* 2: Attribute TKwvar::_symbol */
+/* 3: Attribute TKwvar::_text */
+/* 4: Attribute TKwvar::_filename */
+/* 5: Attribute TKwvar::_line */
+/* 6: Attribute TKwvar::_pos */
+val_t NEW_TKwvar(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwvar;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwvar___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwvar();
+  lexer___TKwvar___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwintern[70] = {
+  {(int) 2859 /* 0: Identity */},
+  {(int) 3 /* 1: TKwintern < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwintern < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwintern < Token: superclass typecheck marker */},
+  {(int) 2859 /* 4: TKwintern < TKwintern: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwintern < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwintern < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwintern___parser_index},
+  {(int) 2 /* 67: TKwintern < Token: superclass init_table position */},
+  {(int) lexer___TKwintern___init},
+  {(int) 3 /* 69: TKwintern < TKwintern: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwintern::_parent */
+/* 2: Attribute TKwintern::_symbol */
+/* 3: Attribute TKwintern::_text */
+/* 4: Attribute TKwintern::_filename */
+/* 5: Attribute TKwintern::_line */
+/* 6: Attribute TKwintern::_pos */
+val_t NEW_TKwintern(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwintern;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwintern___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwintern();
+  lexer___TKwintern___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwextern[70] = {
+  {(int) 2891 /* 0: Identity */},
+  {(int) 3 /* 1: TKwextern < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwextern < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwextern < Token: superclass typecheck marker */},
+  {(int) 2891 /* 4: TKwextern < TKwextern: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwextern < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwextern < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwextern___parser_index},
+  {(int) 2 /* 67: TKwextern < Token: superclass init_table position */},
+  {(int) lexer___TKwextern___init},
+  {(int) 3 /* 69: TKwextern < TKwextern: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwextern::_parent */
+/* 2: Attribute TKwextern::_symbol */
+/* 3: Attribute TKwextern::_text */
+/* 4: Attribute TKwextern::_filename */
+/* 5: Attribute TKwextern::_line */
+/* 6: Attribute TKwextern::_pos */
+val_t NEW_TKwextern(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwextern;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwextern___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwextern();
+  lexer___TKwextern___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwprotected[70] = {
+  {(int) 2811 /* 0: Identity */},
+  {(int) 3 /* 1: TKwprotected < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwprotected < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwprotected < Token: superclass typecheck marker */},
+  {(int) 2811 /* 4: TKwprotected < TKwprotected: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwprotected < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwprotected < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwprotected___parser_index},
+  {(int) 2 /* 67: TKwprotected < Token: superclass init_table position */},
+  {(int) lexer___TKwprotected___init},
+  {(int) 3 /* 69: TKwprotected < TKwprotected: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwprotected::_parent */
+/* 2: Attribute TKwprotected::_symbol */
+/* 3: Attribute TKwprotected::_text */
+/* 4: Attribute TKwprotected::_filename */
+/* 5: Attribute TKwprotected::_line */
+/* 6: Attribute TKwprotected::_pos */
+val_t NEW_TKwprotected(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwprotected;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwprotected___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwprotected();
+  lexer___TKwprotected___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwprivate[70] = {
+  {(int) 2815 /* 0: Identity */},
+  {(int) 3 /* 1: TKwprivate < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwprivate < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwprivate < Token: superclass typecheck marker */},
+  {(int) 2815 /* 4: TKwprivate < TKwprivate: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwprivate < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwprivate < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwprivate___parser_index},
+  {(int) 2 /* 67: TKwprivate < Token: superclass init_table position */},
+  {(int) lexer___TKwprivate___init},
+  {(int) 3 /* 69: TKwprivate < TKwprivate: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwprivate::_parent */
+/* 2: Attribute TKwprivate::_symbol */
+/* 3: Attribute TKwprivate::_text */
+/* 4: Attribute TKwprivate::_filename */
+/* 5: Attribute TKwprivate::_line */
+/* 6: Attribute TKwprivate::_pos */
+val_t NEW_TKwprivate(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwprivate;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwprivate___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwprivate();
+  lexer___TKwprivate___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwintrude[70] = {
+  {(int) 2855 /* 0: Identity */},
+  {(int) 3 /* 1: TKwintrude < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwintrude < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwintrude < Token: superclass typecheck marker */},
+  {(int) 2855 /* 4: TKwintrude < TKwintrude: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwintrude < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwintrude < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwintrude___parser_index},
+  {(int) 2 /* 67: TKwintrude < Token: superclass init_table position */},
+  {(int) lexer___TKwintrude___init},
+  {(int) 3 /* 69: TKwintrude < TKwintrude: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwintrude::_parent */
+/* 2: Attribute TKwintrude::_symbol */
+/* 3: Attribute TKwintrude::_text */
+/* 4: Attribute TKwintrude::_filename */
+/* 5: Attribute TKwintrude::_line */
+/* 6: Attribute TKwintrude::_pos */
+val_t NEW_TKwintrude(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwintrude;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwintrude___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwintrude();
+  lexer___TKwintrude___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwif[70] = {
+  {(int) 2879 /* 0: Identity */},
+  {(int) 3 /* 1: TKwif < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwif < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwif < Token: superclass typecheck marker */},
+  {(int) 2879 /* 4: TKwif < TKwif: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwif < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwif < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwif___parser_index},
+  {(int) 2 /* 67: TKwif < Token: superclass init_table position */},
+  {(int) lexer___TKwif___init},
+  {(int) 3 /* 69: TKwif < TKwif: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwif::_parent */
+/* 2: Attribute TKwif::_symbol */
+/* 3: Attribute TKwif::_text */
+/* 4: Attribute TKwif::_filename */
+/* 5: Attribute TKwif::_line */
+/* 6: Attribute TKwif::_pos */
+val_t NEW_TKwif(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwif;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwif___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwif();
+  lexer___TKwif___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwthen[70] = {
+  {(int) 2783 /* 0: Identity */},
+  {(int) 3 /* 1: TKwthen < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwthen < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwthen < Token: superclass typecheck marker */},
+  {(int) 2783 /* 4: TKwthen < TKwthen: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwthen < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwthen < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwthen___parser_index},
+  {(int) 2 /* 67: TKwthen < Token: superclass init_table position */},
+  {(int) lexer___TKwthen___init},
+  {(int) 3 /* 69: TKwthen < TKwthen: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwthen::_parent */
+/* 2: Attribute TKwthen::_symbol */
+/* 3: Attribute TKwthen::_text */
+/* 4: Attribute TKwthen::_filename */
+/* 5: Attribute TKwthen::_line */
+/* 6: Attribute TKwthen::_pos */
+val_t NEW_TKwthen(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwthen;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwthen___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwthen();
+  lexer___TKwthen___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwelse[70] = {
+  {(int) 2899 /* 0: Identity */},
+  {(int) 3 /* 1: TKwelse < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwelse < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwelse < Token: superclass typecheck marker */},
+  {(int) 2899 /* 4: TKwelse < TKwelse: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwelse < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwelse < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwelse___parser_index},
+  {(int) 2 /* 67: TKwelse < Token: superclass init_table position */},
+  {(int) lexer___TKwelse___init},
+  {(int) 3 /* 69: TKwelse < TKwelse: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwelse::_parent */
+/* 2: Attribute TKwelse::_symbol */
+/* 3: Attribute TKwelse::_text */
+/* 4: Attribute TKwelse::_filename */
+/* 5: Attribute TKwelse::_line */
+/* 6: Attribute TKwelse::_pos */
+val_t NEW_TKwelse(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwelse;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwelse___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwelse();
+  lexer___TKwelse___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwwhile[70] = {
+  {(int) 2763 /* 0: Identity */},
+  {(int) 3 /* 1: TKwwhile < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwwhile < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwwhile < Token: superclass typecheck marker */},
+  {(int) 2763 /* 4: TKwwhile < TKwwhile: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwwhile < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwwhile < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwwhile___parser_index},
+  {(int) 2 /* 67: TKwwhile < Token: superclass init_table position */},
+  {(int) lexer___TKwwhile___init},
+  {(int) 3 /* 69: TKwwhile < TKwwhile: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwwhile::_parent */
+/* 2: Attribute TKwwhile::_symbol */
+/* 3: Attribute TKwwhile::_text */
+/* 4: Attribute TKwwhile::_filename */
+/* 5: Attribute TKwwhile::_line */
+/* 6: Attribute TKwwhile::_pos */
+val_t NEW_TKwwhile(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwwhile;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwwhile___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwwhile();
+  lexer___TKwwhile___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwfor[70] = {
+  {(int) 2883 /* 0: Identity */},
+  {(int) 3 /* 1: TKwfor < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwfor < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwfor < Token: superclass typecheck marker */},
+  {(int) 2883 /* 4: TKwfor < TKwfor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwfor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwfor < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwfor___parser_index},
+  {(int) 2 /* 67: TKwfor < Token: superclass init_table position */},
+  {(int) lexer___TKwfor___init},
+  {(int) 3 /* 69: TKwfor < TKwfor: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwfor::_parent */
+/* 2: Attribute TKwfor::_symbol */
+/* 3: Attribute TKwfor::_text */
+/* 4: Attribute TKwfor::_filename */
+/* 5: Attribute TKwfor::_line */
+/* 6: Attribute TKwfor::_pos */
+val_t NEW_TKwfor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwfor;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwfor___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwfor();
+  lexer___TKwfor___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwin[70] = {
+  {(int) 2871 /* 0: Identity */},
+  {(int) 3 /* 1: TKwin < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwin < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwin < Token: superclass typecheck marker */},
+  {(int) 2871 /* 4: TKwin < TKwin: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwin < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwin < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwin___parser_index},
+  {(int) 2 /* 67: TKwin < Token: superclass init_table position */},
+  {(int) lexer___TKwin___init},
+  {(int) 3 /* 69: TKwin < TKwin: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwin::_parent */
+/* 2: Attribute TKwin::_symbol */
+/* 3: Attribute TKwin::_text */
+/* 4: Attribute TKwin::_filename */
+/* 5: Attribute TKwin::_line */
+/* 6: Attribute TKwin::_pos */
+val_t NEW_TKwin(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwin;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwin___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwin();
+  lexer___TKwin___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwand[70] = {
+  {(int) 2927 /* 0: Identity */},
+  {(int) 3 /* 1: TKwand < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwand < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwand < Token: superclass typecheck marker */},
+  {(int) 2927 /* 4: TKwand < TKwand: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwand < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwand < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwand___parser_index},
+  {(int) 2 /* 67: TKwand < Token: superclass init_table position */},
+  {(int) lexer___TKwand___init},
+  {(int) 3 /* 69: TKwand < TKwand: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwand::_parent */
+/* 2: Attribute TKwand::_symbol */
+/* 3: Attribute TKwand::_text */
+/* 4: Attribute TKwand::_filename */
+/* 5: Attribute TKwand::_line */
+/* 6: Attribute TKwand::_pos */
+val_t NEW_TKwand(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwand;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwand___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwand();
+  lexer___TKwand___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwor[70] = {
+  {(int) 2823 /* 0: Identity */},
+  {(int) 3 /* 1: TKwor < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwor < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwor < Token: superclass typecheck marker */},
+  {(int) 2823 /* 4: TKwor < TKwor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwor < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwor___parser_index},
+  {(int) 2 /* 67: TKwor < Token: superclass init_table position */},
+  {(int) lexer___TKwor___init},
+  {(int) 3 /* 69: TKwor < TKwor: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwor::_parent */
+/* 2: Attribute TKwor::_symbol */
+/* 3: Attribute TKwor::_text */
+/* 4: Attribute TKwor::_filename */
+/* 5: Attribute TKwor::_line */
+/* 6: Attribute TKwor::_pos */
+val_t NEW_TKwor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwor;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwor___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwor();
+  lexer___TKwor___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwnot[70] = {
+  {(int) 2835 /* 0: Identity */},
+  {(int) 3 /* 1: TKwnot < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwnot < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwnot < Token: superclass typecheck marker */},
+  {(int) 2835 /* 4: TKwnot < TKwnot: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwnot < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwnot < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwnot___parser_index},
+  {(int) 2 /* 67: TKwnot < Token: superclass init_table position */},
+  {(int) lexer___TKwnot___init},
+  {(int) 3 /* 69: TKwnot < TKwnot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwnot::_parent */
+/* 2: Attribute TKwnot::_symbol */
+/* 3: Attribute TKwnot::_text */
+/* 4: Attribute TKwnot::_filename */
+/* 5: Attribute TKwnot::_line */
+/* 6: Attribute TKwnot::_pos */
+val_t NEW_TKwnot(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwnot;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwnot___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwnot();
+  lexer___TKwnot___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwreturn[70] = {
+  {(int) 2799 /* 0: Identity */},
+  {(int) 3 /* 1: TKwreturn < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwreturn < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwreturn < Token: superclass typecheck marker */},
+  {(int) 2799 /* 4: TKwreturn < TKwreturn: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwreturn < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwreturn < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwreturn___parser_index},
+  {(int) 2 /* 67: TKwreturn < Token: superclass init_table position */},
+  {(int) lexer___TKwreturn___init},
+  {(int) 3 /* 69: TKwreturn < TKwreturn: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwreturn::_parent */
+/* 2: Attribute TKwreturn::_symbol */
+/* 3: Attribute TKwreturn::_text */
+/* 4: Attribute TKwreturn::_filename */
+/* 5: Attribute TKwreturn::_line */
+/* 6: Attribute TKwreturn::_pos */
+val_t NEW_TKwreturn(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwreturn;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwreturn___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwreturn();
+  lexer___TKwreturn___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwcontinue[70] = {
+  {(int) 2907 /* 0: Identity */},
+  {(int) 3 /* 1: TKwcontinue < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwcontinue < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwcontinue < Token: superclass typecheck marker */},
+  {(int) 2907 /* 4: TKwcontinue < TKwcontinue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwcontinue < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwcontinue < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwcontinue___parser_index},
+  {(int) 2 /* 67: TKwcontinue < Token: superclass init_table position */},
+  {(int) lexer___TKwcontinue___init},
+  {(int) 3 /* 69: TKwcontinue < TKwcontinue: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwcontinue::_parent */
+/* 2: Attribute TKwcontinue::_symbol */
+/* 3: Attribute TKwcontinue::_text */
+/* 4: Attribute TKwcontinue::_filename */
+/* 5: Attribute TKwcontinue::_line */
+/* 6: Attribute TKwcontinue::_pos */
+val_t NEW_TKwcontinue(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwcontinue;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwcontinue___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwcontinue();
+  lexer___TKwcontinue___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwbreak[70] = {
+  {(int) 2915 /* 0: Identity */},
+  {(int) 3 /* 1: TKwbreak < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwbreak < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwbreak < Token: superclass typecheck marker */},
+  {(int) 2915 /* 4: TKwbreak < TKwbreak: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwbreak < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwbreak < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwbreak___parser_index},
+  {(int) 2 /* 67: TKwbreak < Token: superclass init_table position */},
+  {(int) lexer___TKwbreak___init},
+  {(int) 3 /* 69: TKwbreak < TKwbreak: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwbreak::_parent */
+/* 2: Attribute TKwbreak::_symbol */
+/* 3: Attribute TKwbreak::_text */
+/* 4: Attribute TKwbreak::_filename */
+/* 5: Attribute TKwbreak::_line */
+/* 6: Attribute TKwbreak::_pos */
+val_t NEW_TKwbreak(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwbreak;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwbreak___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwbreak();
+  lexer___TKwbreak___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwabort[70] = {
+  {(int) 2935 /* 0: Identity */},
+  {(int) 3 /* 1: TKwabort < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwabort < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwabort < Token: superclass typecheck marker */},
+  {(int) 2935 /* 4: TKwabort < TKwabort: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwabort < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwabort < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwabort___parser_index},
+  {(int) 2 /* 67: TKwabort < Token: superclass init_table position */},
+  {(int) lexer___TKwabort___init},
+  {(int) 3 /* 69: TKwabort < TKwabort: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwabort::_parent */
+/* 2: Attribute TKwabort::_symbol */
+/* 3: Attribute TKwabort::_text */
+/* 4: Attribute TKwabort::_filename */
+/* 5: Attribute TKwabort::_line */
+/* 6: Attribute TKwabort::_pos */
+val_t NEW_TKwabort(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwabort;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwabort___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwabort();
+  lexer___TKwabort___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwassert[70] = {
+  {(int) 2923 /* 0: Identity */},
+  {(int) 3 /* 1: TKwassert < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwassert < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwassert < Token: superclass typecheck marker */},
+  {(int) 2923 /* 4: TKwassert < TKwassert: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwassert < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwassert < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwassert___parser_index},
+  {(int) 2 /* 67: TKwassert < Token: superclass init_table position */},
+  {(int) lexer___TKwassert___init},
+  {(int) 3 /* 69: TKwassert < TKwassert: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwassert::_parent */
+/* 2: Attribute TKwassert::_symbol */
+/* 3: Attribute TKwassert::_text */
+/* 4: Attribute TKwassert::_filename */
+/* 5: Attribute TKwassert::_line */
+/* 6: Attribute TKwassert::_pos */
+val_t NEW_TKwassert(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwassert;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwassert___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwassert();
+  lexer___TKwassert___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwnew[70] = {
+  {(int) 2839 /* 0: Identity */},
+  {(int) 3 /* 1: TKwnew < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwnew < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwnew < Token: superclass typecheck marker */},
+  {(int) 2839 /* 4: TKwnew < TKwnew: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwnew < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwnew < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwnew___parser_index},
+  {(int) 2 /* 67: TKwnew < Token: superclass init_table position */},
+  {(int) lexer___TKwnew___init},
+  {(int) 3 /* 69: TKwnew < TKwnew: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwnew::_parent */
+/* 2: Attribute TKwnew::_symbol */
+/* 3: Attribute TKwnew::_text */
+/* 4: Attribute TKwnew::_filename */
+/* 5: Attribute TKwnew::_line */
+/* 6: Attribute TKwnew::_pos */
+val_t NEW_TKwnew(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwnew;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwnew___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwnew();
+  lexer___TKwnew___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwisa[70] = {
+  {(int) 2847 /* 0: Identity */},
+  {(int) 3 /* 1: TKwisa < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwisa < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwisa < Token: superclass typecheck marker */},
+  {(int) 2847 /* 4: TKwisa < TKwisa: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwisa < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwisa < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwisa___parser_index},
+  {(int) 2 /* 67: TKwisa < Token: superclass init_table position */},
+  {(int) lexer___TKwisa___init},
+  {(int) 3 /* 69: TKwisa < TKwisa: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwisa::_parent */
+/* 2: Attribute TKwisa::_symbol */
+/* 3: Attribute TKwisa::_text */
+/* 4: Attribute TKwisa::_filename */
+/* 5: Attribute TKwisa::_line */
+/* 6: Attribute TKwisa::_pos */
+val_t NEW_TKwisa(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwisa;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwisa___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwisa();
+  lexer___TKwisa___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwonce[70] = {
+  {(int) 2827 /* 0: Identity */},
+  {(int) 3 /* 1: TKwonce < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwonce < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwonce < Token: superclass typecheck marker */},
+  {(int) 2827 /* 4: TKwonce < TKwonce: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwonce < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwonce < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwonce___parser_index},
+  {(int) 2 /* 67: TKwonce < Token: superclass init_table position */},
+  {(int) lexer___TKwonce___init},
+  {(int) 3 /* 69: TKwonce < TKwonce: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwonce::_parent */
+/* 2: Attribute TKwonce::_symbol */
+/* 3: Attribute TKwonce::_text */
+/* 4: Attribute TKwonce::_filename */
+/* 5: Attribute TKwonce::_line */
+/* 6: Attribute TKwonce::_pos */
+val_t NEW_TKwonce(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwonce;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwonce___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwonce();
+  lexer___TKwonce___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwsuper[70] = {
+  {(int) 2787 /* 0: Identity */},
+  {(int) 3 /* 1: TKwsuper < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwsuper < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwsuper < Token: superclass typecheck marker */},
+  {(int) 2787 /* 4: TKwsuper < TKwsuper: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwsuper < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwsuper < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwsuper___parser_index},
+  {(int) 2 /* 67: TKwsuper < Token: superclass init_table position */},
+  {(int) lexer___TKwsuper___init},
+  {(int) 3 /* 69: TKwsuper < TKwsuper: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwsuper::_parent */
+/* 2: Attribute TKwsuper::_symbol */
+/* 3: Attribute TKwsuper::_text */
+/* 4: Attribute TKwsuper::_filename */
+/* 5: Attribute TKwsuper::_line */
+/* 6: Attribute TKwsuper::_pos */
+val_t NEW_TKwsuper(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwsuper;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwsuper___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwsuper();
+  lexer___TKwsuper___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwself[70] = {
+  {(int) 2795 /* 0: Identity */},
+  {(int) 3 /* 1: TKwself < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwself < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwself < Token: superclass typecheck marker */},
+  {(int) 2795 /* 4: TKwself < TKwself: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwself < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwself < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwself___parser_index},
+  {(int) 2 /* 67: TKwself < Token: superclass init_table position */},
+  {(int) lexer___TKwself___init},
+  {(int) 3 /* 69: TKwself < TKwself: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwself::_parent */
+/* 2: Attribute TKwself::_symbol */
+/* 3: Attribute TKwself::_text */
+/* 4: Attribute TKwself::_filename */
+/* 5: Attribute TKwself::_line */
+/* 6: Attribute TKwself::_pos */
+val_t NEW_TKwself(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwself;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwself___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwself();
+  lexer___TKwself___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwtrue[70] = {
+  {(int) 2779 /* 0: Identity */},
+  {(int) 3 /* 1: TKwtrue < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwtrue < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwtrue < Token: superclass typecheck marker */},
+  {(int) 2779 /* 4: TKwtrue < TKwtrue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwtrue < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwtrue < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwtrue___parser_index},
+  {(int) 2 /* 67: TKwtrue < Token: superclass init_table position */},
+  {(int) lexer___TKwtrue___init},
+  {(int) 3 /* 69: TKwtrue < TKwtrue: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwtrue::_parent */
+/* 2: Attribute TKwtrue::_symbol */
+/* 3: Attribute TKwtrue::_text */
+/* 4: Attribute TKwtrue::_filename */
+/* 5: Attribute TKwtrue::_line */
+/* 6: Attribute TKwtrue::_pos */
+val_t NEW_TKwtrue(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwtrue;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwtrue___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwtrue();
+  lexer___TKwtrue___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwfalse[70] = {
+  {(int) 2887 /* 0: Identity */},
+  {(int) 3 /* 1: TKwfalse < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwfalse < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwfalse < Token: superclass typecheck marker */},
+  {(int) 2887 /* 4: TKwfalse < TKwfalse: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwfalse < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwfalse < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwfalse___parser_index},
+  {(int) 2 /* 67: TKwfalse < Token: superclass init_table position */},
+  {(int) lexer___TKwfalse___init},
+  {(int) 3 /* 69: TKwfalse < TKwfalse: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwfalse::_parent */
+/* 2: Attribute TKwfalse::_symbol */
+/* 3: Attribute TKwfalse::_text */
+/* 4: Attribute TKwfalse::_filename */
+/* 5: Attribute TKwfalse::_line */
+/* 6: Attribute TKwfalse::_pos */
+val_t NEW_TKwfalse(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwfalse;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwfalse___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwfalse();
+  lexer___TKwfalse___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TKwnull[70] = {
+  {(int) 2831 /* 0: Identity */},
+  {(int) 3 /* 1: TKwnull < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TKwnull < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TKwnull < Token: superclass typecheck marker */},
+  {(int) 2831 /* 4: TKwnull < TKwnull: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TKwnull < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TKwnull < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TKwnull___parser_index},
+  {(int) 2 /* 67: TKwnull < Token: superclass init_table position */},
+  {(int) lexer___TKwnull___init},
+  {(int) 3 /* 69: TKwnull < TKwnull: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TKwnull::_parent */
+/* 2: Attribute TKwnull::_symbol */
+/* 3: Attribute TKwnull::_text */
+/* 4: Attribute TKwnull::_filename */
+/* 5: Attribute TKwnull::_line */
+/* 6: Attribute TKwnull::_pos */
+val_t NEW_TKwnull(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TKwnull;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TKwnull___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TKwnull();
+  lexer___TKwnull___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TOpar[70] = {
+  {(int) 2723 /* 0: Identity */},
+  {(int) 3 /* 1: TOpar < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TOpar < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TOpar < Token: superclass typecheck marker */},
+  {(int) 2723 /* 4: TOpar < TOpar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TOpar < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TOpar < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TOpar___parser_index},
+  {(int) 2 /* 67: TOpar < Token: superclass init_table position */},
+  {(int) lexer___TOpar___init},
+  {(int) 3 /* 69: TOpar < TOpar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TOpar::_parent */
+/* 2: Attribute TOpar::_symbol */
+/* 3: Attribute TOpar::_text */
+/* 4: Attribute TOpar::_filename */
+/* 5: Attribute TOpar::_line */
+/* 6: Attribute TOpar::_pos */
+val_t NEW_TOpar(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TOpar;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TOpar___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TOpar();
+  lexer___TOpar___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TCpar[70] = {
+  {(int) 2979 /* 0: Identity */},
+  {(int) 3 /* 1: TCpar < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TCpar < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TCpar < Token: superclass typecheck marker */},
+  {(int) 2979 /* 4: TCpar < TCpar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TCpar < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TCpar < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TCpar___parser_index},
+  {(int) 2 /* 67: TCpar < Token: superclass init_table position */},
+  {(int) lexer___TCpar___init},
+  {(int) 3 /* 69: TCpar < TCpar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TCpar::_parent */
+/* 2: Attribute TCpar::_symbol */
+/* 3: Attribute TCpar::_text */
+/* 4: Attribute TCpar::_filename */
+/* 5: Attribute TCpar::_line */
+/* 6: Attribute TCpar::_pos */
+val_t NEW_TCpar(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TCpar;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TCpar___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TCpar();
+  lexer___TCpar___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TObra[70] = {
+  {(int) 2727 /* 0: Identity */},
+  {(int) 3 /* 1: TObra < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TObra < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TObra < Token: superclass typecheck marker */},
+  {(int) 2727 /* 4: TObra < TObra: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TObra < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TObra < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TObra___parser_index},
+  {(int) 2 /* 67: TObra < Token: superclass init_table position */},
+  {(int) lexer___TObra___init},
+  {(int) 3 /* 69: TObra < TObra: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TObra::_parent */
+/* 2: Attribute TObra::_symbol */
+/* 3: Attribute TObra::_text */
+/* 4: Attribute TObra::_filename */
+/* 5: Attribute TObra::_line */
+/* 6: Attribute TObra::_pos */
+val_t NEW_TObra(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TObra;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TObra___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TObra();
+  lexer___TObra___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TCbra[70] = {
+  {(int) 3003 /* 0: Identity */},
+  {(int) 3 /* 1: TCbra < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TCbra < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TCbra < Token: superclass typecheck marker */},
+  {(int) 3003 /* 4: TCbra < TCbra: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TCbra < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TCbra < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TCbra___parser_index},
+  {(int) 2 /* 67: TCbra < Token: superclass init_table position */},
+  {(int) lexer___TCbra___init},
+  {(int) 3 /* 69: TCbra < TCbra: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TCbra::_parent */
+/* 2: Attribute TCbra::_symbol */
+/* 3: Attribute TCbra::_text */
+/* 4: Attribute TCbra::_filename */
+/* 5: Attribute TCbra::_line */
+/* 6: Attribute TCbra::_pos */
+val_t NEW_TCbra(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TCbra;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TCbra___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TCbra();
+  lexer___TCbra___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TComma[70] = {
+  {(int) 2987 /* 0: Identity */},
+  {(int) 3 /* 1: TComma < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TComma < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TComma < Token: superclass typecheck marker */},
+  {(int) 2987 /* 4: TComma < TComma: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TComma < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TComma < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TComma___parser_index},
+  {(int) 2 /* 67: TComma < Token: superclass init_table position */},
+  {(int) lexer___TComma___init},
+  {(int) 3 /* 69: TComma < TComma: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TComma::_parent */
+/* 2: Attribute TComma::_symbol */
+/* 3: Attribute TComma::_text */
+/* 4: Attribute TComma::_filename */
+/* 5: Attribute TComma::_line */
+/* 6: Attribute TComma::_pos */
+val_t NEW_TComma(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TComma;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TComma___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TComma();
+  lexer___TComma___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TColumn[70] = {
+  {(int) 2991 /* 0: Identity */},
+  {(int) 3 /* 1: TColumn < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TColumn < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TColumn < Token: superclass typecheck marker */},
+  {(int) 2991 /* 4: TColumn < TColumn: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TColumn < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TColumn < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TColumn___parser_index},
+  {(int) 2 /* 67: TColumn < Token: superclass init_table position */},
+  {(int) lexer___TColumn___init},
+  {(int) 3 /* 69: TColumn < TColumn: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TColumn::_parent */
+/* 2: Attribute TColumn::_symbol */
+/* 3: Attribute TColumn::_text */
+/* 4: Attribute TColumn::_filename */
+/* 5: Attribute TColumn::_line */
+/* 6: Attribute TColumn::_pos */
+val_t NEW_TColumn(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TColumn;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TColumn___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TColumn();
+  lexer___TColumn___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TQuad[70] = {
+  {(int) 2707 /* 0: Identity */},
+  {(int) 3 /* 1: TQuad < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TQuad < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TQuad < Token: superclass typecheck marker */},
+  {(int) 2707 /* 4: TQuad < TQuad: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TQuad < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TQuad < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TQuad___parser_index},
+  {(int) 2 /* 67: TQuad < Token: superclass init_table position */},
+  {(int) lexer___TQuad___init},
+  {(int) 3 /* 69: TQuad < TQuad: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TQuad::_parent */
+/* 2: Attribute TQuad::_symbol */
+/* 3: Attribute TQuad::_text */
+/* 4: Attribute TQuad::_filename */
+/* 5: Attribute TQuad::_line */
+/* 6: Attribute TQuad::_pos */
+val_t NEW_TQuad(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TQuad;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TQuad___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TQuad();
+  lexer___TQuad___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TAssign[70] = {
+  {(int) 3011 /* 0: Identity */},
+  {(int) 3 /* 1: TAssign < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TAssign < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TAssign < Token: superclass typecheck marker */},
+  {(int) 3011 /* 4: TAssign < TAssign: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TAssign < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TAssign < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TAssign___parser_index},
+  {(int) 2 /* 67: TAssign < Token: superclass init_table position */},
+  {(int) lexer___TAssign___init},
+  {(int) 3 /* 69: TAssign < TAssign: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TAssign::_parent */
+/* 2: Attribute TAssign::_symbol */
+/* 3: Attribute TAssign::_text */
+/* 4: Attribute TAssign::_filename */
+/* 5: Attribute TAssign::_line */
+/* 6: Attribute TAssign::_pos */
+val_t NEW_TAssign(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TAssign;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TAssign___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TAssign();
+  lexer___TAssign___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TPluseq[70] = {
+  {(int) 2711 /* 0: Identity */},
+  {(int) 3 /* 1: TPluseq < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TPluseq < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TPluseq < Token: superclass typecheck marker */},
+  {(int) 2711 /* 4: TPluseq < TPluseq: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TPluseq < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TPluseq < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TPluseq___parser_index},
+  {(int) 2 /* 67: TPluseq < Token: superclass init_table position */},
+  {(int) lexer___TPluseq___init},
+  {(int) 3 /* 69: TPluseq < TPluseq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TPluseq::_parent */
+/* 2: Attribute TPluseq::_symbol */
+/* 3: Attribute TPluseq::_text */
+/* 4: Attribute TPluseq::_filename */
+/* 5: Attribute TPluseq::_line */
+/* 6: Attribute TPluseq::_pos */
+val_t NEW_TPluseq(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TPluseq;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TPluseq___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TPluseq();
+  lexer___TPluseq___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TMinuseq[70] = {
+  {(int) 2739 /* 0: Identity */},
+  {(int) 3 /* 1: TMinuseq < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TMinuseq < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TMinuseq < Token: superclass typecheck marker */},
+  {(int) 2739 /* 4: TMinuseq < TMinuseq: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TMinuseq < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TMinuseq < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TMinuseq___parser_index},
+  {(int) 2 /* 67: TMinuseq < Token: superclass init_table position */},
+  {(int) lexer___TMinuseq___init},
+  {(int) 3 /* 69: TMinuseq < TMinuseq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TMinuseq::_parent */
+/* 2: Attribute TMinuseq::_symbol */
+/* 3: Attribute TMinuseq::_text */
+/* 4: Attribute TMinuseq::_filename */
+/* 5: Attribute TMinuseq::_line */
+/* 6: Attribute TMinuseq::_pos */
+val_t NEW_TMinuseq(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TMinuseq;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TMinuseq___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TMinuseq();
+  lexer___TMinuseq___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TDotdotdot[70] = {
+  {(int) 2967 /* 0: Identity */},
+  {(int) 3 /* 1: TDotdotdot < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TDotdotdot < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TDotdotdot < Token: superclass typecheck marker */},
+  {(int) 2967 /* 4: TDotdotdot < TDotdotdot: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TDotdotdot < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TDotdotdot < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TDotdotdot___parser_index},
+  {(int) 2 /* 67: TDotdotdot < Token: superclass init_table position */},
+  {(int) lexer___TDotdotdot___init},
+  {(int) 3 /* 69: TDotdotdot < TDotdotdot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TDotdotdot::_parent */
+/* 2: Attribute TDotdotdot::_symbol */
+/* 3: Attribute TDotdotdot::_text */
+/* 4: Attribute TDotdotdot::_filename */
+/* 5: Attribute TDotdotdot::_line */
+/* 6: Attribute TDotdotdot::_pos */
+val_t NEW_TDotdotdot(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TDotdotdot;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TDotdotdot___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TDotdotdot();
+  lexer___TDotdotdot___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TDotdot[70] = {
+  {(int) 2971 /* 0: Identity */},
+  {(int) 3 /* 1: TDotdot < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TDotdot < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TDotdot < Token: superclass typecheck marker */},
+  {(int) 2971 /* 4: TDotdot < TDotdot: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TDotdot < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TDotdot < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TDotdot___parser_index},
+  {(int) 2 /* 67: TDotdot < Token: superclass init_table position */},
+  {(int) lexer___TDotdot___init},
+  {(int) 3 /* 69: TDotdot < TDotdot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TDotdot::_parent */
+/* 2: Attribute TDotdot::_symbol */
+/* 3: Attribute TDotdot::_text */
+/* 4: Attribute TDotdot::_filename */
+/* 5: Attribute TDotdot::_line */
+/* 6: Attribute TDotdot::_pos */
+val_t NEW_TDotdot(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TDotdot;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TDotdot___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TDotdot();
+  lexer___TDotdot___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TDot[70] = {
+  {(int) 2975 /* 0: Identity */},
+  {(int) 3 /* 1: TDot < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TDot < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TDot < Token: superclass typecheck marker */},
+  {(int) 2975 /* 4: TDot < TDot: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TDot < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TDot < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TDot___parser_index},
+  {(int) 2 /* 67: TDot < Token: superclass init_table position */},
+  {(int) lexer___TDot___init},
+  {(int) 3 /* 69: TDot < TDot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TDot::_parent */
+/* 2: Attribute TDot::_symbol */
+/* 3: Attribute TDot::_text */
+/* 4: Attribute TDot::_filename */
+/* 5: Attribute TDot::_line */
+/* 6: Attribute TDot::_pos */
+val_t NEW_TDot(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TDot;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TDot___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TDot();
+  lexer___TDot___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TPlus[70] = {
+  {(int) 2715 /* 0: Identity */},
+  {(int) 3 /* 1: TPlus < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TPlus < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TPlus < Token: superclass typecheck marker */},
+  {(int) 2715 /* 4: TPlus < TPlus: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TPlus < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TPlus < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TPlus___parser_index},
+  {(int) 2 /* 67: TPlus < Token: superclass init_table position */},
+  {(int) lexer___TPlus___init},
+  {(int) 3 /* 69: TPlus < TPlus: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TPlus::_parent */
+/* 2: Attribute TPlus::_symbol */
+/* 3: Attribute TPlus::_text */
+/* 4: Attribute TPlus::_filename */
+/* 5: Attribute TPlus::_line */
+/* 6: Attribute TPlus::_pos */
+val_t NEW_TPlus(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TPlus;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TPlus___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TPlus();
+  lexer___TPlus___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TMinus[70] = {
+  {(int) 2743 /* 0: Identity */},
+  {(int) 3 /* 1: TMinus < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TMinus < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TMinus < Token: superclass typecheck marker */},
+  {(int) 2743 /* 4: TMinus < TMinus: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TMinus < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TMinus < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TMinus___parser_index},
+  {(int) 2 /* 67: TMinus < Token: superclass init_table position */},
+  {(int) lexer___TMinus___init},
+  {(int) 3 /* 69: TMinus < TMinus: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TMinus::_parent */
+/* 2: Attribute TMinus::_symbol */
+/* 3: Attribute TMinus::_text */
+/* 4: Attribute TMinus::_filename */
+/* 5: Attribute TMinus::_line */
+/* 6: Attribute TMinus::_pos */
+val_t NEW_TMinus(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TMinus;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TMinus___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TMinus();
+  lexer___TMinus___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TStar[70] = {
+  {(int) 2699 /* 0: Identity */},
+  {(int) 3 /* 1: TStar < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TStar < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TStar < Token: superclass typecheck marker */},
+  {(int) 2699 /* 4: TStar < TStar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TStar < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TStar < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TStar___parser_index},
+  {(int) 2 /* 67: TStar < Token: superclass init_table position */},
+  {(int) lexer___TStar___init},
+  {(int) 3 /* 69: TStar < TStar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TStar::_parent */
+/* 2: Attribute TStar::_symbol */
+/* 3: Attribute TStar::_text */
+/* 4: Attribute TStar::_filename */
+/* 5: Attribute TStar::_line */
+/* 6: Attribute TStar::_pos */
+val_t NEW_TStar(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TStar;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TStar___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TStar();
+  lexer___TStar___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TSlash[70] = {
+  {(int) 2703 /* 0: Identity */},
+  {(int) 3 /* 1: TSlash < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TSlash < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TSlash < Token: superclass typecheck marker */},
+  {(int) 2703 /* 4: TSlash < TSlash: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TSlash < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TSlash < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TSlash___parser_index},
+  {(int) 2 /* 67: TSlash < Token: superclass init_table position */},
+  {(int) lexer___TSlash___init},
+  {(int) 3 /* 69: TSlash < TSlash: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TSlash::_parent */
+/* 2: Attribute TSlash::_symbol */
+/* 3: Attribute TSlash::_text */
+/* 4: Attribute TSlash::_filename */
+/* 5: Attribute TSlash::_line */
+/* 6: Attribute TSlash::_pos */
+val_t NEW_TSlash(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TSlash;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TSlash___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TSlash();
+  lexer___TSlash___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TPercent[70] = {
+  {(int) 2719 /* 0: Identity */},
+  {(int) 3 /* 1: TPercent < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TPercent < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TPercent < Token: superclass typecheck marker */},
+  {(int) 2719 /* 4: TPercent < TPercent: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TPercent < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TPercent < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TPercent___parser_index},
+  {(int) 2 /* 67: TPercent < Token: superclass init_table position */},
+  {(int) lexer___TPercent___init},
+  {(int) 3 /* 69: TPercent < TPercent: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TPercent::_parent */
+/* 2: Attribute TPercent::_symbol */
+/* 3: Attribute TPercent::_text */
+/* 4: Attribute TPercent::_filename */
+/* 5: Attribute TPercent::_line */
+/* 6: Attribute TPercent::_pos */
+val_t NEW_TPercent(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TPercent;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TPercent___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TPercent();
+  lexer___TPercent___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TEq[70] = {
+  {(int) 2955 /* 0: Identity */},
+  {(int) 3 /* 1: TEq < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TEq < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TEq < Token: superclass typecheck marker */},
+  {(int) 2955 /* 4: TEq < TEq: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TEq < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TEq < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TEq___parser_index},
+  {(int) 2 /* 67: TEq < Token: superclass init_table position */},
+  {(int) lexer___TEq___init},
+  {(int) 3 /* 69: TEq < TEq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TEq::_parent */
+/* 2: Attribute TEq::_symbol */
+/* 3: Attribute TEq::_text */
+/* 4: Attribute TEq::_filename */
+/* 5: Attribute TEq::_line */
+/* 6: Attribute TEq::_pos */
+val_t NEW_TEq(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TEq;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TEq___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TEq();
+  lexer___TEq___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TNe[70] = {
+  {(int) 2735 /* 0: Identity */},
+  {(int) 3 /* 1: TNe < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TNe < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TNe < Token: superclass typecheck marker */},
+  {(int) 2735 /* 4: TNe < TNe: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TNe < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TNe < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TNe___parser_index},
+  {(int) 2 /* 67: TNe < Token: superclass init_table position */},
+  {(int) lexer___TNe___init},
+  {(int) 3 /* 69: TNe < TNe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TNe::_parent */
+/* 2: Attribute TNe::_symbol */
+/* 3: Attribute TNe::_text */
+/* 4: Attribute TNe::_filename */
+/* 5: Attribute TNe::_line */
+/* 6: Attribute TNe::_pos */
+val_t NEW_TNe(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TNe;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TNe___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TNe();
+  lexer___TNe___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TLt[70] = {
+  {(int) 2751 /* 0: Identity */},
+  {(int) 3 /* 1: TLt < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TLt < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TLt < Token: superclass typecheck marker */},
+  {(int) 2751 /* 4: TLt < TLt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TLt < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TLt < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TLt___parser_index},
+  {(int) 2 /* 67: TLt < Token: superclass init_table position */},
+  {(int) lexer___TLt___init},
+  {(int) 3 /* 69: TLt < TLt: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TLt::_parent */
+/* 2: Attribute TLt::_symbol */
+/* 3: Attribute TLt::_text */
+/* 4: Attribute TLt::_filename */
+/* 5: Attribute TLt::_line */
+/* 6: Attribute TLt::_pos */
+val_t NEW_TLt(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TLt;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TLt___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TLt();
+  lexer___TLt___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TLe[70] = {
+  {(int) 2755 /* 0: Identity */},
+  {(int) 3 /* 1: TLe < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TLe < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TLe < Token: superclass typecheck marker */},
+  {(int) 2755 /* 4: TLe < TLe: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TLe < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TLe < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TLe___parser_index},
+  {(int) 2 /* 67: TLe < Token: superclass init_table position */},
+  {(int) lexer___TLe___init},
+  {(int) 3 /* 69: TLe < TLe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TLe::_parent */
+/* 2: Attribute TLe::_symbol */
+/* 3: Attribute TLe::_text */
+/* 4: Attribute TLe::_filename */
+/* 5: Attribute TLe::_line */
+/* 6: Attribute TLe::_pos */
+val_t NEW_TLe(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TLe;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TLe___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TLe();
+  lexer___TLe___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TGt[70] = {
+  {(int) 2943 /* 0: Identity */},
+  {(int) 3 /* 1: TGt < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TGt < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TGt < Token: superclass typecheck marker */},
+  {(int) 2943 /* 4: TGt < TGt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TGt < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TGt < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TGt___parser_index},
+  {(int) 2 /* 67: TGt < Token: superclass init_table position */},
+  {(int) lexer___TGt___init},
+  {(int) 3 /* 69: TGt < TGt: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TGt::_parent */
+/* 2: Attribute TGt::_symbol */
+/* 3: Attribute TGt::_text */
+/* 4: Attribute TGt::_filename */
+/* 5: Attribute TGt::_line */
+/* 6: Attribute TGt::_pos */
+val_t NEW_TGt(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TGt;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TGt___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TGt();
+  lexer___TGt___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TGe[70] = {
+  {(int) 2947 /* 0: Identity */},
+  {(int) 3 /* 1: TGe < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TGe < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TGe < Token: superclass typecheck marker */},
+  {(int) 2947 /* 4: TGe < TGe: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TGe < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TGe < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TGe___parser_index},
+  {(int) 2 /* 67: TGe < Token: superclass init_table position */},
+  {(int) lexer___TGe___init},
+  {(int) 3 /* 69: TGe < TGe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TGe::_parent */
+/* 2: Attribute TGe::_symbol */
+/* 3: Attribute TGe::_text */
+/* 4: Attribute TGe::_filename */
+/* 5: Attribute TGe::_line */
+/* 6: Attribute TGe::_pos */
+val_t NEW_TGe(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TGe;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TGe___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TGe();
+  lexer___TGe___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TStarship[70] = {
+  {(int) 2695 /* 0: Identity */},
+  {(int) 3 /* 1: TStarship < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TStarship < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TStarship < Token: superclass typecheck marker */},
+  {(int) 2695 /* 4: TStarship < TStarship: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TStarship < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TStarship < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TStarship___parser_index},
+  {(int) 2 /* 67: TStarship < Token: superclass init_table position */},
+  {(int) lexer___TStarship___init},
+  {(int) 3 /* 69: TStarship < TStarship: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TStarship::_parent */
+/* 2: Attribute TStarship::_symbol */
+/* 3: Attribute TStarship::_text */
+/* 4: Attribute TStarship::_filename */
+/* 5: Attribute TStarship::_line */
+/* 6: Attribute TStarship::_pos */
+val_t NEW_TStarship(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TStarship;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TStarship___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TStarship();
+  lexer___TStarship___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TClassid[70] = {
+  {(int) 2995 /* 0: Identity */},
+  {(int) 3 /* 1: TClassid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TClassid < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TClassid < Token: superclass typecheck marker */},
+  {(int) 2995 /* 4: TClassid < TClassid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TClassid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TClassid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TClassid___parser_index},
+  {(int) 2 /* 67: TClassid < Token: superclass init_table position */},
+  {(int) lexer___TClassid___init},
+  {(int) 3 /* 69: TClassid < TClassid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TClassid::_parent */
+/* 2: Attribute TClassid::_symbol */
+/* 3: Attribute TClassid::_text */
+/* 4: Attribute TClassid::_filename */
+/* 5: Attribute TClassid::_line */
+/* 6: Attribute TClassid::_pos */
+val_t NEW_TClassid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TClassid;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TClassid___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TClassid();
+  lexer___TClassid___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TId[70] = {
+  {(int) 2939 /* 0: Identity */},
+  {(int) 3 /* 1: TId < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TId < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TId < Token: superclass typecheck marker */},
+  {(int) 2939 /* 4: TId < TId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TId < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TId < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TId___parser_index},
+  {(int) 2 /* 67: TId < Token: superclass init_table position */},
+  {(int) lexer___TId___init},
+  {(int) 3 /* 69: TId < TId: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TId::_parent */
+/* 2: Attribute TId::_symbol */
+/* 3: Attribute TId::_text */
+/* 4: Attribute TId::_filename */
+/* 5: Attribute TId::_line */
+/* 6: Attribute TId::_pos */
+val_t NEW_TId(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TId;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TId___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TId();
+  lexer___TId___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TAttrid[70] = {
+  {(int) 3007 /* 0: Identity */},
+  {(int) 3 /* 1: TAttrid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TAttrid < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TAttrid < Token: superclass typecheck marker */},
+  {(int) 3007 /* 4: TAttrid < TAttrid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TAttrid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TAttrid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TAttrid___parser_index},
+  {(int) 2 /* 67: TAttrid < Token: superclass init_table position */},
+  {(int) lexer___TAttrid___init},
+  {(int) 3 /* 69: TAttrid < TAttrid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TAttrid::_parent */
+/* 2: Attribute TAttrid::_symbol */
+/* 3: Attribute TAttrid::_text */
+/* 4: Attribute TAttrid::_filename */
+/* 5: Attribute TAttrid::_line */
+/* 6: Attribute TAttrid::_pos */
+val_t NEW_TAttrid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TAttrid;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TAttrid___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TAttrid();
+  lexer___TAttrid___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TNumber[70] = {
+  {(int) 2731 /* 0: Identity */},
+  {(int) 3 /* 1: TNumber < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TNumber < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TNumber < Token: superclass typecheck marker */},
+  {(int) 2731 /* 4: TNumber < TNumber: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TNumber < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TNumber < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TNumber___parser_index},
+  {(int) 2 /* 67: TNumber < Token: superclass init_table position */},
+  {(int) lexer___TNumber___init},
+  {(int) 3 /* 69: TNumber < TNumber: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TNumber::_parent */
+/* 2: Attribute TNumber::_symbol */
+/* 3: Attribute TNumber::_text */
+/* 4: Attribute TNumber::_filename */
+/* 5: Attribute TNumber::_line */
+/* 6: Attribute TNumber::_pos */
+val_t NEW_TNumber(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TNumber;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TNumber___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TNumber();
+  lexer___TNumber___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TFloat[70] = {
+  {(int) 2951 /* 0: Identity */},
+  {(int) 3 /* 1: TFloat < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TFloat < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TFloat < Token: superclass typecheck marker */},
+  {(int) 2951 /* 4: TFloat < TFloat: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TFloat < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TFloat < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TFloat___parser_index},
+  {(int) 2 /* 67: TFloat < Token: superclass init_table position */},
+  {(int) lexer___TFloat___init},
+  {(int) 3 /* 69: TFloat < TFloat: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TFloat::_parent */
+/* 2: Attribute TFloat::_symbol */
+/* 3: Attribute TFloat::_text */
+/* 4: Attribute TFloat::_filename */
+/* 5: Attribute TFloat::_line */
+/* 6: Attribute TFloat::_pos */
+val_t NEW_TFloat(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TFloat;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TFloat___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TFloat();
+  lexer___TFloat___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TChar[70] = {
+  {(int) 2999 /* 0: Identity */},
+  {(int) 3 /* 1: TChar < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TChar < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TChar < Token: superclass typecheck marker */},
+  {(int) 2999 /* 4: TChar < TChar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TChar < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TChar < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TChar___parser_index},
+  {(int) 2 /* 67: TChar < Token: superclass init_table position */},
+  {(int) lexer___TChar___init},
+  {(int) 3 /* 69: TChar < TChar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TChar::_parent */
+/* 2: Attribute TChar::_symbol */
+/* 3: Attribute TChar::_text */
+/* 4: Attribute TChar::_filename */
+/* 5: Attribute TChar::_line */
+/* 6: Attribute TChar::_pos */
+val_t NEW_TChar(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TChar;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TChar___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TChar();
+  lexer___TChar___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TString[70] = {
+  {(int) 2687 /* 0: Identity */},
+  {(int) 3 /* 1: TString < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TString < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TString < Token: superclass typecheck marker */},
+  {(int) 2687 /* 4: TString < TString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TString < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TString___parser_index},
+  {(int) 2 /* 67: TString < Token: superclass init_table position */},
+  {(int) lexer___TString___init},
+  {(int) 3 /* 69: TString < TString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TString::_parent */
+/* 2: Attribute TString::_symbol */
+/* 3: Attribute TString::_text */
+/* 4: Attribute TString::_filename */
+/* 5: Attribute TString::_line */
+/* 6: Attribute TString::_pos */
+val_t NEW_TString(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TString;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TString();
+  lexer___TString___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TStartString[70] = {
+  {(int) 2691 /* 0: Identity */},
+  {(int) 3 /* 1: TStartString < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TStartString < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TStartString < Token: superclass typecheck marker */},
+  {(int) 2691 /* 4: TStartString < TStartString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TStartString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TStartString < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TStartString___parser_index},
+  {(int) 2 /* 67: TStartString < Token: superclass init_table position */},
+  {(int) lexer___TStartString___init},
+  {(int) 3 /* 69: TStartString < TStartString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TStartString::_parent */
+/* 2: Attribute TStartString::_symbol */
+/* 3: Attribute TStartString::_text */
+/* 4: Attribute TStartString::_filename */
+/* 5: Attribute TStartString::_line */
+/* 6: Attribute TStartString::_pos */
+val_t NEW_TStartString(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TStartString;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TStartString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TStartString();
+  lexer___TStartString___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TMidString[70] = {
+  {(int) 2747 /* 0: Identity */},
+  {(int) 3 /* 1: TMidString < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TMidString < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TMidString < Token: superclass typecheck marker */},
+  {(int) 2747 /* 4: TMidString < TMidString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TMidString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TMidString < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TMidString___parser_index},
+  {(int) 2 /* 67: TMidString < Token: superclass init_table position */},
+  {(int) lexer___TMidString___init},
+  {(int) 3 /* 69: TMidString < TMidString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TMidString::_parent */
+/* 2: Attribute TMidString::_symbol */
+/* 3: Attribute TMidString::_text */
+/* 4: Attribute TMidString::_filename */
+/* 5: Attribute TMidString::_line */
+/* 6: Attribute TMidString::_pos */
+val_t NEW_TMidString(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TMidString;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TMidString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TMidString();
+  lexer___TMidString___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TEndString[70] = {
+  {(int) 2963 /* 0: Identity */},
+  {(int) 3 /* 1: TEndString < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: TEndString < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: TEndString < Token: superclass typecheck marker */},
+  {(int) 2963 /* 4: TEndString < TEndString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TEndString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: TEndString < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___TEndString___parser_index},
+  {(int) 2 /* 67: TEndString < Token: superclass init_table position */},
+  {(int) lexer___TEndString___init},
+  {(int) 3 /* 69: TEndString < TEndString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TEndString::_parent */
+/* 2: Attribute TEndString::_symbol */
+/* 3: Attribute TEndString::_text */
+/* 4: Attribute TEndString::_filename */
+/* 5: Attribute TEndString::_line */
+/* 6: Attribute TEndString::_pos */
+val_t NEW_TEndString(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_TEndString;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___TEndString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TEndString();
+  lexer___TEndString___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_EOF[70] = {
+  {(int) 3195 /* 0: Identity */},
+  {(int) 3 /* 1: EOF < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: EOF < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: EOF < Token: superclass typecheck marker */},
+  {(int) 3195 /* 4: EOF < EOF: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: EOF < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: EOF < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___EOF___parser_index},
+  {(int) 2 /* 67: EOF < Token: superclass init_table position */},
+  {(int) lexer___EOF___init},
+  {(int) 3 /* 69: EOF < EOF: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute EOF::_parent */
+/* 2: Attribute EOF::_symbol */
+/* 3: Attribute EOF::_text */
+/* 4: Attribute EOF::_filename */
+/* 5: Attribute EOF::_line */
+/* 6: Attribute EOF::_pos */
+val_t NEW_EOF(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_EOF;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___EOF___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_EOF();
+  lexer___EOF___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PError[74] = {
+  {(int) 3267 /* 0: Identity */},
+  {(int) 3 /* 1: PError < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PError < PNode: superclass typecheck marker */},
+  {(int) 183 /* 3: PError < Token: superclass typecheck marker */},
+  {(int) 3195 /* 4: PError < EOF: superclass typecheck marker */},
+  {(int) 3267 /* 5: PError < PError: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) lexer___Token___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PError < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Token___replace_child},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) parser_prod___Token___visit_all},
+  {(int) parser_prod___Token___visit_all_reverse},
+  {(int) parser_prod___Token___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PError < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) syntax_base___Token___to_symbol},
+  {(int) lexer___Token___text},
+  {(int) lexer___Token___text__eq},
+  {(int) lexer___Token___filename},
+  {(int) lexer___Token___line},
+  {(int) lexer___Token___pos},
+  {(int) lexer___EOF___parser_index},
+  {(int) 2 /* 67: PError < Token: superclass init_table position */},
+  {(int) lexer___EOF___init},
+  {(int) 3 /* 69: PError < EOF: superclass init_table position */},
+  {(int) lexer___PError___message},
+  {(int) lexer___PError___message__eq},
+  {(int) lexer___PError___init_error},
+  {(int) 4 /* 73: PError < PError: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PError::_parent */
+/* 2: Attribute PError::_symbol */
+/* 3: Attribute PError::_text */
+/* 4: Attribute PError::_filename */
+/* 5: Attribute PError::_line */
+/* 6: Attribute PError::_pos */
+/* 7: Attribute PError::_message */
+val_t NEW_PError(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_PError;
+  ATTR_lexer___Token____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Token____pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___PError___init_error(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_PError();
+  lexer___PError___init_error(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PModule[67] = {
+  {(int) 3063 /* 0: Identity */},
+  {(int) 3 /* 1: PModule < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PModule < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PModule < Prod: superclass typecheck marker */},
+  {(int) 3063 /* 4: PModule < PModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PModule < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PModule < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PModule < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PModule < PModule: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PModule::_parent */
+/* 2: Attribute PModule::_first_token */
+/* 3: Attribute PModule::_last_token */
+val_t NEW_PModule(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PModule;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PPackagedecl[67] = {
+  {(int) 3059 /* 0: Identity */},
+  {(int) 3 /* 1: PPackagedecl < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PPackagedecl < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PPackagedecl < Prod: superclass typecheck marker */},
+  {(int) 3059 /* 4: PPackagedecl < PPackagedecl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PPackagedecl < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PPackagedecl < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PPackagedecl < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PPackagedecl < PPackagedecl: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PPackagedecl::_parent */
+/* 2: Attribute PPackagedecl::_first_token */
+/* 3: Attribute PPackagedecl::_last_token */
+val_t NEW_PPackagedecl(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PPackagedecl;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PImport[69] = {
+  {(int) 3071 /* 0: Identity */},
+  {(int) 3 /* 1: PImport < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PImport < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PImport < Prod: superclass typecheck marker */},
+  {(int) 3071 /* 4: PImport < PImport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PImport < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PImport < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PImport < Prod: superclass init_table position */},
+  {(int) mmbuilder___PImport___module_name},
+  {(int) mmbuilder___PImport___visibility_level},
+  {(int) 3 /* 68: PImport < PImport: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PImport::_parent */
+/* 2: Attribute PImport::_first_token */
+/* 3: Attribute PImport::_last_token */
+val_t NEW_PImport(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PImport;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PVisibility[68] = {
+  {(int) 3031 /* 0: Identity */},
+  {(int) 3 /* 1: PVisibility < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PVisibility < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PVisibility < Prod: superclass typecheck marker */},
+  {(int) 3031 /* 4: PVisibility < PVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PVisibility < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PVisibility < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PVisibility < Prod: superclass init_table position */},
+  {(int) mmbuilder___PVisibility___level},
+  {(int) 3 /* 67: PVisibility < PVisibility: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PVisibility::_parent */
+/* 2: Attribute PVisibility::_first_token */
+/* 3: Attribute PVisibility::_last_token */
+val_t NEW_PVisibility(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PVisibility;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PClassdef[74] = {
+  {(int) 3091 /* 0: Identity */},
+  {(int) 3 /* 1: PClassdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PClassdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PClassdef < Prod: superclass typecheck marker */},
+  {(int) 3091 /* 4: PClassdef < PClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PClassdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PClassdef___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___PClassdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PClassdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PClassdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PClassdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PClassdef___name},
+  {(int) mmbuilder___PClassdef___arity},
+  {(int) mmbuilder___PClassdef___visibility_level},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___PClassdef___local_class},
+  {(int) 3 /* 72: PClassdef < PClassdef: superclass init_table position */},
+  {(int) typing___PNode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PClassdef::_parent */
+/* 2: Attribute PClassdef::_first_token */
+/* 3: Attribute PClassdef::_last_token */
+/* 4: Attribute PClassdef::_local_class */
+val_t NEW_PClassdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PClassdef;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PClasskind[70] = {
+  {(int) 3087 /* 0: Identity */},
+  {(int) 3 /* 1: PClasskind < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PClasskind < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PClasskind < Prod: superclass typecheck marker */},
+  {(int) 3087 /* 4: PClasskind < PClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PClasskind < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PClasskind < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PClasskind < Prod: superclass init_table position */},
+  {(int) mmbuilder___PClasskind___is_interface},
+  {(int) mmbuilder___PClasskind___is_universal},
+  {(int) mmbuilder___PClasskind___is_abstract},
+  {(int) 3 /* 69: PClasskind < PClasskind: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PClasskind::_parent */
+/* 2: Attribute PClasskind::_first_token */
+/* 3: Attribute PClasskind::_last_token */
+val_t NEW_PClasskind(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PClasskind;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PFormaldef[67] = {
+  {(int) 3075 /* 0: Identity */},
+  {(int) 3 /* 1: PFormaldef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PFormaldef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PFormaldef < Prod: superclass typecheck marker */},
+  {(int) 3075 /* 4: PFormaldef < PFormaldef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PFormaldef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PFormaldef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PFormaldef < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PFormaldef < PFormaldef: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PFormaldef::_parent */
+/* 2: Attribute PFormaldef::_first_token */
+/* 3: Attribute PFormaldef::_last_token */
+val_t NEW_PFormaldef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PFormaldef;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PSuperclass[67] = {
+  {(int) 3039 /* 0: Identity */},
+  {(int) 3 /* 1: PSuperclass < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PSuperclass < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PSuperclass < Prod: superclass typecheck marker */},
+  {(int) 3039 /* 4: PSuperclass < PSuperclass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PSuperclass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PSuperclass < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PSuperclass < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PSuperclass < PSuperclass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PSuperclass::_parent */
+/* 2: Attribute PSuperclass::_first_token */
+/* 3: Attribute PSuperclass::_last_token */
+val_t NEW_PSuperclass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PSuperclass;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PPropdef[73] = {
+  {(int) 3051 /* 0: Identity */},
+  {(int) 3 /* 1: PPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: PPropdef < PPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: PPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_nodes___PPropdef___n_doc__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PPropdef::_parent */
+/* 2: Attribute PPropdef::_first_token */
+/* 3: Attribute PPropdef::_last_token */
+/* 4: Attribute PPropdef::_n_doc */
+val_t NEW_PPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PPropdef;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PAble[69] = {
+  {(int) 3099 /* 0: Identity */},
+  {(int) 3 /* 1: PAble < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PAble < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PAble < Prod: superclass typecheck marker */},
+  {(int) 3099 /* 4: PAble < PAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PAble < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PAble < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PAble < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PAble < PAble: superclass init_table position */},
+  {(int) parser_nodes___PAble___n_kwredef},
+  {(int) parser_nodes___PAble___n_kwredef__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PAble::_parent */
+/* 2: Attribute PAble::_first_token */
+/* 3: Attribute PAble::_last_token */
+/* 4: Attribute PAble::_n_kwredef */
+val_t NEW_PAble(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PAble;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PMethid[69] = {
+  {(int) 3067 /* 0: Identity */},
+  {(int) 3 /* 1: PMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: PMethid < PMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: PMethid < PMethid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PMethid::_parent */
+/* 2: Attribute PMethid::_first_token */
+/* 3: Attribute PMethid::_last_token */
+/* 4: Attribute PMethid::_name */
+val_t NEW_PMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PMethid;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PSignature[68] = {
+  {(int) 3043 /* 0: Identity */},
+  {(int) 3 /* 1: PSignature < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PSignature < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PSignature < Prod: superclass typecheck marker */},
+  {(int) 3043 /* 4: PSignature < PSignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PSignature < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PSignature < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PSignature < Prod: superclass init_table position */},
+  {(int) mmbuilder___PSignature___check_visibility},
+  {(int) 3 /* 67: PSignature < PSignature: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PSignature::_parent */
+/* 2: Attribute PSignature::_first_token */
+/* 3: Attribute PSignature::_last_token */
+val_t NEW_PSignature(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PSignature;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PParam[77] = {
+  {(int) 3055 /* 0: Identity */},
+  {(int) 3 /* 1: PParam < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PParam < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PParam < Prod: superclass typecheck marker */},
+  {(int) 3055 /* 4: PParam < PParam: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PParam < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PParam___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PParam < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PParam___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PParam < Prod: superclass init_table position */},
+  {(int) mmbuilder___PParam___stype},
+  {(int) mmbuilder___PParam___stype__eq},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___PParam___is_vararg},
+  {(int) mmbuilder___PParam___position},
+  {(int) mmbuilder___PParam___variable},
+  {(int) 3 /* 72: PParam < PParam: superclass init_table position */},
+  {(int) parser_nodes___PParam___n_id},
+  {(int) parser_nodes___PParam___n_id__eq},
+  {(int) parser_nodes___PParam___n_type},
+  {(int) parser_nodes___PParam___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PParam::_parent */
+/* 2: Attribute PParam::_first_token */
+/* 3: Attribute PParam::_last_token */
+/* 4: Attribute PParam::_position */
+/* 5: Attribute PParam::_variable */
+/* 6: Attribute PParam::_stype */
+/* 7: Attribute PParam::_n_id */
+/* 8: Attribute PParam::_n_type */
+val_t NEW_PParam(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_PParam;
+  ATTR_mmbuilder___PParam____position(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PType[73] = {
+  {(int) 3035 /* 0: Identity */},
+  {(int) 3 /* 1: PType < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PType < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PType < Prod: superclass typecheck marker */},
+  {(int) 3035 /* 4: PType < PType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PType < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PType < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PType___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PType < Prod: superclass init_table position */},
+  {(int) mmbuilder___PType___check_visibility},
+  {(int) syntax_base___PType___get_local_class},
+  {(int) syntax_base___PType___get_stype},
+  {(int) syntax_base___PType___get_unchecked_stype},
+  {(int) syntax_base___PType___check_conform},
+  {(int) 3 /* 71: PType < PType: superclass init_table position */},
+  {(int) typing___PType___stype},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PType::_parent */
+/* 2: Attribute PType::_first_token */
+/* 3: Attribute PType::_last_token */
+/* 4: Attribute PType::_stype */
+val_t NEW_PType(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PType;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PExpr[75] = {
+  {(int) 3079 /* 0: Identity */},
+  {(int) 3 /* 1: PExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: PExpr < PExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: PExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PExpr::_parent */
+/* 2: Attribute PExpr::_first_token */
+/* 3: Attribute PExpr::_last_token */
+/* 4: Attribute PExpr::_stype */
+/* 5: Attribute PExpr::_if_true_variable_ctx */
+val_t NEW_PExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_PExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PAssignOp[68] = {
+  {(int) 3095 /* 0: Identity */},
+  {(int) 3 /* 1: PAssignOp < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PAssignOp < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PAssignOp < Prod: superclass typecheck marker */},
+  {(int) 3095 /* 4: PAssignOp < PAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PAssignOp < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PAssignOp < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PAssignOp < Prod: superclass init_table position */},
+  {(int) typing___PAssignOp___method_name},
+  {(int) 3 /* 67: PAssignOp < PAssignOp: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PAssignOp::_parent */
+/* 2: Attribute PAssignOp::_first_token */
+/* 3: Attribute PAssignOp::_last_token */
+val_t NEW_PAssignOp(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PAssignOp;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PQualified[67] = {
+  {(int) 3047 /* 0: Identity */},
+  {(int) 3 /* 1: PQualified < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PQualified < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PQualified < Prod: superclass typecheck marker */},
+  {(int) 3047 /* 4: PQualified < PQualified: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PQualified < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PQualified < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PQualified < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PQualified < PQualified: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PQualified::_parent */
+/* 2: Attribute PQualified::_first_token */
+/* 3: Attribute PQualified::_last_token */
+val_t NEW_PQualified(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PQualified;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_PDoc[67] = {
+  {(int) 3083 /* 0: Identity */},
+  {(int) 3 /* 1: PDoc < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: PDoc < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: PDoc < Prod: superclass typecheck marker */},
+  {(int) 3083 /* 4: PDoc < PDoc: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PDoc < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: PDoc < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: PDoc < Prod: superclass init_table position */},
+  {(int) 3 /* 66: PDoc < PDoc: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PDoc::_parent */
+/* 2: Attribute PDoc::_first_token */
+/* 3: Attribute PDoc::_last_token */
+val_t NEW_PDoc(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PDoc;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AModule[77] = {
+  {(int) 3447 /* 0: Identity */},
+  {(int) 3 /* 1: AModule < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AModule < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AModule < Prod: superclass typecheck marker */},
+  {(int) 3063 /* 4: AModule < PModule: superclass typecheck marker */},
+  {(int) 3447 /* 5: AModule < AModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AModule < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AModule___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AModule___visit_all},
+  {(int) parser_prod___AModule___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AModule < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AModule < Prod: superclass init_table position */},
+  {(int) 3 /* 66: AModule < PModule: superclass init_table position */},
+  {(int) mmbuilder___AModule___import_super_modules},
+  {(int) parser_prod___AModule___empty_init},
+  {(int) parser_prod___AModule___init_amodule},
+  {(int) 4 /* 70: AModule < AModule: superclass init_table position */},
+  {(int) parser_nodes___AModule___n_packagedecl},
+  {(int) parser_prod___AModule___n_packagedecl__eq},
+  {(int) parser_nodes___AModule___n_imports},
+  {(int) parser_nodes___AModule___n_imports__eq},
+  {(int) parser_nodes___AModule___n_classdefs},
+  {(int) parser_nodes___AModule___n_classdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AModule::_parent */
+/* 2: Attribute AModule::_first_token */
+/* 3: Attribute AModule::_last_token */
+/* 4: Attribute AModule::_n_packagedecl */
+/* 5: Attribute AModule::_n_imports */
+/* 6: Attribute AModule::_n_classdefs */
+val_t NEW_AModule(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AModule;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AModule___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AModule();
+  parser_prod___AModule___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AModule();
+  parser_prod___AModule___init_amodule(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APackagedecl[76] = {
+  {(int) 3431 /* 0: Identity */},
+  {(int) 3 /* 1: APackagedecl < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APackagedecl < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APackagedecl < Prod: superclass typecheck marker */},
+  {(int) 3059 /* 4: APackagedecl < PPackagedecl: superclass typecheck marker */},
+  {(int) 3431 /* 5: APackagedecl < APackagedecl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APackagedecl < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___APackagedecl___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APackagedecl___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APackagedecl___visit_all},
+  {(int) parser_prod___APackagedecl___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APackagedecl < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APackagedecl < Prod: superclass init_table position */},
+  {(int) 3 /* 66: APackagedecl < PPackagedecl: superclass init_table position */},
+  {(int) parser_prod___APackagedecl___empty_init},
+  {(int) parser_prod___APackagedecl___init_apackagedecl},
+  {(int) 4 /* 69: APackagedecl < APackagedecl: superclass init_table position */},
+  {(int) parser_nodes___APackagedecl___n_doc},
+  {(int) parser_prod___APackagedecl___n_doc__eq},
+  {(int) parser_nodes___APackagedecl___n_kwpackage},
+  {(int) parser_prod___APackagedecl___n_kwpackage__eq},
+  {(int) parser_nodes___APackagedecl___n_id},
+  {(int) parser_prod___APackagedecl___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APackagedecl::_parent */
+/* 2: Attribute APackagedecl::_first_token */
+/* 3: Attribute APackagedecl::_last_token */
+/* 4: Attribute APackagedecl::_n_doc */
+/* 5: Attribute APackagedecl::_n_kwpackage */
+/* 6: Attribute APackagedecl::_n_id */
+val_t NEW_APackagedecl(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_APackagedecl;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APackagedecl___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APackagedecl();
+  parser_prod___APackagedecl___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APackagedecl___init_apackagedecl(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APackagedecl();
+  parser_prod___APackagedecl___init_apackagedecl(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AImport[78] = {
+  {(int) 3487 /* 0: Identity */},
+  {(int) 3 /* 1: AImport < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AImport < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AImport < Prod: superclass typecheck marker */},
+  {(int) 3071 /* 4: AImport < PImport: superclass typecheck marker */},
+  {(int) 3487 /* 5: AImport < AImport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AImport < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AImport___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AImport___visit_all},
+  {(int) parser_prod___AImport___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AImport < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AImport < Prod: superclass init_table position */},
+  {(int) mmbuilder___AImport___module_name},
+  {(int) mmbuilder___AImport___visibility_level},
+  {(int) 3 /* 68: AImport < PImport: superclass init_table position */},
+  {(int) parser_prod___AImport___empty_init},
+  {(int) parser_prod___AImport___init_aimport},
+  {(int) 4 /* 71: AImport < AImport: superclass init_table position */},
+  {(int) parser_nodes___AImport___n_visibility},
+  {(int) parser_prod___AImport___n_visibility__eq},
+  {(int) parser_nodes___AImport___n_kwimport},
+  {(int) parser_prod___AImport___n_kwimport__eq},
+  {(int) parser_nodes___AImport___n_id},
+  {(int) parser_prod___AImport___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AImport::_parent */
+/* 2: Attribute AImport::_first_token */
+/* 3: Attribute AImport::_last_token */
+/* 4: Attribute AImport::_n_visibility */
+/* 5: Attribute AImport::_n_kwimport */
+/* 6: Attribute AImport::_n_id */
+val_t NEW_AImport(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AImport;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AImport___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AImport();
+  parser_prod___AImport___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AImport___init_aimport(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AImport();
+  parser_prod___AImport___init_aimport(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANoImport[78] = {
+  {(int) 3439 /* 0: Identity */},
+  {(int) 3 /* 1: ANoImport < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANoImport < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANoImport < Prod: superclass typecheck marker */},
+  {(int) 3071 /* 4: ANoImport < PImport: superclass typecheck marker */},
+  {(int) 3439 /* 5: ANoImport < ANoImport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ANoImport < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANoImport___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANoImport___visit_all},
+  {(int) parser_prod___ANoImport___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ANoImport < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ANoImport < Prod: superclass init_table position */},
+  {(int) mmbuilder___ANoImport___module_name},
+  {(int) mmbuilder___PImport___visibility_level},
+  {(int) 3 /* 68: ANoImport < PImport: superclass init_table position */},
+  {(int) parser_prod___ANoImport___empty_init},
+  {(int) parser_prod___ANoImport___init_anoimport},
+  {(int) 4 /* 71: ANoImport < ANoImport: superclass init_table position */},
+  {(int) parser_nodes___ANoImport___n_visibility},
+  {(int) parser_prod___ANoImport___n_visibility__eq},
+  {(int) parser_nodes___ANoImport___n_kwimport},
+  {(int) parser_prod___ANoImport___n_kwimport__eq},
+  {(int) parser_nodes___ANoImport___n_kwend},
+  {(int) parser_prod___ANoImport___n_kwend__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANoImport::_parent */
+/* 2: Attribute ANoImport::_first_token */
+/* 3: Attribute ANoImport::_last_token */
+/* 4: Attribute ANoImport::_n_visibility */
+/* 5: Attribute ANoImport::_n_kwimport */
+/* 6: Attribute ANoImport::_n_kwend */
+val_t NEW_ANoImport(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ANoImport;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANoImport___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANoImport();
+  parser_prod___ANoImport___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANoImport();
+  parser_prod___ANoImport___init_anoimport(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APublicVisibility[71] = {
+  {(int) 3399 /* 0: Identity */},
+  {(int) 3 /* 1: APublicVisibility < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APublicVisibility < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APublicVisibility < Prod: superclass typecheck marker */},
+  {(int) 3031 /* 4: APublicVisibility < PVisibility: superclass typecheck marker */},
+  {(int) 3399 /* 5: APublicVisibility < APublicVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APublicVisibility < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APublicVisibility___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APublicVisibility___visit_all},
+  {(int) parser_prod___APublicVisibility___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APublicVisibility < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APublicVisibility < Prod: superclass init_table position */},
+  {(int) mmbuilder___APublicVisibility___level},
+  {(int) 3 /* 67: APublicVisibility < PVisibility: superclass init_table position */},
+  {(int) parser_prod___APublicVisibility___empty_init},
+  {(int) parser_prod___APublicVisibility___init_apublicvisibility},
+  {(int) 4 /* 70: APublicVisibility < APublicVisibility: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APublicVisibility::_parent */
+/* 2: Attribute APublicVisibility::_first_token */
+/* 3: Attribute APublicVisibility::_last_token */
+val_t NEW_APublicVisibility(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_APublicVisibility;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APublicVisibility___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APublicVisibility();
+  parser_prod___APublicVisibility___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APublicVisibility___init_apublicvisibility() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APublicVisibility();
+  parser_prod___APublicVisibility___init_apublicvisibility(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APrivateVisibility[73] = {
+  {(int) 3411 /* 0: Identity */},
+  {(int) 3 /* 1: APrivateVisibility < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APrivateVisibility < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APrivateVisibility < Prod: superclass typecheck marker */},
+  {(int) 3031 /* 4: APrivateVisibility < PVisibility: superclass typecheck marker */},
+  {(int) 3411 /* 5: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APrivateVisibility < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APrivateVisibility___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APrivateVisibility___visit_all},
+  {(int) parser_prod___APrivateVisibility___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APrivateVisibility < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APrivateVisibility < Prod: superclass init_table position */},
+  {(int) mmbuilder___APrivateVisibility___level},
+  {(int) 3 /* 67: APrivateVisibility < PVisibility: superclass init_table position */},
+  {(int) parser_prod___APrivateVisibility___empty_init},
+  {(int) parser_prod___APrivateVisibility___init_aprivatevisibility},
+  {(int) 4 /* 70: APrivateVisibility < APrivateVisibility: superclass init_table position */},
+  {(int) parser_nodes___APrivateVisibility___n_kwprivate},
+  {(int) parser_prod___APrivateVisibility___n_kwprivate__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APrivateVisibility::_parent */
+/* 2: Attribute APrivateVisibility::_first_token */
+/* 3: Attribute APrivateVisibility::_last_token */
+/* 4: Attribute APrivateVisibility::_n_kwprivate */
+val_t NEW_APrivateVisibility(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_APrivateVisibility;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APrivateVisibility___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APrivateVisibility();
+  parser_prod___APrivateVisibility___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APrivateVisibility();
+  parser_prod___APrivateVisibility___init_aprivatevisibility(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AProtectedVisibility[73] = {
+  {(int) 3407 /* 0: Identity */},
+  {(int) 3 /* 1: AProtectedVisibility < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AProtectedVisibility < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AProtectedVisibility < Prod: superclass typecheck marker */},
+  {(int) 3031 /* 4: AProtectedVisibility < PVisibility: superclass typecheck marker */},
+  {(int) 3407 /* 5: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AProtectedVisibility < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AProtectedVisibility___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AProtectedVisibility___visit_all},
+  {(int) parser_prod___AProtectedVisibility___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AProtectedVisibility < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AProtectedVisibility < Prod: superclass init_table position */},
+  {(int) mmbuilder___AProtectedVisibility___level},
+  {(int) 3 /* 67: AProtectedVisibility < PVisibility: superclass init_table position */},
+  {(int) parser_prod___AProtectedVisibility___empty_init},
+  {(int) parser_prod___AProtectedVisibility___init_aprotectedvisibility},
+  {(int) 4 /* 70: AProtectedVisibility < AProtectedVisibility: superclass init_table position */},
+  {(int) parser_nodes___AProtectedVisibility___n_kwprotected},
+  {(int) parser_prod___AProtectedVisibility___n_kwprotected__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AProtectedVisibility::_parent */
+/* 2: Attribute AProtectedVisibility::_first_token */
+/* 3: Attribute AProtectedVisibility::_last_token */
+/* 4: Attribute AProtectedVisibility::_n_kwprotected */
+val_t NEW_AProtectedVisibility(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AProtectedVisibility;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AProtectedVisibility___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AProtectedVisibility();
+  parser_prod___AProtectedVisibility___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AProtectedVisibility();
+  parser_prod___AProtectedVisibility___init_aprotectedvisibility(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIntrudeVisibility[73] = {
+  {(int) 3475 /* 0: Identity */},
+  {(int) 3 /* 1: AIntrudeVisibility < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIntrudeVisibility < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIntrudeVisibility < Prod: superclass typecheck marker */},
+  {(int) 3031 /* 4: AIntrudeVisibility < PVisibility: superclass typecheck marker */},
+  {(int) 3475 /* 5: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIntrudeVisibility < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIntrudeVisibility___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIntrudeVisibility___visit_all},
+  {(int) parser_prod___AIntrudeVisibility___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIntrudeVisibility < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIntrudeVisibility < Prod: superclass init_table position */},
+  {(int) mmbuilder___AIntrudeVisibility___level},
+  {(int) 3 /* 67: AIntrudeVisibility < PVisibility: superclass init_table position */},
+  {(int) parser_prod___AIntrudeVisibility___empty_init},
+  {(int) parser_prod___AIntrudeVisibility___init_aintrudevisibility},
+  {(int) 4 /* 70: AIntrudeVisibility < AIntrudeVisibility: superclass init_table position */},
+  {(int) parser_nodes___AIntrudeVisibility___n_kwintrude},
+  {(int) parser_prod___AIntrudeVisibility___n_kwintrude__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIntrudeVisibility::_parent */
+/* 2: Attribute AIntrudeVisibility::_first_token */
+/* 3: Attribute AIntrudeVisibility::_last_token */
+/* 4: Attribute AIntrudeVisibility::_n_kwintrude */
+val_t NEW_AIntrudeVisibility(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AIntrudeVisibility;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIntrudeVisibility___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIntrudeVisibility();
+  parser_prod___AIntrudeVisibility___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIntrudeVisibility();
+  parser_prod___AIntrudeVisibility___init_aintrudevisibility(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AClassdef[94] = {
+  {(int) 3543 /* 0: Identity */},
+  {(int) 3 /* 1: AClassdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AClassdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AClassdef < Prod: superclass typecheck marker */},
+  {(int) 3091 /* 4: AClassdef < PClassdef: superclass typecheck marker */},
+  {(int) 3543 /* 5: AClassdef < AClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AClassdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PClassdef___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___AClassdef___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___PClassdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AClassdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AClassdef___visit_all},
+  {(int) parser_prod___AClassdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AClassdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PClassdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AClassdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___AClassdef___name},
+  {(int) mmbuilder___AClassdef___arity},
+  {(int) mmbuilder___AClassdef___visibility_level},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___PClassdef___local_class},
+  {(int) 3 /* 72: AClassdef < PClassdef: superclass init_table position */},
+  {(int) typing___PNode___accept_typing},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) parser_prod___AClassdef___empty_init},
+  {(int) parser_prod___AClassdef___init_aclassdef},
+  {(int) 4 /* 77: AClassdef < AClassdef: superclass init_table position */},
+  {(int) parser_nodes___AClassdef___n_doc},
+  {(int) parser_prod___AClassdef___n_doc__eq},
+  {(int) parser_nodes___AClassdef___n_kwredef},
+  {(int) parser_prod___AClassdef___n_kwredef__eq},
+  {(int) parser_nodes___AClassdef___n_visibility},
+  {(int) parser_prod___AClassdef___n_visibility__eq},
+  {(int) parser_nodes___AClassdef___n_classkind},
+  {(int) parser_prod___AClassdef___n_classkind__eq},
+  {(int) parser_nodes___AClassdef___n_id},
+  {(int) parser_prod___AClassdef___n_id__eq},
+  {(int) parser_nodes___AClassdef___n_formaldefs},
+  {(int) parser_nodes___AClassdef___n_formaldefs__eq},
+  {(int) parser_nodes___AClassdef___n_superclasses},
+  {(int) parser_nodes___AClassdef___n_superclasses__eq},
+  {(int) parser_nodes___AClassdef___n_propdefs},
+  {(int) parser_nodes___AClassdef___n_propdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AClassdef::_parent */
+/* 2: Attribute AClassdef::_first_token */
+/* 3: Attribute AClassdef::_last_token */
+/* 4: Attribute AClassdef::_local_class */
+/* 5: Attribute AClassdef::_n_doc */
+/* 6: Attribute AClassdef::_n_kwredef */
+/* 7: Attribute AClassdef::_n_visibility */
+/* 8: Attribute AClassdef::_n_classkind */
+/* 9: Attribute AClassdef::_n_id */
+/* 10: Attribute AClassdef::_n_formaldefs */
+/* 11: Attribute AClassdef::_n_superclasses */
+/* 12: Attribute AClassdef::_n_propdefs */
+val_t NEW_AClassdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AClassdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AClassdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AClassdef();
+  parser_prod___AClassdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AClassdef___init_aclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AClassdef();
+  parser_prod___AClassdef___init_aclassdef(self, p0, p1, p2, p3, p4, p5, p6, p7, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ATopClassdef[79] = {
+  {(int) 3343 /* 0: Identity */},
+  {(int) 3 /* 1: ATopClassdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ATopClassdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ATopClassdef < Prod: superclass typecheck marker */},
+  {(int) 3091 /* 4: ATopClassdef < PClassdef: superclass typecheck marker */},
+  {(int) 3343 /* 5: ATopClassdef < ATopClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ATopClassdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PClassdef___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___PClassdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ATopClassdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ATopClassdef___visit_all},
+  {(int) parser_prod___ATopClassdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ATopClassdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PClassdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ATopClassdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___ATopClassdef___name},
+  {(int) mmbuilder___PClassdef___arity},
+  {(int) mmbuilder___PClassdef___visibility_level},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___PClassdef___local_class},
+  {(int) 3 /* 72: ATopClassdef < PClassdef: superclass init_table position */},
+  {(int) typing___PNode___accept_typing},
+  {(int) parser_prod___ATopClassdef___empty_init},
+  {(int) parser_prod___ATopClassdef___init_atopclassdef},
+  {(int) 4 /* 76: ATopClassdef < ATopClassdef: superclass init_table position */},
+  {(int) parser_nodes___ATopClassdef___n_propdefs},
+  {(int) parser_nodes___ATopClassdef___n_propdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ATopClassdef::_parent */
+/* 2: Attribute ATopClassdef::_first_token */
+/* 3: Attribute ATopClassdef::_last_token */
+/* 4: Attribute ATopClassdef::_local_class */
+/* 5: Attribute ATopClassdef::_n_propdefs */
+val_t NEW_ATopClassdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ATopClassdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ATopClassdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ATopClassdef();
+  parser_prod___ATopClassdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ATopClassdef___init_atopclassdef(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ATopClassdef();
+  parser_prod___ATopClassdef___init_atopclassdef(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMainClassdef[79] = {
+  {(int) 3463 /* 0: Identity */},
+  {(int) 3 /* 1: AMainClassdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMainClassdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMainClassdef < Prod: superclass typecheck marker */},
+  {(int) 3091 /* 4: AMainClassdef < PClassdef: superclass typecheck marker */},
+  {(int) 3463 /* 5: AMainClassdef < AMainClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMainClassdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PClassdef___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___PClassdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMainClassdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMainClassdef___visit_all},
+  {(int) parser_prod___AMainClassdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMainClassdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PClassdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMainClassdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___AMainClassdef___name},
+  {(int) mmbuilder___PClassdef___arity},
+  {(int) mmbuilder___PClassdef___visibility_level},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___PClassdef___local_class},
+  {(int) 3 /* 72: AMainClassdef < PClassdef: superclass init_table position */},
+  {(int) typing___PNode___accept_typing},
+  {(int) parser_prod___AMainClassdef___empty_init},
+  {(int) parser_prod___AMainClassdef___init_amainclassdef},
+  {(int) 4 /* 76: AMainClassdef < AMainClassdef: superclass init_table position */},
+  {(int) parser_nodes___AMainClassdef___n_propdefs},
+  {(int) parser_nodes___AMainClassdef___n_propdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMainClassdef::_parent */
+/* 2: Attribute AMainClassdef::_first_token */
+/* 3: Attribute AMainClassdef::_last_token */
+/* 4: Attribute AMainClassdef::_local_class */
+/* 5: Attribute AMainClassdef::_n_propdefs */
+val_t NEW_AMainClassdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AMainClassdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMainClassdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMainClassdef();
+  parser_prod___AMainClassdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMainClassdef___init_amainclassdef(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMainClassdef();
+  parser_prod___AMainClassdef___init_amainclassdef(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AConcreteClasskind[75] = {
+  {(int) 3539 /* 0: Identity */},
+  {(int) 3 /* 1: AConcreteClasskind < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AConcreteClasskind < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AConcreteClasskind < Prod: superclass typecheck marker */},
+  {(int) 3087 /* 4: AConcreteClasskind < PClasskind: superclass typecheck marker */},
+  {(int) 3539 /* 5: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AConcreteClasskind < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AConcreteClasskind___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AConcreteClasskind___visit_all},
+  {(int) parser_prod___AConcreteClasskind___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AConcreteClasskind < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AConcreteClasskind < Prod: superclass init_table position */},
+  {(int) mmbuilder___PClasskind___is_interface},
+  {(int) mmbuilder___PClasskind___is_universal},
+  {(int) mmbuilder___PClasskind___is_abstract},
+  {(int) 3 /* 69: AConcreteClasskind < PClasskind: superclass init_table position */},
+  {(int) parser_prod___AConcreteClasskind___empty_init},
+  {(int) parser_prod___AConcreteClasskind___init_aconcreteclasskind},
+  {(int) 4 /* 72: AConcreteClasskind < AConcreteClasskind: superclass init_table position */},
+  {(int) parser_nodes___AConcreteClasskind___n_kwclass},
+  {(int) parser_prod___AConcreteClasskind___n_kwclass__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AConcreteClasskind::_parent */
+/* 2: Attribute AConcreteClasskind::_first_token */
+/* 3: Attribute AConcreteClasskind::_last_token */
+/* 4: Attribute AConcreteClasskind::_n_kwclass */
+val_t NEW_AConcreteClasskind(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AConcreteClasskind;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AConcreteClasskind___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteClasskind();
+  parser_prod___AConcreteClasskind___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteClasskind();
+  parser_prod___AConcreteClasskind___init_aconcreteclasskind(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAbstractClasskind[77] = {
+  {(int) 3595 /* 0: Identity */},
+  {(int) 3 /* 1: AAbstractClasskind < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAbstractClasskind < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAbstractClasskind < Prod: superclass typecheck marker */},
+  {(int) 3087 /* 4: AAbstractClasskind < PClasskind: superclass typecheck marker */},
+  {(int) 3595 /* 5: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAbstractClasskind < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAbstractClasskind___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAbstractClasskind___visit_all},
+  {(int) parser_prod___AAbstractClasskind___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAbstractClasskind < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAbstractClasskind < Prod: superclass init_table position */},
+  {(int) mmbuilder___PClasskind___is_interface},
+  {(int) mmbuilder___PClasskind___is_universal},
+  {(int) mmbuilder___AAbstractClasskind___is_abstract},
+  {(int) 3 /* 69: AAbstractClasskind < PClasskind: superclass init_table position */},
+  {(int) parser_prod___AAbstractClasskind___empty_init},
+  {(int) parser_prod___AAbstractClasskind___init_aabstractclasskind},
+  {(int) 4 /* 72: AAbstractClasskind < AAbstractClasskind: superclass init_table position */},
+  {(int) parser_nodes___AAbstractClasskind___n_kwabstract},
+  {(int) parser_prod___AAbstractClasskind___n_kwabstract__eq},
+  {(int) parser_nodes___AAbstractClasskind___n_kwclass},
+  {(int) parser_prod___AAbstractClasskind___n_kwclass__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAbstractClasskind::_parent */
+/* 2: Attribute AAbstractClasskind::_first_token */
+/* 3: Attribute AAbstractClasskind::_last_token */
+/* 4: Attribute AAbstractClasskind::_n_kwabstract */
+/* 5: Attribute AAbstractClasskind::_n_kwclass */
+val_t NEW_AAbstractClasskind(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AAbstractClasskind;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAbstractClasskind___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAbstractClasskind();
+  parser_prod___AAbstractClasskind___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAbstractClasskind();
+  parser_prod___AAbstractClasskind___init_aabstractclasskind(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AInterfaceClasskind[75] = {
+  {(int) 3479 /* 0: Identity */},
+  {(int) 3 /* 1: AInterfaceClasskind < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AInterfaceClasskind < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AInterfaceClasskind < Prod: superclass typecheck marker */},
+  {(int) 3087 /* 4: AInterfaceClasskind < PClasskind: superclass typecheck marker */},
+  {(int) 3479 /* 5: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AInterfaceClasskind < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AInterfaceClasskind___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AInterfaceClasskind___visit_all},
+  {(int) parser_prod___AInterfaceClasskind___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AInterfaceClasskind < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AInterfaceClasskind < Prod: superclass init_table position */},
+  {(int) mmbuilder___AInterfaceClasskind___is_interface},
+  {(int) mmbuilder___PClasskind___is_universal},
+  {(int) mmbuilder___PClasskind___is_abstract},
+  {(int) 3 /* 69: AInterfaceClasskind < PClasskind: superclass init_table position */},
+  {(int) parser_prod___AInterfaceClasskind___empty_init},
+  {(int) parser_prod___AInterfaceClasskind___init_ainterfaceclasskind},
+  {(int) 4 /* 72: AInterfaceClasskind < AInterfaceClasskind: superclass init_table position */},
+  {(int) parser_nodes___AInterfaceClasskind___n_kwinterface},
+  {(int) parser_prod___AInterfaceClasskind___n_kwinterface__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AInterfaceClasskind::_parent */
+/* 2: Attribute AInterfaceClasskind::_first_token */
+/* 3: Attribute AInterfaceClasskind::_last_token */
+/* 4: Attribute AInterfaceClasskind::_n_kwinterface */
+val_t NEW_AInterfaceClasskind(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AInterfaceClasskind;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AInterfaceClasskind___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AInterfaceClasskind();
+  parser_prod___AInterfaceClasskind___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AInterfaceClasskind();
+  parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AUniversalClasskind[75] = {
+  {(int) 3331 /* 0: Identity */},
+  {(int) 3 /* 1: AUniversalClasskind < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AUniversalClasskind < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AUniversalClasskind < Prod: superclass typecheck marker */},
+  {(int) 3087 /* 4: AUniversalClasskind < PClasskind: superclass typecheck marker */},
+  {(int) 3331 /* 5: AUniversalClasskind < AUniversalClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AUniversalClasskind < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AUniversalClasskind___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AUniversalClasskind___visit_all},
+  {(int) parser_prod___AUniversalClasskind___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AUniversalClasskind < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AUniversalClasskind < Prod: superclass init_table position */},
+  {(int) mmbuilder___PClasskind___is_interface},
+  {(int) mmbuilder___AUniversalClasskind___is_universal},
+  {(int) mmbuilder___PClasskind___is_abstract},
+  {(int) 3 /* 69: AUniversalClasskind < PClasskind: superclass init_table position */},
+  {(int) parser_prod___AUniversalClasskind___empty_init},
+  {(int) parser_prod___AUniversalClasskind___init_auniversalclasskind},
+  {(int) 4 /* 72: AUniversalClasskind < AUniversalClasskind: superclass init_table position */},
+  {(int) parser_nodes___AUniversalClasskind___n_kwuniversal},
+  {(int) parser_prod___AUniversalClasskind___n_kwuniversal__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AUniversalClasskind::_parent */
+/* 2: Attribute AUniversalClasskind::_first_token */
+/* 3: Attribute AUniversalClasskind::_last_token */
+/* 4: Attribute AUniversalClasskind::_n_kwuniversal */
+val_t NEW_AUniversalClasskind(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AUniversalClasskind;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AUniversalClasskind___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AUniversalClasskind();
+  parser_prod___AUniversalClasskind___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AUniversalClasskind();
+  parser_prod___AUniversalClasskind___init_auniversalclasskind(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AFormaldef[76] = {
+  {(int) 3511 /* 0: Identity */},
+  {(int) 3 /* 1: AFormaldef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AFormaldef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AFormaldef < Prod: superclass typecheck marker */},
+  {(int) 3075 /* 4: AFormaldef < PFormaldef: superclass typecheck marker */},
+  {(int) 3511 /* 5: AFormaldef < AFormaldef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AFormaldef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___AFormaldef___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___AFormaldef___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AFormaldef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AFormaldef___visit_all},
+  {(int) parser_prod___AFormaldef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AFormaldef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AFormaldef < Prod: superclass init_table position */},
+  {(int) 3 /* 66: AFormaldef < PFormaldef: superclass init_table position */},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) parser_prod___AFormaldef___empty_init},
+  {(int) parser_prod___AFormaldef___init_aformaldef},
+  {(int) 4 /* 71: AFormaldef < AFormaldef: superclass init_table position */},
+  {(int) parser_nodes___AFormaldef___n_id},
+  {(int) parser_prod___AFormaldef___n_id__eq},
+  {(int) parser_nodes___AFormaldef___n_type},
+  {(int) parser_prod___AFormaldef___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AFormaldef::_parent */
+/* 2: Attribute AFormaldef::_first_token */
+/* 3: Attribute AFormaldef::_last_token */
+/* 4: Attribute AFormaldef::_formal */
+/* 5: Attribute AFormaldef::_n_id */
+/* 6: Attribute AFormaldef::_n_type */
+val_t NEW_AFormaldef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AFormaldef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AFormaldef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AFormaldef();
+  parser_prod___AFormaldef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AFormaldef();
+  parser_prod___AFormaldef___init_aformaldef(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASuperclass[78] = {
+  {(int) 3351 /* 0: Identity */},
+  {(int) 3 /* 1: ASuperclass < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASuperclass < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASuperclass < Prod: superclass typecheck marker */},
+  {(int) 3039 /* 4: ASuperclass < PSuperclass: superclass typecheck marker */},
+  {(int) 3351 /* 5: ASuperclass < ASuperclass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASuperclass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___ASuperclass___accept_class_specialization_builder},
+  {(int) mmbuilder___ASuperclass___accept_class_ancestor_builder},
+  {(int) mmbuilder___ASuperclass___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASuperclass___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASuperclass___visit_all},
+  {(int) parser_prod___ASuperclass___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASuperclass < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASuperclass < Prod: superclass init_table position */},
+  {(int) 3 /* 66: ASuperclass < PSuperclass: superclass init_table position */},
+  {(int) mmbuilder___ASuperclass___ancestor},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) parser_prod___ASuperclass___empty_init},
+  {(int) parser_prod___ASuperclass___init_asuperclass},
+  {(int) 4 /* 73: ASuperclass < ASuperclass: superclass init_table position */},
+  {(int) parser_nodes___ASuperclass___n_kwspecial},
+  {(int) parser_prod___ASuperclass___n_kwspecial__eq},
+  {(int) parser_nodes___ASuperclass___n_type},
+  {(int) parser_prod___ASuperclass___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASuperclass::_parent */
+/* 2: Attribute ASuperclass::_first_token */
+/* 3: Attribute ASuperclass::_last_token */
+/* 4: Attribute ASuperclass::_ancestor */
+/* 5: Attribute ASuperclass::_n_kwspecial */
+/* 6: Attribute ASuperclass::_n_type */
+val_t NEW_ASuperclass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ASuperclass;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASuperclass___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperclass();
+  parser_prod___ASuperclass___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperclass();
+  parser_prod___ASuperclass___init_asuperclass(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAttrPropdef[99] = {
+  {(int) 3571 /* 0: Identity */},
+  {(int) 3 /* 1: AAttrPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAttrPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAttrPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AAttrPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3571 /* 5: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAttrPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AAttrPropdef___accept_property_builder},
+  {(int) mmbuilder___AAttrPropdef___accept_property_verifier},
+  {(int) mmbuilder___AAttrPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAttrPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAttrPropdef___visit_all},
+  {(int) parser_prod___AAttrPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAttrPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___AAttrPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAttrPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AAttrPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AAttrPropdef___n_doc__eq},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AAttrPropdef___prop},
+  {(int) mmbuilder___AAttrPropdef___readmethod},
+  {(int) mmbuilder___AAttrPropdef___writemethod},
+  {(int) parser_prod___AAttrPropdef___empty_init},
+  {(int) parser_prod___AAttrPropdef___init_aattrpropdef},
+  {(int) 4 /* 81: AAttrPropdef < AAttrPropdef: superclass init_table position */},
+  {(int) parser_nodes___AAttrPropdef___n_kwredef},
+  {(int) parser_prod___AAttrPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AAttrPropdef___n_visibility},
+  {(int) parser_prod___AAttrPropdef___n_visibility__eq},
+  {(int) parser_nodes___AAttrPropdef___n_kwattr},
+  {(int) parser_prod___AAttrPropdef___n_kwattr__eq},
+  {(int) parser_nodes___AAttrPropdef___n_id},
+  {(int) parser_prod___AAttrPropdef___n_id__eq},
+  {(int) parser_nodes___AAttrPropdef___n_type},
+  {(int) parser_prod___AAttrPropdef___n_type__eq},
+  {(int) parser_nodes___AAttrPropdef___n_readable},
+  {(int) parser_prod___AAttrPropdef___n_readable__eq},
+  {(int) parser_nodes___AAttrPropdef___n_writable},
+  {(int) parser_prod___AAttrPropdef___n_writable__eq},
+  {(int) parser_nodes___AAttrPropdef___n_expr},
+  {(int) parser_prod___AAttrPropdef___n_expr__eq},
+  {(int) typing___PNode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAttrPropdef::_parent */
+/* 2: Attribute AAttrPropdef::_first_token */
+/* 3: Attribute AAttrPropdef::_last_token */
+/* 4: Attribute AAttrPropdef::_n_doc */
+/* 5: Attribute AAttrPropdef::_readmethod */
+/* 6: Attribute AAttrPropdef::_writemethod */
+/* 7: Attribute AAttrPropdef::_prop */
+/* 8: Attribute AAttrPropdef::_n_kwredef */
+/* 9: Attribute AAttrPropdef::_n_visibility */
+/* 10: Attribute AAttrPropdef::_n_kwattr */
+/* 11: Attribute AAttrPropdef::_n_id */
+/* 12: Attribute AAttrPropdef::_n_type */
+/* 13: Attribute AAttrPropdef::_n_readable */
+/* 14: Attribute AAttrPropdef::_n_writable */
+/* 15: Attribute AAttrPropdef::_n_expr */
+val_t NEW_AAttrPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 16);
+  obj->vft = (classtable_elt_t*)VFT_AAttrPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAttrPropdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrPropdef();
+  parser_prod___AAttrPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrPropdef();
+  parser_prod___AAttrPropdef___init_aattrpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7, p8, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMethPropdef[92] = {
+  {(int) 3459 /* 0: Identity */},
+  {(int) 3 /* 1: AMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMethPropdef___visit_all},
+  {(int) parser_prod___AMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AMethPropdef___n_doc__eq},
+  {(int) compiling_methods___AMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMethPropdef::_parent */
+/* 2: Attribute AMethPropdef::_first_token */
+/* 3: Attribute AMethPropdef::_last_token */
+/* 4: Attribute AMethPropdef::_n_doc */
+/* 5: Attribute AMethPropdef::_name */
+/* 6: Attribute AMethPropdef::_method */
+/* 7: Attribute AMethPropdef::_n_kwredef */
+/* 8: Attribute AMethPropdef::_n_visibility */
+/* 9: Attribute AMethPropdef::_n_methid */
+/* 10: Attribute AMethPropdef::_n_signature */
+val_t NEW_AMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_AMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMethPropdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMethPropdef();
+  parser_prod___AMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMethPropdef();
+  parser_prod___AMethPropdef___init_amethpropdef(self, p0, p1, p2, p3, p4, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ADeferredMethPropdef[97] = {
+  {(int) 3735 /* 0: Identity */},
+  {(int) 3 /* 1: ADeferredMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ADeferredMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ADeferredMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: ADeferredMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3735 /* 6: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ADeferredMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ADeferredMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ADeferredMethPropdef___visit_all},
+  {(int) parser_prod___ADeferredMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ADeferredMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ADeferredMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: ADeferredMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___ADeferredMethPropdef___n_doc__eq},
+  {(int) compiling_methods___ADeferredMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: ADeferredMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___ADeferredMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___ADeferredMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___ADeferredMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___ADeferredMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) parser_prod___ADeferredMethPropdef___empty_init},
+  {(int) parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef},
+  {(int) 5 /* 94: ADeferredMethPropdef < ADeferredMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___ADeferredMethPropdef___n_kwmeth},
+  {(int) parser_prod___ADeferredMethPropdef___n_kwmeth__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ADeferredMethPropdef::_parent */
+/* 2: Attribute ADeferredMethPropdef::_first_token */
+/* 3: Attribute ADeferredMethPropdef::_last_token */
+/* 4: Attribute ADeferredMethPropdef::_n_doc */
+/* 5: Attribute ADeferredMethPropdef::_name */
+/* 6: Attribute ADeferredMethPropdef::_method */
+/* 7: Attribute ADeferredMethPropdef::_n_kwredef */
+/* 8: Attribute ADeferredMethPropdef::_n_visibility */
+/* 9: Attribute ADeferredMethPropdef::_n_methid */
+/* 10: Attribute ADeferredMethPropdef::_n_signature */
+/* 11: Attribute ADeferredMethPropdef::_n_kwmeth */
+val_t NEW_ADeferredMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_ADeferredMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ADeferredMethPropdef___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ADeferredMethPropdef();
+  parser_prod___ADeferredMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ADeferredMethPropdef();
+  parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(self, p0, p1, p2, p3, p4, p5, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AInternMethPropdef[97] = {
+  {(int) 3707 /* 0: Identity */},
+  {(int) 3 /* 1: AInternMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AInternMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AInternMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AInternMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3707 /* 6: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AInternMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AInternMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AInternMethPropdef___visit_all},
+  {(int) parser_prod___AInternMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AInternMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AInternMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AInternMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AInternMethPropdef___n_doc__eq},
+  {(int) compiling_methods___AInternMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AInternMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AInternMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AInternMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AInternMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AInternMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) parser_prod___AInternMethPropdef___empty_init},
+  {(int) parser_prod___AInternMethPropdef___init_ainternmethpropdef},
+  {(int) 5 /* 94: AInternMethPropdef < AInternMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AInternMethPropdef___n_kwmeth},
+  {(int) parser_prod___AInternMethPropdef___n_kwmeth__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AInternMethPropdef::_parent */
+/* 2: Attribute AInternMethPropdef::_first_token */
+/* 3: Attribute AInternMethPropdef::_last_token */
+/* 4: Attribute AInternMethPropdef::_n_doc */
+/* 5: Attribute AInternMethPropdef::_name */
+/* 6: Attribute AInternMethPropdef::_method */
+/* 7: Attribute AInternMethPropdef::_n_kwredef */
+/* 8: Attribute AInternMethPropdef::_n_visibility */
+/* 9: Attribute AInternMethPropdef::_n_methid */
+/* 10: Attribute AInternMethPropdef::_n_signature */
+/* 11: Attribute AInternMethPropdef::_n_kwmeth */
+val_t NEW_AInternMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_AInternMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AInternMethPropdef___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AInternMethPropdef();
+  parser_prod___AInternMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AInternMethPropdef();
+  parser_prod___AInternMethPropdef___init_ainternmethpropdef(self, p0, p1, p2, p3, p4, p5, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AExternMethPropdef[99] = {
+  {(int) 3723 /* 0: Identity */},
+  {(int) 3 /* 1: AExternMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AExternMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AExternMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AExternMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3723 /* 6: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AExternMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AExternMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AExternMethPropdef___visit_all},
+  {(int) parser_prod___AExternMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AExternMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AExternMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AExternMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AExternMethPropdef___n_doc__eq},
+  {(int) compiling_methods___AExternMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AExternMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AExternMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AExternMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AExternMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AExternMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) parser_prod___AExternMethPropdef___empty_init},
+  {(int) parser_prod___AExternMethPropdef___init_aexternmethpropdef},
+  {(int) 5 /* 94: AExternMethPropdef < AExternMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AExternMethPropdef___n_kwmeth},
+  {(int) parser_prod___AExternMethPropdef___n_kwmeth__eq},
+  {(int) parser_nodes___AExternMethPropdef___n_extern},
+  {(int) parser_prod___AExternMethPropdef___n_extern__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AExternMethPropdef::_parent */
+/* 2: Attribute AExternMethPropdef::_first_token */
+/* 3: Attribute AExternMethPropdef::_last_token */
+/* 4: Attribute AExternMethPropdef::_n_doc */
+/* 5: Attribute AExternMethPropdef::_name */
+/* 6: Attribute AExternMethPropdef::_method */
+/* 7: Attribute AExternMethPropdef::_n_kwredef */
+/* 8: Attribute AExternMethPropdef::_n_visibility */
+/* 9: Attribute AExternMethPropdef::_n_methid */
+/* 10: Attribute AExternMethPropdef::_n_signature */
+/* 11: Attribute AExternMethPropdef::_n_kwmeth */
+/* 12: Attribute AExternMethPropdef::_n_extern */
+val_t NEW_AExternMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AExternMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AExternMethPropdef___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AExternMethPropdef();
+  parser_prod___AExternMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AExternMethPropdef();
+  parser_prod___AExternMethPropdef___init_aexternmethpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AConcreteMethPropdef[100] = {
+  {(int) 3747 /* 0: Identity */},
+  {(int) 3 /* 1: AConcreteMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AConcreteMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AConcreteMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AConcreteMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3747 /* 6: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AConcreteMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AConcreteMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AConcreteMethPropdef___visit_all},
+  {(int) parser_prod___AConcreteMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AConcreteMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AConcreteMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AConcreteMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AConcreteMethPropdef___n_doc__eq},
+  {(int) compiling_methods___AConcreteMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AConcreteMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AConcreteMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AConcreteMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AConcreteMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AConcreteMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) parser_prod___AConcreteMethPropdef___empty_init},
+  {(int) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
+  {(int) 5 /* 95: AConcreteMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AConcreteMethPropdef___n_kwmeth},
+  {(int) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
+  {(int) parser_nodes___AConcreteMethPropdef___n_block},
+  {(int) parser_prod___AConcreteMethPropdef___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AConcreteMethPropdef::_parent */
+/* 2: Attribute AConcreteMethPropdef::_first_token */
+/* 3: Attribute AConcreteMethPropdef::_last_token */
+/* 4: Attribute AConcreteMethPropdef::_n_doc */
+/* 5: Attribute AConcreteMethPropdef::_name */
+/* 6: Attribute AConcreteMethPropdef::_method */
+/* 7: Attribute AConcreteMethPropdef::_n_kwredef */
+/* 8: Attribute AConcreteMethPropdef::_n_visibility */
+/* 9: Attribute AConcreteMethPropdef::_n_methid */
+/* 10: Attribute AConcreteMethPropdef::_n_signature */
+/* 11: Attribute AConcreteMethPropdef::_n_kwmeth */
+/* 12: Attribute AConcreteMethPropdef::_n_block */
+val_t NEW_AConcreteMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AConcreteMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AConcreteMethPropdef___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteMethPropdef();
+  parser_prod___AConcreteMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteMethPropdef();
+  parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AConcreteInitPropdef[108] = {
+  {(int) 3799 /* 0: Identity */},
+  {(int) 3 /* 1: AConcreteInitPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AConcreteInitPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AConcreteInitPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AConcreteInitPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3747 /* 6: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(int) 3799 /* 7: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AConcreteInitPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AConcreteInitPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AConcreteInitPropdef___visit_all},
+  {(int) parser_prod___AConcreteInitPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AConcreteInitPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(int) typing___AConcreteInitPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AConcreteInitPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AConcreteInitPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AConcreteInitPropdef___n_doc__eq},
+  {(int) compiling_methods___AConcreteMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AConcreteInitPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AConcreteInitPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AConcreteInitPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AConcreteInitPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AConcreteInitPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) parser_prod___AConcreteMethPropdef___empty_init},
+  {(int) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
+  {(int) 5 /* 95: AConcreteInitPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AConcreteMethPropdef___n_kwmeth},
+  {(int) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
+  {(int) parser_nodes___AConcreteMethPropdef___n_block},
+  {(int) parser_prod___AConcreteInitPropdef___n_block__eq},
+  {(int) typing___AConcreteInitPropdef___super_init_calls},
+  {(int) typing___AConcreteInitPropdef___explicit_super_init_calls},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) parser_prod___AConcreteInitPropdef___empty_init},
+  {(int) parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef},
+  {(int) 6 /* 105: AConcreteInitPropdef < AConcreteInitPropdef: superclass init_table position */},
+  {(int) parser_nodes___AConcreteInitPropdef___n_kwinit},
+  {(int) parser_prod___AConcreteInitPropdef___n_kwinit__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AConcreteInitPropdef::_parent */
+/* 2: Attribute AConcreteInitPropdef::_first_token */
+/* 3: Attribute AConcreteInitPropdef::_last_token */
+/* 4: Attribute AConcreteInitPropdef::_n_doc */
+/* 5: Attribute AConcreteInitPropdef::_name */
+/* 6: Attribute AConcreteInitPropdef::_method */
+/* 7: Attribute AConcreteInitPropdef::_n_kwredef */
+/* 8: Attribute AConcreteInitPropdef::_n_visibility */
+/* 9: Attribute AConcreteInitPropdef::_n_methid */
+/* 10: Attribute AConcreteInitPropdef::_n_signature */
+/* 11: Attribute AConcreteInitPropdef::_n_kwmeth */
+/* 12: Attribute AConcreteInitPropdef::_n_block */
+/* 13: Attribute AConcreteInitPropdef::_super_init_calls */
+/* 14: Attribute AConcreteInitPropdef::_explicit_super_init_calls */
+/* 15: Attribute AConcreteInitPropdef::_n_kwinit */
+val_t NEW_AConcreteInitPropdef(void) {
+  val_t variable0;
+  val_t variable1;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 16);
+  obj->vft = (classtable_elt_t*)VFT_AConcreteInitPropdef;
+  variable0 = NEW_array___Array___init(); /*new Array[MMMethod]*/
+  ATTR_typing___AConcreteInitPropdef____super_init_calls(obj) = variable0;
+  variable1 = NEW_array___Array___init(); /*new Array[MMMethod]*/
+  ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls(obj) = variable1;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AConcreteInitPropdef___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteInitPropdef();
+  parser_prod___AConcreteInitPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AConcreteInitPropdef();
+  parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMainMethPropdef[103] = {
+  {(int) 3795 /* 0: Identity */},
+  {(int) 3 /* 1: AMainMethPropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMainMethPropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMainMethPropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: AMainMethPropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3459 /* 5: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(int) 3747 /* 6: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(int) 3795 /* 7: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMainMethPropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_property_builder},
+  {(int) mmbuilder___AMethPropdef___accept_property_verifier},
+  {(int) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMainMethPropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMainMethPropdef___visit_all},
+  {(int) parser_prod___AMainMethPropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMainMethPropdef < PNode: superclass init_table position */},
+  {(int) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(int) typing___AMethPropdef___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMainMethPropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___AMainMethPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: AMainMethPropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___AConcreteMethPropdef___n_doc__eq},
+  {(int) compiling_methods___AConcreteMethPropdef___do_compile_inside},
+  {(int) mmbuilder___AMethPropdef___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___AMethPropdef___method},
+  {(int) parser_prod___AMethPropdef___empty_init},
+  {(int) parser_prod___AMethPropdef___init_amethpropdef},
+  {(int) 4 /* 81: AMainMethPropdef < AMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AMethPropdef___n_kwredef},
+  {(int) parser_prod___AMainMethPropdef___n_kwredef__eq},
+  {(int) parser_nodes___AMethPropdef___n_visibility},
+  {(int) parser_prod___AConcreteMethPropdef___n_visibility__eq},
+  {(int) parser_nodes___AMethPropdef___n_methid},
+  {(int) parser_prod___AConcreteMethPropdef___n_methid__eq},
+  {(int) parser_nodes___AMethPropdef___n_signature},
+  {(int) parser_prod___AConcreteMethPropdef___n_signature__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) control_flow___AMethPropdef___accept_control_flow},
+  {(int) parser_prod___AConcreteMethPropdef___empty_init},
+  {(int) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
+  {(int) 5 /* 95: AMainMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(int) parser_nodes___AConcreteMethPropdef___n_kwmeth},
+  {(int) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
+  {(int) parser_nodes___AConcreteMethPropdef___n_block},
+  {(int) parser_prod___AMainMethPropdef___n_block__eq},
+  {(int) parser_prod___AMainMethPropdef___empty_init},
+  {(int) parser_prod___AMainMethPropdef___init_amainmethpropdef},
+  {(int) 6 /* 102: AMainMethPropdef < AMainMethPropdef: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMainMethPropdef::_parent */
+/* 2: Attribute AMainMethPropdef::_first_token */
+/* 3: Attribute AMainMethPropdef::_last_token */
+/* 4: Attribute AMainMethPropdef::_n_doc */
+/* 5: Attribute AMainMethPropdef::_name */
+/* 6: Attribute AMainMethPropdef::_method */
+/* 7: Attribute AMainMethPropdef::_n_kwredef */
+/* 8: Attribute AMainMethPropdef::_n_visibility */
+/* 9: Attribute AMainMethPropdef::_n_methid */
+/* 10: Attribute AMainMethPropdef::_n_signature */
+/* 11: Attribute AMainMethPropdef::_n_kwmeth */
+/* 12: Attribute AMainMethPropdef::_n_block */
+val_t NEW_AMainMethPropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AMainMethPropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMainMethPropdef___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMainMethPropdef();
+  parser_prod___AMainMethPropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMainMethPropdef();
+  parser_prod___AMainMethPropdef___init_amainmethpropdef(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ATypePropdef[90] = {
+  {(int) 3335 /* 0: Identity */},
+  {(int) 3 /* 1: ATypePropdef < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ATypePropdef < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ATypePropdef < Prod: superclass typecheck marker */},
+  {(int) 3051 /* 4: ATypePropdef < PPropdef: superclass typecheck marker */},
+  {(int) 3335 /* 5: ATypePropdef < ATypePropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ATypePropdef < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___ATypePropdef___accept_property_builder},
+  {(int) mmbuilder___ATypePropdef___accept_property_verifier},
+  {(int) mmbuilder___ATypePropdef___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ATypePropdef___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ATypePropdef___visit_all},
+  {(int) parser_prod___ATypePropdef___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ATypePropdef < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ATypePropdef < Prod: superclass init_table position */},
+  {(int) mmbuilder___PPropdef___process_and_check},
+  {(int) mmbuilder___PPropdef___do_and_check_intro},
+  {(int) mmbuilder___PPropdef___inherit_signature},
+  {(int) mmbuilder___PPropdef___do_and_check_redef},
+  {(int) 3 /* 70: ATypePropdef < PPropdef: superclass init_table position */},
+  {(int) parser_nodes___PPropdef___n_doc},
+  {(int) parser_prod___ATypePropdef___n_doc__eq},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) mmbuilder___ATypePropdef___prop},
+  {(int) parser_prod___ATypePropdef___empty_init},
+  {(int) parser_prod___ATypePropdef___init_atypepropdef},
+  {(int) 4 /* 79: ATypePropdef < ATypePropdef: superclass init_table position */},
+  {(int) parser_nodes___ATypePropdef___n_kwredef},
+  {(int) parser_prod___ATypePropdef___n_kwredef__eq},
+  {(int) parser_nodes___ATypePropdef___n_visibility},
+  {(int) parser_prod___ATypePropdef___n_visibility__eq},
+  {(int) parser_nodes___ATypePropdef___n_kwtype},
+  {(int) parser_prod___ATypePropdef___n_kwtype__eq},
+  {(int) parser_nodes___ATypePropdef___n_id},
+  {(int) parser_prod___ATypePropdef___n_id__eq},
+  {(int) parser_nodes___ATypePropdef___n_type},
+  {(int) parser_prod___ATypePropdef___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ATypePropdef::_parent */
+/* 2: Attribute ATypePropdef::_first_token */
+/* 3: Attribute ATypePropdef::_last_token */
+/* 4: Attribute ATypePropdef::_n_doc */
+/* 5: Attribute ATypePropdef::_prop */
+/* 6: Attribute ATypePropdef::_n_kwredef */
+/* 7: Attribute ATypePropdef::_n_visibility */
+/* 8: Attribute ATypePropdef::_n_kwtype */
+/* 9: Attribute ATypePropdef::_n_id */
+/* 10: Attribute ATypePropdef::_n_type */
+val_t NEW_ATypePropdef(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_ATypePropdef;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ATypePropdef___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ATypePropdef();
+  parser_prod___ATypePropdef___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ATypePropdef();
+  parser_prod___ATypePropdef___init_atypepropdef(self, p0, p1, p2, p3, p4, p5, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AReadAble[74] = {
+  {(int) 3387 /* 0: Identity */},
+  {(int) 3 /* 1: AReadAble < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AReadAble < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AReadAble < Prod: superclass typecheck marker */},
+  {(int) 3099 /* 4: AReadAble < PAble: superclass typecheck marker */},
+  {(int) 3387 /* 5: AReadAble < AReadAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AReadAble < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AReadAble___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AReadAble___visit_all},
+  {(int) parser_prod___AReadAble___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AReadAble < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AReadAble < Prod: superclass init_table position */},
+  {(int) 3 /* 66: AReadAble < PAble: superclass init_table position */},
+  {(int) parser_nodes___PAble___n_kwredef},
+  {(int) parser_prod___AReadAble___n_kwredef__eq},
+  {(int) parser_prod___AReadAble___empty_init},
+  {(int) parser_prod___AReadAble___init_areadable},
+  {(int) 4 /* 71: AReadAble < AReadAble: superclass init_table position */},
+  {(int) parser_nodes___AReadAble___n_kwreadable},
+  {(int) parser_prod___AReadAble___n_kwreadable__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AReadAble::_parent */
+/* 2: Attribute AReadAble::_first_token */
+/* 3: Attribute AReadAble::_last_token */
+/* 4: Attribute AReadAble::_n_kwredef */
+/* 5: Attribute AReadAble::_n_kwreadable */
+val_t NEW_AReadAble(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AReadAble;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AReadAble___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AReadAble();
+  parser_prod___AReadAble___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AReadAble___init_areadable(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AReadAble();
+  parser_prod___AReadAble___init_areadable(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AWriteAble[74] = {
+  {(int) 3319 /* 0: Identity */},
+  {(int) 3 /* 1: AWriteAble < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AWriteAble < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AWriteAble < Prod: superclass typecheck marker */},
+  {(int) 3099 /* 4: AWriteAble < PAble: superclass typecheck marker */},
+  {(int) 3319 /* 5: AWriteAble < AWriteAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AWriteAble < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AWriteAble___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AWriteAble___visit_all},
+  {(int) parser_prod___AWriteAble___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AWriteAble < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AWriteAble < Prod: superclass init_table position */},
+  {(int) 3 /* 66: AWriteAble < PAble: superclass init_table position */},
+  {(int) parser_nodes___PAble___n_kwredef},
+  {(int) parser_prod___AWriteAble___n_kwredef__eq},
+  {(int) parser_prod___AWriteAble___empty_init},
+  {(int) parser_prod___AWriteAble___init_awriteable},
+  {(int) 4 /* 71: AWriteAble < AWriteAble: superclass init_table position */},
+  {(int) parser_nodes___AWriteAble___n_kwwritable},
+  {(int) parser_prod___AWriteAble___n_kwwritable__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AWriteAble::_parent */
+/* 2: Attribute AWriteAble::_first_token */
+/* 3: Attribute AWriteAble::_last_token */
+/* 4: Attribute AWriteAble::_n_kwredef */
+/* 5: Attribute AWriteAble::_n_kwwritable */
+val_t NEW_AWriteAble(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AWriteAble;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AWriteAble___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AWriteAble();
+  parser_prod___AWriteAble___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AWriteAble();
+  parser_prod___AWriteAble___init_awriteable(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIdMethid[74] = {
+  {(int) 3499 /* 0: Identity */},
+  {(int) 3 /* 1: AIdMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIdMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIdMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AIdMethid < PMethid: superclass typecheck marker */},
+  {(int) 3499 /* 5: AIdMethid < AIdMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIdMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIdMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIdMethid___visit_all},
+  {(int) parser_prod___AIdMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIdMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIdMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AIdMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AIdMethid___empty_init},
+  {(int) parser_prod___AIdMethid___init_aidmethid},
+  {(int) 4 /* 71: AIdMethid < AIdMethid: superclass init_table position */},
+  {(int) parser_nodes___AIdMethid___n_id},
+  {(int) parser_prod___AIdMethid___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIdMethid::_parent */
+/* 2: Attribute AIdMethid::_first_token */
+/* 3: Attribute AIdMethid::_last_token */
+/* 4: Attribute AIdMethid::_name */
+/* 5: Attribute AIdMethid::_n_id */
+val_t NEW_AIdMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AIdMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIdMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIdMethid();
+  parser_prod___AIdMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIdMethid___init_aidmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIdMethid();
+  parser_prod___AIdMethid___init_aidmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APlusMethid[74] = {
+  {(int) 3415 /* 0: Identity */},
+  {(int) 3 /* 1: APlusMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APlusMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APlusMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: APlusMethid < PMethid: superclass typecheck marker */},
+  {(int) 3415 /* 5: APlusMethid < APlusMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APlusMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APlusMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APlusMethid___visit_all},
+  {(int) parser_prod___APlusMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APlusMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APlusMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: APlusMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___APlusMethid___empty_init},
+  {(int) parser_prod___APlusMethid___init_aplusmethid},
+  {(int) 4 /* 71: APlusMethid < APlusMethid: superclass init_table position */},
+  {(int) parser_nodes___APlusMethid___n_plus},
+  {(int) parser_prod___APlusMethid___n_plus__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APlusMethid::_parent */
+/* 2: Attribute APlusMethid::_first_token */
+/* 3: Attribute APlusMethid::_last_token */
+/* 4: Attribute APlusMethid::_name */
+/* 5: Attribute APlusMethid::_n_plus */
+val_t NEW_APlusMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_APlusMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APlusMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APlusMethid();
+  parser_prod___APlusMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APlusMethid___init_aplusmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APlusMethid();
+  parser_prod___APlusMethid___init_aplusmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMinusMethid[74] = {
+  {(int) 3451 /* 0: Identity */},
+  {(int) 3 /* 1: AMinusMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMinusMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMinusMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AMinusMethid < PMethid: superclass typecheck marker */},
+  {(int) 3451 /* 5: AMinusMethid < AMinusMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMinusMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMinusMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMinusMethid___visit_all},
+  {(int) parser_prod___AMinusMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMinusMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMinusMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AMinusMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AMinusMethid___empty_init},
+  {(int) parser_prod___AMinusMethid___init_aminusmethid},
+  {(int) 4 /* 71: AMinusMethid < AMinusMethid: superclass init_table position */},
+  {(int) parser_nodes___AMinusMethid___n_minus},
+  {(int) parser_prod___AMinusMethid___n_minus__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMinusMethid::_parent */
+/* 2: Attribute AMinusMethid::_first_token */
+/* 3: Attribute AMinusMethid::_last_token */
+/* 4: Attribute AMinusMethid::_name */
+/* 5: Attribute AMinusMethid::_n_minus */
+val_t NEW_AMinusMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AMinusMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMinusMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusMethid();
+  parser_prod___AMinusMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMinusMethid___init_aminusmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusMethid();
+  parser_prod___AMinusMethid___init_aminusmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStarMethid[74] = {
+  {(int) 3363 /* 0: Identity */},
+  {(int) 3 /* 1: AStarMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStarMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStarMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AStarMethid < PMethid: superclass typecheck marker */},
+  {(int) 3363 /* 5: AStarMethid < AStarMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AStarMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStarMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStarMethid___visit_all},
+  {(int) parser_prod___AStarMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AStarMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AStarMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AStarMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AStarMethid___empty_init},
+  {(int) parser_prod___AStarMethid___init_astarmethid},
+  {(int) 4 /* 71: AStarMethid < AStarMethid: superclass init_table position */},
+  {(int) parser_nodes___AStarMethid___n_star},
+  {(int) parser_prod___AStarMethid___n_star__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStarMethid::_parent */
+/* 2: Attribute AStarMethid::_first_token */
+/* 3: Attribute AStarMethid::_last_token */
+/* 4: Attribute AStarMethid::_name */
+/* 5: Attribute AStarMethid::_n_star */
+val_t NEW_AStarMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AStarMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStarMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AStarMethid();
+  parser_prod___AStarMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStarMethid___init_astarmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AStarMethid();
+  parser_prod___AStarMethid___init_astarmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASlashMethid[74] = {
+  {(int) 3367 /* 0: Identity */},
+  {(int) 3 /* 1: ASlashMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASlashMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASlashMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ASlashMethid < PMethid: superclass typecheck marker */},
+  {(int) 3367 /* 5: ASlashMethid < ASlashMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASlashMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASlashMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASlashMethid___visit_all},
+  {(int) parser_prod___ASlashMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASlashMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASlashMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ASlashMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ASlashMethid___empty_init},
+  {(int) parser_prod___ASlashMethid___init_aslashmethid},
+  {(int) 4 /* 71: ASlashMethid < ASlashMethid: superclass init_table position */},
+  {(int) parser_nodes___ASlashMethid___n_slash},
+  {(int) parser_prod___ASlashMethid___n_slash__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASlashMethid::_parent */
+/* 2: Attribute ASlashMethid::_first_token */
+/* 3: Attribute ASlashMethid::_last_token */
+/* 4: Attribute ASlashMethid::_name */
+/* 5: Attribute ASlashMethid::_n_slash */
+val_t NEW_ASlashMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ASlashMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASlashMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASlashMethid();
+  parser_prod___ASlashMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASlashMethid___init_aslashmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASlashMethid();
+  parser_prod___ASlashMethid___init_aslashmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APercentMethid[74] = {
+  {(int) 3423 /* 0: Identity */},
+  {(int) 3 /* 1: APercentMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APercentMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APercentMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: APercentMethid < PMethid: superclass typecheck marker */},
+  {(int) 3423 /* 5: APercentMethid < APercentMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APercentMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APercentMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APercentMethid___visit_all},
+  {(int) parser_prod___APercentMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APercentMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APercentMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: APercentMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___APercentMethid___empty_init},
+  {(int) parser_prod___APercentMethid___init_apercentmethid},
+  {(int) 4 /* 71: APercentMethid < APercentMethid: superclass init_table position */},
+  {(int) parser_nodes___APercentMethid___n_percent},
+  {(int) parser_prod___APercentMethid___n_percent__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APercentMethid::_parent */
+/* 2: Attribute APercentMethid::_first_token */
+/* 3: Attribute APercentMethid::_last_token */
+/* 4: Attribute APercentMethid::_name */
+/* 5: Attribute APercentMethid::_n_percent */
+val_t NEW_APercentMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_APercentMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APercentMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APercentMethid();
+  parser_prod___APercentMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APercentMethid___init_apercentmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APercentMethid();
+  parser_prod___APercentMethid___init_apercentmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AEqMethid[74] = {
+  {(int) 3523 /* 0: Identity */},
+  {(int) 3 /* 1: AEqMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AEqMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AEqMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AEqMethid < PMethid: superclass typecheck marker */},
+  {(int) 3523 /* 5: AEqMethid < AEqMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AEqMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AEqMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AEqMethid___visit_all},
+  {(int) parser_prod___AEqMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AEqMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AEqMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AEqMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AEqMethid___empty_init},
+  {(int) parser_prod___AEqMethid___init_aeqmethid},
+  {(int) 4 /* 71: AEqMethid < AEqMethid: superclass init_table position */},
+  {(int) parser_nodes___AEqMethid___n_eq},
+  {(int) parser_prod___AEqMethid___n_eq__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AEqMethid::_parent */
+/* 2: Attribute AEqMethid::_first_token */
+/* 3: Attribute AEqMethid::_last_token */
+/* 4: Attribute AEqMethid::_name */
+/* 5: Attribute AEqMethid::_n_eq */
+val_t NEW_AEqMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AEqMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AEqMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AEqMethid();
+  parser_prod___AEqMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AEqMethid___init_aeqmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AEqMethid();
+  parser_prod___AEqMethid___init_aeqmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANeMethid[74] = {
+  {(int) 3443 /* 0: Identity */},
+  {(int) 3 /* 1: ANeMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANeMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANeMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ANeMethid < PMethid: superclass typecheck marker */},
+  {(int) 3443 /* 5: ANeMethid < ANeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ANeMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANeMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANeMethid___visit_all},
+  {(int) parser_prod___ANeMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ANeMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ANeMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ANeMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ANeMethid___empty_init},
+  {(int) parser_prod___ANeMethid___init_anemethid},
+  {(int) 4 /* 71: ANeMethid < ANeMethid: superclass init_table position */},
+  {(int) parser_nodes___ANeMethid___n_ne},
+  {(int) parser_prod___ANeMethid___n_ne__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANeMethid::_parent */
+/* 2: Attribute ANeMethid::_first_token */
+/* 3: Attribute ANeMethid::_last_token */
+/* 4: Attribute ANeMethid::_name */
+/* 5: Attribute ANeMethid::_n_ne */
+val_t NEW_ANeMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ANeMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANeMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANeMethid();
+  parser_prod___ANeMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANeMethid___init_anemethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANeMethid();
+  parser_prod___ANeMethid___init_anemethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ALeMethid[74] = {
+  {(int) 3471 /* 0: Identity */},
+  {(int) 3 /* 1: ALeMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ALeMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ALeMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ALeMethid < PMethid: superclass typecheck marker */},
+  {(int) 3471 /* 5: ALeMethid < ALeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ALeMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ALeMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ALeMethid___visit_all},
+  {(int) parser_prod___ALeMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ALeMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ALeMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ALeMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ALeMethid___empty_init},
+  {(int) parser_prod___ALeMethid___init_alemethid},
+  {(int) 4 /* 71: ALeMethid < ALeMethid: superclass init_table position */},
+  {(int) parser_nodes___ALeMethid___n_le},
+  {(int) parser_prod___ALeMethid___n_le__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ALeMethid::_parent */
+/* 2: Attribute ALeMethid::_first_token */
+/* 3: Attribute ALeMethid::_last_token */
+/* 4: Attribute ALeMethid::_name */
+/* 5: Attribute ALeMethid::_n_le */
+val_t NEW_ALeMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ALeMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ALeMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ALeMethid();
+  parser_prod___ALeMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ALeMethid___init_alemethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ALeMethid();
+  parser_prod___ALeMethid___init_alemethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AGeMethid[74] = {
+  {(int) 3507 /* 0: Identity */},
+  {(int) 3 /* 1: AGeMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AGeMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AGeMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AGeMethid < PMethid: superclass typecheck marker */},
+  {(int) 3507 /* 5: AGeMethid < AGeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AGeMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AGeMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AGeMethid___visit_all},
+  {(int) parser_prod___AGeMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AGeMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AGeMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AGeMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AGeMethid___empty_init},
+  {(int) parser_prod___AGeMethid___init_agemethid},
+  {(int) 4 /* 71: AGeMethid < AGeMethid: superclass init_table position */},
+  {(int) parser_nodes___AGeMethid___n_ge},
+  {(int) parser_prod___AGeMethid___n_ge__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AGeMethid::_parent */
+/* 2: Attribute AGeMethid::_first_token */
+/* 3: Attribute AGeMethid::_last_token */
+/* 4: Attribute AGeMethid::_name */
+/* 5: Attribute AGeMethid::_n_ge */
+val_t NEW_AGeMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AGeMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AGeMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AGeMethid();
+  parser_prod___AGeMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AGeMethid___init_agemethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AGeMethid();
+  parser_prod___AGeMethid___init_agemethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ALtMethid[74] = {
+  {(int) 3467 /* 0: Identity */},
+  {(int) 3 /* 1: ALtMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ALtMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ALtMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ALtMethid < PMethid: superclass typecheck marker */},
+  {(int) 3467 /* 5: ALtMethid < ALtMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ALtMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ALtMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ALtMethid___visit_all},
+  {(int) parser_prod___ALtMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ALtMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ALtMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ALtMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ALtMethid___empty_init},
+  {(int) parser_prod___ALtMethid___init_altmethid},
+  {(int) 4 /* 71: ALtMethid < ALtMethid: superclass init_table position */},
+  {(int) parser_nodes___ALtMethid___n_lt},
+  {(int) parser_prod___ALtMethid___n_lt__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ALtMethid::_parent */
+/* 2: Attribute ALtMethid::_first_token */
+/* 3: Attribute ALtMethid::_last_token */
+/* 4: Attribute ALtMethid::_name */
+/* 5: Attribute ALtMethid::_n_lt */
+val_t NEW_ALtMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ALtMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ALtMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ALtMethid();
+  parser_prod___ALtMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ALtMethid___init_altmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ALtMethid();
+  parser_prod___ALtMethid___init_altmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AGtMethid[74] = {
+  {(int) 3503 /* 0: Identity */},
+  {(int) 3 /* 1: AGtMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AGtMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AGtMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AGtMethid < PMethid: superclass typecheck marker */},
+  {(int) 3503 /* 5: AGtMethid < AGtMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AGtMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AGtMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AGtMethid___visit_all},
+  {(int) parser_prod___AGtMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AGtMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AGtMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AGtMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AGtMethid___empty_init},
+  {(int) parser_prod___AGtMethid___init_agtmethid},
+  {(int) 4 /* 71: AGtMethid < AGtMethid: superclass init_table position */},
+  {(int) parser_nodes___AGtMethid___n_gt},
+  {(int) parser_prod___AGtMethid___n_gt__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AGtMethid::_parent */
+/* 2: Attribute AGtMethid::_first_token */
+/* 3: Attribute AGtMethid::_last_token */
+/* 4: Attribute AGtMethid::_name */
+/* 5: Attribute AGtMethid::_n_gt */
+val_t NEW_AGtMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AGtMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AGtMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AGtMethid();
+  parser_prod___AGtMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AGtMethid___init_agtmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AGtMethid();
+  parser_prod___AGtMethid___init_agtmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABraMethid[76] = {
+  {(int) 3555 /* 0: Identity */},
+  {(int) 3 /* 1: ABraMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ABraMethid < PMethid: superclass typecheck marker */},
+  {(int) 3555 /* 5: ABraMethid < ABraMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ABraMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABraMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABraMethid___visit_all},
+  {(int) parser_prod___ABraMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ABraMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ABraMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ABraMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ABraMethid___empty_init},
+  {(int) parser_prod___ABraMethid___init_abramethid},
+  {(int) 4 /* 71: ABraMethid < ABraMethid: superclass init_table position */},
+  {(int) parser_nodes___ABraMethid___n_obra},
+  {(int) parser_prod___ABraMethid___n_obra__eq},
+  {(int) parser_nodes___ABraMethid___n_cbra},
+  {(int) parser_prod___ABraMethid___n_cbra__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraMethid::_parent */
+/* 2: Attribute ABraMethid::_first_token */
+/* 3: Attribute ABraMethid::_last_token */
+/* 4: Attribute ABraMethid::_name */
+/* 5: Attribute ABraMethid::_n_obra */
+/* 6: Attribute ABraMethid::_n_cbra */
+val_t NEW_ABraMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ABraMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABraMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABraMethid();
+  parser_prod___ABraMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABraMethid();
+  parser_prod___ABraMethid___init_abramethid(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStarshipMethid[74] = {
+  {(int) 3359 /* 0: Identity */},
+  {(int) 3 /* 1: AStarshipMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStarshipMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStarshipMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AStarshipMethid < PMethid: superclass typecheck marker */},
+  {(int) 3359 /* 5: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AStarshipMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStarshipMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStarshipMethid___visit_all},
+  {(int) parser_prod___AStarshipMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AStarshipMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AStarshipMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AStarshipMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AStarshipMethid___empty_init},
+  {(int) parser_prod___AStarshipMethid___init_astarshipmethid},
+  {(int) 4 /* 71: AStarshipMethid < AStarshipMethid: superclass init_table position */},
+  {(int) parser_nodes___AStarshipMethid___n_starship},
+  {(int) parser_prod___AStarshipMethid___n_starship__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStarshipMethid::_parent */
+/* 2: Attribute AStarshipMethid::_first_token */
+/* 3: Attribute AStarshipMethid::_last_token */
+/* 4: Attribute AStarshipMethid::_name */
+/* 5: Attribute AStarshipMethid::_n_starship */
+val_t NEW_AStarshipMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AStarshipMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStarshipMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AStarshipMethid();
+  parser_prod___AStarshipMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AStarshipMethid();
+  parser_prod___AStarshipMethid___init_astarshipmethid(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAssignMethid[76] = {
+  {(int) 3579 /* 0: Identity */},
+  {(int) 3 /* 1: AAssignMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAssignMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAssignMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: AAssignMethid < PMethid: superclass typecheck marker */},
+  {(int) 3579 /* 5: AAssignMethid < AAssignMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAssignMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAssignMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAssignMethid___visit_all},
+  {(int) parser_prod___AAssignMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAssignMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAssignMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: AAssignMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___AAssignMethid___empty_init},
+  {(int) parser_prod___AAssignMethid___init_aassignmethid},
+  {(int) 4 /* 71: AAssignMethid < AAssignMethid: superclass init_table position */},
+  {(int) parser_nodes___AAssignMethid___n_id},
+  {(int) parser_prod___AAssignMethid___n_id__eq},
+  {(int) parser_nodes___AAssignMethid___n_assign},
+  {(int) parser_prod___AAssignMethid___n_assign__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAssignMethid::_parent */
+/* 2: Attribute AAssignMethid::_first_token */
+/* 3: Attribute AAssignMethid::_last_token */
+/* 4: Attribute AAssignMethid::_name */
+/* 5: Attribute AAssignMethid::_n_id */
+/* 6: Attribute AAssignMethid::_n_assign */
+val_t NEW_AAssignMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AAssignMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAssignMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAssignMethid();
+  parser_prod___AAssignMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAssignMethid();
+  parser_prod___AAssignMethid___init_aassignmethid(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABraassignMethid[78] = {
+  {(int) 3551 /* 0: Identity */},
+  {(int) 3 /* 1: ABraassignMethid < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraassignMethid < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraassignMethid < Prod: superclass typecheck marker */},
+  {(int) 3067 /* 4: ABraassignMethid < PMethid: superclass typecheck marker */},
+  {(int) 3551 /* 5: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ABraassignMethid < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PMethid___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABraassignMethid___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABraassignMethid___visit_all},
+  {(int) parser_prod___ABraassignMethid___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ABraassignMethid < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ABraassignMethid < Prod: superclass init_table position */},
+  {(int) mmbuilder___PMethid___name},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) 3 /* 68: ABraassignMethid < PMethid: superclass init_table position */},
+  {(int) parser_prod___ABraassignMethid___empty_init},
+  {(int) parser_prod___ABraassignMethid___init_abraassignmethid},
+  {(int) 4 /* 71: ABraassignMethid < ABraassignMethid: superclass init_table position */},
+  {(int) parser_nodes___ABraassignMethid___n_obra},
+  {(int) parser_prod___ABraassignMethid___n_obra__eq},
+  {(int) parser_nodes___ABraassignMethid___n_cbra},
+  {(int) parser_prod___ABraassignMethid___n_cbra__eq},
+  {(int) parser_nodes___ABraassignMethid___n_assign},
+  {(int) parser_prod___ABraassignMethid___n_assign__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraassignMethid::_parent */
+/* 2: Attribute ABraassignMethid::_first_token */
+/* 3: Attribute ABraassignMethid::_last_token */
+/* 4: Attribute ABraassignMethid::_name */
+/* 5: Attribute ABraassignMethid::_n_obra */
+/* 6: Attribute ABraassignMethid::_n_cbra */
+/* 7: Attribute ABraassignMethid::_n_assign */
+val_t NEW_ABraassignMethid(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ABraassignMethid;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABraassignMethid___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABraassignMethid();
+  parser_prod___ABraassignMethid___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABraassignMethid();
+  parser_prod___ABraassignMethid___init_abraassignmethid(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASignature[76] = {
+  {(int) 3371 /* 0: Identity */},
+  {(int) 3 /* 1: ASignature < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASignature < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASignature < Prod: superclass typecheck marker */},
+  {(int) 3043 /* 4: ASignature < PSignature: superclass typecheck marker */},
+  {(int) 3371 /* 5: ASignature < ASignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASignature < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___ASignature___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASignature___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASignature___visit_all},
+  {(int) parser_prod___ASignature___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASignature < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASignature < Prod: superclass init_table position */},
+  {(int) mmbuilder___ASignature___check_visibility},
+  {(int) 3 /* 67: ASignature < PSignature: superclass init_table position */},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) parser_prod___ASignature___empty_init},
+  {(int) parser_prod___ASignature___init_asignature},
+  {(int) 4 /* 71: ASignature < ASignature: superclass init_table position */},
+  {(int) parser_nodes___ASignature___n_params},
+  {(int) parser_nodes___ASignature___n_params__eq},
+  {(int) parser_nodes___ASignature___n_type},
+  {(int) parser_prod___ASignature___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASignature::_parent */
+/* 2: Attribute ASignature::_first_token */
+/* 3: Attribute ASignature::_last_token */
+/* 4: Attribute ASignature::_n_params */
+/* 5: Attribute ASignature::_n_type */
+val_t NEW_ASignature(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ASignature;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASignature___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASignature();
+  parser_prod___ASignature___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASignature___init_asignature(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASignature();
+  parser_prod___ASignature___init_asignature(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AParam[82] = {
+  {(int) 3427 /* 0: Identity */},
+  {(int) 3 /* 1: AParam < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AParam < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AParam < Prod: superclass typecheck marker */},
+  {(int) 3055 /* 4: AParam < PParam: superclass typecheck marker */},
+  {(int) 3427 /* 5: AParam < AParam: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AParam < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PParam___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AParam___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AParam___visit_all},
+  {(int) parser_prod___AParam___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AParam < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PParam___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AParam < Prod: superclass init_table position */},
+  {(int) mmbuilder___PParam___stype},
+  {(int) mmbuilder___PParam___stype__eq},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) mmbuilder___AParam___is_vararg},
+  {(int) mmbuilder___PParam___position},
+  {(int) mmbuilder___PParam___variable},
+  {(int) 3 /* 72: AParam < PParam: superclass init_table position */},
+  {(int) parser_nodes___PParam___n_id},
+  {(int) parser_prod___AParam___n_id__eq},
+  {(int) parser_nodes___PParam___n_type},
+  {(int) parser_prod___AParam___n_type__eq},
+  {(int) parser_prod___AParam___empty_init},
+  {(int) parser_prod___AParam___init_aparam},
+  {(int) 4 /* 79: AParam < AParam: superclass init_table position */},
+  {(int) parser_nodes___AParam___n_dotdotdot},
+  {(int) parser_prod___AParam___n_dotdotdot__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AParam::_parent */
+/* 2: Attribute AParam::_first_token */
+/* 3: Attribute AParam::_last_token */
+/* 4: Attribute AParam::_position */
+/* 5: Attribute AParam::_variable */
+/* 6: Attribute AParam::_stype */
+/* 7: Attribute AParam::_n_id */
+/* 8: Attribute AParam::_n_type */
+/* 9: Attribute AParam::_n_dotdotdot */
+val_t NEW_AParam(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AParam;
+  ATTR_mmbuilder___PParam____position(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AParam___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AParam();
+  parser_prod___AParam___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AParam();
+  parser_prod___AParam___init_aparam(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AType[80] = {
+  {(int) 3339 /* 0: Identity */},
+  {(int) 3 /* 1: AType < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AType < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AType < Prod: superclass typecheck marker */},
+  {(int) 3035 /* 4: AType < PType: superclass typecheck marker */},
+  {(int) 3339 /* 5: AType < AType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AType < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AType___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AType___visit_all},
+  {(int) parser_prod___AType___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AType < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PType___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AType < Prod: superclass init_table position */},
+  {(int) mmbuilder___AType___check_visibility},
+  {(int) syntax_base___AType___get_local_class},
+  {(int) syntax_base___AType___get_stype},
+  {(int) syntax_base___AType___get_unchecked_stype},
+  {(int) syntax_base___AType___check_conform},
+  {(int) 3 /* 71: AType < PType: superclass init_table position */},
+  {(int) typing___PType___stype},
+  {(int) parser_prod___AType___empty_init},
+  {(int) parser_prod___AType___init_atype},
+  {(int) 4 /* 75: AType < AType: superclass init_table position */},
+  {(int) parser_nodes___AType___n_id},
+  {(int) parser_prod___AType___n_id__eq},
+  {(int) parser_nodes___AType___n_types},
+  {(int) parser_nodes___AType___n_types__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AType::_parent */
+/* 2: Attribute AType::_first_token */
+/* 3: Attribute AType::_last_token */
+/* 4: Attribute AType::_stype */
+/* 5: Attribute AType::_stype_cache */
+/* 6: Attribute AType::_stype_cached */
+/* 7: Attribute AType::_n_id */
+/* 8: Attribute AType::_n_types */
+val_t NEW_AType(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AType;
+  ATTR_syntax_base___AType____stype_cached(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AType___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AType();
+  parser_prod___AType___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AType___init_atype(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AType();
+  parser_prod___AType___init_atype(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABlockExpr[81] = {
+  {(int) 3563 /* 0: Identity */},
+  {(int) 3 /* 1: ABlockExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABlockExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABlockExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABlockExpr < PExpr: superclass typecheck marker */},
+  {(int) 3563 /* 5: ABlockExpr < ABlockExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ABlockExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABlockExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABlockExpr___visit_all},
+  {(int) parser_prod___ABlockExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ABlockExpr < PNode: superclass init_table position */},
+  {(int) control_flow___ABlockExpr___accept_control_flow},
+  {(int) typing___ABlockExpr___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ABlockExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ABlockExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ABlockExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ABlockExpr___empty_init},
+  {(int) parser_prod___ABlockExpr___init_ablockexpr},
+  {(int) 4 /* 77: ABlockExpr < ABlockExpr: superclass init_table position */},
+  {(int) parser_nodes___ABlockExpr___n_expr},
+  {(int) parser_nodes___ABlockExpr___n_expr__eq},
+  {(int) typing___PNode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABlockExpr::_parent */
+/* 2: Attribute ABlockExpr::_first_token */
+/* 3: Attribute ABlockExpr::_last_token */
+/* 4: Attribute ABlockExpr::_stype */
+/* 5: Attribute ABlockExpr::_if_true_variable_ctx */
+/* 6: Attribute ABlockExpr::_n_expr */
+val_t NEW_ABlockExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ABlockExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABlockExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABlockExpr();
+  parser_prod___ABlockExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABlockExpr___init_ablockexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ABlockExpr();
+  parser_prod___ABlockExpr___init_ablockexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AVardeclExpr[89] = {
+  {(int) 3323 /* 0: Identity */},
+  {(int) 3 /* 1: AVardeclExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AVardeclExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AVardeclExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AVardeclExpr < PExpr: superclass typecheck marker */},
+  {(int) 3323 /* 5: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AVardeclExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AVardeclExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AVardeclExpr___visit_all},
+  {(int) parser_prod___AVardeclExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AVardeclExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AVardeclExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AVardeclExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___AVardeclExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AVardeclExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AVardeclExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AVardeclExpr___variable},
+  {(int) parser_prod___AVardeclExpr___empty_init},
+  {(int) parser_prod___AVardeclExpr___init_avardeclexpr},
+  {(int) 4 /* 78: AVardeclExpr < AVardeclExpr: superclass init_table position */},
+  {(int) parser_nodes___AVardeclExpr___n_kwvar},
+  {(int) parser_prod___AVardeclExpr___n_kwvar__eq},
+  {(int) parser_nodes___AVardeclExpr___n_id},
+  {(int) parser_prod___AVardeclExpr___n_id__eq},
+  {(int) parser_nodes___AVardeclExpr___n_type},
+  {(int) parser_prod___AVardeclExpr___n_type__eq},
+  {(int) parser_nodes___AVardeclExpr___n_assign},
+  {(int) parser_prod___AVardeclExpr___n_assign__eq},
+  {(int) parser_nodes___AVardeclExpr___n_expr},
+  {(int) parser_prod___AVardeclExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AVardeclExpr::_parent */
+/* 2: Attribute AVardeclExpr::_first_token */
+/* 3: Attribute AVardeclExpr::_last_token */
+/* 4: Attribute AVardeclExpr::_stype */
+/* 5: Attribute AVardeclExpr::_if_true_variable_ctx */
+/* 6: Attribute AVardeclExpr::_variable */
+/* 7: Attribute AVardeclExpr::_n_kwvar */
+/* 8: Attribute AVardeclExpr::_n_id */
+/* 9: Attribute AVardeclExpr::_n_type */
+/* 10: Attribute AVardeclExpr::_n_assign */
+/* 11: Attribute AVardeclExpr::_n_expr */
+val_t NEW_AVardeclExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_AVardeclExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AVardeclExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AVardeclExpr();
+  parser_prod___AVardeclExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AVardeclExpr();
+  parser_prod___AVardeclExpr___init_avardeclexpr(self, p0, p1, p2, p3, p4, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AReturnExpr[83] = {
+  {(int) 3379 /* 0: Identity */},
+  {(int) 3 /* 1: AReturnExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AReturnExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AReturnExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AReturnExpr < PExpr: superclass typecheck marker */},
+  {(int) 3379 /* 5: AReturnExpr < AReturnExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AReturnExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AReturnExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AReturnExpr___visit_all},
+  {(int) parser_prod___AReturnExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AReturnExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AReturnExpr___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AReturnExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AReturnExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AReturnExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AReturnExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AReturnExpr___empty_init},
+  {(int) parser_prod___AReturnExpr___init_areturnexpr},
+  {(int) 4 /* 78: AReturnExpr < AReturnExpr: superclass init_table position */},
+  {(int) parser_nodes___AReturnExpr___n_kwreturn},
+  {(int) parser_prod___AReturnExpr___n_kwreturn__eq},
+  {(int) parser_nodes___AReturnExpr___n_expr},
+  {(int) parser_prod___AReturnExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AReturnExpr::_parent */
+/* 2: Attribute AReturnExpr::_first_token */
+/* 3: Attribute AReturnExpr::_last_token */
+/* 4: Attribute AReturnExpr::_stype */
+/* 5: Attribute AReturnExpr::_if_true_variable_ctx */
+/* 6: Attribute AReturnExpr::_n_kwreturn */
+/* 7: Attribute AReturnExpr::_n_expr */
+val_t NEW_AReturnExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AReturnExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AReturnExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AReturnExpr();
+  parser_prod___AReturnExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AReturnExpr();
+  parser_prod___AReturnExpr___init_areturnexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABreakExpr[83] = {
+  {(int) 3751 /* 0: Identity */},
+  {(int) 3 /* 1: ABreakExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABreakExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABreakExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABreakExpr < PExpr: superclass typecheck marker */},
+  {(int) 3567 /* 5: ABreakExpr < ABlockControler: superclass typecheck marker */},
+  {(int) 3751 /* 6: ABreakExpr < ABreakExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: ABreakExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABreakExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABreakExpr___visit_all},
+  {(int) parser_prod___ABreakExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: ABreakExpr < PNode: superclass init_table position */},
+  {(int) control_flow___ABreakExpr___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: ABreakExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ABreakExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: ABreakExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ABreakExpr < ABlockControler: superclass init_table position */},
+  {(int) control_flow___ABlockControler___block},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___ABreakExpr___empty_init},
+  {(int) parser_prod___ABreakExpr___init_abreakexpr},
+  {(int) 5 /* 80: ABreakExpr < ABreakExpr: superclass init_table position */},
+  {(int) parser_nodes___ABreakExpr___n_kwbreak},
+  {(int) parser_prod___ABreakExpr___n_kwbreak__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABreakExpr::_parent */
+/* 2: Attribute ABreakExpr::_first_token */
+/* 3: Attribute ABreakExpr::_last_token */
+/* 4: Attribute ABreakExpr::_stype */
+/* 5: Attribute ABreakExpr::_if_true_variable_ctx */
+/* 6: Attribute ABreakExpr::_block */
+/* 7: Attribute ABreakExpr::_n_kwbreak */
+val_t NEW_ABreakExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ABreakExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABreakExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABreakExpr();
+  parser_prod___ABreakExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABreakExpr___init_abreakexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABreakExpr();
+  parser_prod___ABreakExpr___init_abreakexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAbortExpr[81] = {
+  {(int) 3603 /* 0: Identity */},
+  {(int) 3 /* 1: AAbortExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAbortExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAbortExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAbortExpr < PExpr: superclass typecheck marker */},
+  {(int) 3603 /* 5: AAbortExpr < AAbortExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAbortExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAbortExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAbortExpr___visit_all},
+  {(int) parser_prod___AAbortExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAbortExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AAbortExpr___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAbortExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AAbortExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAbortExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AAbortExpr___empty_init},
+  {(int) parser_prod___AAbortExpr___init_aabortexpr},
+  {(int) 4 /* 78: AAbortExpr < AAbortExpr: superclass init_table position */},
+  {(int) parser_nodes___AAbortExpr___n_kwabort},
+  {(int) parser_prod___AAbortExpr___n_kwabort__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAbortExpr::_parent */
+/* 2: Attribute AAbortExpr::_first_token */
+/* 3: Attribute AAbortExpr::_last_token */
+/* 4: Attribute AAbortExpr::_stype */
+/* 5: Attribute AAbortExpr::_if_true_variable_ctx */
+/* 6: Attribute AAbortExpr::_n_kwabort */
+val_t NEW_AAbortExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AAbortExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAbortExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAbortExpr();
+  parser_prod___AAbortExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAbortExpr___init_aabortexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAbortExpr();
+  parser_prod___AAbortExpr___init_aabortexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AContinueExpr[83] = {
+  {(int) 3743 /* 0: Identity */},
+  {(int) 3 /* 1: AContinueExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AContinueExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AContinueExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AContinueExpr < PExpr: superclass typecheck marker */},
+  {(int) 3567 /* 5: AContinueExpr < ABlockControler: superclass typecheck marker */},
+  {(int) 3743 /* 6: AContinueExpr < AContinueExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: AContinueExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AContinueExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AContinueExpr___visit_all},
+  {(int) parser_prod___AContinueExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: AContinueExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AContinueExpr___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: AContinueExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AContinueExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: AContinueExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AContinueExpr < ABlockControler: superclass init_table position */},
+  {(int) control_flow___ABlockControler___block},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AContinueExpr___empty_init},
+  {(int) parser_prod___AContinueExpr___init_acontinueexpr},
+  {(int) 5 /* 80: AContinueExpr < AContinueExpr: superclass init_table position */},
+  {(int) parser_nodes___AContinueExpr___n_kwcontinue},
+  {(int) parser_prod___AContinueExpr___n_kwcontinue__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AContinueExpr::_parent */
+/* 2: Attribute AContinueExpr::_first_token */
+/* 3: Attribute AContinueExpr::_last_token */
+/* 4: Attribute AContinueExpr::_stype */
+/* 5: Attribute AContinueExpr::_if_true_variable_ctx */
+/* 6: Attribute AContinueExpr::_block */
+/* 7: Attribute AContinueExpr::_n_kwcontinue */
+val_t NEW_AContinueExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AContinueExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AContinueExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AContinueExpr();
+  parser_prod___AContinueExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AContinueExpr___init_acontinueexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AContinueExpr();
+  parser_prod___AContinueExpr___init_acontinueexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ADoExpr[82] = {
+  {(int) 3531 /* 0: Identity */},
+  {(int) 3 /* 1: ADoExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ADoExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ADoExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ADoExpr < PExpr: superclass typecheck marker */},
+  {(int) 3531 /* 5: ADoExpr < ADoExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ADoExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ADoExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ADoExpr___visit_all},
+  {(int) parser_prod___ADoExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ADoExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ADoExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ADoExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ADoExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ADoExpr___empty_init},
+  {(int) parser_prod___ADoExpr___init_adoexpr},
+  {(int) 4 /* 77: ADoExpr < ADoExpr: superclass init_table position */},
+  {(int) parser_nodes___ADoExpr___n_kwdo},
+  {(int) parser_prod___ADoExpr___n_kwdo__eq},
+  {(int) parser_nodes___ADoExpr___n_block},
+  {(int) parser_prod___ADoExpr___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ADoExpr::_parent */
+/* 2: Attribute ADoExpr::_first_token */
+/* 3: Attribute ADoExpr::_last_token */
+/* 4: Attribute ADoExpr::_stype */
+/* 5: Attribute ADoExpr::_if_true_variable_ctx */
+/* 6: Attribute ADoExpr::_n_kwdo */
+/* 7: Attribute ADoExpr::_n_block */
+val_t NEW_ADoExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ADoExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ADoExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ADoExpr();
+  parser_prod___ADoExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ADoExpr();
+  parser_prod___ADoExpr___init_adoexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIfExpr[86] = {
+  {(int) 3495 /* 0: Identity */},
+  {(int) 3 /* 1: AIfExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIfExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIfExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AIfExpr < PExpr: superclass typecheck marker */},
+  {(int) 3495 /* 5: AIfExpr < AIfExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIfExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIfExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIfExpr___visit_all},
+  {(int) parser_prod___AIfExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIfExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AIfExpr___accept_control_flow},
+  {(int) typing___AIfExpr___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIfExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AIfExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AIfExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AIfExpr___empty_init},
+  {(int) parser_prod___AIfExpr___init_aifexpr},
+  {(int) 4 /* 77: AIfExpr < AIfExpr: superclass init_table position */},
+  {(int) parser_nodes___AIfExpr___n_kwif},
+  {(int) parser_prod___AIfExpr___n_kwif__eq},
+  {(int) parser_nodes___AIfExpr___n_expr},
+  {(int) parser_prod___AIfExpr___n_expr__eq},
+  {(int) parser_nodes___AIfExpr___n_then},
+  {(int) parser_prod___AIfExpr___n_then__eq},
+  {(int) parser_nodes___AIfExpr___n_else},
+  {(int) parser_prod___AIfExpr___n_else__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIfExpr::_parent */
+/* 2: Attribute AIfExpr::_first_token */
+/* 3: Attribute AIfExpr::_last_token */
+/* 4: Attribute AIfExpr::_stype */
+/* 5: Attribute AIfExpr::_if_true_variable_ctx */
+/* 6: Attribute AIfExpr::_n_kwif */
+/* 7: Attribute AIfExpr::_n_expr */
+/* 8: Attribute AIfExpr::_n_then */
+/* 9: Attribute AIfExpr::_n_else */
+val_t NEW_AIfExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AIfExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIfExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIfExpr();
+  parser_prod___AIfExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIfExpr();
+  parser_prod___AIfExpr___init_aifexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIfexprExpr[90] = {
+  {(int) 3491 /* 0: Identity */},
+  {(int) 3 /* 1: AIfexprExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIfexprExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIfexprExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AIfexprExpr < PExpr: superclass typecheck marker */},
+  {(int) 3491 /* 5: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIfexprExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIfexprExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIfexprExpr___visit_all},
+  {(int) parser_prod___AIfexprExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIfexprExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___AIfexprExpr___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIfexprExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AIfexprExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AIfexprExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AIfexprExpr___empty_init},
+  {(int) parser_prod___AIfexprExpr___init_aifexprexpr},
+  {(int) 4 /* 77: AIfexprExpr < AIfexprExpr: superclass init_table position */},
+  {(int) parser_nodes___AIfexprExpr___n_kwif},
+  {(int) parser_prod___AIfexprExpr___n_kwif__eq},
+  {(int) parser_nodes___AIfexprExpr___n_expr},
+  {(int) parser_prod___AIfexprExpr___n_expr__eq},
+  {(int) parser_nodes___AIfexprExpr___n_kwthen},
+  {(int) parser_prod___AIfexprExpr___n_kwthen__eq},
+  {(int) parser_nodes___AIfexprExpr___n_then},
+  {(int) parser_prod___AIfexprExpr___n_then__eq},
+  {(int) parser_nodes___AIfexprExpr___n_kwelse},
+  {(int) parser_prod___AIfexprExpr___n_kwelse__eq},
+  {(int) parser_nodes___AIfexprExpr___n_else},
+  {(int) parser_prod___AIfexprExpr___n_else__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIfexprExpr::_parent */
+/* 2: Attribute AIfexprExpr::_first_token */
+/* 3: Attribute AIfexprExpr::_last_token */
+/* 4: Attribute AIfexprExpr::_stype */
+/* 5: Attribute AIfexprExpr::_if_true_variable_ctx */
+/* 6: Attribute AIfexprExpr::_n_kwif */
+/* 7: Attribute AIfexprExpr::_n_expr */
+/* 8: Attribute AIfexprExpr::_n_kwthen */
+/* 9: Attribute AIfexprExpr::_n_then */
+/* 10: Attribute AIfexprExpr::_n_kwelse */
+/* 11: Attribute AIfexprExpr::_n_else */
+val_t NEW_AIfexprExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_AIfexprExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIfexprExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIfexprExpr();
+  parser_prod___AIfexprExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIfexprExpr();
+  parser_prod___AIfexprExpr___init_aifexprexpr(self, p0, p1, p2, p3, p4, p5, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AWhileExpr[89] = {
+  {(int) 3643 /* 0: Identity */},
+  {(int) 3 /* 1: AWhileExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AWhileExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AWhileExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AWhileExpr < PExpr: superclass typecheck marker */},
+  {(int) 3535 /* 5: AWhileExpr < AControlableBlock: superclass typecheck marker */},
+  {(int) 3643 /* 6: AWhileExpr < AWhileExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: AWhileExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AWhileExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AWhileExpr___visit_all},
+  {(int) parser_prod___AWhileExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: AWhileExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AControlableBlock___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AWhileExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: AWhileExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AControlableBlock___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: AWhileExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AWhileExpr___compile_inside_block},
+  {(int) 0 /* 76: AWhileExpr < AControlableBlock: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AWhileExpr___empty_init},
+  {(int) parser_prod___AWhileExpr___init_awhileexpr},
+  {(int) 5 /* 80: AWhileExpr < AWhileExpr: superclass init_table position */},
+  {(int) parser_nodes___AWhileExpr___n_kwwhile},
+  {(int) parser_prod___AWhileExpr___n_kwwhile__eq},
+  {(int) parser_nodes___AWhileExpr___n_expr},
+  {(int) parser_prod___AWhileExpr___n_expr__eq},
+  {(int) parser_nodes___AWhileExpr___n_kwdo},
+  {(int) parser_prod___AWhileExpr___n_kwdo__eq},
+  {(int) parser_nodes___AWhileExpr___n_block},
+  {(int) parser_prod___AWhileExpr___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AWhileExpr::_parent */
+/* 2: Attribute AWhileExpr::_first_token */
+/* 3: Attribute AWhileExpr::_last_token */
+/* 4: Attribute AWhileExpr::_stype */
+/* 5: Attribute AWhileExpr::_if_true_variable_ctx */
+/* 6: Attribute AWhileExpr::_n_kwwhile */
+/* 7: Attribute AWhileExpr::_n_expr */
+/* 8: Attribute AWhileExpr::_n_kwdo */
+/* 9: Attribute AWhileExpr::_n_block */
+val_t NEW_AWhileExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AWhileExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AWhileExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AWhileExpr();
+  parser_prod___AWhileExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AWhileExpr();
+  parser_prod___AWhileExpr___init_awhileexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AForExpr[87] = {
+  {(int) 3715 /* 0: Identity */},
+  {(int) 3 /* 1: AForExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AForExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AForExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AForExpr < PExpr: superclass typecheck marker */},
+  {(int) 3535 /* 5: AForExpr < AControlableBlock: superclass typecheck marker */},
+  {(int) 3715 /* 6: AForExpr < AForExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: AForExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AForExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AForExpr___visit_all},
+  {(int) parser_prod___AForExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: AForExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AControlableBlock___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AForExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: AForExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AControlableBlock___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: AForExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AForExpr___compile_inside_block},
+  {(int) 0 /* 76: AForExpr < AControlableBlock: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AForExpr___empty_init},
+  {(int) parser_prod___AForExpr___init_aforexpr},
+  {(int) 5 /* 80: AForExpr < AForExpr: superclass init_table position */},
+  {(int) parser_nodes___AForExpr___n_vardecl},
+  {(int) parser_prod___AForExpr___n_vardecl__eq},
+  {(int) parser_nodes___AForExpr___n_kwdo},
+  {(int) parser_prod___AForExpr___n_kwdo__eq},
+  {(int) parser_nodes___AForExpr___n_block},
+  {(int) parser_prod___AForExpr___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AForExpr::_parent */
+/* 2: Attribute AForExpr::_first_token */
+/* 3: Attribute AForExpr::_last_token */
+/* 4: Attribute AForExpr::_stype */
+/* 5: Attribute AForExpr::_if_true_variable_ctx */
+/* 6: Attribute AForExpr::_n_vardecl */
+/* 7: Attribute AForExpr::_n_kwdo */
+/* 8: Attribute AForExpr::_n_block */
+val_t NEW_AForExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AForExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AForExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AForExpr();
+  parser_prod___AForExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AForExpr();
+  parser_prod___AForExpr___init_aforexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AForVardeclExpr[85] = {
+  {(int) 3515 /* 0: Identity */},
+  {(int) 3 /* 1: AForVardeclExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AForVardeclExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AForVardeclExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AForVardeclExpr < PExpr: superclass typecheck marker */},
+  {(int) 3515 /* 5: AForVardeclExpr < AForVardeclExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AForVardeclExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AForVardeclExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AForVardeclExpr___visit_all},
+  {(int) parser_prod___AForVardeclExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AForVardeclExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AForVardeclExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AForVardeclExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AForVardeclExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AForVardeclExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AForVardeclExpr___variable},
+  {(int) parser_prod___AForVardeclExpr___empty_init},
+  {(int) parser_prod___AForVardeclExpr___init_aforvardeclexpr},
+  {(int) 4 /* 78: AForVardeclExpr < AForVardeclExpr: superclass init_table position */},
+  {(int) parser_nodes___AForVardeclExpr___n_kwfor},
+  {(int) parser_prod___AForVardeclExpr___n_kwfor__eq},
+  {(int) parser_nodes___AForVardeclExpr___n_id},
+  {(int) parser_prod___AForVardeclExpr___n_id__eq},
+  {(int) parser_nodes___AForVardeclExpr___n_expr},
+  {(int) parser_prod___AForVardeclExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AForVardeclExpr::_parent */
+/* 2: Attribute AForVardeclExpr::_first_token */
+/* 3: Attribute AForVardeclExpr::_last_token */
+/* 4: Attribute AForVardeclExpr::_stype */
+/* 5: Attribute AForVardeclExpr::_if_true_variable_ctx */
+/* 6: Attribute AForVardeclExpr::_variable */
+/* 7: Attribute AForVardeclExpr::_n_kwfor */
+/* 8: Attribute AForVardeclExpr::_n_id */
+/* 9: Attribute AForVardeclExpr::_n_expr */
+val_t NEW_AForVardeclExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AForVardeclExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AForVardeclExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AForVardeclExpr();
+  parser_prod___AForVardeclExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AForVardeclExpr();
+  parser_prod___AForVardeclExpr___init_aforvardeclexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAssertExpr[84] = {
+  {(int) 3587 /* 0: Identity */},
+  {(int) 3 /* 1: AAssertExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAssertExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAssertExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAssertExpr < PExpr: superclass typecheck marker */},
+  {(int) 3587 /* 5: AAssertExpr < AAssertExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAssertExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAssertExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAssertExpr___visit_all},
+  {(int) parser_prod___AAssertExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAssertExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AAssertExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAssertExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AAssertExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAssertExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AAssertExpr___empty_init},
+  {(int) parser_prod___AAssertExpr___init_aassertexpr},
+  {(int) 4 /* 77: AAssertExpr < AAssertExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssertExpr___n_kwassert},
+  {(int) parser_prod___AAssertExpr___n_kwassert__eq},
+  {(int) parser_nodes___AAssertExpr___n_id},
+  {(int) parser_prod___AAssertExpr___n_id__eq},
+  {(int) parser_nodes___AAssertExpr___n_expr},
+  {(int) parser_prod___AAssertExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAssertExpr::_parent */
+/* 2: Attribute AAssertExpr::_first_token */
+/* 3: Attribute AAssertExpr::_last_token */
+/* 4: Attribute AAssertExpr::_stype */
+/* 5: Attribute AAssertExpr::_if_true_variable_ctx */
+/* 6: Attribute AAssertExpr::_n_kwassert */
+/* 7: Attribute AAssertExpr::_n_id */
+/* 8: Attribute AAssertExpr::_n_expr */
+val_t NEW_AAssertExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AAssertExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAssertExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAssertExpr();
+  parser_prod___AAssertExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AAssertExpr();
+  parser_prod___AAssertExpr___init_aassertexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAssignFormExpr[85] = {
+  {(int) 3583 /* 0: Identity */},
+  {(int) 3 /* 1: AAssignFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAssignFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAssignFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAssignFormExpr < PExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3583 /* 6: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAssignFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAssignFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAssignFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAssignFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 80: AAssignFormExpr < AAssignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssignFormExpr___n_assign},
+  {(int) parser_nodes___AAssignFormExpr___n_assign__eq},
+  {(int) parser_nodes___AAssignFormExpr___n_value},
+  {(int) parser_nodes___AAssignFormExpr___n_value__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAssignFormExpr::_parent */
+/* 2: Attribute AAssignFormExpr::_first_token */
+/* 3: Attribute AAssignFormExpr::_last_token */
+/* 4: Attribute AAssignFormExpr::_stype */
+/* 5: Attribute AAssignFormExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 8: Attribute AAssignFormExpr::_n_assign */
+/* 9: Attribute AAssignFormExpr::_n_value */
+val_t NEW_AAssignFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AAssignFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AReassignFormExpr[87] = {
+  {(int) 3383 /* 0: Identity */},
+  {(int) 3 /* 1: AReassignFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AReassignFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AReassignFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AReassignFormExpr < PExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3383 /* 6: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AReassignFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AReassignFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AReassignFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AReassignFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 4 /* 82: AReassignFormExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_nodes___AReassignFormExpr___n_value__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AReassignFormExpr::_parent */
+/* 2: Attribute AReassignFormExpr::_first_token */
+/* 3: Attribute AReassignFormExpr::_last_token */
+/* 4: Attribute AReassignFormExpr::_stype */
+/* 5: Attribute AReassignFormExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 8: Attribute AReassignFormExpr::_assign_method */
+/* 9: Attribute AReassignFormExpr::_n_assign_op */
+/* 10: Attribute AReassignFormExpr::_n_value */
+val_t NEW_AReassignFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_AReassignFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AOnceExpr[84] = {
+  {(int) 3687 /* 0: Identity */},
+  {(int) 3 /* 1: AOnceExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AOnceExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AOnceExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AOnceExpr < PExpr: superclass typecheck marker */},
+  {(int) 3403 /* 5: AOnceExpr < AProxyExpr: superclass typecheck marker */},
+  {(int) 3687 /* 6: AOnceExpr < AOnceExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: AOnceExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AOnceExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AOnceExpr___visit_all},
+  {(int) parser_prod___AOnceExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: AOnceExpr < PNode: superclass init_table position */},
+  {(int) control_flow___AOnceExpr___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AProxyExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: AOnceExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AOnceExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: AOnceExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AOnceExpr < AProxyExpr: superclass init_table position */},
+  {(int) parser_nodes___AProxyExpr___n_expr},
+  {(int) parser_prod___AOnceExpr___n_expr__eq},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) parser_prod___AOnceExpr___empty_init},
+  {(int) parser_prod___AOnceExpr___init_aonceexpr},
+  {(int) 5 /* 81: AOnceExpr < AOnceExpr: superclass init_table position */},
+  {(int) parser_nodes___AOnceExpr___n_kwonce},
+  {(int) parser_prod___AOnceExpr___n_kwonce__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AOnceExpr::_parent */
+/* 2: Attribute AOnceExpr::_first_token */
+/* 3: Attribute AOnceExpr::_last_token */
+/* 4: Attribute AOnceExpr::_stype */
+/* 5: Attribute AOnceExpr::_if_true_variable_ctx */
+/* 6: Attribute AOnceExpr::_n_expr */
+/* 7: Attribute AOnceExpr::_n_kwonce */
+val_t NEW_AOnceExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AOnceExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AOnceExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOnceExpr();
+  parser_prod___AOnceExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOnceExpr();
+  parser_prod___AOnceExpr___init_aonceexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASendExpr[101] = {
+  {(int) 3791 /* 0: Identity */},
+  {(int) 3 /* 1: ASendExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASendExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASendExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASendExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ASendExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ASendExpr < ASendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ASendExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASendExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASendExpr___visit_all},
+  {(int) parser_prod___ASendExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ASendExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ASendExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ASendExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ASendExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ASendExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASendExpr___name},
+  {(int) typing___ASendExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ASendExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ASendExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASendExpr::_parent */
+/* 2: Attribute ASendExpr::_first_token */
+/* 3: Attribute ASendExpr::_last_token */
+/* 4: Attribute ASendExpr::_stype */
+/* 5: Attribute ASendExpr::_if_true_variable_ctx */
+/* 6: Attribute ASendExpr::_prop */
+/* 7: Attribute ASendExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ASendExpr::_n_expr */
+val_t NEW_ASendExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_ASendExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASendExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASendExpr();
+  parser_prod___ASendExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASendExpr();
+  parser_prod___ASendExpr___init_asendexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABinopExpr[106] = {
+  {(int) 3823 /* 0: Identity */},
+  {(int) 3 /* 1: ABinopExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABinopExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABinopExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABinopExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ABinopExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: ABinopExpr < ABinopExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ABinopExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABinopExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABinopExpr___visit_all},
+  {(int) parser_prod___ABinopExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ABinopExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ABinopExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ABinopExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ABinopExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ABinopExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASendExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ABinopExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ABinopExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: ABinopExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___ABinopExpr___n_expr2__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABinopExpr::_parent */
+/* 2: Attribute ABinopExpr::_first_token */
+/* 3: Attribute ABinopExpr::_last_token */
+/* 4: Attribute ABinopExpr::_stype */
+/* 5: Attribute ABinopExpr::_if_true_variable_ctx */
+/* 6: Attribute ABinopExpr::_prop */
+/* 7: Attribute ABinopExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ABinopExpr::_n_expr */
+/* 12: Attribute ABinopExpr::_n_expr2 */
+val_t NEW_ABinopExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ABinopExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABinopExpr___empty_init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABinopExpr();
+  parser_prod___ABinopExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1) {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABinopExpr();
+  parser_prod___ABinopExpr___init_abinopexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABoolExpr[76] = {
+  {(int) 3559 /* 0: Identity */},
+  {(int) 3 /* 1: ABoolExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABoolExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABoolExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABoolExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: ABoolExpr < ABoolExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ABoolExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ABoolExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ABoolExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ABoolExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ABoolExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: ABoolExpr < ABoolExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABoolExpr::_parent */
+/* 2: Attribute ABoolExpr::_first_token */
+/* 3: Attribute ABoolExpr::_last_token */
+/* 4: Attribute ABoolExpr::_stype */
+/* 5: Attribute ABoolExpr::_if_true_variable_ctx */
+val_t NEW_ABoolExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ABoolExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AOrExpr[83] = {
+  {(int) 3683 /* 0: Identity */},
+  {(int) 3 /* 1: AOrExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AOrExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AOrExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AOrExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: AOrExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3683 /* 6: AOrExpr < AOrExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AOrExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AOrExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AOrExpr___visit_all},
+  {(int) parser_prod___AOrExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AOrExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AOrExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AOrExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AOrExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AOrExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AOrExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___AOrExpr___empty_init},
+  {(int) parser_prod___AOrExpr___init_aorexpr},
+  {(int) 5 /* 78: AOrExpr < AOrExpr: superclass init_table position */},
+  {(int) parser_nodes___AOrExpr___n_expr},
+  {(int) parser_prod___AOrExpr___n_expr__eq},
+  {(int) parser_nodes___AOrExpr___n_expr2},
+  {(int) parser_prod___AOrExpr___n_expr2__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AOrExpr::_parent */
+/* 2: Attribute AOrExpr::_first_token */
+/* 3: Attribute AOrExpr::_last_token */
+/* 4: Attribute AOrExpr::_stype */
+/* 5: Attribute AOrExpr::_if_true_variable_ctx */
+/* 6: Attribute AOrExpr::_n_expr */
+/* 7: Attribute AOrExpr::_n_expr2 */
+val_t NEW_AOrExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AOrExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AOrExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOrExpr();
+  parser_prod___AOrExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOrExpr();
+  parser_prod___AOrExpr___init_aorexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAndExpr[83] = {
+  {(int) 3767 /* 0: Identity */},
+  {(int) 3 /* 1: AAndExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAndExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAndExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAndExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: AAndExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3767 /* 6: AAndExpr < AAndExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAndExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAndExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAndExpr___visit_all},
+  {(int) parser_prod___AAndExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAndExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___AAndExpr___accept_typing},
+  {(int) typing___ABoolExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAndExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AAndExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAndExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AAndExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___AAndExpr___empty_init},
+  {(int) parser_prod___AAndExpr___init_aandexpr},
+  {(int) 5 /* 78: AAndExpr < AAndExpr: superclass init_table position */},
+  {(int) parser_nodes___AAndExpr___n_expr},
+  {(int) parser_prod___AAndExpr___n_expr__eq},
+  {(int) parser_nodes___AAndExpr___n_expr2},
+  {(int) parser_prod___AAndExpr___n_expr2__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAndExpr::_parent */
+/* 2: Attribute AAndExpr::_first_token */
+/* 3: Attribute AAndExpr::_last_token */
+/* 4: Attribute AAndExpr::_stype */
+/* 5: Attribute AAndExpr::_if_true_variable_ctx */
+/* 6: Attribute AAndExpr::_n_expr */
+/* 7: Attribute AAndExpr::_n_expr2 */
+val_t NEW_AAndExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AAndExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAndExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAndExpr();
+  parser_prod___AAndExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAndExpr();
+  parser_prod___AAndExpr___init_aandexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANotExpr[83] = {
+  {(int) 3691 /* 0: Identity */},
+  {(int) 3 /* 1: ANotExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANotExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANotExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ANotExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: ANotExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3691 /* 6: ANotExpr < ANotExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ANotExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANotExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANotExpr___visit_all},
+  {(int) parser_prod___ANotExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ANotExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ANotExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ANotExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ANotExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ANotExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: ANotExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___ANotExpr___empty_init},
+  {(int) parser_prod___ANotExpr___init_anotexpr},
+  {(int) 5 /* 78: ANotExpr < ANotExpr: superclass init_table position */},
+  {(int) parser_nodes___ANotExpr___n_kwnot},
+  {(int) parser_prod___ANotExpr___n_kwnot__eq},
+  {(int) parser_nodes___ANotExpr___n_expr},
+  {(int) parser_prod___ANotExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANotExpr::_parent */
+/* 2: Attribute ANotExpr::_first_token */
+/* 3: Attribute ANotExpr::_last_token */
+/* 4: Attribute ANotExpr::_stype */
+/* 5: Attribute ANotExpr::_if_true_variable_ctx */
+/* 6: Attribute ANotExpr::_n_kwnot */
+/* 7: Attribute ANotExpr::_n_expr */
+val_t NEW_ANotExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ANotExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANotExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANotExpr();
+  parser_prod___ANotExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANotExpr();
+  parser_prod___ANotExpr___init_anotexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AEqExpr[109] = {
+  {(int) 3871 /* 0: Identity */},
+  {(int) 3 /* 1: AEqExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AEqExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AEqExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AEqExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AEqExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AEqExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AEqExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3871 /* 10: AEqExpr < AEqExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AEqExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AEqExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AEqExpr___visit_all},
+  {(int) parser_prod___AEqExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AEqExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AEqExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AEqExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AEqExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AEqExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AEqExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AEqExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AEqExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AEqExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AEqExpr___n_expr2__eq},
+  {(int) parser_prod___AEqExpr___empty_init},
+  {(int) parser_prod___AEqExpr___init_aeqexpr},
+  {(int) 8 /* 108: AEqExpr < AEqExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AEqExpr::_parent */
+/* 2: Attribute AEqExpr::_first_token */
+/* 3: Attribute AEqExpr::_last_token */
+/* 4: Attribute AEqExpr::_stype */
+/* 5: Attribute AEqExpr::_if_true_variable_ctx */
+/* 6: Attribute AEqExpr::_prop */
+/* 7: Attribute AEqExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AEqExpr::_n_expr */
+/* 12: Attribute AEqExpr::_n_expr2 */
+val_t NEW_AEqExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AEqExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AEqExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEqExpr();
+  parser_prod___AEqExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEqExpr();
+  parser_prod___AEqExpr___init_aeqexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AEeExpr[83] = {
+  {(int) 3731 /* 0: Identity */},
+  {(int) 3 /* 1: AEeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AEeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AEeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AEeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: AEeExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3731 /* 6: AEeExpr < AEeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AEeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AEeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AEeExpr___visit_all},
+  {(int) parser_prod___AEeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AEeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ABoolExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AEeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AEeExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AEeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AEeExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___AEeExpr___empty_init},
+  {(int) parser_prod___AEeExpr___init_aeeexpr},
+  {(int) 5 /* 78: AEeExpr < AEeExpr: superclass init_table position */},
+  {(int) parser_nodes___AEeExpr___n_expr},
+  {(int) parser_prod___AEeExpr___n_expr__eq},
+  {(int) parser_nodes___AEeExpr___n_expr2},
+  {(int) parser_prod___AEeExpr___n_expr2__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AEeExpr::_parent */
+/* 2: Attribute AEeExpr::_first_token */
+/* 3: Attribute AEeExpr::_last_token */
+/* 4: Attribute AEeExpr::_stype */
+/* 5: Attribute AEeExpr::_if_true_variable_ctx */
+/* 6: Attribute AEeExpr::_n_expr */
+/* 7: Attribute AEeExpr::_n_expr2 */
+val_t NEW_AEeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AEeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AEeExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEeExpr();
+  parser_prod___AEeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEeExpr();
+  parser_prod___AEeExpr___init_aeeexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANeExpr[109] = {
+  {(int) 3847 /* 0: Identity */},
+  {(int) 3 /* 1: ANeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ANeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ANeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ANeExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: ANeExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3847 /* 10: ANeExpr < ANeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ANeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANeExpr___visit_all},
+  {(int) parser_prod___ANeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ANeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ANeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ANeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ANeExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ANeExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ANeExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ANeExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ANeExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: ANeExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___ANeExpr___n_expr2__eq},
+  {(int) parser_prod___ANeExpr___empty_init},
+  {(int) parser_prod___ANeExpr___init_aneexpr},
+  {(int) 8 /* 108: ANeExpr < ANeExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANeExpr::_parent */
+/* 2: Attribute ANeExpr::_first_token */
+/* 3: Attribute ANeExpr::_last_token */
+/* 4: Attribute ANeExpr::_stype */
+/* 5: Attribute ANeExpr::_if_true_variable_ctx */
+/* 6: Attribute ANeExpr::_prop */
+/* 7: Attribute ANeExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ANeExpr::_n_expr */
+/* 12: Attribute ANeExpr::_n_expr2 */
+val_t NEW_ANeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ANeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANeExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANeExpr();
+  parser_prod___ANeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANeExpr();
+  parser_prod___ANeExpr___init_aneexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ALtExpr[109] = {
+  {(int) 3855 /* 0: Identity */},
+  {(int) 3 /* 1: ALtExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ALtExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ALtExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ALtExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ALtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ALtExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: ALtExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3855 /* 10: ALtExpr < ALtExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ALtExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ALtExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ALtExpr___visit_all},
+  {(int) parser_prod___ALtExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ALtExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ALtExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ALtExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ALtExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ALtExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ALtExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ALtExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ALtExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: ALtExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___ALtExpr___n_expr2__eq},
+  {(int) parser_prod___ALtExpr___empty_init},
+  {(int) parser_prod___ALtExpr___init_altexpr},
+  {(int) 8 /* 108: ALtExpr < ALtExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ALtExpr::_parent */
+/* 2: Attribute ALtExpr::_first_token */
+/* 3: Attribute ALtExpr::_last_token */
+/* 4: Attribute ALtExpr::_stype */
+/* 5: Attribute ALtExpr::_if_true_variable_ctx */
+/* 6: Attribute ALtExpr::_prop */
+/* 7: Attribute ALtExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ALtExpr::_n_expr */
+/* 12: Attribute ALtExpr::_n_expr2 */
+val_t NEW_ALtExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ALtExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ALtExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ALtExpr();
+  parser_prod___ALtExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ALtExpr();
+  parser_prod___ALtExpr___init_altexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ALeExpr[109] = {
+  {(int) 3859 /* 0: Identity */},
+  {(int) 3 /* 1: ALeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ALeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ALeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ALeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ALeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ALeExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: ALeExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3859 /* 10: ALeExpr < ALeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ALeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ALeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ALeExpr___visit_all},
+  {(int) parser_prod___ALeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ALeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ALeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ALeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ALeExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ALeExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ALeExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ALeExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ALeExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: ALeExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___ALeExpr___n_expr2__eq},
+  {(int) parser_prod___ALeExpr___empty_init},
+  {(int) parser_prod___ALeExpr___init_aleexpr},
+  {(int) 8 /* 108: ALeExpr < ALeExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ALeExpr::_parent */
+/* 2: Attribute ALeExpr::_first_token */
+/* 3: Attribute ALeExpr::_last_token */
+/* 4: Attribute ALeExpr::_stype */
+/* 5: Attribute ALeExpr::_if_true_variable_ctx */
+/* 6: Attribute ALeExpr::_prop */
+/* 7: Attribute ALeExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ALeExpr::_n_expr */
+/* 12: Attribute ALeExpr::_n_expr2 */
+val_t NEW_ALeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ALeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ALeExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ALeExpr();
+  parser_prod___ALeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ALeExpr();
+  parser_prod___ALeExpr___init_aleexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AGtExpr[109] = {
+  {(int) 3863 /* 0: Identity */},
+  {(int) 3 /* 1: AGtExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AGtExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AGtExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AGtExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AGtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AGtExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AGtExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3863 /* 10: AGtExpr < AGtExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AGtExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AGtExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AGtExpr___visit_all},
+  {(int) parser_prod___AGtExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AGtExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AGtExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AGtExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AGtExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AGtExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AGtExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AGtExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AGtExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AGtExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AGtExpr___n_expr2__eq},
+  {(int) parser_prod___AGtExpr___empty_init},
+  {(int) parser_prod___AGtExpr___init_agtexpr},
+  {(int) 8 /* 108: AGtExpr < AGtExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AGtExpr::_parent */
+/* 2: Attribute AGtExpr::_first_token */
+/* 3: Attribute AGtExpr::_last_token */
+/* 4: Attribute AGtExpr::_stype */
+/* 5: Attribute AGtExpr::_if_true_variable_ctx */
+/* 6: Attribute AGtExpr::_prop */
+/* 7: Attribute AGtExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AGtExpr::_n_expr */
+/* 12: Attribute AGtExpr::_n_expr2 */
+val_t NEW_AGtExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AGtExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AGtExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AGtExpr();
+  parser_prod___AGtExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AGtExpr();
+  parser_prod___AGtExpr___init_agtexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AGeExpr[109] = {
+  {(int) 3867 /* 0: Identity */},
+  {(int) 3 /* 1: AGeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AGeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AGeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AGeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AGeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AGeExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AGeExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3867 /* 10: AGeExpr < AGeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AGeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AGeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AGeExpr___visit_all},
+  {(int) parser_prod___AGeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AGeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AGeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AGeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AGeExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AGeExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AGeExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AGeExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AGeExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AGeExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AGeExpr___n_expr2__eq},
+  {(int) parser_prod___AGeExpr___empty_init},
+  {(int) parser_prod___AGeExpr___init_ageexpr},
+  {(int) 8 /* 108: AGeExpr < AGeExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AGeExpr::_parent */
+/* 2: Attribute AGeExpr::_first_token */
+/* 3: Attribute AGeExpr::_last_token */
+/* 4: Attribute AGeExpr::_stype */
+/* 5: Attribute AGeExpr::_if_true_variable_ctx */
+/* 6: Attribute AGeExpr::_prop */
+/* 7: Attribute AGeExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AGeExpr::_n_expr */
+/* 12: Attribute AGeExpr::_n_expr2 */
+val_t NEW_AGeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AGeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AGeExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AGeExpr();
+  parser_prod___AGeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AGeExpr();
+  parser_prod___AGeExpr___init_ageexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIsaExpr[83] = {
+  {(int) 3703 /* 0: Identity */},
+  {(int) 3 /* 1: AIsaExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIsaExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIsaExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AIsaExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: AIsaExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3703 /* 6: AIsaExpr < AIsaExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIsaExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIsaExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIsaExpr___visit_all},
+  {(int) parser_prod___AIsaExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIsaExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AIsaExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIsaExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AIsaExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AIsaExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AIsaExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___AIsaExpr___empty_init},
+  {(int) parser_prod___AIsaExpr___init_aisaexpr},
+  {(int) 5 /* 78: AIsaExpr < AIsaExpr: superclass init_table position */},
+  {(int) parser_nodes___AIsaExpr___n_expr},
+  {(int) parser_prod___AIsaExpr___n_expr__eq},
+  {(int) parser_nodes___AIsaExpr___n_type},
+  {(int) parser_prod___AIsaExpr___n_type__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIsaExpr::_parent */
+/* 2: Attribute AIsaExpr::_first_token */
+/* 3: Attribute AIsaExpr::_last_token */
+/* 4: Attribute AIsaExpr::_stype */
+/* 5: Attribute AIsaExpr::_if_true_variable_ctx */
+/* 6: Attribute AIsaExpr::_n_expr */
+/* 7: Attribute AIsaExpr::_n_type */
+val_t NEW_AIsaExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AIsaExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIsaExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AIsaExpr();
+  parser_prod___AIsaExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AIsaExpr();
+  parser_prod___AIsaExpr___init_aisaexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APlusExpr[109] = {
+  {(int) 3839 /* 0: Identity */},
+  {(int) 3 /* 1: APlusExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APlusExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APlusExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: APlusExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: APlusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: APlusExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: APlusExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3839 /* 10: APlusExpr < APlusExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: APlusExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APlusExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APlusExpr___visit_all},
+  {(int) parser_prod___APlusExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: APlusExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: APlusExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: APlusExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: APlusExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: APlusExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___APlusExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: APlusExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___APlusExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: APlusExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___APlusExpr___n_expr2__eq},
+  {(int) parser_prod___APlusExpr___empty_init},
+  {(int) parser_prod___APlusExpr___init_aplusexpr},
+  {(int) 8 /* 108: APlusExpr < APlusExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APlusExpr::_parent */
+/* 2: Attribute APlusExpr::_first_token */
+/* 3: Attribute APlusExpr::_last_token */
+/* 4: Attribute APlusExpr::_stype */
+/* 5: Attribute APlusExpr::_if_true_variable_ctx */
+/* 6: Attribute APlusExpr::_prop */
+/* 7: Attribute APlusExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute APlusExpr::_n_expr */
+/* 12: Attribute APlusExpr::_n_expr2 */
+val_t NEW_APlusExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_APlusExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APlusExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_APlusExpr();
+  parser_prod___APlusExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_APlusExpr();
+  parser_prod___APlusExpr___init_aplusexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMinusExpr[109] = {
+  {(int) 3851 /* 0: Identity */},
+  {(int) 3 /* 1: AMinusExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMinusExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMinusExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AMinusExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AMinusExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AMinusExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3851 /* 10: AMinusExpr < AMinusExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AMinusExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMinusExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMinusExpr___visit_all},
+  {(int) parser_prod___AMinusExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AMinusExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AMinusExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AMinusExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AMinusExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AMinusExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AMinusExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AMinusExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AMinusExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AMinusExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AMinusExpr___n_expr2__eq},
+  {(int) parser_prod___AMinusExpr___empty_init},
+  {(int) parser_prod___AMinusExpr___init_aminusexpr},
+  {(int) 8 /* 108: AMinusExpr < AMinusExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMinusExpr::_parent */
+/* 2: Attribute AMinusExpr::_first_token */
+/* 3: Attribute AMinusExpr::_last_token */
+/* 4: Attribute AMinusExpr::_stype */
+/* 5: Attribute AMinusExpr::_if_true_variable_ctx */
+/* 6: Attribute AMinusExpr::_prop */
+/* 7: Attribute AMinusExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AMinusExpr::_n_expr */
+/* 12: Attribute AMinusExpr::_n_expr2 */
+val_t NEW_AMinusExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AMinusExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMinusExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusExpr();
+  parser_prod___AMinusExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusExpr();
+  parser_prod___AMinusExpr___init_aminusexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStarshipExpr[109] = {
+  {(int) 3827 /* 0: Identity */},
+  {(int) 3 /* 1: AStarshipExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStarshipExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStarshipExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AStarshipExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AStarshipExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3827 /* 10: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AStarshipExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStarshipExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStarshipExpr___visit_all},
+  {(int) parser_prod___AStarshipExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AStarshipExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AStarshipExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AStarshipExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AStarshipExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AStarshipExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AStarshipExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AStarshipExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AStarshipExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AStarshipExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AStarshipExpr___n_expr2__eq},
+  {(int) parser_prod___AStarshipExpr___empty_init},
+  {(int) parser_prod___AStarshipExpr___init_astarshipexpr},
+  {(int) 8 /* 108: AStarshipExpr < AStarshipExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStarshipExpr::_parent */
+/* 2: Attribute AStarshipExpr::_first_token */
+/* 3: Attribute AStarshipExpr::_last_token */
+/* 4: Attribute AStarshipExpr::_stype */
+/* 5: Attribute AStarshipExpr::_if_true_variable_ctx */
+/* 6: Attribute AStarshipExpr::_prop */
+/* 7: Attribute AStarshipExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AStarshipExpr::_n_expr */
+/* 12: Attribute AStarshipExpr::_n_expr2 */
+val_t NEW_AStarshipExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AStarshipExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStarshipExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStarshipExpr();
+  parser_prod___AStarshipExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStarshipExpr();
+  parser_prod___AStarshipExpr___init_astarshipexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStarExpr[109] = {
+  {(int) 3831 /* 0: Identity */},
+  {(int) 3 /* 1: AStarExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStarExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStarExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AStarExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AStarExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AStarExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: AStarExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3831 /* 10: AStarExpr < AStarExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AStarExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStarExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStarExpr___visit_all},
+  {(int) parser_prod___AStarExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AStarExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AStarExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AStarExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AStarExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AStarExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AStarExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AStarExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AStarExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: AStarExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___AStarExpr___n_expr2__eq},
+  {(int) parser_prod___AStarExpr___empty_init},
+  {(int) parser_prod___AStarExpr___init_astarexpr},
+  {(int) 8 /* 108: AStarExpr < AStarExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStarExpr::_parent */
+/* 2: Attribute AStarExpr::_first_token */
+/* 3: Attribute AStarExpr::_last_token */
+/* 4: Attribute AStarExpr::_stype */
+/* 5: Attribute AStarExpr::_if_true_variable_ctx */
+/* 6: Attribute AStarExpr::_prop */
+/* 7: Attribute AStarExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AStarExpr::_n_expr */
+/* 12: Attribute AStarExpr::_n_expr2 */
+val_t NEW_AStarExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AStarExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStarExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStarExpr();
+  parser_prod___AStarExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStarExpr();
+  parser_prod___AStarExpr___init_astarexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASlashExpr[109] = {
+  {(int) 3835 /* 0: Identity */},
+  {(int) 3 /* 1: ASlashExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASlashExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASlashExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASlashExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ASlashExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: ASlashExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3835 /* 10: ASlashExpr < ASlashExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ASlashExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASlashExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASlashExpr___visit_all},
+  {(int) parser_prod___ASlashExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ASlashExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ASlashExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ASlashExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ASlashExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ASlashExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASlashExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ASlashExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ASlashExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: ASlashExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___ASlashExpr___n_expr2__eq},
+  {(int) parser_prod___ASlashExpr___empty_init},
+  {(int) parser_prod___ASlashExpr___init_aslashexpr},
+  {(int) 8 /* 108: ASlashExpr < ASlashExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASlashExpr::_parent */
+/* 2: Attribute ASlashExpr::_first_token */
+/* 3: Attribute ASlashExpr::_last_token */
+/* 4: Attribute ASlashExpr::_stype */
+/* 5: Attribute ASlashExpr::_if_true_variable_ctx */
+/* 6: Attribute ASlashExpr::_prop */
+/* 7: Attribute ASlashExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ASlashExpr::_n_expr */
+/* 12: Attribute ASlashExpr::_n_expr2 */
+val_t NEW_ASlashExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ASlashExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASlashExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASlashExpr();
+  parser_prod___ASlashExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASlashExpr();
+  parser_prod___ASlashExpr___init_aslashexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_APercentExpr[109] = {
+  {(int) 3843 /* 0: Identity */},
+  {(int) 3 /* 1: APercentExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APercentExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APercentExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: APercentExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: APercentExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: APercentExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3823 /* 9: APercentExpr < ABinopExpr: superclass typecheck marker */},
+  {(int) 3843 /* 10: APercentExpr < APercentExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: APercentExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APercentExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APercentExpr___visit_all},
+  {(int) parser_prod___APercentExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: APercentExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: APercentExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: APercentExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: APercentExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: APercentExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___APercentExpr___name},
+  {(int) typing___ABinopExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: APercentExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___APercentExpr___n_expr__eq},
+  {(int) parser_prod___ABinopExpr___empty_init},
+  {(int) parser_prod___ABinopExpr___init_abinopexpr},
+  {(int) 7 /* 103: APercentExpr < ABinopExpr: superclass init_table position */},
+  {(int) parser_nodes___ABinopExpr___n_expr2},
+  {(int) parser_prod___APercentExpr___n_expr2__eq},
+  {(int) parser_prod___APercentExpr___empty_init},
+  {(int) parser_prod___APercentExpr___init_apercentexpr},
+  {(int) 8 /* 108: APercentExpr < APercentExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APercentExpr::_parent */
+/* 2: Attribute APercentExpr::_first_token */
+/* 3: Attribute APercentExpr::_last_token */
+/* 4: Attribute APercentExpr::_stype */
+/* 5: Attribute APercentExpr::_if_true_variable_ctx */
+/* 6: Attribute APercentExpr::_prop */
+/* 7: Attribute APercentExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute APercentExpr::_n_expr */
+/* 12: Attribute APercentExpr::_n_expr2 */
+val_t NEW_APercentExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_APercentExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APercentExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_APercentExpr();
+  parser_prod___APercentExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_APercentExpr();
+  parser_prod___APercentExpr___init_apercentexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AUminusExpr[106] = {
+  {(int) 3803 /* 0: Identity */},
+  {(int) 3 /* 1: AUminusExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AUminusExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AUminusExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AUminusExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AUminusExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3803 /* 9: AUminusExpr < AUminusExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AUminusExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AUminusExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AUminusExpr___visit_all},
+  {(int) parser_prod___AUminusExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AUminusExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AUminusExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AUminusExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AUminusExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AUminusExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AUminusExpr___name},
+  {(int) typing___AUminusExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AUminusExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AUminusExpr___n_expr__eq},
+  {(int) parser_prod___AUminusExpr___empty_init},
+  {(int) parser_prod___AUminusExpr___init_auminusexpr},
+  {(int) 7 /* 103: AUminusExpr < AUminusExpr: superclass init_table position */},
+  {(int) parser_nodes___AUminusExpr___n_minus},
+  {(int) parser_prod___AUminusExpr___n_minus__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AUminusExpr::_parent */
+/* 2: Attribute AUminusExpr::_first_token */
+/* 3: Attribute AUminusExpr::_last_token */
+/* 4: Attribute AUminusExpr::_stype */
+/* 5: Attribute AUminusExpr::_if_true_variable_ctx */
+/* 6: Attribute AUminusExpr::_prop */
+/* 7: Attribute AUminusExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AUminusExpr::_n_expr */
+/* 12: Attribute AUminusExpr::_n_minus */
+val_t NEW_AUminusExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AUminusExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AUminusExpr___empty_init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AUminusExpr();
+  parser_prod___AUminusExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1) {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AUminusExpr();
+  parser_prod___AUminusExpr___init_auminusexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANewExpr[104] = {
+  {(int) 3695 /* 0: Identity */},
+  {(int) 3 /* 1: ANewExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANewExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANewExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ANewExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3695 /* 6: ANewExpr < ANewExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: ANewExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANewExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANewExpr___visit_all},
+  {(int) parser_prod___ANewExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: ANewExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ANewExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: ANewExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ANewExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: ANewExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 0 /* 87: ANewExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) parser_prod___ANewExpr___empty_init},
+  {(int) parser_prod___ANewExpr___init_anewexpr},
+  {(int) 5 /* 95: ANewExpr < ANewExpr: superclass init_table position */},
+  {(int) parser_nodes___ANewExpr___n_kwnew},
+  {(int) parser_prod___ANewExpr___n_kwnew__eq},
+  {(int) parser_nodes___ANewExpr___n_type},
+  {(int) parser_prod___ANewExpr___n_type__eq},
+  {(int) parser_nodes___ANewExpr___n_id},
+  {(int) parser_prod___ANewExpr___n_id__eq},
+  {(int) parser_nodes___ANewExpr___n_args},
+  {(int) parser_nodes___ANewExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANewExpr::_parent */
+/* 2: Attribute ANewExpr::_first_token */
+/* 3: Attribute ANewExpr::_last_token */
+/* 4: Attribute ANewExpr::_stype */
+/* 5: Attribute ANewExpr::_if_true_variable_ctx */
+/* 6: Attribute ANewExpr::_prop */
+/* 7: Attribute ANewExpr::_arguments */
+/* 8: Attribute ANewExpr::_n_kwnew */
+/* 9: Attribute ANewExpr::_n_type */
+/* 10: Attribute ANewExpr::_n_id */
+/* 11: Attribute ANewExpr::_n_args */
+val_t NEW_ANewExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_ANewExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANewExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANewExpr();
+  parser_prod___ANewExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ANewExpr();
+  parser_prod___ANewExpr___init_anewexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAttrFormExpr[94] = {
+  {(int) 3575 /* 0: Identity */},
+  {(int) 3 /* 1: AAttrFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAttrFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAttrFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAttrFormExpr < PExpr: superclass typecheck marker */},
+  {(int) 3575 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAttrFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAttrFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAttrFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAttrFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) typing___AAttrFormExpr___prop},
+  {(int) typing___AAttrFormExpr___do_typing},
+  {(int) 4 /* 89: AAttrFormExpr < AAttrFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAttrFormExpr___n_expr},
+  {(int) parser_nodes___AAttrFormExpr___n_expr__eq},
+  {(int) parser_nodes___AAttrFormExpr___n_id},
+  {(int) parser_nodes___AAttrFormExpr___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAttrFormExpr::_parent */
+/* 2: Attribute AAttrFormExpr::_first_token */
+/* 3: Attribute AAttrFormExpr::_last_token */
+/* 4: Attribute AAttrFormExpr::_stype */
+/* 5: Attribute AAttrFormExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AAttrFormExpr::_prop */
+/* 12: Attribute AAttrFormExpr::_n_expr */
+/* 13: Attribute AAttrFormExpr::_n_id */
+val_t NEW_AAttrFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AAttrFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AAttrExpr[97] = {
+  {(int) 3759 /* 0: Identity */},
+  {(int) 3 /* 1: AAttrExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAttrExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAttrExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAttrExpr < PExpr: superclass typecheck marker */},
+  {(int) 3575 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(int) 3759 /* 6: AAttrExpr < AAttrExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAttrExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAttrExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAttrExpr___visit_all},
+  {(int) parser_prod___AAttrExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAttrExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AAttrExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAttrExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AAttrExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAttrExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) typing___AAttrFormExpr___prop},
+  {(int) typing___AAttrFormExpr___do_typing},
+  {(int) 4 /* 89: AAttrExpr < AAttrFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAttrFormExpr___n_expr},
+  {(int) parser_prod___AAttrExpr___n_expr__eq},
+  {(int) parser_nodes___AAttrFormExpr___n_id},
+  {(int) parser_prod___AAttrExpr___n_id__eq},
+  {(int) parser_prod___AAttrExpr___empty_init},
+  {(int) parser_prod___AAttrExpr___init_aattrexpr},
+  {(int) 5 /* 96: AAttrExpr < AAttrExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAttrExpr::_parent */
+/* 2: Attribute AAttrExpr::_first_token */
+/* 3: Attribute AAttrExpr::_last_token */
+/* 4: Attribute AAttrExpr::_stype */
+/* 5: Attribute AAttrExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AAttrExpr::_prop */
+/* 12: Attribute AAttrExpr::_n_expr */
+/* 13: Attribute AAttrExpr::_n_id */
+val_t NEW_AAttrExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AAttrExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAttrExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrExpr();
+  parser_prod___AAttrExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrExpr();
+  parser_prod___AAttrExpr___init_aattrexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAttrAssignExpr[94] = {
+  {(int) 3763 /* 0: Identity */},
+  {(int) 3 /* 1: AAttrAssignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAttrAssignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAttrAssignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAttrAssignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3575 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(int) 3583 /* 6: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(int) 3763 /* 7: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAttrAssignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAttrAssignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAttrAssignExpr___visit_all},
+  {(int) parser_prod___AAttrAssignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAttrAssignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AAttrAssignExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAttrAssignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AAttrAssignExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAttrAssignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AAttrAssignExpr___empty_init},
+  {(int) parser_prod___AAttrAssignExpr___init_aattrassignexpr},
+  {(int) 6 /* 77: AAttrAssignExpr < AAttrAssignExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 5 /* 80: AAttrAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssignFormExpr___n_assign},
+  {(int) parser_prod___AAttrAssignExpr___n_assign__eq},
+  {(int) parser_nodes___AAssignFormExpr___n_value},
+  {(int) parser_prod___AAttrAssignExpr___n_value__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) typing___AAttrFormExpr___prop},
+  {(int) typing___AAttrFormExpr___do_typing},
+  {(int) 4 /* 89: AAttrAssignExpr < AAttrFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAttrFormExpr___n_expr},
+  {(int) parser_prod___AAttrAssignExpr___n_expr__eq},
+  {(int) parser_nodes___AAttrFormExpr___n_id},
+  {(int) parser_prod___AAttrAssignExpr___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAttrAssignExpr::_parent */
+/* 2: Attribute AAttrAssignExpr::_first_token */
+/* 3: Attribute AAttrAssignExpr::_last_token */
+/* 4: Attribute AAttrAssignExpr::_stype */
+/* 5: Attribute AAttrAssignExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 8: Attribute AAttrAssignExpr::_n_assign */
+/* 9: Attribute AAttrAssignExpr::_n_value */
+/* Instance Hole :( */
+/* 11: Attribute AAttrAssignExpr::_prop */
+/* 12: Attribute AAttrAssignExpr::_n_expr */
+/* 13: Attribute AAttrAssignExpr::_n_id */
+val_t NEW_AAttrAssignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AAttrAssignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAttrAssignExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrAssignExpr();
+  parser_prod___AAttrAssignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrAssignExpr();
+  parser_prod___AAttrAssignExpr___init_aattrassignexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACallFormExpr[108] = {
+  {(int) 3815 /* 0: Identity */},
+  {(int) 3 /* 1: ACallFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACallFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACallFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACallFormExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ACallFormExpr < ASendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3815 /* 10: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ACallFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASendExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASendExpr___visit_all},
+  {(int) parser_prod___ASendExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ACallFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ACallFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ACallFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ACallFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ACallFormExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ACallFormExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASendExpr___name},
+  {(int) typing___ASendExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ACallFormExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ASendExpr___n_expr__eq},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) typing___ACallFormExpr___variable_create},
+  {(int) 7 /* 103: ACallFormExpr < ACallFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ACallFormExpr___n_id},
+  {(int) parser_nodes___ACallFormExpr___n_id__eq},
+  {(int) parser_nodes___ACallFormExpr___n_args},
+  {(int) parser_nodes___ACallFormExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACallFormExpr::_parent */
+/* 2: Attribute ACallFormExpr::_first_token */
+/* 3: Attribute ACallFormExpr::_last_token */
+/* 4: Attribute ACallFormExpr::_stype */
+/* 5: Attribute ACallFormExpr::_if_true_variable_ctx */
+/* 6: Attribute ACallFormExpr::_prop */
+/* 7: Attribute ACallFormExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ACallFormExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ACallFormExpr::_n_id */
+/* 14: Attribute ACallFormExpr::_n_args */
+val_t NEW_ACallFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_ACallFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AAttrReassignExpr[94] = {
+  {(int) 3755 /* 0: Identity */},
+  {(int) 3 /* 1: AAttrReassignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAttrReassignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAttrReassignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAttrReassignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3575 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(int) 3383 /* 6: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(int) 3755 /* 7: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAttrReassignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AAttrReassignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AAttrReassignExpr___visit_all},
+  {(int) parser_prod___AAttrReassignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAttrReassignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AAttrReassignExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAttrReassignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AAttrReassignExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAttrReassignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AAttrReassignExpr___empty_init},
+  {(int) parser_prod___AAttrReassignExpr___init_aattrreassignexpr},
+  {(int) 6 /* 77: AAttrReassignExpr < AAttrReassignExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 5 /* 82: AAttrReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_prod___AAttrReassignExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_prod___AAttrReassignExpr___n_value__eq},
+  {(int) typing___AAttrFormExpr___prop},
+  {(int) typing___AAttrFormExpr___do_typing},
+  {(int) 4 /* 89: AAttrReassignExpr < AAttrFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAttrFormExpr___n_expr},
+  {(int) parser_prod___AAttrReassignExpr___n_expr__eq},
+  {(int) parser_nodes___AAttrFormExpr___n_id},
+  {(int) parser_prod___AAttrReassignExpr___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAttrReassignExpr::_parent */
+/* 2: Attribute AAttrReassignExpr::_first_token */
+/* 3: Attribute AAttrReassignExpr::_last_token */
+/* 4: Attribute AAttrReassignExpr::_stype */
+/* 5: Attribute AAttrReassignExpr::_if_true_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 8: Attribute AAttrReassignExpr::_assign_method */
+/* 9: Attribute AAttrReassignExpr::_n_assign_op */
+/* 10: Attribute AAttrReassignExpr::_n_value */
+/* 11: Attribute AAttrReassignExpr::_prop */
+/* 12: Attribute AAttrReassignExpr::_n_expr */
+/* 13: Attribute AAttrReassignExpr::_n_id */
+val_t NEW_AAttrReassignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AAttrReassignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AAttrReassignExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrReassignExpr();
+  parser_prod___AAttrReassignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AAttrReassignExpr();
+  parser_prod___AAttrReassignExpr___init_aattrreassignexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACallExpr[111] = {
+  {(int) 3879 /* 0: Identity */},
+  {(int) 3 /* 1: ACallExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACallExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACallExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACallExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ACallExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ACallExpr < ASendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3815 /* 10: ACallExpr < ACallFormExpr: superclass typecheck marker */},
+  {(int) 3879 /* 11: ACallExpr < ACallExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ACallExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ACallExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ACallExpr___visit_all},
+  {(int) parser_prod___ACallExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ACallExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ACallFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ACallExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ACallExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ACallExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ACallExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ACallExpr___name},
+  {(int) typing___ACallExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ACallExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ACallExpr___n_expr__eq},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) typing___ACallExpr___variable_create},
+  {(int) 7 /* 103: ACallExpr < ACallFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ACallFormExpr___n_id},
+  {(int) parser_prod___ACallExpr___n_id__eq},
+  {(int) parser_nodes___ACallFormExpr___n_args},
+  {(int) parser_nodes___ACallFormExpr___n_args__eq},
+  {(int) parser_prod___ACallExpr___empty_init},
+  {(int) parser_prod___ACallExpr___init_acallexpr},
+  {(int) 8 /* 110: ACallExpr < ACallExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACallExpr::_parent */
+/* 2: Attribute ACallExpr::_first_token */
+/* 3: Attribute ACallExpr::_last_token */
+/* 4: Attribute ACallExpr::_stype */
+/* 5: Attribute ACallExpr::_if_true_variable_ctx */
+/* 6: Attribute ACallExpr::_prop */
+/* 7: Attribute ACallExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ACallExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ACallExpr::_n_id */
+/* 14: Attribute ACallExpr::_n_args */
+val_t NEW_ACallExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_ACallExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ACallExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallExpr();
+  parser_prod___ACallExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallExpr();
+  parser_prod___ACallExpr___init_acallexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACallAssignExpr[108] = {
+  {(int) 3883 /* 0: Identity */},
+  {(int) 3 /* 1: ACallAssignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACallAssignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACallAssignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACallAssignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3583 /* 6: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(int) 3663 /* 7: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3883 /* 9: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
+  {(int) 3815 /* 10: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ACallAssignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ACallAssignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ACallAssignExpr___visit_all},
+  {(int) parser_prod___ACallAssignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ACallAssignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ACallFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ACallAssignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ACallAssignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ACallAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {(int) parser_prod___ACallAssignExpr___empty_init},
+  {(int) parser_prod___ACallAssignExpr___init_acallassignexpr},
+  {(int) 9 /* 79: ACallAssignExpr < ACallAssignExpr: superclass init_table position */},
+  {(int) 8 /* 80: ACallAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssignFormExpr___n_assign},
+  {(int) parser_prod___ACallAssignExpr___n_assign__eq},
+  {(int) parser_nodes___AAssignFormExpr___n_value},
+  {(int) parser_prod___ACallAssignExpr___n_value__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ACallAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ACallAssignExpr___name},
+  {(int) typing___ACallAssignExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ACallAssignExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ACallAssignExpr___n_expr__eq},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) typing___ACallAssignExpr___variable_create},
+  {(int) 7 /* 103: ACallAssignExpr < ACallFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ACallFormExpr___n_id},
+  {(int) parser_prod___ACallAssignExpr___n_id__eq},
+  {(int) parser_nodes___ACallFormExpr___n_args},
+  {(int) parser_nodes___ACallFormExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACallAssignExpr::_parent */
+/* 2: Attribute ACallAssignExpr::_first_token */
+/* 3: Attribute ACallAssignExpr::_last_token */
+/* 4: Attribute ACallAssignExpr::_stype */
+/* 5: Attribute ACallAssignExpr::_if_true_variable_ctx */
+/* 6: Attribute ACallAssignExpr::_prop */
+/* 7: Attribute ACallAssignExpr::_arguments */
+/* 8: Attribute ACallAssignExpr::_n_assign */
+/* 9: Attribute ACallAssignExpr::_n_value */
+/* Instance Hole :( */
+/* 11: Attribute ACallAssignExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ACallAssignExpr::_n_id */
+/* 14: Attribute ACallAssignExpr::_n_args */
+val_t NEW_ACallAssignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_ACallAssignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ACallAssignExpr___empty_init() {
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallAssignExpr();
+  parser_prod___ACallAssignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallAssignExpr();
+  parser_prod___ACallAssignExpr___init_acallassignexpr(self, p0, p1, p2, p3, p4, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACallReassignExpr[111] = {
+  {(int) 3875 /* 0: Identity */},
+  {(int) 3 /* 1: ACallReassignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACallReassignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACallReassignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACallReassignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3383 /* 6: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(int) 3663 /* 7: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3807 /* 9: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(int) 3815 /* 10: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(int) 3875 /* 11: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 4 /* 20: ACallReassignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ACallReassignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ACallReassignExpr___visit_all},
+  {(int) parser_prod___ACallReassignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 5 /* 56: ACallReassignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ACallFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 6 /* 65: ACallReassignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendReassignExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 7 /* 70: ACallReassignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 1 /* 75: ACallReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {(int) 0 /* 77: ACallReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(int) typing___ASendReassignExpr___read_prop},
+  {0} /* Class Hole :( */,
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 8 /* 82: ACallReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_prod___ACallReassignExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_prod___ACallReassignExpr___n_value__eq},
+  {(int) 2 /* 87: ACallReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ACallReassignExpr___name},
+  {(int) typing___ACallReassignExpr___raw_arguments},
+  {(int) typing___ASendReassignExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 3 /* 98: ACallReassignExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ACallReassignExpr___n_expr__eq},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) typing___ACallReassignExpr___variable_create},
+  {(int) 9 /* 103: ACallReassignExpr < ACallFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ACallFormExpr___n_id},
+  {(int) parser_prod___ACallReassignExpr___n_id__eq},
+  {(int) parser_nodes___ACallFormExpr___n_args},
+  {(int) parser_nodes___ACallFormExpr___n_args__eq},
+  {(int) parser_prod___ACallReassignExpr___empty_init},
+  {(int) parser_prod___ACallReassignExpr___init_acallreassignexpr},
+  {(int) 10 /* 110: ACallReassignExpr < ACallReassignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACallReassignExpr::_parent */
+/* 2: Attribute ACallReassignExpr::_first_token */
+/* 3: Attribute ACallReassignExpr::_last_token */
+/* 4: Attribute ACallReassignExpr::_stype */
+/* 5: Attribute ACallReassignExpr::_if_true_variable_ctx */
+/* 6: Attribute ACallReassignExpr::_prop */
+/* 7: Attribute ACallReassignExpr::_arguments */
+/* 8: Attribute ACallReassignExpr::_assign_method */
+/* 9: Attribute ACallReassignExpr::_n_assign_op */
+/* 10: Attribute ACallReassignExpr::_n_value */
+/* 11: Attribute ACallReassignExpr::_n_expr */
+/* 12: Attribute ACallReassignExpr::_read_prop */
+/* 13: Attribute ACallReassignExpr::_n_id */
+/* 14: Attribute ACallReassignExpr::_n_args */
+val_t NEW_ACallReassignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_ACallReassignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ACallReassignExpr___empty_init() {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallReassignExpr();
+  parser_prod___ACallReassignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACallReassignExpr();
+  parser_prod___ACallReassignExpr___init_acallreassignexpr(self, p0, p1, p2, p3, p4, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASuperExpr[103] = {
+  {(int) 3787 /* 0: Identity */},
+  {(int) 3 /* 1: ASuperExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASuperExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASuperExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASuperExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3787 /* 8: ASuperExpr < ASuperExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ASuperExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASuperExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASuperExpr___visit_all},
+  {(int) parser_prod___ASuperExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ASuperExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASuperExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ASuperExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASuperExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASuperExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ASuperExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ASuperExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ASuperExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASuperExpr___init_in_superclass},
+  {(int) parser_prod___ASuperExpr___empty_init},
+  {(int) parser_prod___ASuperExpr___init_asuperexpr},
+  {(int) 6 /* 96: ASuperExpr < ASuperExpr: superclass init_table position */},
+  {(int) parser_nodes___ASuperExpr___n_qualified},
+  {(int) parser_prod___ASuperExpr___n_qualified__eq},
+  {(int) parser_nodes___ASuperExpr___n_kwsuper},
+  {(int) parser_prod___ASuperExpr___n_kwsuper__eq},
+  {(int) parser_nodes___ASuperExpr___n_args},
+  {(int) parser_nodes___ASuperExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASuperExpr::_parent */
+/* 2: Attribute ASuperExpr::_first_token */
+/* 3: Attribute ASuperExpr::_last_token */
+/* 4: Attribute ASuperExpr::_stype */
+/* 5: Attribute ASuperExpr::_if_true_variable_ctx */
+/* 6: Attribute ASuperExpr::_prop */
+/* 7: Attribute ASuperExpr::_arguments */
+/* 8: Attribute ASuperExpr::_init_in_superclass */
+/* 9: Attribute ASuperExpr::_n_qualified */
+/* 10: Attribute ASuperExpr::_n_kwsuper */
+/* 11: Attribute ASuperExpr::_n_args */
+val_t NEW_ASuperExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_ASuperExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASuperExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperExpr();
+  parser_prod___ASuperExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperExpr();
+  parser_prod___ASuperExpr___init_asuperexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AInitExpr[108] = {
+  {(int) 3811 /* 0: Identity */},
+  {(int) 3 /* 1: AInitExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AInitExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AInitExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AInitExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: AInitExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: AInitExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3811 /* 9: AInitExpr < AInitExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: AInitExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AInitExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AInitExpr___visit_all},
+  {(int) parser_prod___AInitExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: AInitExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: AInitExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: AInitExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AInitExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: AInitExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___AInitExpr___name},
+  {(int) typing___AInitExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: AInitExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___AInitExpr___n_expr__eq},
+  {(int) parser_prod___AInitExpr___empty_init},
+  {(int) parser_prod___AInitExpr___init_ainitexpr},
+  {(int) 7 /* 103: AInitExpr < AInitExpr: superclass init_table position */},
+  {(int) parser_nodes___AInitExpr___n_kwinit},
+  {(int) parser_prod___AInitExpr___n_kwinit__eq},
+  {(int) parser_nodes___AInitExpr___n_args},
+  {(int) parser_nodes___AInitExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AInitExpr::_parent */
+/* 2: Attribute AInitExpr::_first_token */
+/* 3: Attribute AInitExpr::_last_token */
+/* 4: Attribute AInitExpr::_stype */
+/* 5: Attribute AInitExpr::_if_true_variable_ctx */
+/* 6: Attribute AInitExpr::_prop */
+/* 7: Attribute AInitExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AInitExpr::_n_expr */
+/* 12: Attribute AInitExpr::_n_kwinit */
+/* 13: Attribute AInitExpr::_n_args */
+val_t NEW_AInitExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AInitExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AInitExpr___empty_init() {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AInitExpr();
+  parser_prod___AInitExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AInitExpr();
+  parser_prod___AInitExpr___init_ainitexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABraFormExpr[104] = {
+  {(int) 3819 /* 0: Identity */},
+  {(int) 3 /* 1: ABraFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABraFormExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ABraFormExpr < ASendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3819 /* 10: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ABraFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASendExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASendExpr___visit_all},
+  {(int) parser_prod___ASendExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ABraFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ABraFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ABraFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ABraFormExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ABraFormExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASendExpr___name},
+  {(int) typing___ASendExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ABraFormExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ASendExpr___n_expr__eq},
+  {(int) 7 /* 101: ABraFormExpr < ABraFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ABraFormExpr___n_args},
+  {(int) parser_nodes___ABraFormExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraFormExpr::_parent */
+/* 2: Attribute ABraFormExpr::_first_token */
+/* 3: Attribute ABraFormExpr::_last_token */
+/* 4: Attribute ABraFormExpr::_stype */
+/* 5: Attribute ABraFormExpr::_if_true_variable_ctx */
+/* 6: Attribute ABraFormExpr::_prop */
+/* 7: Attribute ABraFormExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ABraFormExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ABraFormExpr::_n_args */
+val_t NEW_ABraFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ABraFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ABraExpr[107] = {
+  {(int) 3891 /* 0: Identity */},
+  {(int) 3 /* 1: ABraExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABraExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ABraExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ABraExpr < ASendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3819 /* 10: ABraExpr < ABraFormExpr: superclass typecheck marker */},
+  {(int) 3891 /* 11: ABraExpr < ABraExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ABraExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABraExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABraExpr___visit_all},
+  {(int) parser_prod___ABraExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ABraExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ABraExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ABraExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ABraExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ABraExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ABraExpr___name},
+  {(int) typing___ABraExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ABraExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ABraExpr___n_expr__eq},
+  {(int) 7 /* 101: ABraExpr < ABraFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ABraFormExpr___n_args},
+  {(int) parser_nodes___ABraFormExpr___n_args__eq},
+  {(int) parser_prod___ABraExpr___empty_init},
+  {(int) parser_prod___ABraExpr___init_abraexpr},
+  {(int) 8 /* 106: ABraExpr < ABraExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraExpr::_parent */
+/* 2: Attribute ABraExpr::_first_token */
+/* 3: Attribute ABraExpr::_last_token */
+/* 4: Attribute ABraExpr::_stype */
+/* 5: Attribute ABraExpr::_if_true_variable_ctx */
+/* 6: Attribute ABraExpr::_prop */
+/* 7: Attribute ABraExpr::_arguments */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute ABraExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ABraExpr::_n_args */
+val_t NEW_ABraExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ABraExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABraExpr___empty_init() {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraExpr();
+  parser_prod___ABraExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1) {
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraExpr();
+  parser_prod___ABraExpr___init_abraexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABraAssignExpr[104] = {
+  {(int) 3895 /* 0: Identity */},
+  {(int) 3 /* 1: ABraAssignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraAssignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraAssignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABraAssignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3583 /* 6: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(int) 3663 /* 7: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3895 /* 9: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
+  {(int) 3819 /* 10: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ABraAssignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABraAssignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABraAssignExpr___visit_all},
+  {(int) parser_prod___ABraAssignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ABraAssignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ABraAssignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ABraAssignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ABraAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {(int) parser_prod___ABraAssignExpr___empty_init},
+  {(int) parser_prod___ABraAssignExpr___init_abraassignexpr},
+  {(int) 9 /* 79: ABraAssignExpr < ABraAssignExpr: superclass init_table position */},
+  {(int) 8 /* 80: ABraAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssignFormExpr___n_assign},
+  {(int) parser_prod___ABraAssignExpr___n_assign__eq},
+  {(int) parser_nodes___AAssignFormExpr___n_value},
+  {(int) parser_prod___ABraAssignExpr___n_value__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 1 /* 87: ABraAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ABraAssignExpr___name},
+  {(int) typing___ABraAssignExpr___raw_arguments},
+  {(int) typing___ASendExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ABraAssignExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ABraAssignExpr___n_expr__eq},
+  {(int) 7 /* 101: ABraAssignExpr < ABraFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ABraFormExpr___n_args},
+  {(int) parser_nodes___ABraFormExpr___n_args__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraAssignExpr::_parent */
+/* 2: Attribute ABraAssignExpr::_first_token */
+/* 3: Attribute ABraAssignExpr::_last_token */
+/* 4: Attribute ABraAssignExpr::_stype */
+/* 5: Attribute ABraAssignExpr::_if_true_variable_ctx */
+/* 6: Attribute ABraAssignExpr::_prop */
+/* 7: Attribute ABraAssignExpr::_arguments */
+/* 8: Attribute ABraAssignExpr::_n_assign */
+/* 9: Attribute ABraAssignExpr::_n_value */
+/* Instance Hole :( */
+/* 11: Attribute ABraAssignExpr::_n_expr */
+/* Instance Hole :( */
+/* 13: Attribute ABraAssignExpr::_n_args */
+val_t NEW_ABraAssignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ABraAssignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABraAssignExpr___empty_init() {
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraAssignExpr();
+  parser_prod___ABraAssignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraAssignExpr();
+  parser_prod___ABraAssignExpr___init_abraassignexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AVarFormExpr[80] = {
+  {(int) 3327 /* 0: Identity */},
+  {(int) 3 /* 1: AVarFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AVarFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AVarFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AVarFormExpr < PExpr: superclass typecheck marker */},
+  {(int) 3327 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AVarFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AVarFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AVarFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AVarFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AVarFormExpr___variable},
+  {(int) typing___AVarFormExpr___variable__eq},
+  {(int) 4 /* 77: AVarFormExpr < AVarFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AVarFormExpr___n_id},
+  {(int) parser_nodes___AVarFormExpr___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AVarFormExpr::_parent */
+/* 2: Attribute AVarFormExpr::_first_token */
+/* 3: Attribute AVarFormExpr::_last_token */
+/* 4: Attribute AVarFormExpr::_stype */
+/* 5: Attribute AVarFormExpr::_if_true_variable_ctx */
+/* 6: Attribute AVarFormExpr::_variable */
+/* 7: Attribute AVarFormExpr::_n_id */
+val_t NEW_AVarFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AVarFormExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ABraReassignExpr[107] = {
+  {(int) 3887 /* 0: Identity */},
+  {(int) 3 /* 1: ABraReassignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABraReassignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABraReassignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABraReassignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3383 /* 6: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(int) 3663 /* 7: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3807 /* 9: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(int) 3819 /* 10: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(int) 3887 /* 11: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 4 /* 20: ABraReassignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ABraReassignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ABraReassignExpr___visit_all},
+  {(int) parser_prod___ABraReassignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 5 /* 56: ABraReassignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 6 /* 65: ABraReassignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendReassignExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 7 /* 70: ABraReassignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 1 /* 75: ABraReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {(int) 0 /* 77: ABraReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(int) typing___ASendReassignExpr___read_prop},
+  {0} /* Class Hole :( */,
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 8 /* 82: ABraReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_prod___ABraReassignExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_prod___ABraReassignExpr___n_value__eq},
+  {(int) 2 /* 87: ABraReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ABraReassignExpr___name},
+  {(int) typing___ABraReassignExpr___raw_arguments},
+  {(int) typing___ASendReassignExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 3 /* 98: ABraReassignExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ABraReassignExpr___n_expr__eq},
+  {(int) 9 /* 101: ABraReassignExpr < ABraFormExpr: superclass init_table position */},
+  {(int) parser_nodes___ABraFormExpr___n_args},
+  {(int) parser_nodes___ABraFormExpr___n_args__eq},
+  {(int) parser_prod___ABraReassignExpr___empty_init},
+  {(int) parser_prod___ABraReassignExpr___init_abrareassignexpr},
+  {(int) 10 /* 106: ABraReassignExpr < ABraReassignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABraReassignExpr::_parent */
+/* 2: Attribute ABraReassignExpr::_first_token */
+/* 3: Attribute ABraReassignExpr::_last_token */
+/* 4: Attribute ABraReassignExpr::_stype */
+/* 5: Attribute ABraReassignExpr::_if_true_variable_ctx */
+/* 6: Attribute ABraReassignExpr::_prop */
+/* 7: Attribute ABraReassignExpr::_arguments */
+/* 8: Attribute ABraReassignExpr::_assign_method */
+/* 9: Attribute ABraReassignExpr::_n_assign_op */
+/* 10: Attribute ABraReassignExpr::_n_value */
+/* 11: Attribute ABraReassignExpr::_n_expr */
+/* 12: Attribute ABraReassignExpr::_read_prop */
+/* 13: Attribute ABraReassignExpr::_n_args */
+val_t NEW_ABraReassignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ABraReassignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ABraReassignExpr___empty_init() {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraReassignExpr();
+  parser_prod___ABraReassignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ABraReassignExpr();
+  parser_prod___ABraReassignExpr___init_abrareassignexpr(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AVarExpr[83] = {
+  {(int) 3651 /* 0: Identity */},
+  {(int) 3 /* 1: AVarExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AVarExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AVarExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AVarExpr < PExpr: superclass typecheck marker */},
+  {(int) 3327 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
+  {(int) 3651 /* 6: AVarExpr < AVarExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AVarExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AVarExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AVarExpr___visit_all},
+  {(int) parser_prod___AVarExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AVarExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AVarExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AVarExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AVarExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AVarExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___AVarExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AVarFormExpr___variable},
+  {(int) typing___AVarFormExpr___variable__eq},
+  {(int) 4 /* 77: AVarExpr < AVarFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AVarFormExpr___n_id},
+  {(int) parser_prod___AVarExpr___n_id__eq},
+  {(int) parser_prod___AVarExpr___empty_init},
+  {(int) parser_prod___AVarExpr___init_avarexpr},
+  {(int) 5 /* 82: AVarExpr < AVarExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AVarExpr::_parent */
+/* 2: Attribute AVarExpr::_first_token */
+/* 3: Attribute AVarExpr::_last_token */
+/* 4: Attribute AVarExpr::_stype */
+/* 5: Attribute AVarExpr::_if_true_variable_ctx */
+/* 6: Attribute AVarExpr::_variable */
+/* 7: Attribute AVarExpr::_n_id */
+val_t NEW_AVarExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AVarExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AVarExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarExpr();
+  parser_prod___AVarExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AVarExpr___init_avarexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarExpr();
+  parser_prod___AVarExpr___init_avarexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AVarAssignExpr[88] = {
+  {(int) 3655 /* 0: Identity */},
+  {(int) 3 /* 1: AVarAssignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AVarAssignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AVarAssignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AVarAssignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3327 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(int) 3583 /* 6: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(int) 3655 /* 7: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AVarAssignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AVarAssignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AVarAssignExpr___visit_all},
+  {(int) parser_prod___AVarAssignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AVarAssignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AVarAssignExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AVarAssignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AVarAssignExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AVarAssignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AVarFormExpr___variable},
+  {(int) typing___AVarFormExpr___variable__eq},
+  {(int) 4 /* 77: AVarAssignExpr < AVarFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AVarFormExpr___n_id},
+  {(int) parser_prod___AVarAssignExpr___n_id__eq},
+  {(int) 5 /* 80: AVarAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AAssignFormExpr___n_assign},
+  {(int) parser_prod___AVarAssignExpr___n_assign__eq},
+  {(int) parser_nodes___AAssignFormExpr___n_value},
+  {(int) parser_prod___AVarAssignExpr___n_value__eq},
+  {(int) parser_prod___AVarAssignExpr___empty_init},
+  {(int) parser_prod___AVarAssignExpr___init_avarassignexpr},
+  {(int) 6 /* 87: AVarAssignExpr < AVarAssignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AVarAssignExpr::_parent */
+/* 2: Attribute AVarAssignExpr::_first_token */
+/* 3: Attribute AVarAssignExpr::_last_token */
+/* 4: Attribute AVarAssignExpr::_stype */
+/* 5: Attribute AVarAssignExpr::_if_true_variable_ctx */
+/* 6: Attribute AVarAssignExpr::_variable */
+/* 7: Attribute AVarAssignExpr::_n_id */
+/* 8: Attribute AVarAssignExpr::_n_assign */
+/* 9: Attribute AVarAssignExpr::_n_value */
+val_t NEW_AVarAssignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_AVarAssignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AVarAssignExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarAssignExpr();
+  parser_prod___AVarAssignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarAssignExpr();
+  parser_prod___AVarAssignExpr___init_avarassignexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AVarReassignExpr[90] = {
+  {(int) 3647 /* 0: Identity */},
+  {(int) 3 /* 1: AVarReassignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AVarReassignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AVarReassignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AVarReassignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3327 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(int) 3383 /* 6: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(int) 3647 /* 7: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AVarReassignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AVarReassignExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AVarReassignExpr___visit_all},
+  {(int) parser_prod___AVarReassignExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AVarReassignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AVarReassignExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AVarReassignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AVarReassignExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AVarReassignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AVarFormExpr___variable},
+  {(int) typing___AVarFormExpr___variable__eq},
+  {(int) 4 /* 77: AVarReassignExpr < AVarFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AVarFormExpr___n_id},
+  {(int) parser_prod___AVarReassignExpr___n_id__eq},
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 5 /* 82: AVarReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_prod___AVarReassignExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_prod___AVarReassignExpr___n_value__eq},
+  {(int) parser_prod___AVarReassignExpr___empty_init},
+  {(int) parser_prod___AVarReassignExpr___init_avarreassignexpr},
+  {(int) 6 /* 89: AVarReassignExpr < AVarReassignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AVarReassignExpr::_parent */
+/* 2: Attribute AVarReassignExpr::_first_token */
+/* 3: Attribute AVarReassignExpr::_last_token */
+/* 4: Attribute AVarReassignExpr::_stype */
+/* 5: Attribute AVarReassignExpr::_if_true_variable_ctx */
+/* 6: Attribute AVarReassignExpr::_variable */
+/* 7: Attribute AVarReassignExpr::_n_id */
+/* 8: Attribute AVarReassignExpr::_assign_method */
+/* 9: Attribute AVarReassignExpr::_n_assign_op */
+/* 10: Attribute AVarReassignExpr::_n_value */
+val_t NEW_AVarReassignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_AVarReassignExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AVarReassignExpr___empty_init() {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarReassignExpr();
+  parser_prod___AVarReassignExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AVarReassignExpr();
+  parser_prod___AVarReassignExpr___init_avarreassignexpr(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ARangeExpr[83] = {
+  {(int) 3391 /* 0: Identity */},
+  {(int) 3 /* 1: ARangeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ARangeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ARangeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ARangeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3391 /* 5: ARangeExpr < ARangeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ARangeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ARangeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ARangeExpr___visit_all},
+  {(int) parser_prod___ARangeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ARangeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ARangeExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ARangeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ARangeExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ARangeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___ARangeExpr___propname},
+  {(int) parser_prod___ARangeExpr___empty_init},
+  {(int) parser_prod___ARangeExpr___init_arangeexpr},
+  {(int) 4 /* 78: ARangeExpr < ARangeExpr: superclass init_table position */},
+  {(int) parser_nodes___ARangeExpr___n_expr},
+  {(int) parser_prod___ARangeExpr___n_expr__eq},
+  {(int) parser_nodes___ARangeExpr___n_expr2},
+  {(int) parser_prod___ARangeExpr___n_expr2__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ARangeExpr::_parent */
+/* 2: Attribute ARangeExpr::_first_token */
+/* 3: Attribute ARangeExpr::_last_token */
+/* 4: Attribute ARangeExpr::_stype */
+/* 5: Attribute ARangeExpr::_if_true_variable_ctx */
+/* 6: Attribute ARangeExpr::_n_expr */
+/* 7: Attribute ARangeExpr::_n_expr2 */
+val_t NEW_ARangeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ARangeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ARangeExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ARangeExpr();
+  parser_prod___ARangeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ARangeExpr();
+  parser_prod___ARangeExpr___init_arangeexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACrangeExpr[86] = {
+  {(int) 3739 /* 0: Identity */},
+  {(int) 3 /* 1: ACrangeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACrangeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACrangeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACrangeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3391 /* 5: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(int) 3739 /* 6: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ACrangeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ACrangeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ACrangeExpr___visit_all},
+  {(int) parser_prod___ACrangeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ACrangeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ARangeExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ACrangeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ARangeExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ACrangeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___ACrangeExpr___propname},
+  {(int) parser_prod___ARangeExpr___empty_init},
+  {(int) parser_prod___ARangeExpr___init_arangeexpr},
+  {(int) 4 /* 78: ACrangeExpr < ARangeExpr: superclass init_table position */},
+  {(int) parser_nodes___ARangeExpr___n_expr},
+  {(int) parser_prod___ACrangeExpr___n_expr__eq},
+  {(int) parser_nodes___ARangeExpr___n_expr2},
+  {(int) parser_prod___ACrangeExpr___n_expr2__eq},
+  {(int) parser_prod___ACrangeExpr___empty_init},
+  {(int) parser_prod___ACrangeExpr___init_acrangeexpr},
+  {(int) 5 /* 85: ACrangeExpr < ACrangeExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACrangeExpr::_parent */
+/* 2: Attribute ACrangeExpr::_first_token */
+/* 3: Attribute ACrangeExpr::_last_token */
+/* 4: Attribute ACrangeExpr::_stype */
+/* 5: Attribute ACrangeExpr::_if_true_variable_ctx */
+/* 6: Attribute ACrangeExpr::_n_expr */
+/* 7: Attribute ACrangeExpr::_n_expr2 */
+val_t NEW_ACrangeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ACrangeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ACrangeExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACrangeExpr();
+  parser_prod___ACrangeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ACrangeExpr();
+  parser_prod___ACrangeExpr___init_acrangeexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AOrangeExpr[86] = {
+  {(int) 3679 /* 0: Identity */},
+  {(int) 3 /* 1: AOrangeExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AOrangeExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AOrangeExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AOrangeExpr < PExpr: superclass typecheck marker */},
+  {(int) 3391 /* 5: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(int) 3679 /* 6: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AOrangeExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AOrangeExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AOrangeExpr___visit_all},
+  {(int) parser_prod___AOrangeExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AOrangeExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ARangeExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AOrangeExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ARangeExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AOrangeExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AOrangeExpr___propname},
+  {(int) parser_prod___ARangeExpr___empty_init},
+  {(int) parser_prod___ARangeExpr___init_arangeexpr},
+  {(int) 4 /* 78: AOrangeExpr < ARangeExpr: superclass init_table position */},
+  {(int) parser_nodes___ARangeExpr___n_expr},
+  {(int) parser_prod___AOrangeExpr___n_expr__eq},
+  {(int) parser_nodes___ARangeExpr___n_expr2},
+  {(int) parser_prod___AOrangeExpr___n_expr2__eq},
+  {(int) parser_prod___AOrangeExpr___empty_init},
+  {(int) parser_prod___AOrangeExpr___init_aorangeexpr},
+  {(int) 5 /* 85: AOrangeExpr < AOrangeExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AOrangeExpr::_parent */
+/* 2: Attribute AOrangeExpr::_first_token */
+/* 3: Attribute AOrangeExpr::_last_token */
+/* 4: Attribute AOrangeExpr::_stype */
+/* 5: Attribute AOrangeExpr::_if_true_variable_ctx */
+/* 6: Attribute AOrangeExpr::_n_expr */
+/* 7: Attribute AOrangeExpr::_n_expr2 */
+val_t NEW_AOrangeExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AOrangeExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AOrangeExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOrangeExpr();
+  parser_prod___AOrangeExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AOrangeExpr();
+  parser_prod___AOrangeExpr___init_aorangeexpr(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AArrayExpr[81] = {
+  {(int) 3591 /* 0: Identity */},
+  {(int) 3 /* 1: AArrayExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AArrayExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AArrayExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AArrayExpr < PExpr: superclass typecheck marker */},
+  {(int) 3591 /* 5: AArrayExpr < AArrayExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AArrayExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AArrayExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AArrayExpr___visit_all},
+  {(int) parser_prod___AArrayExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AArrayExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AArrayExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AArrayExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AArrayExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AArrayExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) typing___AArrayExpr___stype__eq},
+  {(int) parser_prod___AArrayExpr___empty_init},
+  {(int) parser_prod___AArrayExpr___init_aarrayexpr},
+  {(int) 4 /* 78: AArrayExpr < AArrayExpr: superclass init_table position */},
+  {(int) parser_nodes___AArrayExpr___n_exprs},
+  {(int) parser_nodes___AArrayExpr___n_exprs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AArrayExpr::_parent */
+/* 2: Attribute AArrayExpr::_first_token */
+/* 3: Attribute AArrayExpr::_last_token */
+/* 4: Attribute AArrayExpr::_stype */
+/* 5: Attribute AArrayExpr::_if_true_variable_ctx */
+/* 6: Attribute AArrayExpr::_n_exprs */
+val_t NEW_AArrayExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AArrayExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AArrayExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AArrayExpr();
+  parser_prod___AArrayExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AArrayExpr();
+  parser_prod___AArrayExpr___init_aarrayexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASelfExpr[80] = {
+  {(int) 3375 /* 0: Identity */},
+  {(int) 3 /* 1: ASelfExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASelfExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASelfExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASelfExpr < PExpr: superclass typecheck marker */},
+  {(int) 3375 /* 5: ASelfExpr < ASelfExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASelfExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASelfExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASelfExpr___visit_all},
+  {(int) parser_prod___ASelfExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASelfExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASelfExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASelfExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASelfExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ASelfExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___ASelfExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ASelfExpr___empty_init},
+  {(int) parser_prod___ASelfExpr___init_aselfexpr},
+  {(int) 4 /* 77: ASelfExpr < ASelfExpr: superclass init_table position */},
+  {(int) parser_nodes___ASelfExpr___n_kwself},
+  {(int) parser_prod___ASelfExpr___n_kwself__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASelfExpr::_parent */
+/* 2: Attribute ASelfExpr::_first_token */
+/* 3: Attribute ASelfExpr::_last_token */
+/* 4: Attribute ASelfExpr::_stype */
+/* 5: Attribute ASelfExpr::_if_true_variable_ctx */
+/* 6: Attribute ASelfExpr::_n_kwself */
+val_t NEW_ASelfExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ASelfExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASelfExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASelfExpr();
+  parser_prod___ASelfExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASelfExpr___init_aselfexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASelfExpr();
+  parser_prod___ASelfExpr___init_aselfexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AImplicitSelfExpr[83] = {
+  {(int) 3711 /* 0: Identity */},
+  {(int) 3 /* 1: AImplicitSelfExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AImplicitSelfExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AImplicitSelfExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AImplicitSelfExpr < PExpr: superclass typecheck marker */},
+  {(int) 3375 /* 5: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
+  {(int) 3711 /* 6: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AImplicitSelfExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AImplicitSelfExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AImplicitSelfExpr___visit_all},
+  {(int) parser_prod___AImplicitSelfExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AImplicitSelfExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASelfExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AImplicitSelfExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASelfExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AImplicitSelfExpr < PExpr: superclass init_table position */},
+  {(int) typing___AImplicitSelfExpr___is_implicit_self},
+  {(int) typing___ASelfExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ASelfExpr___empty_init},
+  {(int) parser_prod___ASelfExpr___init_aselfexpr},
+  {(int) 4 /* 77: AImplicitSelfExpr < ASelfExpr: superclass init_table position */},
+  {(int) parser_nodes___ASelfExpr___n_kwself},
+  {(int) parser_prod___ASelfExpr___n_kwself__eq},
+  {(int) parser_prod___AImplicitSelfExpr___empty_init},
+  {(int) parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr},
+  {(int) 5 /* 82: AImplicitSelfExpr < AImplicitSelfExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AImplicitSelfExpr::_parent */
+/* 2: Attribute AImplicitSelfExpr::_first_token */
+/* 3: Attribute AImplicitSelfExpr::_last_token */
+/* 4: Attribute AImplicitSelfExpr::_stype */
+/* 5: Attribute AImplicitSelfExpr::_if_true_variable_ctx */
+/* 6: Attribute AImplicitSelfExpr::_n_kwself */
+val_t NEW_AImplicitSelfExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AImplicitSelfExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AImplicitSelfExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AImplicitSelfExpr();
+  parser_prod___AImplicitSelfExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AImplicitSelfExpr();
+  parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ATrueExpr[81] = {
+  {(int) 3659 /* 0: Identity */},
+  {(int) 3 /* 1: ATrueExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ATrueExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ATrueExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ATrueExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: ATrueExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3659 /* 6: ATrueExpr < ATrueExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ATrueExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ATrueExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ATrueExpr___visit_all},
+  {(int) parser_prod___ATrueExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ATrueExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ABoolExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ATrueExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ATrueExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ATrueExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: ATrueExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___ATrueExpr___empty_init},
+  {(int) parser_prod___ATrueExpr___init_atrueexpr},
+  {(int) 5 /* 78: ATrueExpr < ATrueExpr: superclass init_table position */},
+  {(int) parser_nodes___ATrueExpr___n_kwtrue},
+  {(int) parser_prod___ATrueExpr___n_kwtrue__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ATrueExpr::_parent */
+/* 2: Attribute ATrueExpr::_first_token */
+/* 3: Attribute ATrueExpr::_last_token */
+/* 4: Attribute ATrueExpr::_stype */
+/* 5: Attribute ATrueExpr::_if_true_variable_ctx */
+/* 6: Attribute ATrueExpr::_n_kwtrue */
+val_t NEW_ATrueExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ATrueExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ATrueExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ATrueExpr();
+  parser_prod___ATrueExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ATrueExpr___init_atrueexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_ATrueExpr();
+  parser_prod___ATrueExpr___init_atrueexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AFalseExpr[81] = {
+  {(int) 3719 /* 0: Identity */},
+  {(int) 3 /* 1: AFalseExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AFalseExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AFalseExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AFalseExpr < PExpr: superclass typecheck marker */},
+  {(int) 3559 /* 5: AFalseExpr < ABoolExpr: superclass typecheck marker */},
+  {(int) 3719 /* 6: AFalseExpr < AFalseExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AFalseExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AFalseExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AFalseExpr___visit_all},
+  {(int) parser_prod___AFalseExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AFalseExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ABoolExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AFalseExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AFalseExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AFalseExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AFalseExpr < ABoolExpr: superclass init_table position */},
+  {(int) parser_prod___AFalseExpr___empty_init},
+  {(int) parser_prod___AFalseExpr___init_afalseexpr},
+  {(int) 5 /* 78: AFalseExpr < AFalseExpr: superclass init_table position */},
+  {(int) parser_nodes___AFalseExpr___n_kwfalse},
+  {(int) parser_prod___AFalseExpr___n_kwfalse__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AFalseExpr::_parent */
+/* 2: Attribute AFalseExpr::_first_token */
+/* 3: Attribute AFalseExpr::_last_token */
+/* 4: Attribute AFalseExpr::_stype */
+/* 5: Attribute AFalseExpr::_if_true_variable_ctx */
+/* 6: Attribute AFalseExpr::_n_kwfalse */
+val_t NEW_AFalseExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AFalseExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AFalseExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AFalseExpr();
+  parser_prod___AFalseExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AFalseExpr___init_afalseexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AFalseExpr();
+  parser_prod___AFalseExpr___init_afalseexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ANullExpr[80] = {
+  {(int) 3435 /* 0: Identity */},
+  {(int) 3 /* 1: ANullExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ANullExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ANullExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ANullExpr < PExpr: superclass typecheck marker */},
+  {(int) 3435 /* 5: ANullExpr < ANullExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ANullExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ANullExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ANullExpr___visit_all},
+  {(int) parser_prod___ANullExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ANullExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ANullExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ANullExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ANullExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ANullExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ANullExpr___empty_init},
+  {(int) parser_prod___ANullExpr___init_anullexpr},
+  {(int) 4 /* 77: ANullExpr < ANullExpr: superclass init_table position */},
+  {(int) parser_nodes___ANullExpr___n_kwnull},
+  {(int) parser_prod___ANullExpr___n_kwnull__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ANullExpr::_parent */
+/* 2: Attribute ANullExpr::_first_token */
+/* 3: Attribute ANullExpr::_last_token */
+/* 4: Attribute ANullExpr::_stype */
+/* 5: Attribute ANullExpr::_if_true_variable_ctx */
+/* 6: Attribute ANullExpr::_n_kwnull */
+val_t NEW_ANullExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ANullExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ANullExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANullExpr();
+  parser_prod___ANullExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ANullExpr___init_anullexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ANullExpr();
+  parser_prod___ANullExpr___init_anullexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AIntExpr[80] = {
+  {(int) 3483 /* 0: Identity */},
+  {(int) 3 /* 1: AIntExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AIntExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AIntExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AIntExpr < PExpr: superclass typecheck marker */},
+  {(int) 3483 /* 5: AIntExpr < AIntExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AIntExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AIntExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AIntExpr___visit_all},
+  {(int) parser_prod___AIntExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AIntExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AIntExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AIntExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AIntExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AIntExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AIntExpr___empty_init},
+  {(int) parser_prod___AIntExpr___init_aintexpr},
+  {(int) 4 /* 77: AIntExpr < AIntExpr: superclass init_table position */},
+  {(int) parser_nodes___AIntExpr___n_number},
+  {(int) parser_prod___AIntExpr___n_number__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AIntExpr::_parent */
+/* 2: Attribute AIntExpr::_first_token */
+/* 3: Attribute AIntExpr::_last_token */
+/* 4: Attribute AIntExpr::_stype */
+/* 5: Attribute AIntExpr::_if_true_variable_ctx */
+/* 6: Attribute AIntExpr::_n_number */
+val_t NEW_AIntExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AIntExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AIntExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIntExpr();
+  parser_prod___AIntExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AIntExpr___init_aintexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AIntExpr();
+  parser_prod___AIntExpr___init_aintexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AFloatExpr[80] = {
+  {(int) 3519 /* 0: Identity */},
+  {(int) 3 /* 1: AFloatExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AFloatExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AFloatExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AFloatExpr < PExpr: superclass typecheck marker */},
+  {(int) 3519 /* 5: AFloatExpr < AFloatExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AFloatExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AFloatExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AFloatExpr___visit_all},
+  {(int) parser_prod___AFloatExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AFloatExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AFloatExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AFloatExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AFloatExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AFloatExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___AFloatExpr___empty_init},
+  {(int) parser_prod___AFloatExpr___init_afloatexpr},
+  {(int) 4 /* 77: AFloatExpr < AFloatExpr: superclass init_table position */},
+  {(int) parser_nodes___AFloatExpr___n_float},
+  {(int) parser_prod___AFloatExpr___n_float__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AFloatExpr::_parent */
+/* 2: Attribute AFloatExpr::_first_token */
+/* 3: Attribute AFloatExpr::_last_token */
+/* 4: Attribute AFloatExpr::_stype */
+/* 5: Attribute AFloatExpr::_if_true_variable_ctx */
+/* 6: Attribute AFloatExpr::_n_float */
+val_t NEW_AFloatExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AFloatExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AFloatExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AFloatExpr();
+  parser_prod___AFloatExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AFloatExpr___init_afloatexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AFloatExpr();
+  parser_prod___AFloatExpr___init_afloatexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ACharExpr[80] = {
+  {(int) 3547 /* 0: Identity */},
+  {(int) 3 /* 1: ACharExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ACharExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ACharExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ACharExpr < PExpr: superclass typecheck marker */},
+  {(int) 3547 /* 5: ACharExpr < ACharExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ACharExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ACharExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ACharExpr___visit_all},
+  {(int) parser_prod___ACharExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ACharExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ACharExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ACharExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ACharExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ACharExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ACharExpr___empty_init},
+  {(int) parser_prod___ACharExpr___init_acharexpr},
+  {(int) 4 /* 77: ACharExpr < ACharExpr: superclass init_table position */},
+  {(int) parser_nodes___ACharExpr___n_char},
+  {(int) parser_prod___ACharExpr___n_char__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ACharExpr::_parent */
+/* 2: Attribute ACharExpr::_first_token */
+/* 3: Attribute ACharExpr::_last_token */
+/* 4: Attribute ACharExpr::_stype */
+/* 5: Attribute ACharExpr::_if_true_variable_ctx */
+/* 6: Attribute ACharExpr::_n_char */
+val_t NEW_ACharExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ACharExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ACharExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ACharExpr();
+  parser_prod___ACharExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ACharExpr___init_acharexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ACharExpr();
+  parser_prod___ACharExpr___init_acharexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStringFormExpr[78] = {
+  {(int) 3355 /* 0: Identity */},
+  {(int) 3 /* 1: AStringFormExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStringFormExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStringFormExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AStringFormExpr < PExpr: superclass typecheck marker */},
+  {(int) 3355 /* 5: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AStringFormExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AStringFormExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AStringFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AStringFormExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AStringFormExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AStringFormExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AStringFormExpr___string_text},
+  {(int) compiling_methods___AStringFormExpr___compute_string_info},
+  {(int) 4 /* 77: AStringFormExpr < AStringFormExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStringFormExpr::_parent */
+/* 2: Attribute AStringFormExpr::_first_token */
+/* 3: Attribute AStringFormExpr::_last_token */
+/* 4: Attribute AStringFormExpr::_stype */
+/* 5: Attribute AStringFormExpr::_if_true_variable_ctx */
+/* 6: Attribute AStringFormExpr::_cstring */
+/* 7: Attribute AStringFormExpr::_cstring_length */
+val_t NEW_AStringFormExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AStringFormExpr;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AStringExpr[83] = {
+  {(int) 3667 /* 0: Identity */},
+  {(int) 3 /* 1: AStringExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStringExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStringExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AStringExpr < PExpr: superclass typecheck marker */},
+  {(int) 3355 /* 5: AStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(int) 3667 /* 6: AStringExpr < AStringExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AStringExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStringExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStringExpr___visit_all},
+  {(int) parser_prod___AStringExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AStringExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AStringFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AStringExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AStringFormExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AStringExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AStringExpr___string_text},
+  {(int) compiling_methods___AStringFormExpr___compute_string_info},
+  {(int) 4 /* 77: AStringExpr < AStringFormExpr: superclass init_table position */},
+  {(int) parser_prod___AStringExpr___empty_init},
+  {(int) parser_prod___AStringExpr___init_astringexpr},
+  {(int) 5 /* 80: AStringExpr < AStringExpr: superclass init_table position */},
+  {(int) parser_nodes___AStringExpr___n_string},
+  {(int) parser_prod___AStringExpr___n_string__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStringExpr::_parent */
+/* 2: Attribute AStringExpr::_first_token */
+/* 3: Attribute AStringExpr::_last_token */
+/* 4: Attribute AStringExpr::_stype */
+/* 5: Attribute AStringExpr::_if_true_variable_ctx */
+/* 6: Attribute AStringExpr::_cstring */
+/* 7: Attribute AStringExpr::_cstring_length */
+/* 8: Attribute AStringExpr::_n_string */
+val_t NEW_AStringExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AStringExpr;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStringExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStringExpr();
+  parser_prod___AStringExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStringExpr___init_astringexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStringExpr();
+  parser_prod___AStringExpr___init_astringexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AStartStringExpr[83] = {
+  {(int) 3671 /* 0: Identity */},
+  {(int) 3 /* 1: AStartStringExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AStartStringExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AStartStringExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AStartStringExpr < PExpr: superclass typecheck marker */},
+  {(int) 3355 /* 5: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(int) 3671 /* 6: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AStartStringExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AStartStringExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AStartStringExpr___visit_all},
+  {(int) parser_prod___AStartStringExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AStartStringExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AStringFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AStartStringExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AStringFormExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AStartStringExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AStartStringExpr___string_text},
+  {(int) compiling_methods___AStringFormExpr___compute_string_info},
+  {(int) 4 /* 77: AStartStringExpr < AStringFormExpr: superclass init_table position */},
+  {(int) parser_prod___AStartStringExpr___empty_init},
+  {(int) parser_prod___AStartStringExpr___init_astartstringexpr},
+  {(int) 5 /* 80: AStartStringExpr < AStartStringExpr: superclass init_table position */},
+  {(int) parser_nodes___AStartStringExpr___n_string},
+  {(int) parser_prod___AStartStringExpr___n_string__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AStartStringExpr::_parent */
+/* 2: Attribute AStartStringExpr::_first_token */
+/* 3: Attribute AStartStringExpr::_last_token */
+/* 4: Attribute AStartStringExpr::_stype */
+/* 5: Attribute AStartStringExpr::_if_true_variable_ctx */
+/* 6: Attribute AStartStringExpr::_cstring */
+/* 7: Attribute AStartStringExpr::_cstring_length */
+/* 8: Attribute AStartStringExpr::_n_string */
+val_t NEW_AStartStringExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AStartStringExpr;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AStartStringExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStartStringExpr();
+  parser_prod___AStartStringExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AStartStringExpr();
+  parser_prod___AStartStringExpr___init_astartstringexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMidStringExpr[83] = {
+  {(int) 3699 /* 0: Identity */},
+  {(int) 3 /* 1: AMidStringExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMidStringExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMidStringExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AMidStringExpr < PExpr: superclass typecheck marker */},
+  {(int) 3355 /* 5: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(int) 3699 /* 6: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMidStringExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMidStringExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMidStringExpr___visit_all},
+  {(int) parser_prod___AMidStringExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMidStringExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AStringFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMidStringExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AStringFormExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AMidStringExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AMidStringExpr___string_text},
+  {(int) compiling_methods___AStringFormExpr___compute_string_info},
+  {(int) 4 /* 77: AMidStringExpr < AStringFormExpr: superclass init_table position */},
+  {(int) parser_prod___AMidStringExpr___empty_init},
+  {(int) parser_prod___AMidStringExpr___init_amidstringexpr},
+  {(int) 5 /* 80: AMidStringExpr < AMidStringExpr: superclass init_table position */},
+  {(int) parser_nodes___AMidStringExpr___n_string},
+  {(int) parser_prod___AMidStringExpr___n_string__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMidStringExpr::_parent */
+/* 2: Attribute AMidStringExpr::_first_token */
+/* 3: Attribute AMidStringExpr::_last_token */
+/* 4: Attribute AMidStringExpr::_stype */
+/* 5: Attribute AMidStringExpr::_if_true_variable_ctx */
+/* 6: Attribute AMidStringExpr::_cstring */
+/* 7: Attribute AMidStringExpr::_cstring_length */
+/* 8: Attribute AMidStringExpr::_n_string */
+val_t NEW_AMidStringExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AMidStringExpr;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMidStringExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMidStringExpr();
+  parser_prod___AMidStringExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AMidStringExpr();
+  parser_prod___AMidStringExpr___init_amidstringexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AEndStringExpr[83] = {
+  {(int) 3727 /* 0: Identity */},
+  {(int) 3 /* 1: AEndStringExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AEndStringExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AEndStringExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AEndStringExpr < PExpr: superclass typecheck marker */},
+  {(int) 3355 /* 5: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(int) 3727 /* 6: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AEndStringExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AEndStringExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AEndStringExpr___visit_all},
+  {(int) parser_prod___AEndStringExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AEndStringExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AStringFormExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AEndStringExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AStringFormExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AEndStringExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AEndStringExpr___string_text},
+  {(int) compiling_methods___AStringFormExpr___compute_string_info},
+  {(int) 4 /* 77: AEndStringExpr < AStringFormExpr: superclass init_table position */},
+  {(int) parser_prod___AEndStringExpr___empty_init},
+  {(int) parser_prod___AEndStringExpr___init_aendstringexpr},
+  {(int) 5 /* 80: AEndStringExpr < AEndStringExpr: superclass init_table position */},
+  {(int) parser_nodes___AEndStringExpr___n_string},
+  {(int) parser_prod___AEndStringExpr___n_string__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AEndStringExpr::_parent */
+/* 2: Attribute AEndStringExpr::_first_token */
+/* 3: Attribute AEndStringExpr::_last_token */
+/* 4: Attribute AEndStringExpr::_stype */
+/* 5: Attribute AEndStringExpr::_if_true_variable_ctx */
+/* 6: Attribute AEndStringExpr::_cstring */
+/* 7: Attribute AEndStringExpr::_cstring_length */
+/* 8: Attribute AEndStringExpr::_n_string */
+val_t NEW_AEndStringExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AEndStringExpr;
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AEndStringExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEndStringExpr();
+  parser_prod___AEndStringExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AEndStringExpr();
+  parser_prod___AEndStringExpr___init_aendstringexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ASuperstringExpr[80] = {
+  {(int) 3347 /* 0: Identity */},
+  {(int) 3 /* 1: ASuperstringExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASuperstringExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASuperstringExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASuperstringExpr < PExpr: superclass typecheck marker */},
+  {(int) 3347 /* 5: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASuperstringExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASuperstringExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASuperstringExpr___visit_all},
+  {(int) parser_prod___ASuperstringExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASuperstringExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASuperstringExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASuperstringExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASuperstringExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ASuperstringExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) parser_prod___ASuperstringExpr___empty_init},
+  {(int) parser_prod___ASuperstringExpr___init_asuperstringexpr},
+  {(int) 4 /* 77: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
+  {(int) parser_nodes___ASuperstringExpr___n_exprs},
+  {(int) parser_nodes___ASuperstringExpr___n_exprs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASuperstringExpr::_parent */
+/* 2: Attribute ASuperstringExpr::_first_token */
+/* 3: Attribute ASuperstringExpr::_last_token */
+/* 4: Attribute ASuperstringExpr::_stype */
+/* 5: Attribute ASuperstringExpr::_if_true_variable_ctx */
+/* 6: Attribute ASuperstringExpr::_n_exprs */
+val_t NEW_ASuperstringExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ASuperstringExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ASuperstringExpr___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperstringExpr();
+  parser_prod___ASuperstringExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ASuperstringExpr();
+  parser_prod___ASuperstringExpr___init_asuperstringexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AParExpr[81] = {
+  {(int) 3675 /* 0: Identity */},
+  {(int) 3 /* 1: AParExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AParExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AParExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AParExpr < PExpr: superclass typecheck marker */},
+  {(int) 3403 /* 5: AParExpr < AProxyExpr: superclass typecheck marker */},
+  {(int) 3675 /* 6: AParExpr < AParExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 1 /* 20: AParExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AParExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AParExpr___visit_all},
+  {(int) parser_prod___AParExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 2 /* 56: AParExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AProxyExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 3 /* 65: AParExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AProxyExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 4 /* 70: AParExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: AParExpr < AProxyExpr: superclass init_table position */},
+  {(int) parser_nodes___AProxyExpr___n_expr},
+  {(int) parser_prod___AParExpr___n_expr__eq},
+  {(int) parser_prod___AParExpr___empty_init},
+  {(int) parser_prod___AParExpr___init_aparexpr},
+  {(int) 5 /* 80: AParExpr < AParExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AParExpr::_parent */
+/* 2: Attribute AParExpr::_first_token */
+/* 3: Attribute AParExpr::_last_token */
+/* 4: Attribute AParExpr::_stype */
+/* 5: Attribute AParExpr::_if_true_variable_ctx */
+/* 6: Attribute AParExpr::_n_expr */
+val_t NEW_AParExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AParExpr;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AParExpr___empty_init() {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AParExpr();
+  parser_prod___AParExpr___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AParExpr___init_aparexpr(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_AParExpr();
+  parser_prod___AParExpr___init_aparexpr(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AProxyExpr[78] = {
+  {(int) 3403 /* 0: Identity */},
+  {(int) 3 /* 1: AProxyExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AProxyExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AProxyExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AProxyExpr < PExpr: superclass typecheck marker */},
+  {(int) 3403 /* 5: AProxyExpr < AProxyExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AProxyExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AProxyExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___AProxyExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AProxyExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___AProxyExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AProxyExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: AProxyExpr < AProxyExpr: superclass init_table position */},
+  {(int) parser_nodes___AProxyExpr___n_expr},
+  {(int) parser_nodes___AProxyExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AProxyExpr::_parent */
+/* 2: Attribute AProxyExpr::_first_token */
+/* 3: Attribute AProxyExpr::_last_token */
+/* 4: Attribute AProxyExpr::_stype */
+/* 5: Attribute AProxyExpr::_if_true_variable_ctx */
+/* 6: Attribute AProxyExpr::_n_expr */
+val_t NEW_AProxyExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AProxyExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_APlusAssignOp[73] = {
+  {(int) 3419 /* 0: Identity */},
+  {(int) 3 /* 1: APlusAssignOp < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: APlusAssignOp < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: APlusAssignOp < Prod: superclass typecheck marker */},
+  {(int) 3095 /* 4: APlusAssignOp < PAssignOp: superclass typecheck marker */},
+  {(int) 3419 /* 5: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: APlusAssignOp < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___APlusAssignOp___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___APlusAssignOp___visit_all},
+  {(int) parser_prod___APlusAssignOp___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: APlusAssignOp < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: APlusAssignOp < Prod: superclass init_table position */},
+  {(int) typing___APlusAssignOp___method_name},
+  {(int) 3 /* 67: APlusAssignOp < PAssignOp: superclass init_table position */},
+  {(int) parser_prod___APlusAssignOp___empty_init},
+  {(int) parser_prod___APlusAssignOp___init_aplusassignop},
+  {(int) 4 /* 70: APlusAssignOp < APlusAssignOp: superclass init_table position */},
+  {(int) parser_nodes___APlusAssignOp___n_pluseq},
+  {(int) parser_prod___APlusAssignOp___n_pluseq__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute APlusAssignOp::_parent */
+/* 2: Attribute APlusAssignOp::_first_token */
+/* 3: Attribute APlusAssignOp::_last_token */
+/* 4: Attribute APlusAssignOp::_n_pluseq */
+val_t NEW_APlusAssignOp(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_APlusAssignOp;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___APlusAssignOp___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APlusAssignOp();
+  parser_prod___APlusAssignOp___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___APlusAssignOp___init_aplusassignop(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_APlusAssignOp();
+  parser_prod___APlusAssignOp___init_aplusassignop(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AMinusAssignOp[73] = {
+  {(int) 3455 /* 0: Identity */},
+  {(int) 3 /* 1: AMinusAssignOp < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AMinusAssignOp < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AMinusAssignOp < Prod: superclass typecheck marker */},
+  {(int) 3095 /* 4: AMinusAssignOp < PAssignOp: superclass typecheck marker */},
+  {(int) 3455 /* 5: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AMinusAssignOp < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AMinusAssignOp___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AMinusAssignOp___visit_all},
+  {(int) parser_prod___AMinusAssignOp___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AMinusAssignOp < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AMinusAssignOp < Prod: superclass init_table position */},
+  {(int) typing___AMinusAssignOp___method_name},
+  {(int) 3 /* 67: AMinusAssignOp < PAssignOp: superclass init_table position */},
+  {(int) parser_prod___AMinusAssignOp___empty_init},
+  {(int) parser_prod___AMinusAssignOp___init_aminusassignop},
+  {(int) 4 /* 70: AMinusAssignOp < AMinusAssignOp: superclass init_table position */},
+  {(int) parser_nodes___AMinusAssignOp___n_minuseq},
+  {(int) parser_prod___AMinusAssignOp___n_minuseq__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AMinusAssignOp::_parent */
+/* 2: Attribute AMinusAssignOp::_first_token */
+/* 3: Attribute AMinusAssignOp::_last_token */
+/* 4: Attribute AMinusAssignOp::_n_minuseq */
+val_t NEW_AMinusAssignOp(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AMinusAssignOp;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AMinusAssignOp___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusAssignOp();
+  parser_prod___AMinusAssignOp___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AMinusAssignOp();
+  parser_prod___AMinusAssignOp___init_aminusassignop(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AQualified[74] = {
+  {(int) 3395 /* 0: Identity */},
+  {(int) 3 /* 1: AQualified < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AQualified < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AQualified < Prod: superclass typecheck marker */},
+  {(int) 3047 /* 4: AQualified < PQualified: superclass typecheck marker */},
+  {(int) 3395 /* 5: AQualified < AQualified: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AQualified < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___AQualified___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___AQualified___visit_all},
+  {(int) parser_prod___AQualified___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AQualified < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AQualified < Prod: superclass init_table position */},
+  {(int) 3 /* 66: AQualified < PQualified: superclass init_table position */},
+  {(int) parser_prod___AQualified___empty_init},
+  {(int) parser_prod___AQualified___init_aqualified},
+  {(int) 4 /* 69: AQualified < AQualified: superclass init_table position */},
+  {(int) parser_nodes___AQualified___n_id},
+  {(int) parser_nodes___AQualified___n_id__eq},
+  {(int) parser_nodes___AQualified___n_classid},
+  {(int) parser_prod___AQualified___n_classid__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AQualified::_parent */
+/* 2: Attribute AQualified::_first_token */
+/* 3: Attribute AQualified::_last_token */
+/* 4: Attribute AQualified::_n_id */
+/* 5: Attribute AQualified::_n_classid */
+val_t NEW_AQualified(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AQualified;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___AQualified___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AQualified();
+  parser_prod___AQualified___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___AQualified___init_aqualified(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_AQualified();
+  parser_prod___AQualified___init_aqualified(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ADoc[72] = {
+  {(int) 3527 /* 0: Identity */},
+  {(int) 3 /* 1: ADoc < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ADoc < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ADoc < Prod: superclass typecheck marker */},
+  {(int) 3083 /* 4: ADoc < PDoc: superclass typecheck marker */},
+  {(int) 3527 /* 5: ADoc < ADoc: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ADoc < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ADoc___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ADoc___visit_all},
+  {(int) parser_prod___ADoc___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ADoc < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ADoc < Prod: superclass init_table position */},
+  {(int) 3 /* 66: ADoc < PDoc: superclass init_table position */},
+  {(int) parser_prod___ADoc___empty_init},
+  {(int) parser_prod___ADoc___init_adoc},
+  {(int) 4 /* 69: ADoc < ADoc: superclass init_table position */},
+  {(int) parser_nodes___ADoc___n_comment},
+  {(int) parser_nodes___ADoc___n_comment__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ADoc::_parent */
+/* 2: Attribute ADoc::_first_token */
+/* 3: Attribute ADoc::_last_token */
+/* 4: Attribute ADoc::_n_comment */
+val_t NEW_ADoc(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ADoc;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___ADoc___empty_init() {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ADoc();
+  parser_prod___ADoc___empty_init(self, init_table);
+  return self;
+}
+val_t NEW_parser_prod___ADoc___init_adoc(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_ADoc();
+  parser_prod___ADoc___init_adoc(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Start[72] = {
+  {(int) 3015 /* 0: Identity */},
+  {(int) 3 /* 1: Start < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: Start < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: Start < Prod: superclass typecheck marker */},
+  {(int) 3015 /* 4: Start < Start: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Start < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PNode___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PNode___accept_property_builder},
+  {(int) mmbuilder___PNode___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___Start___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___Start___visit_all},
+  {(int) parser_prod___Start___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: Start < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: Start < Prod: superclass init_table position */},
+  {(int) parser_prod___Start___init},
+  {(int) 3 /* 67: Start < Start: superclass init_table position */},
+  {(int) parser_nodes___Start___n_base},
+  {(int) parser_nodes___Start___n_base__eq},
+  {(int) parser_nodes___Start___n_eof},
+  {(int) parser_nodes___Start___n_eof__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Start::_parent */
+/* 2: Attribute Start::_first_token */
+/* 3: Attribute Start::_last_token */
+/* 4: Attribute Start::_n_base */
+/* 5: Attribute Start::_n_eof */
+val_t NEW_Start(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_Start;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser_prod___Start___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_Start();
+  parser_prod___Start___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Lexer[52] = {
+  {(int) 127 /* 0: Identity */},
+  {(int) 3 /* 1: Lexer < Object: superclass typecheck marker */},
+  {(int) 127 /* 2: Lexer < Lexer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Lexer < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Lexer < Lexer: superclass init_table position */},
+  {(int) lexer___Lexer___filename},
+  {(int) lexer___Lexer___state_initial},
+  {(int) lexer___Lexer___init},
+  {(int) lexer___Lexer___peek},
+  {(int) lexer___Lexer___next},
+  {(int) lexer___Lexer___get_token},
+  {(int) lexer___Lexer___get_char},
+  {(int) lexer___Lexer___push_back},
+  {(int) lexer___Lexer___build_goto_table},
+  {(int) lexer___Lexer___nil_array},
+  {(int) lexer___Lexer___build_accept_table},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Lexer::_token */
+/* 2: Attribute Lexer::_state */
+/* 3: Attribute Lexer::_filename */
+/* 4: Attribute Lexer::_stream */
+/* 5: Attribute Lexer::_stream_buf */
+/* 6: Attribute Lexer::_stream_pos */
+/* 7: Attribute Lexer::_line */
+/* 8: Attribute Lexer::_pos */
+/* 9: Attribute Lexer::_cr */
+/* 10: Attribute Lexer::_eof */
+/* 11: Attribute Lexer::_text */
+/* 12: Attribute Lexer::_goto_table */
+/* 13: Attribute Lexer::_accept_table */
+val_t NEW_Lexer(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_Lexer;
+  ATTR_lexer___Lexer____state(obj) = TAG_Int((int)0);
+  ATTR_lexer___Lexer____stream_pos(obj) = TAG_Int((int)0);
+  ATTR_lexer___Lexer____line(obj) = TAG_Int((int)0);
+  ATTR_lexer___Lexer____pos(obj) = TAG_Int((int)0);
+  ATTR_lexer___Lexer____cr(obj) = TAG_Bool((int)0);
+  ATTR_lexer___Lexer____eof(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_lexer___Lexer___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Lexer();
+  lexer___Lexer___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Visitor[42] = {
+  {(int) 7 /* 0: Identity */},
+  {(int) 3 /* 1: Visitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: Visitor < Visitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Visitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Visitor < Visitor: superclass init_table position */},
+  {(int) parser_prod___Visitor___visit},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_Visitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_Visitor;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_Parser[1196] = {
+  {(int) 59 /* 0: Identity */},
+  {(int) 3 /* 1: Parser < Object: superclass typecheck marker */},
+  {(int) 59 /* 2: Parser < Parser: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Parser < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) parser___Parser___init},
+  {(int) parser___Parser___go_to},
+  {(int) parser___Parser___push},
+  {(int) parser___Parser___state},
+  {(int) parser___Parser___pop},
+  {(int) parser___Parser___parse},
+  {(int) parser___Parser___build_reduce_table},
+  {(int) 1 /* 47: Parser < Parser: superclass init_table position */},
+  {(int) parser_tables___Parser___build_action_table},
+  {(int) parser_tables___Parser___action_table_row1},
+  {(int) parser_tables___Parser___action_table_row2},
+  {(int) parser_tables___Parser___action_table_row3},
+  {(int) parser_tables___Parser___action_table_row4},
+  {(int) parser_tables___Parser___action_table_row5},
+  {(int) parser_tables___Parser___action_table_row6},
+  {(int) parser_tables___Parser___action_table_row7},
+  {(int) parser_tables___Parser___action_table_row8},
+  {(int) parser_tables___Parser___action_table_row9},
+  {(int) parser_tables___Parser___action_table_row10},
+  {(int) parser_tables___Parser___action_table_row11},
+  {(int) parser_tables___Parser___action_table_row12},
+  {(int) parser_tables___Parser___action_table_row13},
+  {(int) parser_tables___Parser___action_table_row14},
+  {(int) parser_tables___Parser___action_table_row15},
+  {(int) parser_tables___Parser___action_table_row16},
+  {(int) parser_tables___Parser___action_table_row17},
+  {(int) parser_tables___Parser___action_table_row18},
+  {(int) parser_tables___Parser___action_table_row19},
+  {(int) parser_tables___Parser___action_table_row20},
+  {(int) parser_tables___Parser___action_table_row21},
+  {(int) parser_tables___Parser___action_table_row22},
+  {(int) parser_tables___Parser___action_table_row23},
+  {(int) parser_tables___Parser___action_table_row24},
+  {(int) parser_tables___Parser___action_table_row25},
+  {(int) parser_tables___Parser___action_table_row26},
+  {(int) parser_tables___Parser___action_table_row27},
+  {(int) parser_tables___Parser___action_table_row28},
+  {(int) parser_tables___Parser___action_table_row29},
+  {(int) parser_tables___Parser___action_table_row30},
+  {(int) parser_tables___Parser___action_table_row31},
+  {(int) parser_tables___Parser___action_table_row32},
+  {(int) parser_tables___Parser___action_table_row33},
+  {(int) parser_tables___Parser___action_table_row34},
+  {(int) parser_tables___Parser___action_table_row35},
+  {(int) parser_tables___Parser___action_table_row36},
+  {(int) parser_tables___Parser___action_table_row37},
+  {(int) parser_tables___Parser___action_table_row38},
+  {(int) parser_tables___Parser___action_table_row39},
+  {(int) parser_tables___Parser___action_table_row40},
+  {(int) parser_tables___Parser___action_table_row41},
+  {(int) parser_tables___Parser___action_table_row42},
+  {(int) parser_tables___Parser___action_table_row43},
+  {(int) parser_tables___Parser___action_table_row44},
+  {(int) parser_tables___Parser___action_table_row45},
+  {(int) parser_tables___Parser___action_table_row46},
+  {(int) parser_tables___Parser___action_table_row47},
+  {(int) parser_tables___Parser___action_table_row48},
+  {(int) parser_tables___Parser___action_table_row49},
+  {(int) parser_tables___Parser___action_table_row50},
+  {(int) parser_tables___Parser___action_table_row51},
+  {(int) parser_tables___Parser___action_table_row52},
+  {(int) parser_tables___Parser___action_table_row53},
+  {(int) parser_tables___Parser___action_table_row54},
+  {(int) parser_tables___Parser___action_table_row55},
+  {(int) parser_tables___Parser___action_table_row56},
+  {(int) parser_tables___Parser___action_table_row57},
+  {(int) parser_tables___Parser___action_table_row58},
+  {(int) parser_tables___Parser___action_table_row59},
+  {(int) parser_tables___Parser___action_table_row60},
+  {(int) parser_tables___Parser___action_table_row61},
+  {(int) parser_tables___Parser___action_table_row62},
+  {(int) parser_tables___Parser___action_table_row63},
+  {(int) parser_tables___Parser___action_table_row64},
+  {(int) parser_tables___Parser___action_table_row65},
+  {(int) parser_tables___Parser___action_table_row66},
+  {(int) parser_tables___Parser___action_table_row67},
+  {(int) parser_tables___Parser___action_table_row68},
+  {(int) parser_tables___Parser___action_table_row69},
+  {(int) parser_tables___Parser___action_table_row70},
+  {(int) parser_tables___Parser___action_table_row71},
+  {(int) parser_tables___Parser___action_table_row72},
+  {(int) parser_tables___Parser___action_table_row73},
+  {(int) parser_tables___Parser___action_table_row74},
+  {(int) parser_tables___Parser___action_table_row75},
+  {(int) parser_tables___Parser___action_table_row76},
+  {(int) parser_tables___Parser___action_table_row77},
+  {(int) parser_tables___Parser___action_table_row78},
+  {(int) parser_tables___Parser___action_table_row79},
+  {(int) parser_tables___Parser___action_table_row80},
+  {(int) parser_tables___Parser___action_table_row81},
+  {(int) parser_tables___Parser___action_table_row82},
+  {(int) parser_tables___Parser___action_table_row83},
+  {(int) parser_tables___Parser___action_table_row84},
+  {(int) parser_tables___Parser___action_table_row85},
+  {(int) parser_tables___Parser___action_table_row86},
+  {(int) parser_tables___Parser___action_table_row87},
+  {(int) parser_tables___Parser___action_table_row88},
+  {(int) parser_tables___Parser___action_table_row89},
+  {(int) parser_tables___Parser___action_table_row90},
+  {(int) parser_tables___Parser___action_table_row91},
+  {(int) parser_tables___Parser___action_table_row92},
+  {(int) parser_tables___Parser___action_table_row93},
+  {(int) parser_tables___Parser___action_table_row94},
+  {(int) parser_tables___Parser___action_table_row95},
+  {(int) parser_tables___Parser___action_table_row96},
+  {(int) parser_tables___Parser___action_table_row97},
+  {(int) parser_tables___Parser___action_table_row98},
+  {(int) parser_tables___Parser___action_table_row99},
+  {(int) parser_tables___Parser___action_table_row100},
+  {(int) parser_tables___Parser___action_table_row101},
+  {(int) parser_tables___Parser___action_table_row102},
+  {(int) parser_tables___Parser___action_table_row103},
+  {(int) parser_tables___Parser___action_table_row104},
+  {(int) parser_tables___Parser___action_table_row105},
+  {(int) parser_tables___Parser___action_table_row106},
+  {(int) parser_tables___Parser___action_table_row107},
+  {(int) parser_tables___Parser___action_table_row108},
+  {(int) parser_tables___Parser___action_table_row109},
+  {(int) parser_tables___Parser___action_table_row110},
+  {(int) parser_tables___Parser___action_table_row111},
+  {(int) parser_tables___Parser___action_table_row112},
+  {(int) parser_tables___Parser___action_table_row113},
+  {(int) parser_tables___Parser___action_table_row114},
+  {(int) parser_tables___Parser___action_table_row115},
+  {(int) parser_tables___Parser___action_table_row116},
+  {(int) parser_tables___Parser___action_table_row117},
+  {(int) parser_tables___Parser___action_table_row118},
+  {(int) parser_tables___Parser___action_table_row119},
+  {(int) parser_tables___Parser___action_table_row120},
+  {(int) parser_tables___Parser___action_table_row121},
+  {(int) parser_tables___Parser___action_table_row122},
+  {(int) parser_tables___Parser___action_table_row123},
+  {(int) parser_tables___Parser___action_table_row124},
+  {(int) parser_tables___Parser___action_table_row125},
+  {(int) parser_tables___Parser___action_table_row126},
+  {(int) parser_tables___Parser___action_table_row127},
+  {(int) parser_tables___Parser___action_table_row128},
+  {(int) parser_tables___Parser___action_table_row129},
+  {(int) parser_tables___Parser___action_table_row130},
+  {(int) parser_tables___Parser___action_table_row131},
+  {(int) parser_tables___Parser___action_table_row132},
+  {(int) parser_tables___Parser___action_table_row133},
+  {(int) parser_tables___Parser___action_table_row134},
+  {(int) parser_tables___Parser___action_table_row135},
+  {(int) parser_tables___Parser___action_table_row136},
+  {(int) parser_tables___Parser___action_table_row137},
+  {(int) parser_tables___Parser___action_table_row138},
+  {(int) parser_tables___Parser___action_table_row139},
+  {(int) parser_tables___Parser___action_table_row140},
+  {(int) parser_tables___Parser___action_table_row141},
+  {(int) parser_tables___Parser___action_table_row142},
+  {(int) parser_tables___Parser___action_table_row143},
+  {(int) parser_tables___Parser___action_table_row144},
+  {(int) parser_tables___Parser___action_table_row145},
+  {(int) parser_tables___Parser___action_table_row146},
+  {(int) parser_tables___Parser___action_table_row147},
+  {(int) parser_tables___Parser___action_table_row148},
+  {(int) parser_tables___Parser___action_table_row149},
+  {(int) parser_tables___Parser___action_table_row150},
+  {(int) parser_tables___Parser___action_table_row151},
+  {(int) parser_tables___Parser___action_table_row152},
+  {(int) parser_tables___Parser___action_table_row153},
+  {(int) parser_tables___Parser___action_table_row154},
+  {(int) parser_tables___Parser___action_table_row155},
+  {(int) parser_tables___Parser___action_table_row156},
+  {(int) parser_tables___Parser___action_table_row157},
+  {(int) parser_tables___Parser___action_table_row158},
+  {(int) parser_tables___Parser___action_table_row159},
+  {(int) parser_tables___Parser___action_table_row160},
+  {(int) parser_tables___Parser___action_table_row161},
+  {(int) parser_tables___Parser___action_table_row162},
+  {(int) parser_tables___Parser___action_table_row163},
+  {(int) parser_tables___Parser___action_table_row164},
+  {(int) parser_tables___Parser___action_table_row165},
+  {(int) parser_tables___Parser___action_table_row166},
+  {(int) parser_tables___Parser___action_table_row167},
+  {(int) parser_tables___Parser___action_table_row168},
+  {(int) parser_tables___Parser___action_table_row169},
+  {(int) parser_tables___Parser___action_table_row170},
+  {(int) parser_tables___Parser___action_table_row171},
+  {(int) parser_tables___Parser___action_table_row172},
+  {(int) parser_tables___Parser___action_table_row173},
+  {(int) parser_tables___Parser___action_table_row174},
+  {(int) parser_tables___Parser___action_table_row175},
+  {(int) parser_tables___Parser___action_table_row176},
+  {(int) parser_tables___Parser___action_table_row177},
+  {(int) parser_tables___Parser___action_table_row178},
+  {(int) parser_tables___Parser___action_table_row179},
+  {(int) parser_tables___Parser___action_table_row180},
+  {(int) parser_tables___Parser___action_table_row181},
+  {(int) parser_tables___Parser___action_table_row182},
+  {(int) parser_tables___Parser___action_table_row183},
+  {(int) parser_tables___Parser___action_table_row184},
+  {(int) parser_tables___Parser___action_table_row185},
+  {(int) parser_tables___Parser___action_table_row186},
+  {(int) parser_tables___Parser___action_table_row187},
+  {(int) parser_tables___Parser___action_table_row188},
+  {(int) parser_tables___Parser___action_table_row189},
+  {(int) parser_tables___Parser___action_table_row190},
+  {(int) parser_tables___Parser___action_table_row191},
+  {(int) parser_tables___Parser___action_table_row192},
+  {(int) parser_tables___Parser___action_table_row193},
+  {(int) parser_tables___Parser___action_table_row194},
+  {(int) parser_tables___Parser___action_table_row195},
+  {(int) parser_tables___Parser___action_table_row196},
+  {(int) parser_tables___Parser___action_table_row197},
+  {(int) parser_tables___Parser___action_table_row198},
+  {(int) parser_tables___Parser___action_table_row199},
+  {(int) parser_tables___Parser___action_table_row200},
+  {(int) parser_tables___Parser___action_table_row201},
+  {(int) parser_tables___Parser___action_table_row202},
+  {(int) parser_tables___Parser___action_table_row203},
+  {(int) parser_tables___Parser___action_table_row204},
+  {(int) parser_tables___Parser___action_table_row205},
+  {(int) parser_tables___Parser___action_table_row206},
+  {(int) parser_tables___Parser___action_table_row207},
+  {(int) parser_tables___Parser___action_table_row208},
+  {(int) parser_tables___Parser___action_table_row209},
+  {(int) parser_tables___Parser___action_table_row210},
+  {(int) parser_tables___Parser___action_table_row211},
+  {(int) parser_tables___Parser___action_table_row212},
+  {(int) parser_tables___Parser___action_table_row213},
+  {(int) parser_tables___Parser___action_table_row214},
+  {(int) parser_tables___Parser___action_table_row215},
+  {(int) parser_tables___Parser___action_table_row216},
+  {(int) parser_tables___Parser___action_table_row217},
+  {(int) parser_tables___Parser___action_table_row218},
+  {(int) parser_tables___Parser___action_table_row219},
+  {(int) parser_tables___Parser___action_table_row220},
+  {(int) parser_tables___Parser___action_table_row221},
+  {(int) parser_tables___Parser___action_table_row222},
+  {(int) parser_tables___Parser___action_table_row223},
+  {(int) parser_tables___Parser___action_table_row224},
+  {(int) parser_tables___Parser___action_table_row225},
+  {(int) parser_tables___Parser___action_table_row226},
+  {(int) parser_tables___Parser___action_table_row227},
+  {(int) parser_tables___Parser___action_table_row228},
+  {(int) parser_tables___Parser___action_table_row229},
+  {(int) parser_tables___Parser___action_table_row230},
+  {(int) parser_tables___Parser___action_table_row231},
+  {(int) parser_tables___Parser___action_table_row232},
+  {(int) parser_tables___Parser___action_table_row233},
+  {(int) parser_tables___Parser___action_table_row234},
+  {(int) parser_tables___Parser___action_table_row235},
+  {(int) parser_tables___Parser___action_table_row236},
+  {(int) parser_tables___Parser___action_table_row237},
+  {(int) parser_tables___Parser___action_table_row238},
+  {(int) parser_tables___Parser___action_table_row239},
+  {(int) parser_tables___Parser___action_table_row240},
+  {(int) parser_tables___Parser___action_table_row241},
+  {(int) parser_tables___Parser___action_table_row242},
+  {(int) parser_tables___Parser___action_table_row243},
+  {(int) parser_tables___Parser___action_table_row244},
+  {(int) parser_tables___Parser___action_table_row245},
+  {(int) parser_tables___Parser___action_table_row246},
+  {(int) parser_tables___Parser___action_table_row247},
+  {(int) parser_tables___Parser___action_table_row248},
+  {(int) parser_tables___Parser___action_table_row249},
+  {(int) parser_tables___Parser___action_table_row250},
+  {(int) parser_tables___Parser___action_table_row251},
+  {(int) parser_tables___Parser___action_table_row252},
+  {(int) parser_tables___Parser___action_table_row253},
+  {(int) parser_tables___Parser___action_table_row254},
+  {(int) parser_tables___Parser___action_table_row255},
+  {(int) parser_tables___Parser___action_table_row256},
+  {(int) parser_tables___Parser___action_table_row257},
+  {(int) parser_tables___Parser___action_table_row258},
+  {(int) parser_tables___Parser___action_table_row259},
+  {(int) parser_tables___Parser___action_table_row260},
+  {(int) parser_tables___Parser___action_table_row261},
+  {(int) parser_tables___Parser___action_table_row262},
+  {(int) parser_tables___Parser___action_table_row263},
+  {(int) parser_tables___Parser___action_table_row264},
+  {(int) parser_tables___Parser___action_table_row265},
+  {(int) parser_tables___Parser___action_table_row266},
+  {(int) parser_tables___Parser___action_table_row267},
+  {(int) parser_tables___Parser___action_table_row268},
+  {(int) parser_tables___Parser___action_table_row269},
+  {(int) parser_tables___Parser___action_table_row270},
+  {(int) parser_tables___Parser___action_table_row271},
+  {(int) parser_tables___Parser___action_table_row272},
+  {(int) parser_tables___Parser___action_table_row273},
+  {(int) parser_tables___Parser___action_table_row274},
+  {(int) parser_tables___Parser___action_table_row275},
+  {(int) parser_tables___Parser___action_table_row276},
+  {(int) parser_tables___Parser___action_table_row277},
+  {(int) parser_tables___Parser___action_table_row278},
+  {(int) parser_tables___Parser___action_table_row279},
+  {(int) parser_tables___Parser___action_table_row280},
+  {(int) parser_tables___Parser___action_table_row281},
+  {(int) parser_tables___Parser___action_table_row282},
+  {(int) parser_tables___Parser___action_table_row283},
+  {(int) parser_tables___Parser___action_table_row284},
+  {(int) parser_tables___Parser___action_table_row285},
+  {(int) parser_tables___Parser___action_table_row286},
+  {(int) parser_tables___Parser___action_table_row287},
+  {(int) parser_tables___Parser___action_table_row288},
+  {(int) parser_tables___Parser___action_table_row289},
+  {(int) parser_tables___Parser___action_table_row290},
+  {(int) parser_tables___Parser___action_table_row291},
+  {(int) parser_tables___Parser___action_table_row292},
+  {(int) parser_tables___Parser___action_table_row293},
+  {(int) parser_tables___Parser___action_table_row294},
+  {(int) parser_tables___Parser___action_table_row295},
+  {(int) parser_tables___Parser___action_table_row296},
+  {(int) parser_tables___Parser___action_table_row297},
+  {(int) parser_tables___Parser___action_table_row298},
+  {(int) parser_tables___Parser___action_table_row299},
+  {(int) parser_tables___Parser___action_table_row300},
+  {(int) parser_tables___Parser___action_table_row301},
+  {(int) parser_tables___Parser___action_table_row302},
+  {(int) parser_tables___Parser___action_table_row303},
+  {(int) parser_tables___Parser___action_table_row304},
+  {(int) parser_tables___Parser___action_table_row305},
+  {(int) parser_tables___Parser___action_table_row306},
+  {(int) parser_tables___Parser___action_table_row307},
+  {(int) parser_tables___Parser___action_table_row308},
+  {(int) parser_tables___Parser___action_table_row309},
+  {(int) parser_tables___Parser___action_table_row310},
+  {(int) parser_tables___Parser___action_table_row311},
+  {(int) parser_tables___Parser___action_table_row312},
+  {(int) parser_tables___Parser___action_table_row313},
+  {(int) parser_tables___Parser___action_table_row314},
+  {(int) parser_tables___Parser___action_table_row315},
+  {(int) parser_tables___Parser___action_table_row316},
+  {(int) parser_tables___Parser___action_table_row317},
+  {(int) parser_tables___Parser___action_table_row318},
+  {(int) parser_tables___Parser___action_table_row319},
+  {(int) parser_tables___Parser___action_table_row320},
+  {(int) parser_tables___Parser___action_table_row321},
+  {(int) parser_tables___Parser___action_table_row322},
+  {(int) parser_tables___Parser___action_table_row323},
+  {(int) parser_tables___Parser___action_table_row324},
+  {(int) parser_tables___Parser___action_table_row325},
+  {(int) parser_tables___Parser___action_table_row326},
+  {(int) parser_tables___Parser___action_table_row327},
+  {(int) parser_tables___Parser___action_table_row328},
+  {(int) parser_tables___Parser___action_table_row329},
+  {(int) parser_tables___Parser___action_table_row330},
+  {(int) parser_tables___Parser___action_table_row331},
+  {(int) parser_tables___Parser___action_table_row332},
+  {(int) parser_tables___Parser___action_table_row333},
+  {(int) parser_tables___Parser___action_table_row334},
+  {(int) parser_tables___Parser___action_table_row335},
+  {(int) parser_tables___Parser___action_table_row336},
+  {(int) parser_tables___Parser___action_table_row337},
+  {(int) parser_tables___Parser___action_table_row338},
+  {(int) parser_tables___Parser___action_table_row339},
+  {(int) parser_tables___Parser___action_table_row340},
+  {(int) parser_tables___Parser___action_table_row341},
+  {(int) parser_tables___Parser___action_table_row342},
+  {(int) parser_tables___Parser___action_table_row343},
+  {(int) parser_tables___Parser___action_table_row344},
+  {(int) parser_tables___Parser___action_table_row345},
+  {(int) parser_tables___Parser___action_table_row346},
+  {(int) parser_tables___Parser___action_table_row347},
+  {(int) parser_tables___Parser___action_table_row348},
+  {(int) parser_tables___Parser___action_table_row349},
+  {(int) parser_tables___Parser___action_table_row350},
+  {(int) parser_tables___Parser___action_table_row351},
+  {(int) parser_tables___Parser___action_table_row352},
+  {(int) parser_tables___Parser___action_table_row353},
+  {(int) parser_tables___Parser___action_table_row354},
+  {(int) parser_tables___Parser___action_table_row355},
+  {(int) parser_tables___Parser___action_table_row356},
+  {(int) parser_tables___Parser___action_table_row357},
+  {(int) parser_tables___Parser___action_table_row358},
+  {(int) parser_tables___Parser___action_table_row359},
+  {(int) parser_tables___Parser___action_table_row360},
+  {(int) parser_tables___Parser___action_table_row361},
+  {(int) parser_tables___Parser___action_table_row362},
+  {(int) parser_tables___Parser___action_table_row363},
+  {(int) parser_tables___Parser___action_table_row364},
+  {(int) parser_tables___Parser___action_table_row365},
+  {(int) parser_tables___Parser___action_table_row366},
+  {(int) parser_tables___Parser___action_table_row367},
+  {(int) parser_tables___Parser___action_table_row368},
+  {(int) parser_tables___Parser___action_table_row369},
+  {(int) parser_tables___Parser___action_table_row370},
+  {(int) parser_tables___Parser___action_table_row371},
+  {(int) parser_tables___Parser___action_table_row372},
+  {(int) parser_tables___Parser___action_table_row373},
+  {(int) parser_tables___Parser___action_table_row374},
+  {(int) parser_tables___Parser___action_table_row375},
+  {(int) parser_tables___Parser___action_table_row376},
+  {(int) parser_tables___Parser___action_table_row377},
+  {(int) parser_tables___Parser___action_table_row378},
+  {(int) parser_tables___Parser___action_table_row379},
+  {(int) parser_tables___Parser___action_table_row380},
+  {(int) parser_tables___Parser___action_table_row381},
+  {(int) parser_tables___Parser___action_table_row382},
+  {(int) parser_tables___Parser___action_table_row383},
+  {(int) parser_tables___Parser___action_table_row384},
+  {(int) parser_tables___Parser___action_table_row385},
+  {(int) parser_tables___Parser___action_table_row386},
+  {(int) parser_tables___Parser___action_table_row387},
+  {(int) parser_tables___Parser___action_table_row388},
+  {(int) parser_tables___Parser___action_table_row389},
+  {(int) parser_tables___Parser___action_table_row390},
+  {(int) parser_tables___Parser___action_table_row391},
+  {(int) parser_tables___Parser___action_table_row392},
+  {(int) parser_tables___Parser___action_table_row393},
+  {(int) parser_tables___Parser___action_table_row394},
+  {(int) parser_tables___Parser___action_table_row395},
+  {(int) parser_tables___Parser___action_table_row396},
+  {(int) parser_tables___Parser___action_table_row397},
+  {(int) parser_tables___Parser___action_table_row398},
+  {(int) parser_tables___Parser___action_table_row399},
+  {(int) parser_tables___Parser___action_table_row400},
+  {(int) parser_tables___Parser___action_table_row401},
+  {(int) parser_tables___Parser___action_table_row402},
+  {(int) parser_tables___Parser___action_table_row403},
+  {(int) parser_tables___Parser___action_table_row404},
+  {(int) parser_tables___Parser___action_table_row405},
+  {(int) parser_tables___Parser___action_table_row406},
+  {(int) parser_tables___Parser___action_table_row407},
+  {(int) parser_tables___Parser___action_table_row408},
+  {(int) parser_tables___Parser___action_table_row409},
+  {(int) parser_tables___Parser___action_table_row410},
+  {(int) parser_tables___Parser___action_table_row411},
+  {(int) parser_tables___Parser___action_table_row412},
+  {(int) parser_tables___Parser___action_table_row413},
+  {(int) parser_tables___Parser___action_table_row414},
+  {(int) parser_tables___Parser___action_table_row415},
+  {(int) parser_tables___Parser___action_table_row416},
+  {(int) parser_tables___Parser___action_table_row417},
+  {(int) parser_tables___Parser___action_table_row418},
+  {(int) parser_tables___Parser___action_table_row419},
+  {(int) parser_tables___Parser___action_table_row420},
+  {(int) parser_tables___Parser___action_table_row421},
+  {(int) parser_tables___Parser___action_table_row422},
+  {(int) parser_tables___Parser___action_table_row423},
+  {(int) parser_tables___Parser___action_table_row424},
+  {(int) parser_tables___Parser___action_table_row425},
+  {(int) parser_tables___Parser___action_table_row426},
+  {(int) parser_tables___Parser___action_table_row427},
+  {(int) parser_tables___Parser___action_table_row428},
+  {(int) parser_tables___Parser___action_table_row429},
+  {(int) parser_tables___Parser___action_table_row430},
+  {(int) parser_tables___Parser___action_table_row431},
+  {(int) parser_tables___Parser___action_table_row432},
+  {(int) parser_tables___Parser___action_table_row433},
+  {(int) parser_tables___Parser___action_table_row434},
+  {(int) parser_tables___Parser___action_table_row435},
+  {(int) parser_tables___Parser___action_table_row436},
+  {(int) parser_tables___Parser___action_table_row437},
+  {(int) parser_tables___Parser___action_table_row438},
+  {(int) parser_tables___Parser___action_table_row439},
+  {(int) parser_tables___Parser___action_table_row440},
+  {(int) parser_tables___Parser___action_table_row441},
+  {(int) parser_tables___Parser___action_table_row442},
+  {(int) parser_tables___Parser___action_table_row443},
+  {(int) parser_tables___Parser___action_table_row444},
+  {(int) parser_tables___Parser___action_table_row445},
+  {(int) parser_tables___Parser___action_table_row446},
+  {(int) parser_tables___Parser___action_table_row447},
+  {(int) parser_tables___Parser___action_table_row448},
+  {(int) parser_tables___Parser___action_table_row449},
+  {(int) parser_tables___Parser___action_table_row450},
+  {(int) parser_tables___Parser___action_table_row451},
+  {(int) parser_tables___Parser___action_table_row452},
+  {(int) parser_tables___Parser___action_table_row453},
+  {(int) parser_tables___Parser___action_table_row454},
+  {(int) parser_tables___Parser___action_table_row455},
+  {(int) parser_tables___Parser___action_table_row456},
+  {(int) parser_tables___Parser___action_table_row457},
+  {(int) parser_tables___Parser___action_table_row458},
+  {(int) parser_tables___Parser___action_table_row459},
+  {(int) parser_tables___Parser___action_table_row460},
+  {(int) parser_tables___Parser___action_table_row461},
+  {(int) parser_tables___Parser___action_table_row462},
+  {(int) parser_tables___Parser___action_table_row463},
+  {(int) parser_tables___Parser___action_table_row464},
+  {(int) parser_tables___Parser___action_table_row465},
+  {(int) parser_tables___Parser___action_table_row466},
+  {(int) parser_tables___Parser___action_table_row467},
+  {(int) parser_tables___Parser___action_table_row468},
+  {(int) parser_tables___Parser___action_table_row469},
+  {(int) parser_tables___Parser___action_table_row470},
+  {(int) parser_tables___Parser___action_table_row471},
+  {(int) parser_tables___Parser___action_table_row472},
+  {(int) parser_tables___Parser___action_table_row473},
+  {(int) parser_tables___Parser___action_table_row474},
+  {(int) parser_tables___Parser___action_table_row475},
+  {(int) parser_tables___Parser___action_table_row476},
+  {(int) parser_tables___Parser___action_table_row477},
+  {(int) parser_tables___Parser___action_table_row478},
+  {(int) parser_tables___Parser___action_table_row479},
+  {(int) parser_tables___Parser___action_table_row480},
+  {(int) parser_tables___Parser___action_table_row481},
+  {(int) parser_tables___Parser___action_table_row482},
+  {(int) parser_tables___Parser___action_table_row483},
+  {(int) parser_tables___Parser___action_table_row484},
+  {(int) parser_tables___Parser___action_table_row485},
+  {(int) parser_tables___Parser___action_table_row486},
+  {(int) parser_tables___Parser___action_table_row487},
+  {(int) parser_tables___Parser___action_table_row488},
+  {(int) parser_tables___Parser___action_table_row489},
+  {(int) parser_tables___Parser___action_table_row490},
+  {(int) parser_tables___Parser___action_table_row491},
+  {(int) parser_tables___Parser___action_table_row492},
+  {(int) parser_tables___Parser___action_table_row493},
+  {(int) parser_tables___Parser___action_table_row494},
+  {(int) parser_tables___Parser___action_table_row495},
+  {(int) parser_tables___Parser___action_table_row496},
+  {(int) parser_tables___Parser___action_table_row497},
+  {(int) parser_tables___Parser___action_table_row498},
+  {(int) parser_tables___Parser___action_table_row499},
+  {(int) parser_tables___Parser___action_table_row500},
+  {(int) parser_tables___Parser___action_table_row501},
+  {(int) parser_tables___Parser___action_table_row502},
+  {(int) parser_tables___Parser___action_table_row503},
+  {(int) parser_tables___Parser___action_table_row504},
+  {(int) parser_tables___Parser___action_table_row505},
+  {(int) parser_tables___Parser___action_table_row506},
+  {(int) parser_tables___Parser___action_table_row507},
+  {(int) parser_tables___Parser___action_table_row508},
+  {(int) parser_tables___Parser___action_table_row509},
+  {(int) parser_tables___Parser___action_table_row510},
+  {(int) parser_tables___Parser___action_table_row511},
+  {(int) parser_tables___Parser___action_table_row512},
+  {(int) parser_tables___Parser___action_table_row513},
+  {(int) parser_tables___Parser___action_table_row514},
+  {(int) parser_tables___Parser___action_table_row515},
+  {(int) parser_tables___Parser___action_table_row516},
+  {(int) parser_tables___Parser___action_table_row517},
+  {(int) parser_tables___Parser___action_table_row518},
+  {(int) parser_tables___Parser___action_table_row519},
+  {(int) parser_tables___Parser___action_table_row520},
+  {(int) parser_tables___Parser___action_table_row521},
+  {(int) parser_tables___Parser___action_table_row522},
+  {(int) parser_tables___Parser___action_table_row523},
+  {(int) parser_tables___Parser___action_table_row524},
+  {(int) parser_tables___Parser___action_table_row525},
+  {(int) parser_tables___Parser___action_table_row526},
+  {(int) parser_tables___Parser___action_table_row527},
+  {(int) parser_tables___Parser___action_table_row528},
+  {(int) parser_tables___Parser___action_table_row529},
+  {(int) parser_tables___Parser___action_table_row530},
+  {(int) parser_tables___Parser___action_table_row531},
+  {(int) parser_tables___Parser___action_table_row532},
+  {(int) parser_tables___Parser___action_table_row533},
+  {(int) parser_tables___Parser___action_table_row534},
+  {(int) parser_tables___Parser___action_table_row535},
+  {(int) parser_tables___Parser___action_table_row536},
+  {(int) parser_tables___Parser___action_table_row537},
+  {(int) parser_tables___Parser___action_table_row538},
+  {(int) parser_tables___Parser___action_table_row539},
+  {(int) parser_tables___Parser___action_table_row540},
+  {(int) parser_tables___Parser___action_table_row541},
+  {(int) parser_tables___Parser___action_table_row542},
+  {(int) parser_tables___Parser___action_table_row543},
+  {(int) parser_tables___Parser___action_table_row544},
+  {(int) parser_tables___Parser___action_table_row545},
+  {(int) parser_tables___Parser___action_table_row546},
+  {(int) parser_tables___Parser___action_table_row547},
+  {(int) parser_tables___Parser___action_table_row548},
+  {(int) parser_tables___Parser___action_table_row549},
+  {(int) parser_tables___Parser___action_table_row550},
+  {(int) parser_tables___Parser___action_table_row551},
+  {(int) parser_tables___Parser___action_table_row552},
+  {(int) parser_tables___Parser___action_table_row553},
+  {(int) parser_tables___Parser___action_table_row554},
+  {(int) parser_tables___Parser___action_table_row555},
+  {(int) parser_tables___Parser___action_table_row556},
+  {(int) parser_tables___Parser___action_table_row557},
+  {(int) parser_tables___Parser___action_table_row558},
+  {(int) parser_tables___Parser___action_table_row559},
+  {(int) parser_tables___Parser___action_table_row560},
+  {(int) parser_tables___Parser___action_table_row561},
+  {(int) parser_tables___Parser___action_table_row562},
+  {(int) parser_tables___Parser___action_table_row563},
+  {(int) parser_tables___Parser___action_table_row564},
+  {(int) parser_tables___Parser___action_table_row565},
+  {(int) parser_tables___Parser___action_table_row566},
+  {(int) parser_tables___Parser___action_table_row567},
+  {(int) parser_tables___Parser___action_table_row568},
+  {(int) parser_tables___Parser___action_table_row569},
+  {(int) parser_tables___Parser___action_table_row570},
+  {(int) parser_tables___Parser___action_table_row571},
+  {(int) parser_tables___Parser___action_table_row572},
+  {(int) parser_tables___Parser___action_table_row573},
+  {(int) parser_tables___Parser___action_table_row574},
+  {(int) parser_tables___Parser___action_table_row575},
+  {(int) parser_tables___Parser___action_table_row576},
+  {(int) parser_tables___Parser___action_table_row577},
+  {(int) parser_tables___Parser___action_table_row578},
+  {(int) parser_tables___Parser___action_table_row579},
+  {(int) parser_tables___Parser___action_table_row580},
+  {(int) parser_tables___Parser___action_table_row581},
+  {(int) parser_tables___Parser___action_table_row582},
+  {(int) parser_tables___Parser___action_table_row583},
+  {(int) parser_tables___Parser___action_table_row584},
+  {(int) parser_tables___Parser___action_table_row585},
+  {(int) parser_tables___Parser___action_table_row586},
+  {(int) parser_tables___Parser___action_table_row587},
+  {(int) parser_tables___Parser___action_table_row588},
+  {(int) parser_tables___Parser___action_table_row589},
+  {(int) parser_tables___Parser___action_table_row590},
+  {(int) parser_tables___Parser___action_table_row591},
+  {(int) parser_tables___Parser___action_table_row592},
+  {(int) parser_tables___Parser___action_table_row593},
+  {(int) parser_tables___Parser___action_table_row594},
+  {(int) parser_tables___Parser___action_table_row595},
+  {(int) parser_tables___Parser___action_table_row596},
+  {(int) parser_tables___Parser___action_table_row597},
+  {(int) parser_tables___Parser___action_table_row598},
+  {(int) parser_tables___Parser___action_table_row599},
+  {(int) parser_tables___Parser___action_table_row600},
+  {(int) parser_tables___Parser___action_table_row601},
+  {(int) parser_tables___Parser___action_table_row602},
+  {(int) parser_tables___Parser___action_table_row603},
+  {(int) parser_tables___Parser___action_table_row604},
+  {(int) parser_tables___Parser___action_table_row605},
+  {(int) parser_tables___Parser___action_table_row606},
+  {(int) parser_tables___Parser___action_table_row607},
+  {(int) parser_tables___Parser___action_table_row608},
+  {(int) parser_tables___Parser___action_table_row609},
+  {(int) parser_tables___Parser___action_table_row610},
+  {(int) parser_tables___Parser___action_table_row611},
+  {(int) parser_tables___Parser___action_table_row612},
+  {(int) parser_tables___Parser___action_table_row613},
+  {(int) parser_tables___Parser___action_table_row614},
+  {(int) parser_tables___Parser___action_table_row615},
+  {(int) parser_tables___Parser___action_table_row616},
+  {(int) parser_tables___Parser___action_table_row617},
+  {(int) parser_tables___Parser___action_table_row618},
+  {(int) parser_tables___Parser___action_table_row619},
+  {(int) parser_tables___Parser___action_table_row620},
+  {(int) parser_tables___Parser___action_table_row621},
+  {(int) parser_tables___Parser___action_table_row622},
+  {(int) parser_tables___Parser___action_table_row623},
+  {(int) parser_tables___Parser___action_table_row624},
+  {(int) parser_tables___Parser___action_table_row625},
+  {(int) parser_tables___Parser___action_table_row626},
+  {(int) parser_tables___Parser___action_table_row627},
+  {(int) parser_tables___Parser___action_table_row628},
+  {(int) parser_tables___Parser___action_table_row629},
+  {(int) parser_tables___Parser___action_table_row630},
+  {(int) parser_tables___Parser___action_table_row631},
+  {(int) parser_tables___Parser___action_table_row632},
+  {(int) parser_tables___Parser___action_table_row633},
+  {(int) parser_tables___Parser___action_table_row634},
+  {(int) parser_tables___Parser___action_table_row635},
+  {(int) parser_tables___Parser___action_table_row636},
+  {(int) parser_tables___Parser___action_table_row637},
+  {(int) parser_tables___Parser___action_table_row638},
+  {(int) parser_tables___Parser___action_table_row639},
+  {(int) parser_tables___Parser___action_table_row640},
+  {(int) parser_tables___Parser___action_table_row641},
+  {(int) parser_tables___Parser___action_table_row642},
+  {(int) parser_tables___Parser___action_table_row643},
+  {(int) parser_tables___Parser___action_table_row644},
+  {(int) parser_tables___Parser___action_table_row645},
+  {(int) parser_tables___Parser___action_table_row646},
+  {(int) parser_tables___Parser___action_table_row647},
+  {(int) parser_tables___Parser___action_table_row648},
+  {(int) parser_tables___Parser___action_table_row649},
+  {(int) parser_tables___Parser___action_table_row650},
+  {(int) parser_tables___Parser___action_table_row651},
+  {(int) parser_tables___Parser___action_table_row652},
+  {(int) parser_tables___Parser___action_table_row653},
+  {(int) parser_tables___Parser___action_table_row654},
+  {(int) parser_tables___Parser___action_table_row655},
+  {(int) parser_tables___Parser___action_table_row656},
+  {(int) parser_tables___Parser___action_table_row657},
+  {(int) parser_tables___Parser___action_table_row658},
+  {(int) parser_tables___Parser___action_table_row659},
+  {(int) parser_tables___Parser___action_table_row660},
+  {(int) parser_tables___Parser___action_table_row661},
+  {(int) parser_tables___Parser___action_table_row662},
+  {(int) parser_tables___Parser___action_table_row663},
+  {(int) parser_tables___Parser___action_table_row664},
+  {(int) parser_tables___Parser___action_table_row665},
+  {(int) parser_tables___Parser___action_table_row666},
+  {(int) parser_tables___Parser___action_table_row667},
+  {(int) parser_tables___Parser___action_table_row668},
+  {(int) parser_tables___Parser___action_table_row669},
+  {(int) parser_tables___Parser___action_table_row670},
+  {(int) parser_tables___Parser___action_table_row671},
+  {(int) parser_tables___Parser___action_table_row672},
+  {(int) parser_tables___Parser___action_table_row673},
+  {(int) parser_tables___Parser___action_table_row674},
+  {(int) parser_tables___Parser___action_table_row675},
+  {(int) parser_tables___Parser___action_table_row676},
+  {(int) parser_tables___Parser___action_table_row677},
+  {(int) parser_tables___Parser___action_table_row678},
+  {(int) parser_tables___Parser___action_table_row679},
+  {(int) parser_tables___Parser___action_table_row680},
+  {(int) parser_tables___Parser___action_table_row681},
+  {(int) parser_tables___Parser___action_table_row682},
+  {(int) parser_tables___Parser___action_table_row683},
+  {(int) parser_tables___Parser___action_table_row684},
+  {(int) parser_tables___Parser___action_table_row685},
+  {(int) parser_tables___Parser___action_table_row686},
+  {(int) parser_tables___Parser___action_table_row687},
+  {(int) parser_tables___Parser___action_table_row688},
+  {(int) parser_tables___Parser___action_table_row689},
+  {(int) parser_tables___Parser___action_table_row690},
+  {(int) parser_tables___Parser___action_table_row691},
+  {(int) parser_tables___Parser___action_table_row692},
+  {(int) parser_tables___Parser___action_table_row693},
+  {(int) parser_tables___Parser___action_table_row694},
+  {(int) parser_tables___Parser___action_table_row695},
+  {(int) parser_tables___Parser___action_table_row696},
+  {(int) parser_tables___Parser___action_table_row697},
+  {(int) parser_tables___Parser___action_table_row698},
+  {(int) parser_tables___Parser___action_table_row699},
+  {(int) parser_tables___Parser___action_table_row700},
+  {(int) parser_tables___Parser___action_table_row701},
+  {(int) parser_tables___Parser___action_table_row702},
+  {(int) parser_tables___Parser___action_table_row703},
+  {(int) parser_tables___Parser___action_table_row704},
+  {(int) parser_tables___Parser___action_table_row705},
+  {(int) parser_tables___Parser___action_table_row706},
+  {(int) parser_tables___Parser___action_table_row707},
+  {(int) parser_tables___Parser___action_table_row708},
+  {(int) parser_tables___Parser___action_table_row709},
+  {(int) parser_tables___Parser___action_table_row710},
+  {(int) parser_tables___Parser___action_table_row711},
+  {(int) parser_tables___Parser___action_table_row712},
+  {(int) parser_tables___Parser___action_table_row713},
+  {(int) parser_tables___Parser___action_table_row714},
+  {(int) parser_tables___Parser___action_table_row715},
+  {(int) parser_tables___Parser___action_table_row716},
+  {(int) parser_tables___Parser___action_table_row717},
+  {(int) parser_tables___Parser___action_table_row718},
+  {(int) parser_tables___Parser___action_table_row719},
+  {(int) parser_tables___Parser___action_table_row720},
+  {(int) parser_tables___Parser___action_table_row721},
+  {(int) parser_tables___Parser___action_table_row722},
+  {(int) parser_tables___Parser___action_table_row723},
+  {(int) parser_tables___Parser___action_table_row724},
+  {(int) parser_tables___Parser___action_table_row725},
+  {(int) parser_tables___Parser___action_table_row726},
+  {(int) parser_tables___Parser___action_table_row727},
+  {(int) parser_tables___Parser___action_table_row728},
+  {(int) parser_tables___Parser___action_table_row729},
+  {(int) parser_tables___Parser___action_table_row730},
+  {(int) parser_tables___Parser___action_table_row731},
+  {(int) parser_tables___Parser___action_table_row732},
+  {(int) parser_tables___Parser___action_table_row733},
+  {(int) parser_tables___Parser___action_table_row734},
+  {(int) parser_tables___Parser___action_table_row735},
+  {(int) parser_tables___Parser___action_table_row736},
+  {(int) parser_tables___Parser___action_table_row737},
+  {(int) parser_tables___Parser___action_table_row738},
+  {(int) parser_tables___Parser___action_table_row739},
+  {(int) parser_tables___Parser___action_table_row740},
+  {(int) parser_tables___Parser___action_table_row741},
+  {(int) parser_tables___Parser___action_table_row742},
+  {(int) parser_tables___Parser___action_table_row743},
+  {(int) parser_tables___Parser___action_table_row744},
+  {(int) parser_tables___Parser___action_table_row745},
+  {(int) parser_tables___Parser___action_table_row746},
+  {(int) parser_tables___Parser___action_table_row747},
+  {(int) parser_tables___Parser___action_table_row748},
+  {(int) parser_tables___Parser___action_table_row749},
+  {(int) parser_tables___Parser___action_table_row750},
+  {(int) parser_tables___Parser___action_table_row751},
+  {(int) parser_tables___Parser___action_table_row752},
+  {(int) parser_tables___Parser___action_table_row753},
+  {(int) parser_tables___Parser___action_table_row754},
+  {(int) parser_tables___Parser___action_table_row755},
+  {(int) parser_tables___Parser___action_table_row756},
+  {(int) parser_tables___Parser___action_table_row757},
+  {(int) parser_tables___Parser___action_table_row758},
+  {(int) parser_tables___Parser___action_table_row759},
+  {(int) parser_tables___Parser___action_table_row760},
+  {(int) parser_tables___Parser___action_table_row761},
+  {(int) parser_tables___Parser___action_table_row762},
+  {(int) parser_tables___Parser___action_table_row763},
+  {(int) parser_tables___Parser___action_table_row764},
+  {(int) parser_tables___Parser___action_table_row765},
+  {(int) parser_tables___Parser___action_table_row766},
+  {(int) parser_tables___Parser___action_table_row767},
+  {(int) parser_tables___Parser___action_table_row768},
+  {(int) parser_tables___Parser___action_table_row769},
+  {(int) parser_tables___Parser___action_table_row770},
+  {(int) parser_tables___Parser___action_table_row771},
+  {(int) parser_tables___Parser___action_table_row772},
+  {(int) parser_tables___Parser___action_table_row773},
+  {(int) parser_tables___Parser___action_table_row774},
+  {(int) parser_tables___Parser___action_table_row775},
+  {(int) parser_tables___Parser___action_table_row776},
+  {(int) parser_tables___Parser___action_table_row777},
+  {(int) parser_tables___Parser___action_table_row778},
+  {(int) parser_tables___Parser___action_table_row779},
+  {(int) parser_tables___Parser___action_table_row780},
+  {(int) parser_tables___Parser___action_table_row781},
+  {(int) parser_tables___Parser___action_table_row782},
+  {(int) parser_tables___Parser___action_table_row783},
+  {(int) parser_tables___Parser___action_table_row784},
+  {(int) parser_tables___Parser___action_table_row785},
+  {(int) parser_tables___Parser___action_table_row786},
+  {(int) parser_tables___Parser___action_table_row787},
+  {(int) parser_tables___Parser___action_table_row788},
+  {(int) parser_tables___Parser___action_table_row789},
+  {(int) parser_tables___Parser___action_table_row790},
+  {(int) parser_tables___Parser___action_table_row791},
+  {(int) parser_tables___Parser___action_table_row792},
+  {(int) parser_tables___Parser___action_table_row793},
+  {(int) parser_tables___Parser___action_table_row794},
+  {(int) parser_tables___Parser___action_table_row795},
+  {(int) parser_tables___Parser___action_table_row796},
+  {(int) parser_tables___Parser___action_table_row797},
+  {(int) parser_tables___Parser___action_table_row798},
+  {(int) parser_tables___Parser___action_table_row799},
+  {(int) parser_tables___Parser___action_table_row800},
+  {(int) parser_tables___Parser___action_table_row801},
+  {(int) parser_tables___Parser___action_table_row802},
+  {(int) parser_tables___Parser___action_table_row803},
+  {(int) parser_tables___Parser___action_table_row804},
+  {(int) parser_tables___Parser___action_table_row805},
+  {(int) parser_tables___Parser___action_table_row806},
+  {(int) parser_tables___Parser___action_table_row807},
+  {(int) parser_tables___Parser___action_table_row808},
+  {(int) parser_tables___Parser___action_table_row809},
+  {(int) parser_tables___Parser___action_table_row810},
+  {(int) parser_tables___Parser___action_table_row811},
+  {(int) parser_tables___Parser___action_table_row812},
+  {(int) parser_tables___Parser___action_table_row813},
+  {(int) parser_tables___Parser___action_table_row814},
+  {(int) parser_tables___Parser___action_table_row815},
+  {(int) parser_tables___Parser___action_table_row816},
+  {(int) parser_tables___Parser___action_table_row817},
+  {(int) parser_tables___Parser___action_table_row818},
+  {(int) parser_tables___Parser___action_table_row819},
+  {(int) parser_tables___Parser___action_table_row820},
+  {(int) parser_tables___Parser___action_table_row821},
+  {(int) parser_tables___Parser___action_table_row822},
+  {(int) parser_tables___Parser___action_table_row823},
+  {(int) parser_tables___Parser___action_table_row824},
+  {(int) parser_tables___Parser___action_table_row825},
+  {(int) parser_tables___Parser___action_table_row826},
+  {(int) parser_tables___Parser___action_table_row827},
+  {(int) parser_tables___Parser___action_table_row828},
+  {(int) parser_tables___Parser___action_table_row829},
+  {(int) parser_tables___Parser___action_table_row830},
+  {(int) parser_tables___Parser___action_table_row831},
+  {(int) parser_tables___Parser___action_table_row832},
+  {(int) parser_tables___Parser___action_table_row833},
+  {(int) parser_tables___Parser___action_table_row834},
+  {(int) parser_tables___Parser___action_table_row835},
+  {(int) parser_tables___Parser___action_table_row836},
+  {(int) parser_tables___Parser___action_table_row837},
+  {(int) parser_tables___Parser___action_table_row838},
+  {(int) parser_tables___Parser___action_table_row839},
+  {(int) parser_tables___Parser___action_table_row840},
+  {(int) parser_tables___Parser___action_table_row841},
+  {(int) parser_tables___Parser___action_table_row842},
+  {(int) parser_tables___Parser___action_table_row843},
+  {(int) parser_tables___Parser___action_table_row844},
+  {(int) parser_tables___Parser___action_table_row845},
+  {(int) parser_tables___Parser___action_table_row846},
+  {(int) parser_tables___Parser___action_table_row847},
+  {(int) parser_tables___Parser___action_table_row848},
+  {(int) parser_tables___Parser___action_table_row849},
+  {(int) parser_tables___Parser___action_table_row850},
+  {(int) parser_tables___Parser___action_table_row851},
+  {(int) parser_tables___Parser___action_table_row852},
+  {(int) parser_tables___Parser___action_table_row853},
+  {(int) parser_tables___Parser___action_table_row854},
+  {(int) parser_tables___Parser___action_table_row855},
+  {(int) parser_tables___Parser___action_table_row856},
+  {(int) parser_tables___Parser___action_table_row857},
+  {(int) parser_tables___Parser___action_table_row858},
+  {(int) parser_tables___Parser___action_table_row859},
+  {(int) parser_tables___Parser___action_table_row860},
+  {(int) parser_tables___Parser___action_table_row861},
+  {(int) parser_tables___Parser___action_table_row862},
+  {(int) parser_tables___Parser___action_table_row863},
+  {(int) parser_tables___Parser___action_table_row864},
+  {(int) parser_tables___Parser___action_table_row865},
+  {(int) parser_tables___Parser___action_table_row866},
+  {(int) parser_tables___Parser___action_table_row867},
+  {(int) parser_tables___Parser___action_table_row868},
+  {(int) parser_tables___Parser___action_table_row869},
+  {(int) parser_tables___Parser___action_table_row870},
+  {(int) parser_tables___Parser___action_table_row871},
+  {(int) parser_tables___Parser___action_table_row872},
+  {(int) parser_tables___Parser___action_table_row873},
+  {(int) parser_tables___Parser___action_table_row874},
+  {(int) parser_tables___Parser___action_table_row875},
+  {(int) parser_tables___Parser___action_table_row876},
+  {(int) parser_tables___Parser___action_table_row877},
+  {(int) parser_tables___Parser___action_table_row878},
+  {(int) parser_tables___Parser___action_table_row879},
+  {(int) parser_tables___Parser___action_table_row880},
+  {(int) parser_tables___Parser___action_table_row881},
+  {(int) parser_tables___Parser___action_table_row882},
+  {(int) parser_tables___Parser___action_table_row883},
+  {(int) parser_tables___Parser___action_table_row884},
+  {(int) parser_tables___Parser___action_table_row885},
+  {(int) parser_tables___Parser___action_table_row886},
+  {(int) parser_tables___Parser___action_table_row887},
+  {(int) parser_tables___Parser___action_table_row888},
+  {(int) parser_tables___Parser___action_table_row889},
+  {(int) parser_tables___Parser___action_table_row890},
+  {(int) parser_tables___Parser___action_table_row891},
+  {(int) parser_tables___Parser___action_table_row892},
+  {(int) parser_tables___Parser___action_table_row893},
+  {(int) parser_tables___Parser___action_table_row894},
+  {(int) parser_tables___Parser___action_table_row895},
+  {(int) parser_tables___Parser___action_table_row896},
+  {(int) parser_tables___Parser___action_table_row897},
+  {(int) parser_tables___Parser___action_table_row898},
+  {(int) parser_tables___Parser___action_table_row899},
+  {(int) parser_tables___Parser___action_table_row900},
+  {(int) parser_tables___Parser___action_table_row901},
+  {(int) parser_tables___Parser___action_table_row902},
+  {(int) parser_tables___Parser___action_table_row903},
+  {(int) parser_tables___Parser___action_table_row904},
+  {(int) parser_tables___Parser___action_table_row905},
+  {(int) parser_tables___Parser___action_table_row906},
+  {(int) parser_tables___Parser___action_table_row907},
+  {(int) parser_tables___Parser___action_table_row908},
+  {(int) parser_tables___Parser___action_table_row909},
+  {(int) parser_tables___Parser___action_table_row910},
+  {(int) parser_tables___Parser___action_table_row911},
+  {(int) parser_tables___Parser___action_table_row912},
+  {(int) parser_tables___Parser___action_table_row913},
+  {(int) parser_tables___Parser___action_table_row914},
+  {(int) parser_tables___Parser___action_table_row915},
+  {(int) parser_tables___Parser___action_table_row916},
+  {(int) parser_tables___Parser___action_table_row917},
+  {(int) parser_tables___Parser___action_table_row918},
+  {(int) parser_tables___Parser___action_table_row919},
+  {(int) parser_tables___Parser___action_table_row920},
+  {(int) parser_tables___Parser___action_table_row921},
+  {(int) parser_tables___Parser___action_table_row922},
+  {(int) parser_tables___Parser___action_table_row923},
+  {(int) parser_tables___Parser___action_table_row924},
+  {(int) parser_tables___Parser___action_table_row925},
+  {(int) parser_tables___Parser___action_table_row926},
+  {(int) parser_tables___Parser___action_table_row927},
+  {(int) parser_tables___Parser___action_table_row928},
+  {(int) parser_tables___Parser___action_table_row929},
+  {(int) parser_tables___Parser___action_table_row930},
+  {(int) parser_tables___Parser___action_table_row931},
+  {(int) parser_tables___Parser___action_table_row932},
+  {(int) parser_tables___Parser___action_table_row933},
+  {(int) parser_tables___Parser___action_table_row934},
+  {(int) parser_tables___Parser___action_table_row935},
+  {(int) parser_tables___Parser___action_table_row936},
+  {(int) parser_tables___Parser___action_table_row937},
+  {(int) parser_tables___Parser___action_table_row938},
+  {(int) parser_tables___Parser___action_table_row939},
+  {(int) parser_tables___Parser___action_table_row940},
+  {(int) parser_tables___Parser___action_table_row941},
+  {(int) parser_tables___Parser___action_table_row942},
+  {(int) parser_tables___Parser___action_table_row943},
+  {(int) parser_tables___Parser___action_table_row944},
+  {(int) parser_tables___Parser___action_table_row945},
+  {(int) parser_tables___Parser___action_table_row946},
+  {(int) parser_tables___Parser___action_table_row947},
+  {(int) parser_tables___Parser___action_table_row948},
+  {(int) parser_tables___Parser___action_table_row949},
+  {(int) parser_tables___Parser___action_table_row950},
+  {(int) parser_tables___Parser___action_table_row951},
+  {(int) parser_tables___Parser___action_table_row952},
+  {(int) parser_tables___Parser___action_table_row953},
+  {(int) parser_tables___Parser___action_table_row954},
+  {(int) parser_tables___Parser___action_table_row955},
+  {(int) parser_tables___Parser___action_table_row956},
+  {(int) parser_tables___Parser___action_table_row957},
+  {(int) parser_tables___Parser___action_table_row958},
+  {(int) parser_tables___Parser___action_table_row959},
+  {(int) parser_tables___Parser___action_table_row960},
+  {(int) parser_tables___Parser___action_table_row961},
+  {(int) parser_tables___Parser___action_table_row962},
+  {(int) parser_tables___Parser___action_table_row963},
+  {(int) parser_tables___Parser___action_table_row964},
+  {(int) parser_tables___Parser___action_table_row965},
+  {(int) parser_tables___Parser___action_table_row966},
+  {(int) parser_tables___Parser___action_table_row967},
+  {(int) parser_tables___Parser___action_table_row968},
+  {(int) parser_tables___Parser___action_table_row969},
+  {(int) parser_tables___Parser___action_table_row970},
+  {(int) parser_tables___Parser___action_table_row971},
+  {(int) parser_tables___Parser___action_table_row972},
+  {(int) parser_tables___Parser___action_table_row973},
+  {(int) parser_tables___Parser___action_table_row974},
+  {(int) parser_tables___Parser___action_table_row975},
+  {(int) parser_tables___Parser___action_table_row976},
+  {(int) parser_tables___Parser___action_table_row977},
+  {(int) parser_tables___Parser___action_table_row978},
+  {(int) parser_tables___Parser___action_table_row979},
+  {(int) parser_tables___Parser___action_table_row980},
+  {(int) parser_tables___Parser___action_table_row981},
+  {(int) parser_tables___Parser___action_table_row982},
+  {(int) parser_tables___Parser___action_table_row983},
+  {(int) parser_tables___Parser___action_table_row984},
+  {(int) parser_tables___Parser___action_table_row985},
+  {(int) parser_tables___Parser___action_table_row986},
+  {(int) parser_tables___Parser___action_table_row987},
+  {(int) parser_tables___Parser___action_table_row988},
+  {(int) parser_tables___Parser___action_table_row989},
+  {(int) parser_tables___Parser___action_table_row990},
+  {(int) parser_tables___Parser___action_table_row991},
+  {(int) parser_tables___Parser___action_table_row992},
+  {(int) parser_tables___Parser___action_table_row993},
+  {(int) parser_tables___Parser___action_table_row994},
+  {(int) parser_tables___Parser___action_table_row995},
+  {(int) parser_tables___Parser___action_table_row996},
+  {(int) parser_tables___Parser___action_table_row997},
+  {(int) parser_tables___Parser___action_table_row998},
+  {(int) parser_tables___Parser___action_table_row999},
+  {(int) parser_tables___Parser___action_table_row1000},
+  {(int) parser_tables___Parser___action_table_row1001},
+  {(int) parser_tables___Parser___action_table_row1002},
+  {(int) parser_tables___Parser___action_table_row1003},
+  {(int) parser_tables___Parser___action_table_row1004},
+  {(int) parser_tables___Parser___action_table_row1005},
+  {(int) parser_tables___Parser___action_table_row1006},
+  {(int) parser_tables___Parser___action_table_row1007},
+  {(int) parser_tables___Parser___action_table_row1008},
+  {(int) parser_tables___Parser___action_table_row1009},
+  {(int) parser_tables___Parser___action_table_row1010},
+  {(int) parser_tables___Parser___action_table_row1011},
+  {(int) parser_tables___Parser___action_table_row1012},
+  {(int) parser_tables___Parser___action_table_row1013},
+  {(int) parser_tables___Parser___action_table_row1014},
+  {(int) parser_tables___Parser___action_table_row1015},
+  {(int) parser_tables___Parser___action_table_row1016},
+  {(int) parser_tables___Parser___action_table_row1017},
+  {(int) parser_tables___Parser___action_table_row1018},
+  {(int) parser_tables___Parser___action_table_row1019},
+  {(int) parser_tables___Parser___action_table_row1020},
+  {(int) parser_tables___Parser___action_table_row1021},
+  {(int) parser_tables___Parser___action_table_row1022},
+  {(int) parser_tables___Parser___action_table_row1023},
+  {(int) parser_tables___Parser___action_table_row1024},
+  {(int) parser_tables___Parser___action_table_row1025},
+  {(int) parser_tables___Parser___action_table_row1026},
+  {(int) parser_tables___Parser___action_table_row1027},
+  {(int) parser_tables___Parser___action_table_row1028},
+  {(int) parser_tables___Parser___action_table_row1029},
+  {(int) parser_tables___Parser___action_table_row1030},
+  {(int) parser_tables___Parser___action_table_row1031},
+  {(int) parser_tables___Parser___action_table_row1032},
+  {(int) parser_tables___Parser___action_table_row1033},
+  {(int) parser_tables___Parser___action_table_row1034},
+  {(int) parser_tables___Parser___action_table_row1035},
+  {(int) parser_tables___Parser___action_table_row1036},
+  {(int) parser_tables___Parser___action_table_row1037},
+  {(int) parser_tables___Parser___action_table_row1038},
+  {(int) parser_tables___Parser___action_table_row1039},
+  {(int) parser_tables___Parser___action_table_row1040},
+  {(int) parser_tables___Parser___action_table_row1041},
+  {(int) parser_tables___Parser___action_table_row1042},
+  {(int) parser_tables___Parser___action_table_row1043},
+  {(int) parser_tables___Parser___action_table_row1044},
+  {(int) parser_tables___Parser___action_table_row1045},
+  {(int) parser_tables___Parser___action_table_row1046},
+  {(int) parser_tables___Parser___action_table_row1047},
+  {(int) parser_tables___Parser___action_table_row1048},
+  {(int) parser_tables___Parser___action_table_row1049},
+  {(int) parser_tables___Parser___action_table_row1050},
+  {(int) parser_tables___Parser___action_table_row1051},
+  {(int) parser_tables___Parser___action_table_row1052},
+  {(int) parser_tables___Parser___action_table_row1053},
+  {(int) parser_tables___Parser___action_table_row1054},
+  {(int) parser_tables___Parser___action_table_row1055},
+  {(int) parser_tables___Parser___action_table_row1056},
+  {(int) parser_tables___Parser___action_table_row1057},
+  {(int) parser_tables___Parser___action_table_row1058},
+  {(int) parser_tables___Parser___action_table_row1059},
+  {(int) parser_tables___Parser___action_table_row1060},
+  {(int) parser_tables___Parser___action_table_row1061},
+  {(int) parser_tables___Parser___action_table_row1062},
+  {(int) parser_tables___Parser___action_table_row1063},
+  {(int) parser_tables___Parser___action_table_row1064},
+  {(int) parser_tables___Parser___action_table_row1065},
+  {(int) parser_tables___Parser___action_table_row1066},
+  {(int) parser_tables___Parser___action_table_row1067},
+  {(int) parser_tables___Parser___action_table_row1068},
+  {(int) parser_tables___Parser___action_table_row1069},
+  {(int) parser_tables___Parser___action_table_row1070},
+  {(int) parser_tables___Parser___action_table_row1071},
+  {(int) parser_tables___Parser___action_table_row1072},
+  {(int) parser_tables___Parser___action_table_row1073},
+  {(int) parser_tables___Parser___action_table_row1074},
+  {(int) parser_tables___Parser___action_table_row1075},
+  {(int) parser_tables___Parser___action_table_row1076},
+  {(int) parser_tables___Parser___action_table_row1077},
+  {(int) parser_tables___Parser___action_table_row1078},
+  {(int) parser_tables___Parser___action_table_row1079},
+  {(int) parser_tables___Parser___action_table_row1080},
+  {(int) parser_tables___Parser___action_table_row1081},
+  {(int) parser_tables___Parser___action_table_row1082},
+  {(int) parser_tables___Parser___action_table_row1083},
+  {(int) parser_tables___Parser___action_table_row1084},
+  {(int) parser_tables___Parser___action_table_row1085},
+  {(int) parser_tables___Parser___action_table_row1086},
+  {(int) parser_tables___Parser___action_table_row1087},
+  {(int) parser_tables___Parser___action_table_row1088},
+  {(int) parser_tables___Parser___action_table_row1089},
+  {(int) parser_tables___Parser___action_table_row1090},
+  {(int) parser_tables___Parser___action_table_row1091},
+  {(int) parser_tables___Parser___action_table_row1092},
+  {(int) parser_tables___Parser___action_table_row1093},
+  {(int) parser_tables___Parser___action_table_row1094},
+  {(int) parser_tables___Parser___action_table_row1095},
+  {(int) parser_tables___Parser___action_table_row1096},
+  {(int) parser_tables___Parser___action_table_row1097},
+  {(int) parser_tables___Parser___action_table_row1098},
+  {(int) parser_tables___Parser___action_table_row1099},
+  {(int) parser_tables___Parser___action_table_row1100},
+  {(int) parser_tables___Parser___action_table_row1101},
+  {(int) parser_tables___Parser___action_table_row1102},
+  {(int) parser_tables___Parser___action_table_row1103},
+  {(int) parser_tables___Parser___action_table_row1104},
+  {(int) parser_tables___Parser___action_table_row1105},
+  {(int) parser_tables___Parser___action_table_row1106},
+  {(int) parser_tables___Parser___action_table_row1107},
+  {(int) parser_tables___Parser___action_table_row1108},
+  {(int) parser_tables___Parser___action_table_row1109},
+  {(int) parser_tables___Parser___action_table_row1110},
+  {(int) parser_tables___Parser___action_table_row1111},
+  {(int) parser_tables___Parser___action_table_row1112},
+  {(int) parser_tables___Parser___action_table_row1113},
+  {(int) parser_tables___Parser___action_table_row1114},
+  {(int) parser_tables___Parser___action_table_row1115},
+  {(int) parser_tables___Parser___action_table_row1116},
+  {(int) parser_tables___Parser___action_table_row1117},
+  {(int) parser_tables___Parser___action_table_row1118},
+  {(int) parser_tables___Parser___action_table_row1119},
+  {(int) parser_tables___Parser___action_table_row1120},
+  {(int) parser_tables___Parser___action_table_row1121},
+  {(int) parser_tables___Parser___action_table_row1122},
+  {(int) parser_tables___Parser___action_table_row1123},
+  {(int) parser_tables___Parser___action_table_row1124},
+  {(int) parser_tables___Parser___action_table_row1125},
+  {(int) parser_tables___Parser___action_table_row1126},
+  {(int) parser_tables___Parser___action_table_row1127},
+  {(int) parser_tables___Parser___action_table_row1128},
+  {(int) parser_tables___Parser___action_table_row1129},
+  {(int) parser_tables___Parser___action_table_row1130},
+  {(int) parser_tables___Parser___action_table_row1131},
+  {(int) parser_tables___Parser___action_table_row1132},
+  {(int) parser_tables___Parser___action_table_row1133},
+  {(int) parser_tables___Parser___action_table_row1134},
+  {(int) parser_tables___Parser___action_table_row1135},
+  {(int) parser_tables___Parser___action_table_row1136},
+  {(int) parser_tables___Parser___action_table_row1137},
+  {(int) parser_tables___Parser___action_table_row1138},
+  {(int) parser_tables___Parser___action_table_row1139},
+  {(int) parser_tables___Parser___action_table_row1140},
+  {(int) parser_tables___Parser___action_table_row1141},
+  {(int) parser_tables___Parser___action_table_row1142},
+  {(int) parser_tables___Parser___action_table_row1143},
+  {(int) parser_tables___Parser___action_table_row1144},
+  {(int) parser_tables___Parser___build_goto_table},
+  {(int) parser_tables___Parser___error_messages},
+  {(int) parser_tables___Parser___errors},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Parser::_lexer */
+/* 2: Attribute Parser::_stack */
+/* 3: Attribute Parser::_stack_pos */
+/* 4: Attribute Parser::_reduce_table */
+/* 5: Attribute Parser::_action_table */
+/* 6: Attribute Parser::_goto_table */
+val_t NEW_Parser(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_Parser;
+  ATTR_parser___Parser____stack_pos(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___Parser___init(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Parser();
+  parser___Parser___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_State[46] = {
+  {(int) 35 /* 0: Identity */},
+  {(int) 3 /* 1: State < Object: superclass typecheck marker */},
+  {(int) 35 /* 2: State < State: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: State < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: State < State: superclass init_table position */},
+  {(int) parser___State___state},
+  {(int) parser___State___state__eq},
+  {(int) parser___State___nodes},
+  {(int) parser___State___nodes__eq},
+  {(int) parser___State___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute State::_state */
+/* 2: Attribute State::_nodes */
+val_t NEW_State(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_State;
+  ATTR_parser___State____state(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___State___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_State();
+  parser___State___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_SearchTokensVisitor[44] = {
+  {(int) 207 /* 0: Identity */},
+  {(int) 3 /* 1: SearchTokensVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: SearchTokensVisitor < Visitor: superclass typecheck marker */},
+  {(int) 207 /* 3: SearchTokensVisitor < SearchTokensVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: SearchTokensVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: SearchTokensVisitor < Visitor: superclass init_table position */},
+  {(int) parser___SearchTokensVisitor___visit},
+  {(int) 2 /* 42: SearchTokensVisitor < SearchTokensVisitor: superclass init_table position */},
+  {(int) parser___SearchTokensVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute SearchTokensVisitor::_untokenned_nodes */
+/* 2: Attribute SearchTokensVisitor::_last_token */
+val_t NEW_SearchTokensVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_SearchTokensVisitor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___SearchTokensVisitor___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_SearchTokensVisitor();
+  parser___SearchTokensVisitor___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction[42] = {
+  {(int) 39 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction < ReduceAction: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction___action},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ReduceAction0[44] = {
+  {(int) 2487 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction0 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction0 < ReduceAction: superclass typecheck marker */},
+  {(int) 2487 /* 3: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction0 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction0 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction0___action},
+  {(int) 2 /* 42: ReduceAction0 < ReduceAction0: superclass init_table position */},
+  {(int) parser___ReduceAction0___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction0(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction0;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction0___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction0();
+  parser___ReduceAction0___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction1[44] = {
+  {(int) 2483 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction1 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction1 < ReduceAction: superclass typecheck marker */},
+  {(int) 2483 /* 3: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction1 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction1 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction1___action},
+  {(int) 2 /* 42: ReduceAction1 < ReduceAction1: superclass init_table position */},
+  {(int) parser___ReduceAction1___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction1(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction1___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction1();
+  parser___ReduceAction1___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction2[44] = {
+  {(int) 2039 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction2 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction2 < ReduceAction: superclass typecheck marker */},
+  {(int) 2039 /* 3: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction2 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction2 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction2___action},
+  {(int) 2 /* 42: ReduceAction2 < ReduceAction2: superclass init_table position */},
+  {(int) parser___ReduceAction2___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction2(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction2;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction2___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction2();
+  parser___ReduceAction2___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction3[44] = {
+  {(int) 1595 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction3 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction3 < ReduceAction: superclass typecheck marker */},
+  {(int) 1595 /* 3: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction3 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction3 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction3___action},
+  {(int) 2 /* 42: ReduceAction3 < ReduceAction3: superclass init_table position */},
+  {(int) parser___ReduceAction3___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction3(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction3;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction3___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction3();
+  parser___ReduceAction3___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction4[44] = {
+  {(int) 1151 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction4 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction4 < ReduceAction: superclass typecheck marker */},
+  {(int) 1151 /* 3: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction4 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction4 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction4___action},
+  {(int) 2 /* 42: ReduceAction4 < ReduceAction4: superclass init_table position */},
+  {(int) parser___ReduceAction4___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction4(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction4;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction4___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction4();
+  parser___ReduceAction4___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction5[44] = {
+  {(int) 707 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction5 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction5 < ReduceAction: superclass typecheck marker */},
+  {(int) 707 /* 3: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction5 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction5 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction5___action},
+  {(int) 2 /* 42: ReduceAction5 < ReduceAction5: superclass init_table position */},
+  {(int) parser___ReduceAction5___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction5(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction5;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction5___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction5();
+  parser___ReduceAction5___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction6[44] = {
+  {(int) 387 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction6 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction6 < ReduceAction: superclass typecheck marker */},
+  {(int) 387 /* 3: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction6 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction6 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction6___action},
+  {(int) 2 /* 42: ReduceAction6 < ReduceAction6: superclass init_table position */},
+  {(int) parser___ReduceAction6___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction6(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction6;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction6___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction6();
+  parser___ReduceAction6___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction7[44] = {
+  {(int) 343 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction7 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction7 < ReduceAction: superclass typecheck marker */},
+  {(int) 343 /* 3: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction7 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction7 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction7___action},
+  {(int) 2 /* 42: ReduceAction7 < ReduceAction7: superclass init_table position */},
+  {(int) parser___ReduceAction7___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction7(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction7;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction7___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction7();
+  parser___ReduceAction7___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction8[44] = {
+  {(int) 299 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction8 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction8 < ReduceAction: superclass typecheck marker */},
+  {(int) 299 /* 3: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction8 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction8 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction8___action},
+  {(int) 2 /* 42: ReduceAction8 < ReduceAction8: superclass init_table position */},
+  {(int) parser___ReduceAction8___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction8(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction8;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction8___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction8();
+  parser___ReduceAction8___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction9[44] = {
+  {(int) 255 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction9 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction9 < ReduceAction: superclass typecheck marker */},
+  {(int) 255 /* 3: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction9 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction9 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction9___action},
+  {(int) 2 /* 42: ReduceAction9 < ReduceAction9: superclass init_table position */},
+  {(int) parser___ReduceAction9___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction9(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction9;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction9___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction9();
+  parser___ReduceAction9___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction10[44] = {
+  {(int) 2479 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction10 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction10 < ReduceAction: superclass typecheck marker */},
+  {(int) 2479 /* 3: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction10 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction10 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction10___action},
+  {(int) 2 /* 42: ReduceAction10 < ReduceAction10: superclass init_table position */},
+  {(int) parser___ReduceAction10___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction10(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction10;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction10___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction10();
+  parser___ReduceAction10___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction11[44] = {
+  {(int) 2435 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction11 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction11 < ReduceAction: superclass typecheck marker */},
+  {(int) 2435 /* 3: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction11 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction11 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction11___action},
+  {(int) 2 /* 42: ReduceAction11 < ReduceAction11: superclass init_table position */},
+  {(int) parser___ReduceAction11___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction11(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction11;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction11___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction11();
+  parser___ReduceAction11___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction12[44] = {
+  {(int) 2391 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction12 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction12 < ReduceAction: superclass typecheck marker */},
+  {(int) 2391 /* 3: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction12 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction12 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction12___action},
+  {(int) 2 /* 42: ReduceAction12 < ReduceAction12: superclass init_table position */},
+  {(int) parser___ReduceAction12___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction12(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction12;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction12___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction12();
+  parser___ReduceAction12___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction13[44] = {
+  {(int) 2347 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction13 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction13 < ReduceAction: superclass typecheck marker */},
+  {(int) 2347 /* 3: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction13 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction13 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction13___action},
+  {(int) 2 /* 42: ReduceAction13 < ReduceAction13: superclass init_table position */},
+  {(int) parser___ReduceAction13___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction13(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction13;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction13___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction13();
+  parser___ReduceAction13___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction14[44] = {
+  {(int) 2303 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction14 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction14 < ReduceAction: superclass typecheck marker */},
+  {(int) 2303 /* 3: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction14 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction14 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction14___action},
+  {(int) 2 /* 42: ReduceAction14 < ReduceAction14: superclass init_table position */},
+  {(int) parser___ReduceAction14___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction14(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction14;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction14___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction14();
+  parser___ReduceAction14___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction15[44] = {
+  {(int) 2259 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction15 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction15 < ReduceAction: superclass typecheck marker */},
+  {(int) 2259 /* 3: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction15 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction15 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction15___action},
+  {(int) 2 /* 42: ReduceAction15 < ReduceAction15: superclass init_table position */},
+  {(int) parser___ReduceAction15___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction15(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction15;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction15___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction15();
+  parser___ReduceAction15___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction16[44] = {
+  {(int) 2215 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction16 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction16 < ReduceAction: superclass typecheck marker */},
+  {(int) 2215 /* 3: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction16 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction16 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction16___action},
+  {(int) 2 /* 42: ReduceAction16 < ReduceAction16: superclass init_table position */},
+  {(int) parser___ReduceAction16___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction16(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction16;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction16___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction16();
+  parser___ReduceAction16___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction17[44] = {
+  {(int) 2171 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction17 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction17 < ReduceAction: superclass typecheck marker */},
+  {(int) 2171 /* 3: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction17 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction17 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction17___action},
+  {(int) 2 /* 42: ReduceAction17 < ReduceAction17: superclass init_table position */},
+  {(int) parser___ReduceAction17___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction17(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction17;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction17___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction17();
+  parser___ReduceAction17___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction18[44] = {
+  {(int) 2127 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction18 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction18 < ReduceAction: superclass typecheck marker */},
+  {(int) 2127 /* 3: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction18 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction18 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction18___action},
+  {(int) 2 /* 42: ReduceAction18 < ReduceAction18: superclass init_table position */},
+  {(int) parser___ReduceAction18___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction18(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction18;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction18___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction18();
+  parser___ReduceAction18___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction19[44] = {
+  {(int) 2083 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction19 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction19 < ReduceAction: superclass typecheck marker */},
+  {(int) 2083 /* 3: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction19 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction19 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction19___action},
+  {(int) 2 /* 42: ReduceAction19 < ReduceAction19: superclass init_table position */},
+  {(int) parser___ReduceAction19___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction19(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction19;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction19___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction19();
+  parser___ReduceAction19___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction20[44] = {
+  {(int) 2035 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction20 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction20 < ReduceAction: superclass typecheck marker */},
+  {(int) 2035 /* 3: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction20 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction20 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction20___action},
+  {(int) 2 /* 42: ReduceAction20 < ReduceAction20: superclass init_table position */},
+  {(int) parser___ReduceAction20___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction20(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction20;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction20___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction20();
+  parser___ReduceAction20___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction21[44] = {
+  {(int) 1991 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction21 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction21 < ReduceAction: superclass typecheck marker */},
+  {(int) 1991 /* 3: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction21 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction21 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction21___action},
+  {(int) 2 /* 42: ReduceAction21 < ReduceAction21: superclass init_table position */},
+  {(int) parser___ReduceAction21___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction21(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction21;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction21___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction21();
+  parser___ReduceAction21___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction22[44] = {
+  {(int) 1947 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction22 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction22 < ReduceAction: superclass typecheck marker */},
+  {(int) 1947 /* 3: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction22 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction22 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction22___action},
+  {(int) 2 /* 42: ReduceAction22 < ReduceAction22: superclass init_table position */},
+  {(int) parser___ReduceAction22___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction22(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction22;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction22___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction22();
+  parser___ReduceAction22___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction23[44] = {
+  {(int) 1903 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction23 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction23 < ReduceAction: superclass typecheck marker */},
+  {(int) 1903 /* 3: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction23 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction23 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction23___action},
+  {(int) 2 /* 42: ReduceAction23 < ReduceAction23: superclass init_table position */},
+  {(int) parser___ReduceAction23___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction23(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction23;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction23___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction23();
+  parser___ReduceAction23___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction24[44] = {
+  {(int) 1859 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction24 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction24 < ReduceAction: superclass typecheck marker */},
+  {(int) 1859 /* 3: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction24 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction24 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction24___action},
+  {(int) 2 /* 42: ReduceAction24 < ReduceAction24: superclass init_table position */},
+  {(int) parser___ReduceAction24___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction24(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction24;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction24___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction24();
+  parser___ReduceAction24___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction25[44] = {
+  {(int) 1815 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction25 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction25 < ReduceAction: superclass typecheck marker */},
+  {(int) 1815 /* 3: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction25 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction25 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction25___action},
+  {(int) 2 /* 42: ReduceAction25 < ReduceAction25: superclass init_table position */},
+  {(int) parser___ReduceAction25___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction25(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction25;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction25___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction25();
+  parser___ReduceAction25___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction26[44] = {
+  {(int) 1771 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction26 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction26 < ReduceAction: superclass typecheck marker */},
+  {(int) 1771 /* 3: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction26 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction26 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction26___action},
+  {(int) 2 /* 42: ReduceAction26 < ReduceAction26: superclass init_table position */},
+  {(int) parser___ReduceAction26___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction26(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction26;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction26___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction26();
+  parser___ReduceAction26___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction27[44] = {
+  {(int) 1727 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction27 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction27 < ReduceAction: superclass typecheck marker */},
+  {(int) 1727 /* 3: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction27 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction27 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction27___action},
+  {(int) 2 /* 42: ReduceAction27 < ReduceAction27: superclass init_table position */},
+  {(int) parser___ReduceAction27___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction27(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction27;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction27___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction27();
+  parser___ReduceAction27___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction28[44] = {
+  {(int) 1683 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction28 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction28 < ReduceAction: superclass typecheck marker */},
+  {(int) 1683 /* 3: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction28 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction28 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction28___action},
+  {(int) 2 /* 42: ReduceAction28 < ReduceAction28: superclass init_table position */},
+  {(int) parser___ReduceAction28___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction28(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction28;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction28___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction28();
+  parser___ReduceAction28___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction29[44] = {
+  {(int) 1639 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction29 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction29 < ReduceAction: superclass typecheck marker */},
+  {(int) 1639 /* 3: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction29 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction29 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction29___action},
+  {(int) 2 /* 42: ReduceAction29 < ReduceAction29: superclass init_table position */},
+  {(int) parser___ReduceAction29___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction29(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction29;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction29___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction29();
+  parser___ReduceAction29___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction30[44] = {
+  {(int) 1591 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction30 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction30 < ReduceAction: superclass typecheck marker */},
+  {(int) 1591 /* 3: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction30 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction30 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction30___action},
+  {(int) 2 /* 42: ReduceAction30 < ReduceAction30: superclass init_table position */},
+  {(int) parser___ReduceAction30___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction30(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction30;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction30___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction30();
+  parser___ReduceAction30___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction31[44] = {
+  {(int) 1547 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction31 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction31 < ReduceAction: superclass typecheck marker */},
+  {(int) 1547 /* 3: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction31 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction31 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction31___action},
+  {(int) 2 /* 42: ReduceAction31 < ReduceAction31: superclass init_table position */},
+  {(int) parser___ReduceAction31___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction31(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction31;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction31___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction31();
+  parser___ReduceAction31___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction32[44] = {
+  {(int) 1503 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction32 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction32 < ReduceAction: superclass typecheck marker */},
+  {(int) 1503 /* 3: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction32 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction32 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction32___action},
+  {(int) 2 /* 42: ReduceAction32 < ReduceAction32: superclass init_table position */},
+  {(int) parser___ReduceAction32___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction32(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction32;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction32___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction32();
+  parser___ReduceAction32___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction33[44] = {
+  {(int) 1459 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction33 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction33 < ReduceAction: superclass typecheck marker */},
+  {(int) 1459 /* 3: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction33 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction33 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction33___action},
+  {(int) 2 /* 42: ReduceAction33 < ReduceAction33: superclass init_table position */},
+  {(int) parser___ReduceAction33___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction33(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction33;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction33___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction33();
+  parser___ReduceAction33___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction34[44] = {
+  {(int) 1415 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction34 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction34 < ReduceAction: superclass typecheck marker */},
+  {(int) 1415 /* 3: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction34 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction34 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction34___action},
+  {(int) 2 /* 42: ReduceAction34 < ReduceAction34: superclass init_table position */},
+  {(int) parser___ReduceAction34___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction34(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction34;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction34___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction34();
+  parser___ReduceAction34___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction35[44] = {
+  {(int) 1371 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction35 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction35 < ReduceAction: superclass typecheck marker */},
+  {(int) 1371 /* 3: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction35 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction35 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction35___action},
+  {(int) 2 /* 42: ReduceAction35 < ReduceAction35: superclass init_table position */},
+  {(int) parser___ReduceAction35___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction35(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction35;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction35___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction35();
+  parser___ReduceAction35___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction36[44] = {
+  {(int) 1327 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction36 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction36 < ReduceAction: superclass typecheck marker */},
+  {(int) 1327 /* 3: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction36 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction36 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction36___action},
+  {(int) 2 /* 42: ReduceAction36 < ReduceAction36: superclass init_table position */},
+  {(int) parser___ReduceAction36___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction36(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction36;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction36___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction36();
+  parser___ReduceAction36___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction37[44] = {
+  {(int) 1283 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction37 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction37 < ReduceAction: superclass typecheck marker */},
+  {(int) 1283 /* 3: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction37 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction37 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction37___action},
+  {(int) 2 /* 42: ReduceAction37 < ReduceAction37: superclass init_table position */},
+  {(int) parser___ReduceAction37___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction37(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction37;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction37___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction37();
+  parser___ReduceAction37___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction38[44] = {
+  {(int) 1239 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction38 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction38 < ReduceAction: superclass typecheck marker */},
+  {(int) 1239 /* 3: ReduceAction38 < ReduceAction38: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction38 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction38 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction38___action},
+  {(int) 2 /* 42: ReduceAction38 < ReduceAction38: superclass init_table position */},
+  {(int) parser___ReduceAction38___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction38(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction38;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction38___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction38();
+  parser___ReduceAction38___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction39[44] = {
+  {(int) 1195 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction39 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction39 < ReduceAction: superclass typecheck marker */},
+  {(int) 1195 /* 3: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction39 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction39 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction39___action},
+  {(int) 2 /* 42: ReduceAction39 < ReduceAction39: superclass init_table position */},
+  {(int) parser___ReduceAction39___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction39(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction39;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction39___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction39();
+  parser___ReduceAction39___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction40[44] = {
+  {(int) 1147 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction40 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction40 < ReduceAction: superclass typecheck marker */},
+  {(int) 1147 /* 3: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction40 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction40 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction40___action},
+  {(int) 2 /* 42: ReduceAction40 < ReduceAction40: superclass init_table position */},
+  {(int) parser___ReduceAction40___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction40(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction40;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction40___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction40();
+  parser___ReduceAction40___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction41[44] = {
+  {(int) 1103 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction41 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction41 < ReduceAction: superclass typecheck marker */},
+  {(int) 1103 /* 3: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction41 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction41 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction41___action},
+  {(int) 2 /* 42: ReduceAction41 < ReduceAction41: superclass init_table position */},
+  {(int) parser___ReduceAction41___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction41(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction41;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction41___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction41();
+  parser___ReduceAction41___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction42[44] = {
+  {(int) 1059 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction42 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction42 < ReduceAction: superclass typecheck marker */},
+  {(int) 1059 /* 3: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction42 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction42 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction42___action},
+  {(int) 2 /* 42: ReduceAction42 < ReduceAction42: superclass init_table position */},
+  {(int) parser___ReduceAction42___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction42(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction42;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction42___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction42();
+  parser___ReduceAction42___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction43[44] = {
+  {(int) 1015 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction43 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction43 < ReduceAction: superclass typecheck marker */},
+  {(int) 1015 /* 3: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction43 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction43 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction43___action},
+  {(int) 2 /* 42: ReduceAction43 < ReduceAction43: superclass init_table position */},
+  {(int) parser___ReduceAction43___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction43(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction43;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction43___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction43();
+  parser___ReduceAction43___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction44[44] = {
+  {(int) 971 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction44 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction44 < ReduceAction: superclass typecheck marker */},
+  {(int) 971 /* 3: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction44 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction44 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction44___action},
+  {(int) 2 /* 42: ReduceAction44 < ReduceAction44: superclass init_table position */},
+  {(int) parser___ReduceAction44___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction44(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction44;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction44___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction44();
+  parser___ReduceAction44___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction45[44] = {
+  {(int) 927 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction45 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction45 < ReduceAction: superclass typecheck marker */},
+  {(int) 927 /* 3: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction45 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction45 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction45___action},
+  {(int) 2 /* 42: ReduceAction45 < ReduceAction45: superclass init_table position */},
+  {(int) parser___ReduceAction45___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction45(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction45;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction45___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction45();
+  parser___ReduceAction45___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction46[44] = {
+  {(int) 883 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction46 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction46 < ReduceAction: superclass typecheck marker */},
+  {(int) 883 /* 3: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction46 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction46 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction46___action},
+  {(int) 2 /* 42: ReduceAction46 < ReduceAction46: superclass init_table position */},
+  {(int) parser___ReduceAction46___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction46(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction46;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction46___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction46();
+  parser___ReduceAction46___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction47[44] = {
+  {(int) 839 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction47 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction47 < ReduceAction: superclass typecheck marker */},
+  {(int) 839 /* 3: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction47 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction47 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction47___action},
+  {(int) 2 /* 42: ReduceAction47 < ReduceAction47: superclass init_table position */},
+  {(int) parser___ReduceAction47___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction47(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction47;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction47___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction47();
+  parser___ReduceAction47___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction48[44] = {
+  {(int) 795 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction48 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction48 < ReduceAction: superclass typecheck marker */},
+  {(int) 795 /* 3: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction48 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction48 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction48___action},
+  {(int) 2 /* 42: ReduceAction48 < ReduceAction48: superclass init_table position */},
+  {(int) parser___ReduceAction48___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction48(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction48;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction48___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction48();
+  parser___ReduceAction48___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction49[44] = {
+  {(int) 751 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction49 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction49 < ReduceAction: superclass typecheck marker */},
+  {(int) 751 /* 3: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction49 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction49 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction49___action},
+  {(int) 2 /* 42: ReduceAction49 < ReduceAction49: superclass init_table position */},
+  {(int) parser___ReduceAction49___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction49(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction49;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction49___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction49();
+  parser___ReduceAction49___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction50[44] = {
+  {(int) 703 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction50 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction50 < ReduceAction: superclass typecheck marker */},
+  {(int) 703 /* 3: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction50 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction50 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction50___action},
+  {(int) 2 /* 42: ReduceAction50 < ReduceAction50: superclass init_table position */},
+  {(int) parser___ReduceAction50___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction50(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction50;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction50___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction50();
+  parser___ReduceAction50___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction51[44] = {
+  {(int) 659 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction51 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction51 < ReduceAction: superclass typecheck marker */},
+  {(int) 659 /* 3: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction51 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction51 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction51___action},
+  {(int) 2 /* 42: ReduceAction51 < ReduceAction51: superclass init_table position */},
+  {(int) parser___ReduceAction51___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction51(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction51;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction51___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction51();
+  parser___ReduceAction51___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction52[44] = {
+  {(int) 615 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction52 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction52 < ReduceAction: superclass typecheck marker */},
+  {(int) 615 /* 3: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction52 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction52 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction52___action},
+  {(int) 2 /* 42: ReduceAction52 < ReduceAction52: superclass init_table position */},
+  {(int) parser___ReduceAction52___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction52(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction52;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction52___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction52();
+  parser___ReduceAction52___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction53[44] = {
+  {(int) 571 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction53 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction53 < ReduceAction: superclass typecheck marker */},
+  {(int) 571 /* 3: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction53 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction53 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction53___action},
+  {(int) 2 /* 42: ReduceAction53 < ReduceAction53: superclass init_table position */},
+  {(int) parser___ReduceAction53___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction53(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction53;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction53___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction53();
+  parser___ReduceAction53___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction54[44] = {
+  {(int) 527 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction54 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction54 < ReduceAction: superclass typecheck marker */},
+  {(int) 527 /* 3: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction54 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction54 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction54___action},
+  {(int) 2 /* 42: ReduceAction54 < ReduceAction54: superclass init_table position */},
+  {(int) parser___ReduceAction54___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction54(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction54;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction54___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction54();
+  parser___ReduceAction54___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction55[44] = {
+  {(int) 483 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction55 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction55 < ReduceAction: superclass typecheck marker */},
+  {(int) 483 /* 3: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction55 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction55 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction55___action},
+  {(int) 2 /* 42: ReduceAction55 < ReduceAction55: superclass init_table position */},
+  {(int) parser___ReduceAction55___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction55(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction55;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction55___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction55();
+  parser___ReduceAction55___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction56[44] = {
+  {(int) 439 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction56 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction56 < ReduceAction: superclass typecheck marker */},
+  {(int) 439 /* 3: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction56 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction56 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction56___action},
+  {(int) 2 /* 42: ReduceAction56 < ReduceAction56: superclass init_table position */},
+  {(int) parser___ReduceAction56___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction56(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction56;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction56___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction56();
+  parser___ReduceAction56___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction57[44] = {
+  {(int) 399 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction57 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction57 < ReduceAction: superclass typecheck marker */},
+  {(int) 399 /* 3: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction57 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction57 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction57___action},
+  {(int) 2 /* 42: ReduceAction57 < ReduceAction57: superclass init_table position */},
+  {(int) parser___ReduceAction57___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction57(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction57;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction57___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction57();
+  parser___ReduceAction57___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction58[44] = {
+  {(int) 395 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction58 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction58 < ReduceAction: superclass typecheck marker */},
+  {(int) 395 /* 3: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction58 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction58 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction58___action},
+  {(int) 2 /* 42: ReduceAction58 < ReduceAction58: superclass init_table position */},
+  {(int) parser___ReduceAction58___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction58(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction58;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction58___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction58();
+  parser___ReduceAction58___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction59[44] = {
+  {(int) 391 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction59 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction59 < ReduceAction: superclass typecheck marker */},
+  {(int) 391 /* 3: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction59 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction59 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction59___action},
+  {(int) 2 /* 42: ReduceAction59 < ReduceAction59: superclass init_table position */},
+  {(int) parser___ReduceAction59___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction59(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction59;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction59___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction59();
+  parser___ReduceAction59___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction60[44] = {
+  {(int) 383 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction60 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction60 < ReduceAction: superclass typecheck marker */},
+  {(int) 383 /* 3: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction60 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction60 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction60___action},
+  {(int) 2 /* 42: ReduceAction60 < ReduceAction60: superclass init_table position */},
+  {(int) parser___ReduceAction60___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction60(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction60;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction60___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction60();
+  parser___ReduceAction60___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction61[44] = {
+  {(int) 379 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction61 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction61 < ReduceAction: superclass typecheck marker */},
+  {(int) 379 /* 3: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction61 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction61 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction61___action},
+  {(int) 2 /* 42: ReduceAction61 < ReduceAction61: superclass init_table position */},
+  {(int) parser___ReduceAction61___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction61(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction61;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction61___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction61();
+  parser___ReduceAction61___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction62[44] = {
+  {(int) 375 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction62 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction62 < ReduceAction: superclass typecheck marker */},
+  {(int) 375 /* 3: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction62 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction62 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction62___action},
+  {(int) 2 /* 42: ReduceAction62 < ReduceAction62: superclass init_table position */},
+  {(int) parser___ReduceAction62___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction62(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction62;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction62___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction62();
+  parser___ReduceAction62___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction63[44] = {
+  {(int) 371 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction63 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction63 < ReduceAction: superclass typecheck marker */},
+  {(int) 371 /* 3: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction63 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction63 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction63___action},
+  {(int) 2 /* 42: ReduceAction63 < ReduceAction63: superclass init_table position */},
+  {(int) parser___ReduceAction63___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction63(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction63;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction63___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction63();
+  parser___ReduceAction63___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction64[44] = {
+  {(int) 367 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction64 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction64 < ReduceAction: superclass typecheck marker */},
+  {(int) 367 /* 3: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction64 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction64 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction64___action},
+  {(int) 2 /* 42: ReduceAction64 < ReduceAction64: superclass init_table position */},
+  {(int) parser___ReduceAction64___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction64(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction64;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction64___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction64();
+  parser___ReduceAction64___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction65[44] = {
+  {(int) 363 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction65 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction65 < ReduceAction: superclass typecheck marker */},
+  {(int) 363 /* 3: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction65 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction65 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction65___action},
+  {(int) 2 /* 42: ReduceAction65 < ReduceAction65: superclass init_table position */},
+  {(int) parser___ReduceAction65___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction65(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction65;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction65___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction65();
+  parser___ReduceAction65___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction66[44] = {
+  {(int) 359 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction66 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction66 < ReduceAction: superclass typecheck marker */},
+  {(int) 359 /* 3: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction66 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction66 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction66___action},
+  {(int) 2 /* 42: ReduceAction66 < ReduceAction66: superclass init_table position */},
+  {(int) parser___ReduceAction66___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction66(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction66;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction66___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction66();
+  parser___ReduceAction66___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction67[44] = {
+  {(int) 355 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction67 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction67 < ReduceAction: superclass typecheck marker */},
+  {(int) 355 /* 3: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction67 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction67 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction67___action},
+  {(int) 2 /* 42: ReduceAction67 < ReduceAction67: superclass init_table position */},
+  {(int) parser___ReduceAction67___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction67(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction67;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction67___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction67();
+  parser___ReduceAction67___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction68[44] = {
+  {(int) 351 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction68 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction68 < ReduceAction: superclass typecheck marker */},
+  {(int) 351 /* 3: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction68 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction68 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction68___action},
+  {(int) 2 /* 42: ReduceAction68 < ReduceAction68: superclass init_table position */},
+  {(int) parser___ReduceAction68___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction68(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction68;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction68___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction68();
+  parser___ReduceAction68___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction69[44] = {
+  {(int) 347 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction69 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction69 < ReduceAction: superclass typecheck marker */},
+  {(int) 347 /* 3: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction69 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction69 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction69___action},
+  {(int) 2 /* 42: ReduceAction69 < ReduceAction69: superclass init_table position */},
+  {(int) parser___ReduceAction69___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction69(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction69;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction69___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction69();
+  parser___ReduceAction69___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction70[44] = {
+  {(int) 339 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction70 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction70 < ReduceAction: superclass typecheck marker */},
+  {(int) 339 /* 3: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction70 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction70 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction70___action},
+  {(int) 2 /* 42: ReduceAction70 < ReduceAction70: superclass init_table position */},
+  {(int) parser___ReduceAction70___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction70(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction70;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction70___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction70();
+  parser___ReduceAction70___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction71[44] = {
+  {(int) 335 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction71 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction71 < ReduceAction: superclass typecheck marker */},
+  {(int) 335 /* 3: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction71 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction71 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction71___action},
+  {(int) 2 /* 42: ReduceAction71 < ReduceAction71: superclass init_table position */},
+  {(int) parser___ReduceAction71___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction71(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction71;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction71___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction71();
+  parser___ReduceAction71___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction72[44] = {
+  {(int) 331 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction72 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction72 < ReduceAction: superclass typecheck marker */},
+  {(int) 331 /* 3: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction72 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction72 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction72___action},
+  {(int) 2 /* 42: ReduceAction72 < ReduceAction72: superclass init_table position */},
+  {(int) parser___ReduceAction72___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction72(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction72;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction72___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction72();
+  parser___ReduceAction72___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction73[44] = {
+  {(int) 327 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction73 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction73 < ReduceAction: superclass typecheck marker */},
+  {(int) 327 /* 3: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction73 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction73 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction73___action},
+  {(int) 2 /* 42: ReduceAction73 < ReduceAction73: superclass init_table position */},
+  {(int) parser___ReduceAction73___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction73(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction73;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction73___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction73();
+  parser___ReduceAction73___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction74[44] = {
+  {(int) 323 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction74 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction74 < ReduceAction: superclass typecheck marker */},
+  {(int) 323 /* 3: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction74 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction74 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction74___action},
+  {(int) 2 /* 42: ReduceAction74 < ReduceAction74: superclass init_table position */},
+  {(int) parser___ReduceAction74___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction74(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction74;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction74___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction74();
+  parser___ReduceAction74___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction75[44] = {
+  {(int) 319 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction75 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction75 < ReduceAction: superclass typecheck marker */},
+  {(int) 319 /* 3: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction75 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction75 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction75___action},
+  {(int) 2 /* 42: ReduceAction75 < ReduceAction75: superclass init_table position */},
+  {(int) parser___ReduceAction75___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction75(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction75;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction75___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction75();
+  parser___ReduceAction75___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction76[44] = {
+  {(int) 315 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction76 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction76 < ReduceAction: superclass typecheck marker */},
+  {(int) 315 /* 3: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction76 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction76 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction76___action},
+  {(int) 2 /* 42: ReduceAction76 < ReduceAction76: superclass init_table position */},
+  {(int) parser___ReduceAction76___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction76(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction76;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction76___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction76();
+  parser___ReduceAction76___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction77[44] = {
+  {(int) 311 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction77 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction77 < ReduceAction: superclass typecheck marker */},
+  {(int) 311 /* 3: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction77 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction77 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction77___action},
+  {(int) 2 /* 42: ReduceAction77 < ReduceAction77: superclass init_table position */},
+  {(int) parser___ReduceAction77___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction77(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction77;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction77___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction77();
+  parser___ReduceAction77___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction78[44] = {
+  {(int) 307 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction78 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction78 < ReduceAction: superclass typecheck marker */},
+  {(int) 307 /* 3: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction78 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction78 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction78___action},
+  {(int) 2 /* 42: ReduceAction78 < ReduceAction78: superclass init_table position */},
+  {(int) parser___ReduceAction78___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction78(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction78;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction78___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction78();
+  parser___ReduceAction78___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction79[44] = {
+  {(int) 303 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction79 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction79 < ReduceAction: superclass typecheck marker */},
+  {(int) 303 /* 3: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction79 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction79 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction79___action},
+  {(int) 2 /* 42: ReduceAction79 < ReduceAction79: superclass init_table position */},
+  {(int) parser___ReduceAction79___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction79(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction79;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction79___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction79();
+  parser___ReduceAction79___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction80[44] = {
+  {(int) 295 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction80 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction80 < ReduceAction: superclass typecheck marker */},
+  {(int) 295 /* 3: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction80 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction80 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction80___action},
+  {(int) 2 /* 42: ReduceAction80 < ReduceAction80: superclass init_table position */},
+  {(int) parser___ReduceAction80___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction80(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction80;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction80___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction80();
+  parser___ReduceAction80___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction81[44] = {
+  {(int) 291 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction81 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction81 < ReduceAction: superclass typecheck marker */},
+  {(int) 291 /* 3: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction81 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction81 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction81___action},
+  {(int) 2 /* 42: ReduceAction81 < ReduceAction81: superclass init_table position */},
+  {(int) parser___ReduceAction81___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction81(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction81;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction81___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction81();
+  parser___ReduceAction81___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction82[44] = {
+  {(int) 287 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction82 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction82 < ReduceAction: superclass typecheck marker */},
+  {(int) 287 /* 3: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction82 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction82 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction82___action},
+  {(int) 2 /* 42: ReduceAction82 < ReduceAction82: superclass init_table position */},
+  {(int) parser___ReduceAction82___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction82(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction82;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction82___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction82();
+  parser___ReduceAction82___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction83[44] = {
+  {(int) 283 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction83 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction83 < ReduceAction: superclass typecheck marker */},
+  {(int) 283 /* 3: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction83 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction83 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction83___action},
+  {(int) 2 /* 42: ReduceAction83 < ReduceAction83: superclass init_table position */},
+  {(int) parser___ReduceAction83___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction83(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction83;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction83___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction83();
+  parser___ReduceAction83___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction84[44] = {
+  {(int) 279 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction84 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction84 < ReduceAction: superclass typecheck marker */},
+  {(int) 279 /* 3: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction84 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction84 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction84___action},
+  {(int) 2 /* 42: ReduceAction84 < ReduceAction84: superclass init_table position */},
+  {(int) parser___ReduceAction84___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction84(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction84;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction84___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction84();
+  parser___ReduceAction84___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction85[44] = {
+  {(int) 275 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction85 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction85 < ReduceAction: superclass typecheck marker */},
+  {(int) 275 /* 3: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction85 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction85 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction85___action},
+  {(int) 2 /* 42: ReduceAction85 < ReduceAction85: superclass init_table position */},
+  {(int) parser___ReduceAction85___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction85(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction85;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction85___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction85();
+  parser___ReduceAction85___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction86[44] = {
+  {(int) 271 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction86 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction86 < ReduceAction: superclass typecheck marker */},
+  {(int) 271 /* 3: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction86 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction86 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction86___action},
+  {(int) 2 /* 42: ReduceAction86 < ReduceAction86: superclass init_table position */},
+  {(int) parser___ReduceAction86___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction86(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction86;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction86___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction86();
+  parser___ReduceAction86___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction87[44] = {
+  {(int) 267 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction87 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction87 < ReduceAction: superclass typecheck marker */},
+  {(int) 267 /* 3: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction87 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction87 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction87___action},
+  {(int) 2 /* 42: ReduceAction87 < ReduceAction87: superclass init_table position */},
+  {(int) parser___ReduceAction87___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction87(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction87;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction87___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction87();
+  parser___ReduceAction87___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction88[44] = {
+  {(int) 263 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction88 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction88 < ReduceAction: superclass typecheck marker */},
+  {(int) 263 /* 3: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction88 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction88 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction88___action},
+  {(int) 2 /* 42: ReduceAction88 < ReduceAction88: superclass init_table position */},
+  {(int) parser___ReduceAction88___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction88(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction88;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction88___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction88();
+  parser___ReduceAction88___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction89[44] = {
+  {(int) 259 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction89 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction89 < ReduceAction: superclass typecheck marker */},
+  {(int) 259 /* 3: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction89 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction89 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction89___action},
+  {(int) 2 /* 42: ReduceAction89 < ReduceAction89: superclass init_table position */},
+  {(int) parser___ReduceAction89___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction89(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction89;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction89___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction89();
+  parser___ReduceAction89___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction90[44] = {
+  {(int) 251 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction90 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction90 < ReduceAction: superclass typecheck marker */},
+  {(int) 251 /* 3: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction90 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction90 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction90___action},
+  {(int) 2 /* 42: ReduceAction90 < ReduceAction90: superclass init_table position */},
+  {(int) parser___ReduceAction90___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction90(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction90;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction90___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction90();
+  parser___ReduceAction90___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction91[44] = {
+  {(int) 247 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction91 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction91 < ReduceAction: superclass typecheck marker */},
+  {(int) 247 /* 3: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction91 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction91 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction91___action},
+  {(int) 2 /* 42: ReduceAction91 < ReduceAction91: superclass init_table position */},
+  {(int) parser___ReduceAction91___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction91(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction91;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction91___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction91();
+  parser___ReduceAction91___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction92[44] = {
+  {(int) 243 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction92 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction92 < ReduceAction: superclass typecheck marker */},
+  {(int) 243 /* 3: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction92 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction92 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction92___action},
+  {(int) 2 /* 42: ReduceAction92 < ReduceAction92: superclass init_table position */},
+  {(int) parser___ReduceAction92___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction92(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction92;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction92___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction92();
+  parser___ReduceAction92___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction93[44] = {
+  {(int) 239 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction93 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction93 < ReduceAction: superclass typecheck marker */},
+  {(int) 239 /* 3: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction93 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction93 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction93___action},
+  {(int) 2 /* 42: ReduceAction93 < ReduceAction93: superclass init_table position */},
+  {(int) parser___ReduceAction93___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction93(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction93;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction93___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction93();
+  parser___ReduceAction93___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction94[44] = {
+  {(int) 235 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction94 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction94 < ReduceAction: superclass typecheck marker */},
+  {(int) 235 /* 3: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction94 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction94 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction94___action},
+  {(int) 2 /* 42: ReduceAction94 < ReduceAction94: superclass init_table position */},
+  {(int) parser___ReduceAction94___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction94(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction94;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction94___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction94();
+  parser___ReduceAction94___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction95[44] = {
+  {(int) 231 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction95 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction95 < ReduceAction: superclass typecheck marker */},
+  {(int) 231 /* 3: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction95 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction95 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction95___action},
+  {(int) 2 /* 42: ReduceAction95 < ReduceAction95: superclass init_table position */},
+  {(int) parser___ReduceAction95___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction95(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction95;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction95___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction95();
+  parser___ReduceAction95___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction96[44] = {
+  {(int) 227 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction96 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction96 < ReduceAction: superclass typecheck marker */},
+  {(int) 227 /* 3: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction96 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction96 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction96___action},
+  {(int) 2 /* 42: ReduceAction96 < ReduceAction96: superclass init_table position */},
+  {(int) parser___ReduceAction96___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction96(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction96;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction96___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction96();
+  parser___ReduceAction96___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction97[44] = {
+  {(int) 223 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction97 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction97 < ReduceAction: superclass typecheck marker */},
+  {(int) 223 /* 3: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction97 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction97 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction97___action},
+  {(int) 2 /* 42: ReduceAction97 < ReduceAction97: superclass init_table position */},
+  {(int) parser___ReduceAction97___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction97(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction97;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction97___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction97();
+  parser___ReduceAction97___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction98[44] = {
+  {(int) 219 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction98 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction98 < ReduceAction: superclass typecheck marker */},
+  {(int) 219 /* 3: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction98 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction98 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction98___action},
+  {(int) 2 /* 42: ReduceAction98 < ReduceAction98: superclass init_table position */},
+  {(int) parser___ReduceAction98___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction98(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction98;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction98___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction98();
+  parser___ReduceAction98___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction99[44] = {
+  {(int) 215 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction99 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction99 < ReduceAction: superclass typecheck marker */},
+  {(int) 215 /* 3: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction99 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction99 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction99___action},
+  {(int) 2 /* 42: ReduceAction99 < ReduceAction99: superclass init_table position */},
+  {(int) parser___ReduceAction99___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction99(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction99;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction99___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction99();
+  parser___ReduceAction99___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction100[44] = {
+  {(int) 2475 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction100 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction100 < ReduceAction: superclass typecheck marker */},
+  {(int) 2475 /* 3: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction100 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction100 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction100___action},
+  {(int) 2 /* 42: ReduceAction100 < ReduceAction100: superclass init_table position */},
+  {(int) parser___ReduceAction100___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction100(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction100;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction100___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction100();
+  parser___ReduceAction100___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction101[44] = {
+  {(int) 2471 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction101 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction101 < ReduceAction: superclass typecheck marker */},
+  {(int) 2471 /* 3: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction101 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction101 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction101___action},
+  {(int) 2 /* 42: ReduceAction101 < ReduceAction101: superclass init_table position */},
+  {(int) parser___ReduceAction101___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction101(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction101;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction101___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction101();
+  parser___ReduceAction101___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction102[44] = {
+  {(int) 2467 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction102 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction102 < ReduceAction: superclass typecheck marker */},
+  {(int) 2467 /* 3: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction102 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction102 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction102___action},
+  {(int) 2 /* 42: ReduceAction102 < ReduceAction102: superclass init_table position */},
+  {(int) parser___ReduceAction102___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction102(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction102;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction102___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction102();
+  parser___ReduceAction102___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction103[44] = {
+  {(int) 2463 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction103 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction103 < ReduceAction: superclass typecheck marker */},
+  {(int) 2463 /* 3: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction103 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction103 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction103___action},
+  {(int) 2 /* 42: ReduceAction103 < ReduceAction103: superclass init_table position */},
+  {(int) parser___ReduceAction103___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction103(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction103;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction103___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction103();
+  parser___ReduceAction103___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction104[44] = {
+  {(int) 2459 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction104 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction104 < ReduceAction: superclass typecheck marker */},
+  {(int) 2459 /* 3: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction104 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction104 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction104___action},
+  {(int) 2 /* 42: ReduceAction104 < ReduceAction104: superclass init_table position */},
+  {(int) parser___ReduceAction104___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction104(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction104;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction104___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction104();
+  parser___ReduceAction104___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction105[44] = {
+  {(int) 2455 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction105 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction105 < ReduceAction: superclass typecheck marker */},
+  {(int) 2455 /* 3: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction105 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction105 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction105___action},
+  {(int) 2 /* 42: ReduceAction105 < ReduceAction105: superclass init_table position */},
+  {(int) parser___ReduceAction105___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction105(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction105;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction105___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction105();
+  parser___ReduceAction105___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction106[44] = {
+  {(int) 2451 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction106 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction106 < ReduceAction: superclass typecheck marker */},
+  {(int) 2451 /* 3: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction106 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction106 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction106___action},
+  {(int) 2 /* 42: ReduceAction106 < ReduceAction106: superclass init_table position */},
+  {(int) parser___ReduceAction106___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction106(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction106;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction106___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction106();
+  parser___ReduceAction106___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction107[44] = {
+  {(int) 2447 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction107 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction107 < ReduceAction: superclass typecheck marker */},
+  {(int) 2447 /* 3: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction107 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction107 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction107___action},
+  {(int) 2 /* 42: ReduceAction107 < ReduceAction107: superclass init_table position */},
+  {(int) parser___ReduceAction107___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction107(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction107;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction107___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction107();
+  parser___ReduceAction107___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction108[44] = {
+  {(int) 2443 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction108 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction108 < ReduceAction: superclass typecheck marker */},
+  {(int) 2443 /* 3: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction108 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction108 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction108___action},
+  {(int) 2 /* 42: ReduceAction108 < ReduceAction108: superclass init_table position */},
+  {(int) parser___ReduceAction108___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction108(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction108;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction108___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction108();
+  parser___ReduceAction108___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction109[44] = {
+  {(int) 2439 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction109 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction109 < ReduceAction: superclass typecheck marker */},
+  {(int) 2439 /* 3: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction109 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction109 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction109___action},
+  {(int) 2 /* 42: ReduceAction109 < ReduceAction109: superclass init_table position */},
+  {(int) parser___ReduceAction109___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction109(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction109;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction109___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction109();
+  parser___ReduceAction109___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction110[44] = {
+  {(int) 2431 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction110 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction110 < ReduceAction: superclass typecheck marker */},
+  {(int) 2431 /* 3: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction110 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction110 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction110___action},
+  {(int) 2 /* 42: ReduceAction110 < ReduceAction110: superclass init_table position */},
+  {(int) parser___ReduceAction110___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction110(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction110;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction110___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction110();
+  parser___ReduceAction110___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction111[44] = {
+  {(int) 2427 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction111 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction111 < ReduceAction: superclass typecheck marker */},
+  {(int) 2427 /* 3: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction111 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction111 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction111___action},
+  {(int) 2 /* 42: ReduceAction111 < ReduceAction111: superclass init_table position */},
+  {(int) parser___ReduceAction111___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction111(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction111;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction111___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction111();
+  parser___ReduceAction111___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction112[44] = {
+  {(int) 2423 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction112 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction112 < ReduceAction: superclass typecheck marker */},
+  {(int) 2423 /* 3: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction112 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction112 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction112___action},
+  {(int) 2 /* 42: ReduceAction112 < ReduceAction112: superclass init_table position */},
+  {(int) parser___ReduceAction112___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction112(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction112;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction112___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction112();
+  parser___ReduceAction112___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction113[44] = {
+  {(int) 2419 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction113 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction113 < ReduceAction: superclass typecheck marker */},
+  {(int) 2419 /* 3: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction113 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction113 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction113___action},
+  {(int) 2 /* 42: ReduceAction113 < ReduceAction113: superclass init_table position */},
+  {(int) parser___ReduceAction113___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction113(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction113;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction113___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction113();
+  parser___ReduceAction113___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction114[44] = {
+  {(int) 2415 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction114 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction114 < ReduceAction: superclass typecheck marker */},
+  {(int) 2415 /* 3: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction114 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction114 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction114___action},
+  {(int) 2 /* 42: ReduceAction114 < ReduceAction114: superclass init_table position */},
+  {(int) parser___ReduceAction114___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction114(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction114;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction114___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction114();
+  parser___ReduceAction114___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction115[44] = {
+  {(int) 2411 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction115 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction115 < ReduceAction: superclass typecheck marker */},
+  {(int) 2411 /* 3: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction115 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction115 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction115___action},
+  {(int) 2 /* 42: ReduceAction115 < ReduceAction115: superclass init_table position */},
+  {(int) parser___ReduceAction115___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction115(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction115;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction115___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction115();
+  parser___ReduceAction115___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction116[44] = {
+  {(int) 2407 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction116 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction116 < ReduceAction: superclass typecheck marker */},
+  {(int) 2407 /* 3: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction116 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction116 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction116___action},
+  {(int) 2 /* 42: ReduceAction116 < ReduceAction116: superclass init_table position */},
+  {(int) parser___ReduceAction116___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction116(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction116;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction116___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction116();
+  parser___ReduceAction116___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction117[44] = {
+  {(int) 2403 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction117 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction117 < ReduceAction: superclass typecheck marker */},
+  {(int) 2403 /* 3: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction117 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction117 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction117___action},
+  {(int) 2 /* 42: ReduceAction117 < ReduceAction117: superclass init_table position */},
+  {(int) parser___ReduceAction117___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction117(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction117;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction117___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction117();
+  parser___ReduceAction117___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction118[44] = {
+  {(int) 2399 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction118 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction118 < ReduceAction: superclass typecheck marker */},
+  {(int) 2399 /* 3: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction118 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction118 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction118___action},
+  {(int) 2 /* 42: ReduceAction118 < ReduceAction118: superclass init_table position */},
+  {(int) parser___ReduceAction118___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction118(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction118;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction118___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction118();
+  parser___ReduceAction118___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction119[44] = {
+  {(int) 2395 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction119 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction119 < ReduceAction: superclass typecheck marker */},
+  {(int) 2395 /* 3: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction119 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction119 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction119___action},
+  {(int) 2 /* 42: ReduceAction119 < ReduceAction119: superclass init_table position */},
+  {(int) parser___ReduceAction119___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction119(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction119;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction119___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction119();
+  parser___ReduceAction119___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction120[44] = {
+  {(int) 2387 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction120 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction120 < ReduceAction: superclass typecheck marker */},
+  {(int) 2387 /* 3: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction120 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction120 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction120___action},
+  {(int) 2 /* 42: ReduceAction120 < ReduceAction120: superclass init_table position */},
+  {(int) parser___ReduceAction120___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction120(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction120;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction120___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction120();
+  parser___ReduceAction120___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction121[44] = {
+  {(int) 2383 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction121 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction121 < ReduceAction: superclass typecheck marker */},
+  {(int) 2383 /* 3: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction121 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction121 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction121___action},
+  {(int) 2 /* 42: ReduceAction121 < ReduceAction121: superclass init_table position */},
+  {(int) parser___ReduceAction121___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction121(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction121;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction121___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction121();
+  parser___ReduceAction121___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction122[44] = {
+  {(int) 2379 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction122 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction122 < ReduceAction: superclass typecheck marker */},
+  {(int) 2379 /* 3: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction122 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction122 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction122___action},
+  {(int) 2 /* 42: ReduceAction122 < ReduceAction122: superclass init_table position */},
+  {(int) parser___ReduceAction122___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction122(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction122;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction122___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction122();
+  parser___ReduceAction122___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction123[44] = {
+  {(int) 2375 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction123 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction123 < ReduceAction: superclass typecheck marker */},
+  {(int) 2375 /* 3: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction123 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction123 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction123___action},
+  {(int) 2 /* 42: ReduceAction123 < ReduceAction123: superclass init_table position */},
+  {(int) parser___ReduceAction123___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction123(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction123;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction123___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction123();
+  parser___ReduceAction123___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction124[44] = {
+  {(int) 2371 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction124 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction124 < ReduceAction: superclass typecheck marker */},
+  {(int) 2371 /* 3: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction124 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction124 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction124___action},
+  {(int) 2 /* 42: ReduceAction124 < ReduceAction124: superclass init_table position */},
+  {(int) parser___ReduceAction124___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction124(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction124;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction124___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction124();
+  parser___ReduceAction124___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction125[44] = {
+  {(int) 2367 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction125 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction125 < ReduceAction: superclass typecheck marker */},
+  {(int) 2367 /* 3: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction125 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction125 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction125___action},
+  {(int) 2 /* 42: ReduceAction125 < ReduceAction125: superclass init_table position */},
+  {(int) parser___ReduceAction125___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction125(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction125;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction125___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction125();
+  parser___ReduceAction125___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction126[44] = {
+  {(int) 2363 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction126 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction126 < ReduceAction: superclass typecheck marker */},
+  {(int) 2363 /* 3: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction126 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction126 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction126___action},
+  {(int) 2 /* 42: ReduceAction126 < ReduceAction126: superclass init_table position */},
+  {(int) parser___ReduceAction126___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction126(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction126;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction126___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction126();
+  parser___ReduceAction126___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction127[44] = {
+  {(int) 2359 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction127 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction127 < ReduceAction: superclass typecheck marker */},
+  {(int) 2359 /* 3: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction127 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction127 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction127___action},
+  {(int) 2 /* 42: ReduceAction127 < ReduceAction127: superclass init_table position */},
+  {(int) parser___ReduceAction127___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction127(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction127;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction127___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction127();
+  parser___ReduceAction127___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction128[44] = {
+  {(int) 2355 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction128 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction128 < ReduceAction: superclass typecheck marker */},
+  {(int) 2355 /* 3: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction128 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction128 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction128___action},
+  {(int) 2 /* 42: ReduceAction128 < ReduceAction128: superclass init_table position */},
+  {(int) parser___ReduceAction128___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction128(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction128;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction128___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction128();
+  parser___ReduceAction128___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction129[44] = {
+  {(int) 2351 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction129 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction129 < ReduceAction: superclass typecheck marker */},
+  {(int) 2351 /* 3: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction129 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction129 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction129___action},
+  {(int) 2 /* 42: ReduceAction129 < ReduceAction129: superclass init_table position */},
+  {(int) parser___ReduceAction129___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction129(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction129;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction129___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction129();
+  parser___ReduceAction129___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction130[44] = {
+  {(int) 2343 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction130 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction130 < ReduceAction: superclass typecheck marker */},
+  {(int) 2343 /* 3: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction130 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction130 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction130___action},
+  {(int) 2 /* 42: ReduceAction130 < ReduceAction130: superclass init_table position */},
+  {(int) parser___ReduceAction130___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction130(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction130;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction130___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction130();
+  parser___ReduceAction130___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction131[44] = {
+  {(int) 2339 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction131 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction131 < ReduceAction: superclass typecheck marker */},
+  {(int) 2339 /* 3: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction131 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction131 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction131___action},
+  {(int) 2 /* 42: ReduceAction131 < ReduceAction131: superclass init_table position */},
+  {(int) parser___ReduceAction131___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction131(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction131;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction131___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction131();
+  parser___ReduceAction131___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction132[44] = {
+  {(int) 2335 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction132 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction132 < ReduceAction: superclass typecheck marker */},
+  {(int) 2335 /* 3: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction132 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction132 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction132___action},
+  {(int) 2 /* 42: ReduceAction132 < ReduceAction132: superclass init_table position */},
+  {(int) parser___ReduceAction132___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction132(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction132;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction132___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction132();
+  parser___ReduceAction132___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction133[44] = {
+  {(int) 2331 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction133 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction133 < ReduceAction: superclass typecheck marker */},
+  {(int) 2331 /* 3: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction133 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction133 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction133___action},
+  {(int) 2 /* 42: ReduceAction133 < ReduceAction133: superclass init_table position */},
+  {(int) parser___ReduceAction133___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction133(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction133;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction133___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction133();
+  parser___ReduceAction133___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction134[44] = {
+  {(int) 2327 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction134 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction134 < ReduceAction: superclass typecheck marker */},
+  {(int) 2327 /* 3: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction134 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction134 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction134___action},
+  {(int) 2 /* 42: ReduceAction134 < ReduceAction134: superclass init_table position */},
+  {(int) parser___ReduceAction134___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction134(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction134;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction134___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction134();
+  parser___ReduceAction134___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction135[44] = {
+  {(int) 2323 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction135 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction135 < ReduceAction: superclass typecheck marker */},
+  {(int) 2323 /* 3: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction135 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction135 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction135___action},
+  {(int) 2 /* 42: ReduceAction135 < ReduceAction135: superclass init_table position */},
+  {(int) parser___ReduceAction135___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction135(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction135;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction135___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction135();
+  parser___ReduceAction135___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction136[44] = {
+  {(int) 2319 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction136 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction136 < ReduceAction: superclass typecheck marker */},
+  {(int) 2319 /* 3: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction136 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction136 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction136___action},
+  {(int) 2 /* 42: ReduceAction136 < ReduceAction136: superclass init_table position */},
+  {(int) parser___ReduceAction136___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction136(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction136;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction136___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction136();
+  parser___ReduceAction136___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction137[44] = {
+  {(int) 2315 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction137 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction137 < ReduceAction: superclass typecheck marker */},
+  {(int) 2315 /* 3: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction137 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction137 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction137___action},
+  {(int) 2 /* 42: ReduceAction137 < ReduceAction137: superclass init_table position */},
+  {(int) parser___ReduceAction137___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction137(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction137;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction137___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction137();
+  parser___ReduceAction137___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction138[44] = {
+  {(int) 2311 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction138 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction138 < ReduceAction: superclass typecheck marker */},
+  {(int) 2311 /* 3: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction138 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction138 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction138___action},
+  {(int) 2 /* 42: ReduceAction138 < ReduceAction138: superclass init_table position */},
+  {(int) parser___ReduceAction138___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction138(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction138;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction138___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction138();
+  parser___ReduceAction138___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction139[44] = {
+  {(int) 2307 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction139 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction139 < ReduceAction: superclass typecheck marker */},
+  {(int) 2307 /* 3: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction139 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction139 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction139___action},
+  {(int) 2 /* 42: ReduceAction139 < ReduceAction139: superclass init_table position */},
+  {(int) parser___ReduceAction139___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction139(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction139;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction139___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction139();
+  parser___ReduceAction139___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction140[44] = {
+  {(int) 2299 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction140 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction140 < ReduceAction: superclass typecheck marker */},
+  {(int) 2299 /* 3: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction140 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction140 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction140___action},
+  {(int) 2 /* 42: ReduceAction140 < ReduceAction140: superclass init_table position */},
+  {(int) parser___ReduceAction140___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction140(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction140;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction140___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction140();
+  parser___ReduceAction140___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction141[44] = {
+  {(int) 2295 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction141 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction141 < ReduceAction: superclass typecheck marker */},
+  {(int) 2295 /* 3: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction141 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction141 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction141___action},
+  {(int) 2 /* 42: ReduceAction141 < ReduceAction141: superclass init_table position */},
+  {(int) parser___ReduceAction141___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction141(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction141;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction141___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction141();
+  parser___ReduceAction141___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction142[44] = {
+  {(int) 2291 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction142 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction142 < ReduceAction: superclass typecheck marker */},
+  {(int) 2291 /* 3: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction142 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction142 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction142___action},
+  {(int) 2 /* 42: ReduceAction142 < ReduceAction142: superclass init_table position */},
+  {(int) parser___ReduceAction142___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction142(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction142;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction142___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction142();
+  parser___ReduceAction142___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction143[44] = {
+  {(int) 2287 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction143 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction143 < ReduceAction: superclass typecheck marker */},
+  {(int) 2287 /* 3: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction143 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction143 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction143___action},
+  {(int) 2 /* 42: ReduceAction143 < ReduceAction143: superclass init_table position */},
+  {(int) parser___ReduceAction143___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction143(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction143;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction143___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction143();
+  parser___ReduceAction143___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction144[44] = {
+  {(int) 2283 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction144 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction144 < ReduceAction: superclass typecheck marker */},
+  {(int) 2283 /* 3: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction144 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction144 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction144___action},
+  {(int) 2 /* 42: ReduceAction144 < ReduceAction144: superclass init_table position */},
+  {(int) parser___ReduceAction144___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction144(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction144;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction144___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction144();
+  parser___ReduceAction144___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction145[44] = {
+  {(int) 2279 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction145 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction145 < ReduceAction: superclass typecheck marker */},
+  {(int) 2279 /* 3: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction145 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction145 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction145___action},
+  {(int) 2 /* 42: ReduceAction145 < ReduceAction145: superclass init_table position */},
+  {(int) parser___ReduceAction145___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction145(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction145;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction145___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction145();
+  parser___ReduceAction145___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction146[44] = {
+  {(int) 2275 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction146 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction146 < ReduceAction: superclass typecheck marker */},
+  {(int) 2275 /* 3: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction146 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction146 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction146___action},
+  {(int) 2 /* 42: ReduceAction146 < ReduceAction146: superclass init_table position */},
+  {(int) parser___ReduceAction146___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction146(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction146;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction146___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction146();
+  parser___ReduceAction146___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction147[44] = {
+  {(int) 2271 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction147 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction147 < ReduceAction: superclass typecheck marker */},
+  {(int) 2271 /* 3: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction147 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction147 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction147___action},
+  {(int) 2 /* 42: ReduceAction147 < ReduceAction147: superclass init_table position */},
+  {(int) parser___ReduceAction147___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction147(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction147;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction147___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction147();
+  parser___ReduceAction147___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction148[44] = {
+  {(int) 2267 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction148 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction148 < ReduceAction: superclass typecheck marker */},
+  {(int) 2267 /* 3: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction148 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction148 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction148___action},
+  {(int) 2 /* 42: ReduceAction148 < ReduceAction148: superclass init_table position */},
+  {(int) parser___ReduceAction148___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction148(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction148;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction148___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction148();
+  parser___ReduceAction148___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction149[44] = {
+  {(int) 2263 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction149 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction149 < ReduceAction: superclass typecheck marker */},
+  {(int) 2263 /* 3: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction149 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction149 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction149___action},
+  {(int) 2 /* 42: ReduceAction149 < ReduceAction149: superclass init_table position */},
+  {(int) parser___ReduceAction149___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction149(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction149;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction149___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction149();
+  parser___ReduceAction149___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction150[44] = {
+  {(int) 2255 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction150 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction150 < ReduceAction: superclass typecheck marker */},
+  {(int) 2255 /* 3: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction150 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction150 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction150___action},
+  {(int) 2 /* 42: ReduceAction150 < ReduceAction150: superclass init_table position */},
+  {(int) parser___ReduceAction150___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction150(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction150;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction150___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction150();
+  parser___ReduceAction150___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction151[44] = {
+  {(int) 2251 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction151 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction151 < ReduceAction: superclass typecheck marker */},
+  {(int) 2251 /* 3: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction151 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction151 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction151___action},
+  {(int) 2 /* 42: ReduceAction151 < ReduceAction151: superclass init_table position */},
+  {(int) parser___ReduceAction151___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction151(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction151;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction151___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction151();
+  parser___ReduceAction151___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction152[44] = {
+  {(int) 2247 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction152 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction152 < ReduceAction: superclass typecheck marker */},
+  {(int) 2247 /* 3: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction152 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction152 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction152___action},
+  {(int) 2 /* 42: ReduceAction152 < ReduceAction152: superclass init_table position */},
+  {(int) parser___ReduceAction152___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction152(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction152;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction152___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction152();
+  parser___ReduceAction152___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction153[44] = {
+  {(int) 2243 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction153 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction153 < ReduceAction: superclass typecheck marker */},
+  {(int) 2243 /* 3: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction153 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction153 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction153___action},
+  {(int) 2 /* 42: ReduceAction153 < ReduceAction153: superclass init_table position */},
+  {(int) parser___ReduceAction153___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction153(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction153;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction153___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction153();
+  parser___ReduceAction153___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction154[44] = {
+  {(int) 2239 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction154 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction154 < ReduceAction: superclass typecheck marker */},
+  {(int) 2239 /* 3: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction154 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction154 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction154___action},
+  {(int) 2 /* 42: ReduceAction154 < ReduceAction154: superclass init_table position */},
+  {(int) parser___ReduceAction154___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction154(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction154;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction154___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction154();
+  parser___ReduceAction154___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction155[44] = {
+  {(int) 2235 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction155 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction155 < ReduceAction: superclass typecheck marker */},
+  {(int) 2235 /* 3: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction155 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction155 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction155___action},
+  {(int) 2 /* 42: ReduceAction155 < ReduceAction155: superclass init_table position */},
+  {(int) parser___ReduceAction155___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction155(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction155;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction155___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction155();
+  parser___ReduceAction155___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction156[44] = {
+  {(int) 2231 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction156 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction156 < ReduceAction: superclass typecheck marker */},
+  {(int) 2231 /* 3: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction156 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction156 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction156___action},
+  {(int) 2 /* 42: ReduceAction156 < ReduceAction156: superclass init_table position */},
+  {(int) parser___ReduceAction156___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction156(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction156;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction156___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction156();
+  parser___ReduceAction156___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction157[44] = {
+  {(int) 2227 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction157 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction157 < ReduceAction: superclass typecheck marker */},
+  {(int) 2227 /* 3: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction157 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction157 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction157___action},
+  {(int) 2 /* 42: ReduceAction157 < ReduceAction157: superclass init_table position */},
+  {(int) parser___ReduceAction157___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction157(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction157;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction157___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction157();
+  parser___ReduceAction157___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction158[44] = {
+  {(int) 2223 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction158 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction158 < ReduceAction: superclass typecheck marker */},
+  {(int) 2223 /* 3: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction158 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction158 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction158___action},
+  {(int) 2 /* 42: ReduceAction158 < ReduceAction158: superclass init_table position */},
+  {(int) parser___ReduceAction158___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction158(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction158;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction158___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction158();
+  parser___ReduceAction158___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction159[44] = {
+  {(int) 2219 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction159 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction159 < ReduceAction: superclass typecheck marker */},
+  {(int) 2219 /* 3: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction159 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction159 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction159___action},
+  {(int) 2 /* 42: ReduceAction159 < ReduceAction159: superclass init_table position */},
+  {(int) parser___ReduceAction159___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction159(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction159;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction159___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction159();
+  parser___ReduceAction159___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction160[44] = {
+  {(int) 2211 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction160 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction160 < ReduceAction: superclass typecheck marker */},
+  {(int) 2211 /* 3: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction160 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction160 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction160___action},
+  {(int) 2 /* 42: ReduceAction160 < ReduceAction160: superclass init_table position */},
+  {(int) parser___ReduceAction160___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction160(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction160;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction160___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction160();
+  parser___ReduceAction160___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction161[44] = {
+  {(int) 2207 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction161 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction161 < ReduceAction: superclass typecheck marker */},
+  {(int) 2207 /* 3: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction161 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction161 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction161___action},
+  {(int) 2 /* 42: ReduceAction161 < ReduceAction161: superclass init_table position */},
+  {(int) parser___ReduceAction161___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction161(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction161;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction161___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction161();
+  parser___ReduceAction161___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction162[44] = {
+  {(int) 2203 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction162 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction162 < ReduceAction: superclass typecheck marker */},
+  {(int) 2203 /* 3: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction162 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction162 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction162___action},
+  {(int) 2 /* 42: ReduceAction162 < ReduceAction162: superclass init_table position */},
+  {(int) parser___ReduceAction162___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction162(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction162;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction162___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction162();
+  parser___ReduceAction162___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction163[44] = {
+  {(int) 2199 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction163 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction163 < ReduceAction: superclass typecheck marker */},
+  {(int) 2199 /* 3: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction163 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction163 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction163___action},
+  {(int) 2 /* 42: ReduceAction163 < ReduceAction163: superclass init_table position */},
+  {(int) parser___ReduceAction163___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction163(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction163;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction163___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction163();
+  parser___ReduceAction163___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction164[44] = {
+  {(int) 2195 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction164 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction164 < ReduceAction: superclass typecheck marker */},
+  {(int) 2195 /* 3: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction164 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction164 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction164___action},
+  {(int) 2 /* 42: ReduceAction164 < ReduceAction164: superclass init_table position */},
+  {(int) parser___ReduceAction164___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction164(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction164;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction164___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction164();
+  parser___ReduceAction164___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction165[44] = {
+  {(int) 2191 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction165 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction165 < ReduceAction: superclass typecheck marker */},
+  {(int) 2191 /* 3: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction165 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction165 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction165___action},
+  {(int) 2 /* 42: ReduceAction165 < ReduceAction165: superclass init_table position */},
+  {(int) parser___ReduceAction165___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction165(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction165;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction165___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction165();
+  parser___ReduceAction165___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction166[44] = {
+  {(int) 2187 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction166 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction166 < ReduceAction: superclass typecheck marker */},
+  {(int) 2187 /* 3: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction166 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction166 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction166___action},
+  {(int) 2 /* 42: ReduceAction166 < ReduceAction166: superclass init_table position */},
+  {(int) parser___ReduceAction166___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction166(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction166;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction166___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction166();
+  parser___ReduceAction166___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction167[44] = {
+  {(int) 2183 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction167 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction167 < ReduceAction: superclass typecheck marker */},
+  {(int) 2183 /* 3: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction167 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction167 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction167___action},
+  {(int) 2 /* 42: ReduceAction167 < ReduceAction167: superclass init_table position */},
+  {(int) parser___ReduceAction167___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction167(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction167;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction167___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction167();
+  parser___ReduceAction167___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction168[44] = {
+  {(int) 2179 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction168 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction168 < ReduceAction: superclass typecheck marker */},
+  {(int) 2179 /* 3: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction168 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction168 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction168___action},
+  {(int) 2 /* 42: ReduceAction168 < ReduceAction168: superclass init_table position */},
+  {(int) parser___ReduceAction168___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction168(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction168;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction168___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction168();
+  parser___ReduceAction168___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction169[44] = {
+  {(int) 2175 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction169 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction169 < ReduceAction: superclass typecheck marker */},
+  {(int) 2175 /* 3: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction169 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction169 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction169___action},
+  {(int) 2 /* 42: ReduceAction169 < ReduceAction169: superclass init_table position */},
+  {(int) parser___ReduceAction169___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction169(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction169;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction169___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction169();
+  parser___ReduceAction169___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction170[44] = {
+  {(int) 2167 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction170 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction170 < ReduceAction: superclass typecheck marker */},
+  {(int) 2167 /* 3: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction170 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction170 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction170___action},
+  {(int) 2 /* 42: ReduceAction170 < ReduceAction170: superclass init_table position */},
+  {(int) parser___ReduceAction170___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction170(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction170;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction170___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction170();
+  parser___ReduceAction170___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction171[44] = {
+  {(int) 2163 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction171 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction171 < ReduceAction: superclass typecheck marker */},
+  {(int) 2163 /* 3: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction171 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction171 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction171___action},
+  {(int) 2 /* 42: ReduceAction171 < ReduceAction171: superclass init_table position */},
+  {(int) parser___ReduceAction171___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction171(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction171;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction171___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction171();
+  parser___ReduceAction171___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction172[44] = {
+  {(int) 2159 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction172 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction172 < ReduceAction: superclass typecheck marker */},
+  {(int) 2159 /* 3: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction172 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction172 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction172___action},
+  {(int) 2 /* 42: ReduceAction172 < ReduceAction172: superclass init_table position */},
+  {(int) parser___ReduceAction172___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction172(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction172;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction172___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction172();
+  parser___ReduceAction172___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction173[44] = {
+  {(int) 2155 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction173 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction173 < ReduceAction: superclass typecheck marker */},
+  {(int) 2155 /* 3: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction173 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction173 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction173___action},
+  {(int) 2 /* 42: ReduceAction173 < ReduceAction173: superclass init_table position */},
+  {(int) parser___ReduceAction173___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction173(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction173;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction173___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction173();
+  parser___ReduceAction173___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction174[44] = {
+  {(int) 2151 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction174 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction174 < ReduceAction: superclass typecheck marker */},
+  {(int) 2151 /* 3: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction174 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction174 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction174___action},
+  {(int) 2 /* 42: ReduceAction174 < ReduceAction174: superclass init_table position */},
+  {(int) parser___ReduceAction174___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction174(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction174;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction174___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction174();
+  parser___ReduceAction174___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction175[44] = {
+  {(int) 2147 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction175 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction175 < ReduceAction: superclass typecheck marker */},
+  {(int) 2147 /* 3: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction175 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction175 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction175___action},
+  {(int) 2 /* 42: ReduceAction175 < ReduceAction175: superclass init_table position */},
+  {(int) parser___ReduceAction175___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction175(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction175;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction175___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction175();
+  parser___ReduceAction175___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction176[44] = {
+  {(int) 2143 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction176 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction176 < ReduceAction: superclass typecheck marker */},
+  {(int) 2143 /* 3: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction176 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction176 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction176___action},
+  {(int) 2 /* 42: ReduceAction176 < ReduceAction176: superclass init_table position */},
+  {(int) parser___ReduceAction176___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction176(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction176;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction176___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction176();
+  parser___ReduceAction176___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction177[44] = {
+  {(int) 2139 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction177 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction177 < ReduceAction: superclass typecheck marker */},
+  {(int) 2139 /* 3: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction177 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction177 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction177___action},
+  {(int) 2 /* 42: ReduceAction177 < ReduceAction177: superclass init_table position */},
+  {(int) parser___ReduceAction177___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction177(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction177;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction177___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction177();
+  parser___ReduceAction177___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction178[44] = {
+  {(int) 2135 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction178 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction178 < ReduceAction: superclass typecheck marker */},
+  {(int) 2135 /* 3: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction178 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction178 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction178___action},
+  {(int) 2 /* 42: ReduceAction178 < ReduceAction178: superclass init_table position */},
+  {(int) parser___ReduceAction178___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction178(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction178;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction178___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction178();
+  parser___ReduceAction178___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction179[44] = {
+  {(int) 2131 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction179 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction179 < ReduceAction: superclass typecheck marker */},
+  {(int) 2131 /* 3: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction179 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction179 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction179___action},
+  {(int) 2 /* 42: ReduceAction179 < ReduceAction179: superclass init_table position */},
+  {(int) parser___ReduceAction179___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction179(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction179;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction179___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction179();
+  parser___ReduceAction179___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction180[44] = {
+  {(int) 2123 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction180 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction180 < ReduceAction: superclass typecheck marker */},
+  {(int) 2123 /* 3: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction180 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction180 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction180___action},
+  {(int) 2 /* 42: ReduceAction180 < ReduceAction180: superclass init_table position */},
+  {(int) parser___ReduceAction180___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction180(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction180;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction180___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction180();
+  parser___ReduceAction180___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction181[44] = {
+  {(int) 2119 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction181 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction181 < ReduceAction: superclass typecheck marker */},
+  {(int) 2119 /* 3: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction181 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction181 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction181___action},
+  {(int) 2 /* 42: ReduceAction181 < ReduceAction181: superclass init_table position */},
+  {(int) parser___ReduceAction181___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction181(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction181;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction181___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction181();
+  parser___ReduceAction181___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction182[44] = {
+  {(int) 2115 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction182 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction182 < ReduceAction: superclass typecheck marker */},
+  {(int) 2115 /* 3: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction182 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction182 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction182___action},
+  {(int) 2 /* 42: ReduceAction182 < ReduceAction182: superclass init_table position */},
+  {(int) parser___ReduceAction182___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction182(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction182;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction182___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction182();
+  parser___ReduceAction182___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction183[44] = {
+  {(int) 2111 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction183 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction183 < ReduceAction: superclass typecheck marker */},
+  {(int) 2111 /* 3: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction183 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction183 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction183___action},
+  {(int) 2 /* 42: ReduceAction183 < ReduceAction183: superclass init_table position */},
+  {(int) parser___ReduceAction183___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction183(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction183;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction183___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction183();
+  parser___ReduceAction183___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction184[44] = {
+  {(int) 2107 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction184 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction184 < ReduceAction: superclass typecheck marker */},
+  {(int) 2107 /* 3: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction184 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction184 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction184___action},
+  {(int) 2 /* 42: ReduceAction184 < ReduceAction184: superclass init_table position */},
+  {(int) parser___ReduceAction184___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction184(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction184;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction184___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction184();
+  parser___ReduceAction184___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction185[44] = {
+  {(int) 2103 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction185 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction185 < ReduceAction: superclass typecheck marker */},
+  {(int) 2103 /* 3: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction185 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction185 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction185___action},
+  {(int) 2 /* 42: ReduceAction185 < ReduceAction185: superclass init_table position */},
+  {(int) parser___ReduceAction185___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction185(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction185;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction185___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction185();
+  parser___ReduceAction185___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction186[44] = {
+  {(int) 2099 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction186 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction186 < ReduceAction: superclass typecheck marker */},
+  {(int) 2099 /* 3: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction186 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction186 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction186___action},
+  {(int) 2 /* 42: ReduceAction186 < ReduceAction186: superclass init_table position */},
+  {(int) parser___ReduceAction186___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction186(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction186;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction186___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction186();
+  parser___ReduceAction186___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction187[44] = {
+  {(int) 2095 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction187 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction187 < ReduceAction: superclass typecheck marker */},
+  {(int) 2095 /* 3: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction187 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction187 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction187___action},
+  {(int) 2 /* 42: ReduceAction187 < ReduceAction187: superclass init_table position */},
+  {(int) parser___ReduceAction187___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction187(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction187;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction187___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction187();
+  parser___ReduceAction187___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction188[44] = {
+  {(int) 2091 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction188 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction188 < ReduceAction: superclass typecheck marker */},
+  {(int) 2091 /* 3: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction188 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction188 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction188___action},
+  {(int) 2 /* 42: ReduceAction188 < ReduceAction188: superclass init_table position */},
+  {(int) parser___ReduceAction188___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction188(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction188;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction188___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction188();
+  parser___ReduceAction188___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction189[44] = {
+  {(int) 2087 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction189 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction189 < ReduceAction: superclass typecheck marker */},
+  {(int) 2087 /* 3: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction189 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction189 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction189___action},
+  {(int) 2 /* 42: ReduceAction189 < ReduceAction189: superclass init_table position */},
+  {(int) parser___ReduceAction189___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction189(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction189;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction189___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction189();
+  parser___ReduceAction189___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction190[44] = {
+  {(int) 2079 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction190 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction190 < ReduceAction: superclass typecheck marker */},
+  {(int) 2079 /* 3: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction190 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction190 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction190___action},
+  {(int) 2 /* 42: ReduceAction190 < ReduceAction190: superclass init_table position */},
+  {(int) parser___ReduceAction190___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction190(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction190;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction190___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction190();
+  parser___ReduceAction190___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction191[44] = {
+  {(int) 2075 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction191 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction191 < ReduceAction: superclass typecheck marker */},
+  {(int) 2075 /* 3: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction191 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction191 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction191___action},
+  {(int) 2 /* 42: ReduceAction191 < ReduceAction191: superclass init_table position */},
+  {(int) parser___ReduceAction191___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction191(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction191;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction191___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction191();
+  parser___ReduceAction191___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction192[44] = {
+  {(int) 2071 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction192 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction192 < ReduceAction: superclass typecheck marker */},
+  {(int) 2071 /* 3: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction192 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction192 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction192___action},
+  {(int) 2 /* 42: ReduceAction192 < ReduceAction192: superclass init_table position */},
+  {(int) parser___ReduceAction192___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction192(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction192;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction192___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction192();
+  parser___ReduceAction192___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction193[44] = {
+  {(int) 2067 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction193 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction193 < ReduceAction: superclass typecheck marker */},
+  {(int) 2067 /* 3: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction193 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction193 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction193___action},
+  {(int) 2 /* 42: ReduceAction193 < ReduceAction193: superclass init_table position */},
+  {(int) parser___ReduceAction193___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction193(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction193;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction193___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction193();
+  parser___ReduceAction193___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction194[44] = {
+  {(int) 2063 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction194 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction194 < ReduceAction: superclass typecheck marker */},
+  {(int) 2063 /* 3: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction194 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction194 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction194___action},
+  {(int) 2 /* 42: ReduceAction194 < ReduceAction194: superclass init_table position */},
+  {(int) parser___ReduceAction194___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction194(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction194;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction194___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction194();
+  parser___ReduceAction194___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction195[44] = {
+  {(int) 2059 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction195 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction195 < ReduceAction: superclass typecheck marker */},
+  {(int) 2059 /* 3: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction195 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction195 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction195___action},
+  {(int) 2 /* 42: ReduceAction195 < ReduceAction195: superclass init_table position */},
+  {(int) parser___ReduceAction195___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction195(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction195;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction195___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction195();
+  parser___ReduceAction195___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction196[44] = {
+  {(int) 2055 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction196 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction196 < ReduceAction: superclass typecheck marker */},
+  {(int) 2055 /* 3: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction196 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction196 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction196___action},
+  {(int) 2 /* 42: ReduceAction196 < ReduceAction196: superclass init_table position */},
+  {(int) parser___ReduceAction196___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction196(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction196;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction196___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction196();
+  parser___ReduceAction196___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction197[44] = {
+  {(int) 2051 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction197 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction197 < ReduceAction: superclass typecheck marker */},
+  {(int) 2051 /* 3: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction197 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction197 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction197___action},
+  {(int) 2 /* 42: ReduceAction197 < ReduceAction197: superclass init_table position */},
+  {(int) parser___ReduceAction197___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction197(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction197;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction197___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction197();
+  parser___ReduceAction197___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction198[44] = {
+  {(int) 2047 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction198 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction198 < ReduceAction: superclass typecheck marker */},
+  {(int) 2047 /* 3: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction198 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction198 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction198___action},
+  {(int) 2 /* 42: ReduceAction198 < ReduceAction198: superclass init_table position */},
+  {(int) parser___ReduceAction198___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction198(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction198;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction198___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction198();
+  parser___ReduceAction198___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction199[44] = {
+  {(int) 2043 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction199 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction199 < ReduceAction: superclass typecheck marker */},
+  {(int) 2043 /* 3: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction199 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction199 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction199___action},
+  {(int) 2 /* 42: ReduceAction199 < ReduceAction199: superclass init_table position */},
+  {(int) parser___ReduceAction199___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction199(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction199;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction199___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction199();
+  parser___ReduceAction199___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction200[44] = {
+  {(int) 2031 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction200 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction200 < ReduceAction: superclass typecheck marker */},
+  {(int) 2031 /* 3: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction200 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction200 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction200___action},
+  {(int) 2 /* 42: ReduceAction200 < ReduceAction200: superclass init_table position */},
+  {(int) parser___ReduceAction200___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction200(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction200;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction200___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction200();
+  parser___ReduceAction200___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction201[44] = {
+  {(int) 2027 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction201 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction201 < ReduceAction: superclass typecheck marker */},
+  {(int) 2027 /* 3: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction201 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction201 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction201___action},
+  {(int) 2 /* 42: ReduceAction201 < ReduceAction201: superclass init_table position */},
+  {(int) parser___ReduceAction201___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction201(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction201;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction201___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction201();
+  parser___ReduceAction201___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction202[44] = {
+  {(int) 2023 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction202 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction202 < ReduceAction: superclass typecheck marker */},
+  {(int) 2023 /* 3: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction202 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction202 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction202___action},
+  {(int) 2 /* 42: ReduceAction202 < ReduceAction202: superclass init_table position */},
+  {(int) parser___ReduceAction202___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction202(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction202;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction202___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction202();
+  parser___ReduceAction202___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction203[44] = {
+  {(int) 2019 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction203 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction203 < ReduceAction: superclass typecheck marker */},
+  {(int) 2019 /* 3: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction203 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction203 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction203___action},
+  {(int) 2 /* 42: ReduceAction203 < ReduceAction203: superclass init_table position */},
+  {(int) parser___ReduceAction203___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction203(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction203;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction203___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction203();
+  parser___ReduceAction203___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction204[44] = {
+  {(int) 2015 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction204 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction204 < ReduceAction: superclass typecheck marker */},
+  {(int) 2015 /* 3: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction204 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction204 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction204___action},
+  {(int) 2 /* 42: ReduceAction204 < ReduceAction204: superclass init_table position */},
+  {(int) parser___ReduceAction204___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction204(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction204;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction204___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction204();
+  parser___ReduceAction204___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction205[44] = {
+  {(int) 2011 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction205 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction205 < ReduceAction: superclass typecheck marker */},
+  {(int) 2011 /* 3: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction205 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction205 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction205___action},
+  {(int) 2 /* 42: ReduceAction205 < ReduceAction205: superclass init_table position */},
+  {(int) parser___ReduceAction205___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction205(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction205;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction205___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction205();
+  parser___ReduceAction205___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction206[44] = {
+  {(int) 2007 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction206 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction206 < ReduceAction: superclass typecheck marker */},
+  {(int) 2007 /* 3: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction206 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction206 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction206___action},
+  {(int) 2 /* 42: ReduceAction206 < ReduceAction206: superclass init_table position */},
+  {(int) parser___ReduceAction206___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction206(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction206;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction206___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction206();
+  parser___ReduceAction206___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction207[44] = {
+  {(int) 2003 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction207 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction207 < ReduceAction: superclass typecheck marker */},
+  {(int) 2003 /* 3: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction207 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction207 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction207___action},
+  {(int) 2 /* 42: ReduceAction207 < ReduceAction207: superclass init_table position */},
+  {(int) parser___ReduceAction207___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction207(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction207;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction207___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction207();
+  parser___ReduceAction207___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction208[44] = {
+  {(int) 1999 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction208 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction208 < ReduceAction: superclass typecheck marker */},
+  {(int) 1999 /* 3: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction208 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction208 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction208___action},
+  {(int) 2 /* 42: ReduceAction208 < ReduceAction208: superclass init_table position */},
+  {(int) parser___ReduceAction208___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction208(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction208;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction208___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction208();
+  parser___ReduceAction208___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction209[44] = {
+  {(int) 1995 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction209 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction209 < ReduceAction: superclass typecheck marker */},
+  {(int) 1995 /* 3: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction209 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction209 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction209___action},
+  {(int) 2 /* 42: ReduceAction209 < ReduceAction209: superclass init_table position */},
+  {(int) parser___ReduceAction209___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction209(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction209;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction209___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction209();
+  parser___ReduceAction209___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction210[44] = {
+  {(int) 1987 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction210 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction210 < ReduceAction: superclass typecheck marker */},
+  {(int) 1987 /* 3: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction210 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction210 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction210___action},
+  {(int) 2 /* 42: ReduceAction210 < ReduceAction210: superclass init_table position */},
+  {(int) parser___ReduceAction210___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction210(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction210;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction210___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction210();
+  parser___ReduceAction210___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction211[44] = {
+  {(int) 1983 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction211 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction211 < ReduceAction: superclass typecheck marker */},
+  {(int) 1983 /* 3: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction211 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction211 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction211___action},
+  {(int) 2 /* 42: ReduceAction211 < ReduceAction211: superclass init_table position */},
+  {(int) parser___ReduceAction211___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction211(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction211;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction211___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction211();
+  parser___ReduceAction211___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction212[44] = {
+  {(int) 1979 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction212 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction212 < ReduceAction: superclass typecheck marker */},
+  {(int) 1979 /* 3: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction212 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction212 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction212___action},
+  {(int) 2 /* 42: ReduceAction212 < ReduceAction212: superclass init_table position */},
+  {(int) parser___ReduceAction212___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction212(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction212;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction212___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction212();
+  parser___ReduceAction212___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction213[44] = {
+  {(int) 1975 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction213 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction213 < ReduceAction: superclass typecheck marker */},
+  {(int) 1975 /* 3: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction213 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction213 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction213___action},
+  {(int) 2 /* 42: ReduceAction213 < ReduceAction213: superclass init_table position */},
+  {(int) parser___ReduceAction213___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction213(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction213;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction213___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction213();
+  parser___ReduceAction213___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction214[44] = {
+  {(int) 1971 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction214 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction214 < ReduceAction: superclass typecheck marker */},
+  {(int) 1971 /* 3: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction214 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction214 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction214___action},
+  {(int) 2 /* 42: ReduceAction214 < ReduceAction214: superclass init_table position */},
+  {(int) parser___ReduceAction214___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction214(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction214;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction214___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction214();
+  parser___ReduceAction214___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction215[44] = {
+  {(int) 1967 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction215 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction215 < ReduceAction: superclass typecheck marker */},
+  {(int) 1967 /* 3: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction215 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction215 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction215___action},
+  {(int) 2 /* 42: ReduceAction215 < ReduceAction215: superclass init_table position */},
+  {(int) parser___ReduceAction215___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction215(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction215;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction215___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction215();
+  parser___ReduceAction215___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction216[44] = {
+  {(int) 1963 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction216 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction216 < ReduceAction: superclass typecheck marker */},
+  {(int) 1963 /* 3: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction216 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction216 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction216___action},
+  {(int) 2 /* 42: ReduceAction216 < ReduceAction216: superclass init_table position */},
+  {(int) parser___ReduceAction216___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction216(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction216;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction216___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction216();
+  parser___ReduceAction216___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction217[44] = {
+  {(int) 1959 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction217 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction217 < ReduceAction: superclass typecheck marker */},
+  {(int) 1959 /* 3: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction217 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction217 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction217___action},
+  {(int) 2 /* 42: ReduceAction217 < ReduceAction217: superclass init_table position */},
+  {(int) parser___ReduceAction217___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction217(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction217;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction217___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction217();
+  parser___ReduceAction217___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction218[44] = {
+  {(int) 1955 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction218 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction218 < ReduceAction: superclass typecheck marker */},
+  {(int) 1955 /* 3: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction218 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction218 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction218___action},
+  {(int) 2 /* 42: ReduceAction218 < ReduceAction218: superclass init_table position */},
+  {(int) parser___ReduceAction218___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction218(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction218;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction218___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction218();
+  parser___ReduceAction218___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction219[44] = {
+  {(int) 1951 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction219 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction219 < ReduceAction: superclass typecheck marker */},
+  {(int) 1951 /* 3: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction219 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction219 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction219___action},
+  {(int) 2 /* 42: ReduceAction219 < ReduceAction219: superclass init_table position */},
+  {(int) parser___ReduceAction219___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction219(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction219;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction219___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction219();
+  parser___ReduceAction219___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction220[44] = {
+  {(int) 1943 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction220 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction220 < ReduceAction: superclass typecheck marker */},
+  {(int) 1943 /* 3: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction220 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction220 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction220___action},
+  {(int) 2 /* 42: ReduceAction220 < ReduceAction220: superclass init_table position */},
+  {(int) parser___ReduceAction220___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction220(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction220;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction220___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction220();
+  parser___ReduceAction220___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction221[44] = {
+  {(int) 1939 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction221 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction221 < ReduceAction: superclass typecheck marker */},
+  {(int) 1939 /* 3: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction221 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction221 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction221___action},
+  {(int) 2 /* 42: ReduceAction221 < ReduceAction221: superclass init_table position */},
+  {(int) parser___ReduceAction221___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction221(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction221;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction221___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction221();
+  parser___ReduceAction221___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction222[44] = {
+  {(int) 1935 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction222 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction222 < ReduceAction: superclass typecheck marker */},
+  {(int) 1935 /* 3: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction222 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction222 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction222___action},
+  {(int) 2 /* 42: ReduceAction222 < ReduceAction222: superclass init_table position */},
+  {(int) parser___ReduceAction222___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction222(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction222;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction222___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction222();
+  parser___ReduceAction222___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction223[44] = {
+  {(int) 1931 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction223 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction223 < ReduceAction: superclass typecheck marker */},
+  {(int) 1931 /* 3: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction223 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction223 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction223___action},
+  {(int) 2 /* 42: ReduceAction223 < ReduceAction223: superclass init_table position */},
+  {(int) parser___ReduceAction223___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction223(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction223;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction223___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction223();
+  parser___ReduceAction223___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction224[44] = {
+  {(int) 1927 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction224 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction224 < ReduceAction: superclass typecheck marker */},
+  {(int) 1927 /* 3: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction224 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction224 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction224___action},
+  {(int) 2 /* 42: ReduceAction224 < ReduceAction224: superclass init_table position */},
+  {(int) parser___ReduceAction224___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction224(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction224;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction224___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction224();
+  parser___ReduceAction224___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction225[44] = {
+  {(int) 1923 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction225 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction225 < ReduceAction: superclass typecheck marker */},
+  {(int) 1923 /* 3: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction225 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction225 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction225___action},
+  {(int) 2 /* 42: ReduceAction225 < ReduceAction225: superclass init_table position */},
+  {(int) parser___ReduceAction225___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction225(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction225;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction225___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction225();
+  parser___ReduceAction225___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction226[44] = {
+  {(int) 1919 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction226 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction226 < ReduceAction: superclass typecheck marker */},
+  {(int) 1919 /* 3: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction226 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction226 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction226___action},
+  {(int) 2 /* 42: ReduceAction226 < ReduceAction226: superclass init_table position */},
+  {(int) parser___ReduceAction226___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction226(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction226;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction226___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction226();
+  parser___ReduceAction226___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction227[44] = {
+  {(int) 1915 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction227 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction227 < ReduceAction: superclass typecheck marker */},
+  {(int) 1915 /* 3: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction227 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction227 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction227___action},
+  {(int) 2 /* 42: ReduceAction227 < ReduceAction227: superclass init_table position */},
+  {(int) parser___ReduceAction227___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction227(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction227;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction227___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction227();
+  parser___ReduceAction227___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction228[44] = {
+  {(int) 1911 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction228 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction228 < ReduceAction: superclass typecheck marker */},
+  {(int) 1911 /* 3: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction228 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction228 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction228___action},
+  {(int) 2 /* 42: ReduceAction228 < ReduceAction228: superclass init_table position */},
+  {(int) parser___ReduceAction228___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction228(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction228;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction228___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction228();
+  parser___ReduceAction228___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction229[44] = {
+  {(int) 1907 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction229 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction229 < ReduceAction: superclass typecheck marker */},
+  {(int) 1907 /* 3: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction229 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction229 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction229___action},
+  {(int) 2 /* 42: ReduceAction229 < ReduceAction229: superclass init_table position */},
+  {(int) parser___ReduceAction229___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction229(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction229;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction229___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction229();
+  parser___ReduceAction229___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction230[44] = {
+  {(int) 1899 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction230 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction230 < ReduceAction: superclass typecheck marker */},
+  {(int) 1899 /* 3: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction230 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction230 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction230___action},
+  {(int) 2 /* 42: ReduceAction230 < ReduceAction230: superclass init_table position */},
+  {(int) parser___ReduceAction230___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction230(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction230;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction230___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction230();
+  parser___ReduceAction230___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction231[44] = {
+  {(int) 1895 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction231 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction231 < ReduceAction: superclass typecheck marker */},
+  {(int) 1895 /* 3: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction231 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction231 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction231___action},
+  {(int) 2 /* 42: ReduceAction231 < ReduceAction231: superclass init_table position */},
+  {(int) parser___ReduceAction231___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction231(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction231;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction231___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction231();
+  parser___ReduceAction231___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction232[44] = {
+  {(int) 1891 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction232 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction232 < ReduceAction: superclass typecheck marker */},
+  {(int) 1891 /* 3: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction232 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction232 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction232___action},
+  {(int) 2 /* 42: ReduceAction232 < ReduceAction232: superclass init_table position */},
+  {(int) parser___ReduceAction232___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction232(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction232;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction232___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction232();
+  parser___ReduceAction232___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction233[44] = {
+  {(int) 1887 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction233 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction233 < ReduceAction: superclass typecheck marker */},
+  {(int) 1887 /* 3: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction233 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction233 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction233___action},
+  {(int) 2 /* 42: ReduceAction233 < ReduceAction233: superclass init_table position */},
+  {(int) parser___ReduceAction233___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction233(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction233;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction233___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction233();
+  parser___ReduceAction233___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction234[44] = {
+  {(int) 1883 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction234 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction234 < ReduceAction: superclass typecheck marker */},
+  {(int) 1883 /* 3: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction234 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction234 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction234___action},
+  {(int) 2 /* 42: ReduceAction234 < ReduceAction234: superclass init_table position */},
+  {(int) parser___ReduceAction234___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction234(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction234;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction234___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction234();
+  parser___ReduceAction234___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction235[44] = {
+  {(int) 1879 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction235 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction235 < ReduceAction: superclass typecheck marker */},
+  {(int) 1879 /* 3: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction235 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction235 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction235___action},
+  {(int) 2 /* 42: ReduceAction235 < ReduceAction235: superclass init_table position */},
+  {(int) parser___ReduceAction235___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction235(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction235;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction235___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction235();
+  parser___ReduceAction235___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction236[44] = {
+  {(int) 1875 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction236 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction236 < ReduceAction: superclass typecheck marker */},
+  {(int) 1875 /* 3: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction236 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction236 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction236___action},
+  {(int) 2 /* 42: ReduceAction236 < ReduceAction236: superclass init_table position */},
+  {(int) parser___ReduceAction236___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction236(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction236;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction236___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction236();
+  parser___ReduceAction236___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction237[44] = {
+  {(int) 1871 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction237 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction237 < ReduceAction: superclass typecheck marker */},
+  {(int) 1871 /* 3: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction237 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction237 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction237___action},
+  {(int) 2 /* 42: ReduceAction237 < ReduceAction237: superclass init_table position */},
+  {(int) parser___ReduceAction237___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction237(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction237;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction237___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction237();
+  parser___ReduceAction237___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction238[44] = {
+  {(int) 1867 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction238 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction238 < ReduceAction: superclass typecheck marker */},
+  {(int) 1867 /* 3: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction238 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction238 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction238___action},
+  {(int) 2 /* 42: ReduceAction238 < ReduceAction238: superclass init_table position */},
+  {(int) parser___ReduceAction238___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction238(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction238;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction238___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction238();
+  parser___ReduceAction238___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction239[44] = {
+  {(int) 1863 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction239 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction239 < ReduceAction: superclass typecheck marker */},
+  {(int) 1863 /* 3: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction239 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction239 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction239___action},
+  {(int) 2 /* 42: ReduceAction239 < ReduceAction239: superclass init_table position */},
+  {(int) parser___ReduceAction239___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction239(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction239;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction239___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction239();
+  parser___ReduceAction239___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction240[44] = {
+  {(int) 1855 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction240 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction240 < ReduceAction: superclass typecheck marker */},
+  {(int) 1855 /* 3: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction240 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction240 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction240___action},
+  {(int) 2 /* 42: ReduceAction240 < ReduceAction240: superclass init_table position */},
+  {(int) parser___ReduceAction240___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction240(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction240;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction240___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction240();
+  parser___ReduceAction240___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction241[44] = {
+  {(int) 1851 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction241 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction241 < ReduceAction: superclass typecheck marker */},
+  {(int) 1851 /* 3: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction241 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction241 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction241___action},
+  {(int) 2 /* 42: ReduceAction241 < ReduceAction241: superclass init_table position */},
+  {(int) parser___ReduceAction241___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction241(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction241;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction241___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction241();
+  parser___ReduceAction241___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction242[44] = {
+  {(int) 1847 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction242 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction242 < ReduceAction: superclass typecheck marker */},
+  {(int) 1847 /* 3: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction242 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction242 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction242___action},
+  {(int) 2 /* 42: ReduceAction242 < ReduceAction242: superclass init_table position */},
+  {(int) parser___ReduceAction242___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction242(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction242;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction242___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction242();
+  parser___ReduceAction242___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction243[44] = {
+  {(int) 1843 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction243 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction243 < ReduceAction: superclass typecheck marker */},
+  {(int) 1843 /* 3: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction243 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction243 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction243___action},
+  {(int) 2 /* 42: ReduceAction243 < ReduceAction243: superclass init_table position */},
+  {(int) parser___ReduceAction243___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction243(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction243;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction243___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction243();
+  parser___ReduceAction243___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction244[44] = {
+  {(int) 1839 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction244 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction244 < ReduceAction: superclass typecheck marker */},
+  {(int) 1839 /* 3: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction244 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction244 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction244___action},
+  {(int) 2 /* 42: ReduceAction244 < ReduceAction244: superclass init_table position */},
+  {(int) parser___ReduceAction244___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction244(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction244;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction244___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction244();
+  parser___ReduceAction244___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction245[44] = {
+  {(int) 1835 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction245 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction245 < ReduceAction: superclass typecheck marker */},
+  {(int) 1835 /* 3: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction245 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction245 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction245___action},
+  {(int) 2 /* 42: ReduceAction245 < ReduceAction245: superclass init_table position */},
+  {(int) parser___ReduceAction245___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction245(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction245;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction245___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction245();
+  parser___ReduceAction245___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction246[44] = {
+  {(int) 1831 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction246 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction246 < ReduceAction: superclass typecheck marker */},
+  {(int) 1831 /* 3: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction246 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction246 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction246___action},
+  {(int) 2 /* 42: ReduceAction246 < ReduceAction246: superclass init_table position */},
+  {(int) parser___ReduceAction246___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction246(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction246;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction246___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction246();
+  parser___ReduceAction246___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction247[44] = {
+  {(int) 1827 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction247 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction247 < ReduceAction: superclass typecheck marker */},
+  {(int) 1827 /* 3: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction247 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction247 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction247___action},
+  {(int) 2 /* 42: ReduceAction247 < ReduceAction247: superclass init_table position */},
+  {(int) parser___ReduceAction247___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction247(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction247;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction247___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction247();
+  parser___ReduceAction247___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction248[44] = {
+  {(int) 1823 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction248 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction248 < ReduceAction: superclass typecheck marker */},
+  {(int) 1823 /* 3: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction248 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction248 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction248___action},
+  {(int) 2 /* 42: ReduceAction248 < ReduceAction248: superclass init_table position */},
+  {(int) parser___ReduceAction248___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction248(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction248;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction248___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction248();
+  parser___ReduceAction248___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction249[44] = {
+  {(int) 1819 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction249 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction249 < ReduceAction: superclass typecheck marker */},
+  {(int) 1819 /* 3: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction249 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction249 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction249___action},
+  {(int) 2 /* 42: ReduceAction249 < ReduceAction249: superclass init_table position */},
+  {(int) parser___ReduceAction249___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction249(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction249;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction249___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction249();
+  parser___ReduceAction249___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction250[44] = {
+  {(int) 1811 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction250 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction250 < ReduceAction: superclass typecheck marker */},
+  {(int) 1811 /* 3: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction250 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction250 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction250___action},
+  {(int) 2 /* 42: ReduceAction250 < ReduceAction250: superclass init_table position */},
+  {(int) parser___ReduceAction250___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction250(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction250;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction250___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction250();
+  parser___ReduceAction250___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction251[44] = {
+  {(int) 1807 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction251 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction251 < ReduceAction: superclass typecheck marker */},
+  {(int) 1807 /* 3: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction251 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction251 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction251___action},
+  {(int) 2 /* 42: ReduceAction251 < ReduceAction251: superclass init_table position */},
+  {(int) parser___ReduceAction251___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction251(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction251;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction251___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction251();
+  parser___ReduceAction251___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction252[44] = {
+  {(int) 1803 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction252 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction252 < ReduceAction: superclass typecheck marker */},
+  {(int) 1803 /* 3: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction252 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction252 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction252___action},
+  {(int) 2 /* 42: ReduceAction252 < ReduceAction252: superclass init_table position */},
+  {(int) parser___ReduceAction252___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction252(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction252;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction252___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction252();
+  parser___ReduceAction252___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction253[44] = {
+  {(int) 1799 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction253 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction253 < ReduceAction: superclass typecheck marker */},
+  {(int) 1799 /* 3: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction253 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction253 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction253___action},
+  {(int) 2 /* 42: ReduceAction253 < ReduceAction253: superclass init_table position */},
+  {(int) parser___ReduceAction253___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction253(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction253;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction253___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction253();
+  parser___ReduceAction253___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction254[44] = {
+  {(int) 1795 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction254 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction254 < ReduceAction: superclass typecheck marker */},
+  {(int) 1795 /* 3: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction254 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction254 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction254___action},
+  {(int) 2 /* 42: ReduceAction254 < ReduceAction254: superclass init_table position */},
+  {(int) parser___ReduceAction254___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction254(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction254;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction254___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction254();
+  parser___ReduceAction254___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction255[44] = {
+  {(int) 1791 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction255 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction255 < ReduceAction: superclass typecheck marker */},
+  {(int) 1791 /* 3: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction255 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction255 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction255___action},
+  {(int) 2 /* 42: ReduceAction255 < ReduceAction255: superclass init_table position */},
+  {(int) parser___ReduceAction255___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction255(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction255;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction255___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction255();
+  parser___ReduceAction255___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction256[44] = {
+  {(int) 1787 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction256 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction256 < ReduceAction: superclass typecheck marker */},
+  {(int) 1787 /* 3: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction256 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction256 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction256___action},
+  {(int) 2 /* 42: ReduceAction256 < ReduceAction256: superclass init_table position */},
+  {(int) parser___ReduceAction256___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction256(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction256;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction256___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction256();
+  parser___ReduceAction256___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction257[44] = {
+  {(int) 1783 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction257 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction257 < ReduceAction: superclass typecheck marker */},
+  {(int) 1783 /* 3: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction257 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction257 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction257___action},
+  {(int) 2 /* 42: ReduceAction257 < ReduceAction257: superclass init_table position */},
+  {(int) parser___ReduceAction257___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction257(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction257;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction257___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction257();
+  parser___ReduceAction257___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction258[44] = {
+  {(int) 1779 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction258 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction258 < ReduceAction: superclass typecheck marker */},
+  {(int) 1779 /* 3: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction258 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction258 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction258___action},
+  {(int) 2 /* 42: ReduceAction258 < ReduceAction258: superclass init_table position */},
+  {(int) parser___ReduceAction258___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction258(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction258;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction258___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction258();
+  parser___ReduceAction258___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction259[44] = {
+  {(int) 1775 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction259 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction259 < ReduceAction: superclass typecheck marker */},
+  {(int) 1775 /* 3: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction259 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction259 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction259___action},
+  {(int) 2 /* 42: ReduceAction259 < ReduceAction259: superclass init_table position */},
+  {(int) parser___ReduceAction259___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction259(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction259;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction259___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction259();
+  parser___ReduceAction259___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction260[44] = {
+  {(int) 1767 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction260 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction260 < ReduceAction: superclass typecheck marker */},
+  {(int) 1767 /* 3: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction260 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction260 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction260___action},
+  {(int) 2 /* 42: ReduceAction260 < ReduceAction260: superclass init_table position */},
+  {(int) parser___ReduceAction260___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction260(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction260;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction260___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction260();
+  parser___ReduceAction260___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction261[44] = {
+  {(int) 1763 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction261 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction261 < ReduceAction: superclass typecheck marker */},
+  {(int) 1763 /* 3: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction261 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction261 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction261___action},
+  {(int) 2 /* 42: ReduceAction261 < ReduceAction261: superclass init_table position */},
+  {(int) parser___ReduceAction261___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction261(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction261;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction261___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction261();
+  parser___ReduceAction261___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction262[44] = {
+  {(int) 1759 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction262 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction262 < ReduceAction: superclass typecheck marker */},
+  {(int) 1759 /* 3: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction262 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction262 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction262___action},
+  {(int) 2 /* 42: ReduceAction262 < ReduceAction262: superclass init_table position */},
+  {(int) parser___ReduceAction262___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction262(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction262;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction262___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction262();
+  parser___ReduceAction262___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction263[44] = {
+  {(int) 1755 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction263 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction263 < ReduceAction: superclass typecheck marker */},
+  {(int) 1755 /* 3: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction263 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction263 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction263___action},
+  {(int) 2 /* 42: ReduceAction263 < ReduceAction263: superclass init_table position */},
+  {(int) parser___ReduceAction263___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction263(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction263;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction263___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction263();
+  parser___ReduceAction263___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction264[44] = {
+  {(int) 1751 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction264 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction264 < ReduceAction: superclass typecheck marker */},
+  {(int) 1751 /* 3: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction264 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction264 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction264___action},
+  {(int) 2 /* 42: ReduceAction264 < ReduceAction264: superclass init_table position */},
+  {(int) parser___ReduceAction264___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction264(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction264;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction264___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction264();
+  parser___ReduceAction264___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction265[44] = {
+  {(int) 1747 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction265 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction265 < ReduceAction: superclass typecheck marker */},
+  {(int) 1747 /* 3: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction265 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction265 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction265___action},
+  {(int) 2 /* 42: ReduceAction265 < ReduceAction265: superclass init_table position */},
+  {(int) parser___ReduceAction265___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction265(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction265;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction265___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction265();
+  parser___ReduceAction265___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction266[44] = {
+  {(int) 1743 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction266 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction266 < ReduceAction: superclass typecheck marker */},
+  {(int) 1743 /* 3: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction266 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction266 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction266___action},
+  {(int) 2 /* 42: ReduceAction266 < ReduceAction266: superclass init_table position */},
+  {(int) parser___ReduceAction266___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction266(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction266;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction266___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction266();
+  parser___ReduceAction266___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction267[44] = {
+  {(int) 1739 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction267 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction267 < ReduceAction: superclass typecheck marker */},
+  {(int) 1739 /* 3: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction267 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction267 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction267___action},
+  {(int) 2 /* 42: ReduceAction267 < ReduceAction267: superclass init_table position */},
+  {(int) parser___ReduceAction267___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction267(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction267;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction267___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction267();
+  parser___ReduceAction267___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction268[44] = {
+  {(int) 1735 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction268 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction268 < ReduceAction: superclass typecheck marker */},
+  {(int) 1735 /* 3: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction268 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction268 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction268___action},
+  {(int) 2 /* 42: ReduceAction268 < ReduceAction268: superclass init_table position */},
+  {(int) parser___ReduceAction268___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction268(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction268;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction268___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction268();
+  parser___ReduceAction268___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction269[44] = {
+  {(int) 1731 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction269 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction269 < ReduceAction: superclass typecheck marker */},
+  {(int) 1731 /* 3: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction269 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction269 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction269___action},
+  {(int) 2 /* 42: ReduceAction269 < ReduceAction269: superclass init_table position */},
+  {(int) parser___ReduceAction269___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction269(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction269;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction269___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction269();
+  parser___ReduceAction269___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction270[44] = {
+  {(int) 1723 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction270 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction270 < ReduceAction: superclass typecheck marker */},
+  {(int) 1723 /* 3: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction270 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction270 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction270___action},
+  {(int) 2 /* 42: ReduceAction270 < ReduceAction270: superclass init_table position */},
+  {(int) parser___ReduceAction270___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction270(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction270;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction270___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction270();
+  parser___ReduceAction270___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction271[44] = {
+  {(int) 1719 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction271 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction271 < ReduceAction: superclass typecheck marker */},
+  {(int) 1719 /* 3: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction271 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction271 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction271___action},
+  {(int) 2 /* 42: ReduceAction271 < ReduceAction271: superclass init_table position */},
+  {(int) parser___ReduceAction271___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction271(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction271;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction271___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction271();
+  parser___ReduceAction271___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction272[44] = {
+  {(int) 1715 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction272 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction272 < ReduceAction: superclass typecheck marker */},
+  {(int) 1715 /* 3: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction272 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction272 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction272___action},
+  {(int) 2 /* 42: ReduceAction272 < ReduceAction272: superclass init_table position */},
+  {(int) parser___ReduceAction272___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction272(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction272;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction272___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction272();
+  parser___ReduceAction272___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction273[44] = {
+  {(int) 1711 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction273 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction273 < ReduceAction: superclass typecheck marker */},
+  {(int) 1711 /* 3: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction273 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction273 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction273___action},
+  {(int) 2 /* 42: ReduceAction273 < ReduceAction273: superclass init_table position */},
+  {(int) parser___ReduceAction273___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction273(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction273;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction273___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction273();
+  parser___ReduceAction273___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction274[44] = {
+  {(int) 1707 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction274 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction274 < ReduceAction: superclass typecheck marker */},
+  {(int) 1707 /* 3: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction274 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction274 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction274___action},
+  {(int) 2 /* 42: ReduceAction274 < ReduceAction274: superclass init_table position */},
+  {(int) parser___ReduceAction274___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction274(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction274;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction274___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction274();
+  parser___ReduceAction274___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction275[44] = {
+  {(int) 1703 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction275 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction275 < ReduceAction: superclass typecheck marker */},
+  {(int) 1703 /* 3: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction275 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction275 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction275___action},
+  {(int) 2 /* 42: ReduceAction275 < ReduceAction275: superclass init_table position */},
+  {(int) parser___ReduceAction275___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction275(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction275;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction275___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction275();
+  parser___ReduceAction275___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction276[44] = {
+  {(int) 1699 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction276 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction276 < ReduceAction: superclass typecheck marker */},
+  {(int) 1699 /* 3: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction276 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction276 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction276___action},
+  {(int) 2 /* 42: ReduceAction276 < ReduceAction276: superclass init_table position */},
+  {(int) parser___ReduceAction276___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction276(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction276;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction276___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction276();
+  parser___ReduceAction276___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction277[44] = {
+  {(int) 1695 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction277 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction277 < ReduceAction: superclass typecheck marker */},
+  {(int) 1695 /* 3: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction277 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction277 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction277___action},
+  {(int) 2 /* 42: ReduceAction277 < ReduceAction277: superclass init_table position */},
+  {(int) parser___ReduceAction277___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction277(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction277;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction277___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction277();
+  parser___ReduceAction277___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction278[44] = {
+  {(int) 1691 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction278 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction278 < ReduceAction: superclass typecheck marker */},
+  {(int) 1691 /* 3: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction278 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction278 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction278___action},
+  {(int) 2 /* 42: ReduceAction278 < ReduceAction278: superclass init_table position */},
+  {(int) parser___ReduceAction278___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction278(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction278;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction278___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction278();
+  parser___ReduceAction278___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction279[44] = {
+  {(int) 1687 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction279 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction279 < ReduceAction: superclass typecheck marker */},
+  {(int) 1687 /* 3: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction279 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction279 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction279___action},
+  {(int) 2 /* 42: ReduceAction279 < ReduceAction279: superclass init_table position */},
+  {(int) parser___ReduceAction279___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction279(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction279;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction279___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction279();
+  parser___ReduceAction279___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction280[44] = {
+  {(int) 1679 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction280 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction280 < ReduceAction: superclass typecheck marker */},
+  {(int) 1679 /* 3: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction280 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction280 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction280___action},
+  {(int) 2 /* 42: ReduceAction280 < ReduceAction280: superclass init_table position */},
+  {(int) parser___ReduceAction280___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction280(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction280;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction280___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction280();
+  parser___ReduceAction280___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction281[44] = {
+  {(int) 1675 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction281 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction281 < ReduceAction: superclass typecheck marker */},
+  {(int) 1675 /* 3: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction281 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction281 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction281___action},
+  {(int) 2 /* 42: ReduceAction281 < ReduceAction281: superclass init_table position */},
+  {(int) parser___ReduceAction281___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction281(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction281;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction281___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction281();
+  parser___ReduceAction281___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction282[44] = {
+  {(int) 1671 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction282 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction282 < ReduceAction: superclass typecheck marker */},
+  {(int) 1671 /* 3: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction282 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction282 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction282___action},
+  {(int) 2 /* 42: ReduceAction282 < ReduceAction282: superclass init_table position */},
+  {(int) parser___ReduceAction282___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction282(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction282;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction282___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction282();
+  parser___ReduceAction282___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction283[44] = {
+  {(int) 1667 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction283 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction283 < ReduceAction: superclass typecheck marker */},
+  {(int) 1667 /* 3: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction283 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction283 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction283___action},
+  {(int) 2 /* 42: ReduceAction283 < ReduceAction283: superclass init_table position */},
+  {(int) parser___ReduceAction283___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction283(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction283;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction283___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction283();
+  parser___ReduceAction283___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction284[44] = {
+  {(int) 1663 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction284 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction284 < ReduceAction: superclass typecheck marker */},
+  {(int) 1663 /* 3: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction284 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction284 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction284___action},
+  {(int) 2 /* 42: ReduceAction284 < ReduceAction284: superclass init_table position */},
+  {(int) parser___ReduceAction284___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction284(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction284;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction284___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction284();
+  parser___ReduceAction284___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction285[44] = {
+  {(int) 1659 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction285 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction285 < ReduceAction: superclass typecheck marker */},
+  {(int) 1659 /* 3: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction285 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction285 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction285___action},
+  {(int) 2 /* 42: ReduceAction285 < ReduceAction285: superclass init_table position */},
+  {(int) parser___ReduceAction285___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction285(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction285;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction285___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction285();
+  parser___ReduceAction285___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction286[44] = {
+  {(int) 1655 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction286 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction286 < ReduceAction: superclass typecheck marker */},
+  {(int) 1655 /* 3: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction286 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction286 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction286___action},
+  {(int) 2 /* 42: ReduceAction286 < ReduceAction286: superclass init_table position */},
+  {(int) parser___ReduceAction286___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction286(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction286;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction286___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction286();
+  parser___ReduceAction286___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction287[44] = {
+  {(int) 1651 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction287 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction287 < ReduceAction: superclass typecheck marker */},
+  {(int) 1651 /* 3: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction287 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction287 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction287___action},
+  {(int) 2 /* 42: ReduceAction287 < ReduceAction287: superclass init_table position */},
+  {(int) parser___ReduceAction287___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction287(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction287;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction287___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction287();
+  parser___ReduceAction287___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction288[44] = {
+  {(int) 1647 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction288 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction288 < ReduceAction: superclass typecheck marker */},
+  {(int) 1647 /* 3: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction288 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction288 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction288___action},
+  {(int) 2 /* 42: ReduceAction288 < ReduceAction288: superclass init_table position */},
+  {(int) parser___ReduceAction288___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction288(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction288;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction288___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction288();
+  parser___ReduceAction288___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction289[44] = {
+  {(int) 1643 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction289 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction289 < ReduceAction: superclass typecheck marker */},
+  {(int) 1643 /* 3: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction289 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction289 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction289___action},
+  {(int) 2 /* 42: ReduceAction289 < ReduceAction289: superclass init_table position */},
+  {(int) parser___ReduceAction289___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction289(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction289;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction289___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction289();
+  parser___ReduceAction289___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction290[44] = {
+  {(int) 1635 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction290 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction290 < ReduceAction: superclass typecheck marker */},
+  {(int) 1635 /* 3: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction290 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction290 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction290___action},
+  {(int) 2 /* 42: ReduceAction290 < ReduceAction290: superclass init_table position */},
+  {(int) parser___ReduceAction290___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction290(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction290;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction290___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction290();
+  parser___ReduceAction290___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction291[44] = {
+  {(int) 1631 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction291 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction291 < ReduceAction: superclass typecheck marker */},
+  {(int) 1631 /* 3: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction291 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction291 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction291___action},
+  {(int) 2 /* 42: ReduceAction291 < ReduceAction291: superclass init_table position */},
+  {(int) parser___ReduceAction291___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction291(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction291;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction291___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction291();
+  parser___ReduceAction291___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction292[44] = {
+  {(int) 1627 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction292 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction292 < ReduceAction: superclass typecheck marker */},
+  {(int) 1627 /* 3: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction292 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction292 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction292___action},
+  {(int) 2 /* 42: ReduceAction292 < ReduceAction292: superclass init_table position */},
+  {(int) parser___ReduceAction292___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction292(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction292;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction292___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction292();
+  parser___ReduceAction292___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction293[44] = {
+  {(int) 1623 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction293 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction293 < ReduceAction: superclass typecheck marker */},
+  {(int) 1623 /* 3: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction293 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction293 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction293___action},
+  {(int) 2 /* 42: ReduceAction293 < ReduceAction293: superclass init_table position */},
+  {(int) parser___ReduceAction293___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction293(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction293;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction293___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction293();
+  parser___ReduceAction293___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction294[44] = {
+  {(int) 1619 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction294 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction294 < ReduceAction: superclass typecheck marker */},
+  {(int) 1619 /* 3: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction294 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction294 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction294___action},
+  {(int) 2 /* 42: ReduceAction294 < ReduceAction294: superclass init_table position */},
+  {(int) parser___ReduceAction294___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction294(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction294;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction294___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction294();
+  parser___ReduceAction294___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction295[44] = {
+  {(int) 1615 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction295 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction295 < ReduceAction: superclass typecheck marker */},
+  {(int) 1615 /* 3: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction295 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction295 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction295___action},
+  {(int) 2 /* 42: ReduceAction295 < ReduceAction295: superclass init_table position */},
+  {(int) parser___ReduceAction295___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction295(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction295;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction295___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction295();
+  parser___ReduceAction295___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction296[44] = {
+  {(int) 1611 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction296 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction296 < ReduceAction: superclass typecheck marker */},
+  {(int) 1611 /* 3: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction296 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction296 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction296___action},
+  {(int) 2 /* 42: ReduceAction296 < ReduceAction296: superclass init_table position */},
+  {(int) parser___ReduceAction296___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction296(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction296;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction296___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction296();
+  parser___ReduceAction296___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction297[44] = {
+  {(int) 1607 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction297 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction297 < ReduceAction: superclass typecheck marker */},
+  {(int) 1607 /* 3: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction297 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction297 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction297___action},
+  {(int) 2 /* 42: ReduceAction297 < ReduceAction297: superclass init_table position */},
+  {(int) parser___ReduceAction297___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction297(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction297;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction297___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction297();
+  parser___ReduceAction297___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction298[44] = {
+  {(int) 1603 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction298 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction298 < ReduceAction: superclass typecheck marker */},
+  {(int) 1603 /* 3: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction298 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction298 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction298___action},
+  {(int) 2 /* 42: ReduceAction298 < ReduceAction298: superclass init_table position */},
+  {(int) parser___ReduceAction298___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction298(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction298;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction298___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction298();
+  parser___ReduceAction298___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction299[44] = {
+  {(int) 1599 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction299 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction299 < ReduceAction: superclass typecheck marker */},
+  {(int) 1599 /* 3: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction299 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction299 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction299___action},
+  {(int) 2 /* 42: ReduceAction299 < ReduceAction299: superclass init_table position */},
+  {(int) parser___ReduceAction299___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction299(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction299;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction299___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction299();
+  parser___ReduceAction299___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction300[44] = {
+  {(int) 1587 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction300 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction300 < ReduceAction: superclass typecheck marker */},
+  {(int) 1587 /* 3: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction300 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction300 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction300___action},
+  {(int) 2 /* 42: ReduceAction300 < ReduceAction300: superclass init_table position */},
+  {(int) parser___ReduceAction300___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction300(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction300;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction300___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction300();
+  parser___ReduceAction300___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction301[44] = {
+  {(int) 1583 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction301 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction301 < ReduceAction: superclass typecheck marker */},
+  {(int) 1583 /* 3: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction301 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction301 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction301___action},
+  {(int) 2 /* 42: ReduceAction301 < ReduceAction301: superclass init_table position */},
+  {(int) parser___ReduceAction301___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction301(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction301;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction301___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction301();
+  parser___ReduceAction301___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction302[44] = {
+  {(int) 1579 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction302 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction302 < ReduceAction: superclass typecheck marker */},
+  {(int) 1579 /* 3: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction302 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction302 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction302___action},
+  {(int) 2 /* 42: ReduceAction302 < ReduceAction302: superclass init_table position */},
+  {(int) parser___ReduceAction302___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction302(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction302;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction302___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction302();
+  parser___ReduceAction302___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction303[44] = {
+  {(int) 1575 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction303 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction303 < ReduceAction: superclass typecheck marker */},
+  {(int) 1575 /* 3: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction303 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction303 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction303___action},
+  {(int) 2 /* 42: ReduceAction303 < ReduceAction303: superclass init_table position */},
+  {(int) parser___ReduceAction303___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction303(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction303;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction303___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction303();
+  parser___ReduceAction303___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction304[44] = {
+  {(int) 1571 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction304 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction304 < ReduceAction: superclass typecheck marker */},
+  {(int) 1571 /* 3: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction304 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction304 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction304___action},
+  {(int) 2 /* 42: ReduceAction304 < ReduceAction304: superclass init_table position */},
+  {(int) parser___ReduceAction304___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction304(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction304;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction304___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction304();
+  parser___ReduceAction304___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction305[44] = {
+  {(int) 1567 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction305 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction305 < ReduceAction: superclass typecheck marker */},
+  {(int) 1567 /* 3: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction305 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction305 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction305___action},
+  {(int) 2 /* 42: ReduceAction305 < ReduceAction305: superclass init_table position */},
+  {(int) parser___ReduceAction305___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction305(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction305;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction305___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction305();
+  parser___ReduceAction305___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction306[44] = {
+  {(int) 1563 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction306 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction306 < ReduceAction: superclass typecheck marker */},
+  {(int) 1563 /* 3: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction306 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction306 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction306___action},
+  {(int) 2 /* 42: ReduceAction306 < ReduceAction306: superclass init_table position */},
+  {(int) parser___ReduceAction306___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction306(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction306;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction306___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction306();
+  parser___ReduceAction306___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction307[44] = {
+  {(int) 1559 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction307 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction307 < ReduceAction: superclass typecheck marker */},
+  {(int) 1559 /* 3: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction307 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction307 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction307___action},
+  {(int) 2 /* 42: ReduceAction307 < ReduceAction307: superclass init_table position */},
+  {(int) parser___ReduceAction307___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction307(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction307;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction307___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction307();
+  parser___ReduceAction307___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction308[44] = {
+  {(int) 1555 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction308 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction308 < ReduceAction: superclass typecheck marker */},
+  {(int) 1555 /* 3: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction308 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction308 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction308___action},
+  {(int) 2 /* 42: ReduceAction308 < ReduceAction308: superclass init_table position */},
+  {(int) parser___ReduceAction308___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction308(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction308;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction308___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction308();
+  parser___ReduceAction308___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction309[44] = {
+  {(int) 1551 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction309 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction309 < ReduceAction: superclass typecheck marker */},
+  {(int) 1551 /* 3: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction309 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction309 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction309___action},
+  {(int) 2 /* 42: ReduceAction309 < ReduceAction309: superclass init_table position */},
+  {(int) parser___ReduceAction309___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction309(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction309;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction309___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction309();
+  parser___ReduceAction309___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction310[44] = {
+  {(int) 1543 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction310 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction310 < ReduceAction: superclass typecheck marker */},
+  {(int) 1543 /* 3: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction310 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction310 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction310___action},
+  {(int) 2 /* 42: ReduceAction310 < ReduceAction310: superclass init_table position */},
+  {(int) parser___ReduceAction310___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction310(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction310;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction310___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction310();
+  parser___ReduceAction310___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction311[44] = {
+  {(int) 1539 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction311 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction311 < ReduceAction: superclass typecheck marker */},
+  {(int) 1539 /* 3: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction311 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction311 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction311___action},
+  {(int) 2 /* 42: ReduceAction311 < ReduceAction311: superclass init_table position */},
+  {(int) parser___ReduceAction311___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction311(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction311;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction311___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction311();
+  parser___ReduceAction311___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction312[44] = {
+  {(int) 1535 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction312 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction312 < ReduceAction: superclass typecheck marker */},
+  {(int) 1535 /* 3: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction312 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction312 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction312___action},
+  {(int) 2 /* 42: ReduceAction312 < ReduceAction312: superclass init_table position */},
+  {(int) parser___ReduceAction312___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction312(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction312;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction312___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction312();
+  parser___ReduceAction312___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction313[44] = {
+  {(int) 1531 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction313 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction313 < ReduceAction: superclass typecheck marker */},
+  {(int) 1531 /* 3: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction313 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction313 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction313___action},
+  {(int) 2 /* 42: ReduceAction313 < ReduceAction313: superclass init_table position */},
+  {(int) parser___ReduceAction313___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction313(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction313;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction313___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction313();
+  parser___ReduceAction313___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction314[44] = {
+  {(int) 1527 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction314 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction314 < ReduceAction: superclass typecheck marker */},
+  {(int) 1527 /* 3: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction314 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction314 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction314___action},
+  {(int) 2 /* 42: ReduceAction314 < ReduceAction314: superclass init_table position */},
+  {(int) parser___ReduceAction314___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction314(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction314;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction314___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction314();
+  parser___ReduceAction314___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction315[44] = {
+  {(int) 1523 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction315 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction315 < ReduceAction: superclass typecheck marker */},
+  {(int) 1523 /* 3: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction315 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction315 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction315___action},
+  {(int) 2 /* 42: ReduceAction315 < ReduceAction315: superclass init_table position */},
+  {(int) parser___ReduceAction315___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction315(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction315;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction315___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction315();
+  parser___ReduceAction315___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction316[44] = {
+  {(int) 1519 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction316 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction316 < ReduceAction: superclass typecheck marker */},
+  {(int) 1519 /* 3: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction316 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction316 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction316___action},
+  {(int) 2 /* 42: ReduceAction316 < ReduceAction316: superclass init_table position */},
+  {(int) parser___ReduceAction316___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction316(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction316;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction316___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction316();
+  parser___ReduceAction316___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction317[44] = {
+  {(int) 1515 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction317 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction317 < ReduceAction: superclass typecheck marker */},
+  {(int) 1515 /* 3: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction317 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction317 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction317___action},
+  {(int) 2 /* 42: ReduceAction317 < ReduceAction317: superclass init_table position */},
+  {(int) parser___ReduceAction317___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction317(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction317;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction317___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction317();
+  parser___ReduceAction317___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction318[44] = {
+  {(int) 1511 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction318 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction318 < ReduceAction: superclass typecheck marker */},
+  {(int) 1511 /* 3: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction318 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction318 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction318___action},
+  {(int) 2 /* 42: ReduceAction318 < ReduceAction318: superclass init_table position */},
+  {(int) parser___ReduceAction318___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction318(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction318;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction318___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction318();
+  parser___ReduceAction318___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction319[44] = {
+  {(int) 1507 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction319 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction319 < ReduceAction: superclass typecheck marker */},
+  {(int) 1507 /* 3: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction319 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction319 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction319___action},
+  {(int) 2 /* 42: ReduceAction319 < ReduceAction319: superclass init_table position */},
+  {(int) parser___ReduceAction319___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction319(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction319;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction319___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction319();
+  parser___ReduceAction319___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction320[44] = {
+  {(int) 1499 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction320 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction320 < ReduceAction: superclass typecheck marker */},
+  {(int) 1499 /* 3: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction320 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction320 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction320___action},
+  {(int) 2 /* 42: ReduceAction320 < ReduceAction320: superclass init_table position */},
+  {(int) parser___ReduceAction320___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction320(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction320;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction320___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction320();
+  parser___ReduceAction320___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction321[44] = {
+  {(int) 1495 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction321 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction321 < ReduceAction: superclass typecheck marker */},
+  {(int) 1495 /* 3: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction321 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction321 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction321___action},
+  {(int) 2 /* 42: ReduceAction321 < ReduceAction321: superclass init_table position */},
+  {(int) parser___ReduceAction321___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction321(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction321;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction321___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction321();
+  parser___ReduceAction321___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction322[44] = {
+  {(int) 1491 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction322 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction322 < ReduceAction: superclass typecheck marker */},
+  {(int) 1491 /* 3: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction322 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction322 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction322___action},
+  {(int) 2 /* 42: ReduceAction322 < ReduceAction322: superclass init_table position */},
+  {(int) parser___ReduceAction322___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction322(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction322;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction322___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction322();
+  parser___ReduceAction322___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction323[44] = {
+  {(int) 1487 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction323 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction323 < ReduceAction: superclass typecheck marker */},
+  {(int) 1487 /* 3: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction323 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction323 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction323___action},
+  {(int) 2 /* 42: ReduceAction323 < ReduceAction323: superclass init_table position */},
+  {(int) parser___ReduceAction323___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction323(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction323;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction323___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction323();
+  parser___ReduceAction323___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction324[44] = {
+  {(int) 1483 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction324 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction324 < ReduceAction: superclass typecheck marker */},
+  {(int) 1483 /* 3: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction324 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction324 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction324___action},
+  {(int) 2 /* 42: ReduceAction324 < ReduceAction324: superclass init_table position */},
+  {(int) parser___ReduceAction324___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction324(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction324;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction324___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction324();
+  parser___ReduceAction324___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction325[44] = {
+  {(int) 1479 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction325 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction325 < ReduceAction: superclass typecheck marker */},
+  {(int) 1479 /* 3: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction325 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction325 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction325___action},
+  {(int) 2 /* 42: ReduceAction325 < ReduceAction325: superclass init_table position */},
+  {(int) parser___ReduceAction325___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction325(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction325;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction325___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction325();
+  parser___ReduceAction325___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction326[44] = {
+  {(int) 1475 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction326 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction326 < ReduceAction: superclass typecheck marker */},
+  {(int) 1475 /* 3: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction326 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction326 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction326___action},
+  {(int) 2 /* 42: ReduceAction326 < ReduceAction326: superclass init_table position */},
+  {(int) parser___ReduceAction326___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction326(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction326;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction326___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction326();
+  parser___ReduceAction326___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction327[44] = {
+  {(int) 1471 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction327 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction327 < ReduceAction: superclass typecheck marker */},
+  {(int) 1471 /* 3: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction327 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction327 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction327___action},
+  {(int) 2 /* 42: ReduceAction327 < ReduceAction327: superclass init_table position */},
+  {(int) parser___ReduceAction327___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction327(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction327;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction327___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction327();
+  parser___ReduceAction327___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction328[44] = {
+  {(int) 1467 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction328 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction328 < ReduceAction: superclass typecheck marker */},
+  {(int) 1467 /* 3: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction328 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction328 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction328___action},
+  {(int) 2 /* 42: ReduceAction328 < ReduceAction328: superclass init_table position */},
+  {(int) parser___ReduceAction328___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction328(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction328;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction328___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction328();
+  parser___ReduceAction328___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction329[44] = {
+  {(int) 1463 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction329 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction329 < ReduceAction: superclass typecheck marker */},
+  {(int) 1463 /* 3: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction329 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction329 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction329___action},
+  {(int) 2 /* 42: ReduceAction329 < ReduceAction329: superclass init_table position */},
+  {(int) parser___ReduceAction329___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction329(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction329;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction329___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction329();
+  parser___ReduceAction329___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction330[44] = {
+  {(int) 1455 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction330 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction330 < ReduceAction: superclass typecheck marker */},
+  {(int) 1455 /* 3: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction330 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction330 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction330___action},
+  {(int) 2 /* 42: ReduceAction330 < ReduceAction330: superclass init_table position */},
+  {(int) parser___ReduceAction330___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction330(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction330;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction330___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction330();
+  parser___ReduceAction330___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction331[44] = {
+  {(int) 1451 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction331 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction331 < ReduceAction: superclass typecheck marker */},
+  {(int) 1451 /* 3: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction331 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction331 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction331___action},
+  {(int) 2 /* 42: ReduceAction331 < ReduceAction331: superclass init_table position */},
+  {(int) parser___ReduceAction331___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction331(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction331;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction331___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction331();
+  parser___ReduceAction331___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction332[44] = {
+  {(int) 1447 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction332 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction332 < ReduceAction: superclass typecheck marker */},
+  {(int) 1447 /* 3: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction332 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction332 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction332___action},
+  {(int) 2 /* 42: ReduceAction332 < ReduceAction332: superclass init_table position */},
+  {(int) parser___ReduceAction332___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction332(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction332;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction332___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction332();
+  parser___ReduceAction332___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction333[44] = {
+  {(int) 1443 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction333 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction333 < ReduceAction: superclass typecheck marker */},
+  {(int) 1443 /* 3: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction333 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction333 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction333___action},
+  {(int) 2 /* 42: ReduceAction333 < ReduceAction333: superclass init_table position */},
+  {(int) parser___ReduceAction333___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction333(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction333;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction333___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction333();
+  parser___ReduceAction333___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction334[44] = {
+  {(int) 1439 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction334 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction334 < ReduceAction: superclass typecheck marker */},
+  {(int) 1439 /* 3: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction334 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction334 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction334___action},
+  {(int) 2 /* 42: ReduceAction334 < ReduceAction334: superclass init_table position */},
+  {(int) parser___ReduceAction334___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction334(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction334;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction334___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction334();
+  parser___ReduceAction334___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction335[44] = {
+  {(int) 1435 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction335 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction335 < ReduceAction: superclass typecheck marker */},
+  {(int) 1435 /* 3: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction335 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction335 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction335___action},
+  {(int) 2 /* 42: ReduceAction335 < ReduceAction335: superclass init_table position */},
+  {(int) parser___ReduceAction335___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction335(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction335;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction335___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction335();
+  parser___ReduceAction335___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction336[44] = {
+  {(int) 1431 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction336 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction336 < ReduceAction: superclass typecheck marker */},
+  {(int) 1431 /* 3: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction336 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction336 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction336___action},
+  {(int) 2 /* 42: ReduceAction336 < ReduceAction336: superclass init_table position */},
+  {(int) parser___ReduceAction336___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction336(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction336;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction336___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction336();
+  parser___ReduceAction336___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction337[44] = {
+  {(int) 1427 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction337 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction337 < ReduceAction: superclass typecheck marker */},
+  {(int) 1427 /* 3: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction337 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction337 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction337___action},
+  {(int) 2 /* 42: ReduceAction337 < ReduceAction337: superclass init_table position */},
+  {(int) parser___ReduceAction337___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction337(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction337;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction337___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction337();
+  parser___ReduceAction337___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction338[44] = {
+  {(int) 1423 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction338 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction338 < ReduceAction: superclass typecheck marker */},
+  {(int) 1423 /* 3: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction338 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction338 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction338___action},
+  {(int) 2 /* 42: ReduceAction338 < ReduceAction338: superclass init_table position */},
+  {(int) parser___ReduceAction338___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction338(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction338;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction338___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction338();
+  parser___ReduceAction338___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction339[44] = {
+  {(int) 1419 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction339 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction339 < ReduceAction: superclass typecheck marker */},
+  {(int) 1419 /* 3: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction339 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction339 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction339___action},
+  {(int) 2 /* 42: ReduceAction339 < ReduceAction339: superclass init_table position */},
+  {(int) parser___ReduceAction339___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction339(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction339;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction339___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction339();
+  parser___ReduceAction339___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction340[44] = {
+  {(int) 1411 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction340 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction340 < ReduceAction: superclass typecheck marker */},
+  {(int) 1411 /* 3: ReduceAction340 < ReduceAction340: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction340 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction340 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction340___action},
+  {(int) 2 /* 42: ReduceAction340 < ReduceAction340: superclass init_table position */},
+  {(int) parser___ReduceAction340___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction340(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction340;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction340___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction340();
+  parser___ReduceAction340___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction341[44] = {
+  {(int) 1407 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction341 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction341 < ReduceAction: superclass typecheck marker */},
+  {(int) 1407 /* 3: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction341 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction341 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction341___action},
+  {(int) 2 /* 42: ReduceAction341 < ReduceAction341: superclass init_table position */},
+  {(int) parser___ReduceAction341___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction341(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction341;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction341___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction341();
+  parser___ReduceAction341___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction342[44] = {
+  {(int) 1403 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction342 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction342 < ReduceAction: superclass typecheck marker */},
+  {(int) 1403 /* 3: ReduceAction342 < ReduceAction342: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction342 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction342 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction342___action},
+  {(int) 2 /* 42: ReduceAction342 < ReduceAction342: superclass init_table position */},
+  {(int) parser___ReduceAction342___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction342(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction342;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction342___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction342();
+  parser___ReduceAction342___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction343[44] = {
+  {(int) 1399 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction343 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction343 < ReduceAction: superclass typecheck marker */},
+  {(int) 1399 /* 3: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction343 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction343 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction343___action},
+  {(int) 2 /* 42: ReduceAction343 < ReduceAction343: superclass init_table position */},
+  {(int) parser___ReduceAction343___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction343(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction343;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction343___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction343();
+  parser___ReduceAction343___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction344[44] = {
+  {(int) 1395 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction344 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction344 < ReduceAction: superclass typecheck marker */},
+  {(int) 1395 /* 3: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction344 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction344 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction344___action},
+  {(int) 2 /* 42: ReduceAction344 < ReduceAction344: superclass init_table position */},
+  {(int) parser___ReduceAction344___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction344(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction344;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction344___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction344();
+  parser___ReduceAction344___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction345[44] = {
+  {(int) 1391 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction345 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction345 < ReduceAction: superclass typecheck marker */},
+  {(int) 1391 /* 3: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction345 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction345 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction345___action},
+  {(int) 2 /* 42: ReduceAction345 < ReduceAction345: superclass init_table position */},
+  {(int) parser___ReduceAction345___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction345(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction345;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction345___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction345();
+  parser___ReduceAction345___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction346[44] = {
+  {(int) 1387 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction346 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction346 < ReduceAction: superclass typecheck marker */},
+  {(int) 1387 /* 3: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction346 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction346 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction346___action},
+  {(int) 2 /* 42: ReduceAction346 < ReduceAction346: superclass init_table position */},
+  {(int) parser___ReduceAction346___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction346(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction346;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction346___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction346();
+  parser___ReduceAction346___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction347[44] = {
+  {(int) 1383 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction347 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction347 < ReduceAction: superclass typecheck marker */},
+  {(int) 1383 /* 3: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction347 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction347 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction347___action},
+  {(int) 2 /* 42: ReduceAction347 < ReduceAction347: superclass init_table position */},
+  {(int) parser___ReduceAction347___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction347(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction347;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction347___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction347();
+  parser___ReduceAction347___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction348[44] = {
+  {(int) 1379 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction348 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction348 < ReduceAction: superclass typecheck marker */},
+  {(int) 1379 /* 3: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction348 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction348 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction348___action},
+  {(int) 2 /* 42: ReduceAction348 < ReduceAction348: superclass init_table position */},
+  {(int) parser___ReduceAction348___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction348(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction348;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction348___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction348();
+  parser___ReduceAction348___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction349[44] = {
+  {(int) 1375 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction349 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction349 < ReduceAction: superclass typecheck marker */},
+  {(int) 1375 /* 3: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction349 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction349 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction349___action},
+  {(int) 2 /* 42: ReduceAction349 < ReduceAction349: superclass init_table position */},
+  {(int) parser___ReduceAction349___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction349(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction349;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction349___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction349();
+  parser___ReduceAction349___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction350[44] = {
+  {(int) 1367 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction350 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction350 < ReduceAction: superclass typecheck marker */},
+  {(int) 1367 /* 3: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction350 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction350 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction350___action},
+  {(int) 2 /* 42: ReduceAction350 < ReduceAction350: superclass init_table position */},
+  {(int) parser___ReduceAction350___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction350(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction350;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction350___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction350();
+  parser___ReduceAction350___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction351[44] = {
+  {(int) 1363 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction351 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction351 < ReduceAction: superclass typecheck marker */},
+  {(int) 1363 /* 3: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction351 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction351 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction351___action},
+  {(int) 2 /* 42: ReduceAction351 < ReduceAction351: superclass init_table position */},
+  {(int) parser___ReduceAction351___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction351(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction351;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction351___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction351();
+  parser___ReduceAction351___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction352[44] = {
+  {(int) 1359 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction352 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction352 < ReduceAction: superclass typecheck marker */},
+  {(int) 1359 /* 3: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction352 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction352 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction352___action},
+  {(int) 2 /* 42: ReduceAction352 < ReduceAction352: superclass init_table position */},
+  {(int) parser___ReduceAction352___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction352(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction352;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction352___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction352();
+  parser___ReduceAction352___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction353[44] = {
+  {(int) 1355 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction353 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction353 < ReduceAction: superclass typecheck marker */},
+  {(int) 1355 /* 3: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction353 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction353 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction353___action},
+  {(int) 2 /* 42: ReduceAction353 < ReduceAction353: superclass init_table position */},
+  {(int) parser___ReduceAction353___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction353(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction353;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction353___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction353();
+  parser___ReduceAction353___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction354[44] = {
+  {(int) 1351 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction354 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction354 < ReduceAction: superclass typecheck marker */},
+  {(int) 1351 /* 3: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction354 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction354 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction354___action},
+  {(int) 2 /* 42: ReduceAction354 < ReduceAction354: superclass init_table position */},
+  {(int) parser___ReduceAction354___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction354(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction354;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction354___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction354();
+  parser___ReduceAction354___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction355[44] = {
+  {(int) 1347 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction355 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction355 < ReduceAction: superclass typecheck marker */},
+  {(int) 1347 /* 3: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction355 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction355 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction355___action},
+  {(int) 2 /* 42: ReduceAction355 < ReduceAction355: superclass init_table position */},
+  {(int) parser___ReduceAction355___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction355(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction355;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction355___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction355();
+  parser___ReduceAction355___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction356[44] = {
+  {(int) 1343 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction356 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction356 < ReduceAction: superclass typecheck marker */},
+  {(int) 1343 /* 3: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction356 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction356 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction356___action},
+  {(int) 2 /* 42: ReduceAction356 < ReduceAction356: superclass init_table position */},
+  {(int) parser___ReduceAction356___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction356(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction356;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction356___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction356();
+  parser___ReduceAction356___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction357[44] = {
+  {(int) 1339 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction357 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction357 < ReduceAction: superclass typecheck marker */},
+  {(int) 1339 /* 3: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction357 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction357 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction357___action},
+  {(int) 2 /* 42: ReduceAction357 < ReduceAction357: superclass init_table position */},
+  {(int) parser___ReduceAction357___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction357(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction357;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction357___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction357();
+  parser___ReduceAction357___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction358[44] = {
+  {(int) 1335 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction358 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction358 < ReduceAction: superclass typecheck marker */},
+  {(int) 1335 /* 3: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction358 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction358 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction358___action},
+  {(int) 2 /* 42: ReduceAction358 < ReduceAction358: superclass init_table position */},
+  {(int) parser___ReduceAction358___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction358(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction358;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction358___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction358();
+  parser___ReduceAction358___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction359[44] = {
+  {(int) 1331 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction359 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction359 < ReduceAction: superclass typecheck marker */},
+  {(int) 1331 /* 3: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction359 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction359 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction359___action},
+  {(int) 2 /* 42: ReduceAction359 < ReduceAction359: superclass init_table position */},
+  {(int) parser___ReduceAction359___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction359(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction359;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction359___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction359();
+  parser___ReduceAction359___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction360[44] = {
+  {(int) 1323 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction360 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction360 < ReduceAction: superclass typecheck marker */},
+  {(int) 1323 /* 3: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction360 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction360 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction360___action},
+  {(int) 2 /* 42: ReduceAction360 < ReduceAction360: superclass init_table position */},
+  {(int) parser___ReduceAction360___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction360(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction360;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction360___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction360();
+  parser___ReduceAction360___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction361[44] = {
+  {(int) 1319 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction361 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction361 < ReduceAction: superclass typecheck marker */},
+  {(int) 1319 /* 3: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction361 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction361 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction361___action},
+  {(int) 2 /* 42: ReduceAction361 < ReduceAction361: superclass init_table position */},
+  {(int) parser___ReduceAction361___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction361(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction361;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction361___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction361();
+  parser___ReduceAction361___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction362[44] = {
+  {(int) 1315 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction362 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction362 < ReduceAction: superclass typecheck marker */},
+  {(int) 1315 /* 3: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction362 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction362 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction362___action},
+  {(int) 2 /* 42: ReduceAction362 < ReduceAction362: superclass init_table position */},
+  {(int) parser___ReduceAction362___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction362(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction362;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction362___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction362();
+  parser___ReduceAction362___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction363[44] = {
+  {(int) 1311 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction363 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction363 < ReduceAction: superclass typecheck marker */},
+  {(int) 1311 /* 3: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction363 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction363 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction363___action},
+  {(int) 2 /* 42: ReduceAction363 < ReduceAction363: superclass init_table position */},
+  {(int) parser___ReduceAction363___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction363(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction363;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction363___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction363();
+  parser___ReduceAction363___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction364[44] = {
+  {(int) 1307 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction364 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction364 < ReduceAction: superclass typecheck marker */},
+  {(int) 1307 /* 3: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction364 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction364 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction364___action},
+  {(int) 2 /* 42: ReduceAction364 < ReduceAction364: superclass init_table position */},
+  {(int) parser___ReduceAction364___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction364(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction364;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction364___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction364();
+  parser___ReduceAction364___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction365[44] = {
+  {(int) 1303 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction365 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction365 < ReduceAction: superclass typecheck marker */},
+  {(int) 1303 /* 3: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction365 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction365 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction365___action},
+  {(int) 2 /* 42: ReduceAction365 < ReduceAction365: superclass init_table position */},
+  {(int) parser___ReduceAction365___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction365(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction365;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction365___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction365();
+  parser___ReduceAction365___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction366[44] = {
+  {(int) 1299 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction366 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction366 < ReduceAction: superclass typecheck marker */},
+  {(int) 1299 /* 3: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction366 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction366 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction366___action},
+  {(int) 2 /* 42: ReduceAction366 < ReduceAction366: superclass init_table position */},
+  {(int) parser___ReduceAction366___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction366(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction366;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction366___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction366();
+  parser___ReduceAction366___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction367[44] = {
+  {(int) 1295 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction367 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction367 < ReduceAction: superclass typecheck marker */},
+  {(int) 1295 /* 3: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction367 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction367 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction367___action},
+  {(int) 2 /* 42: ReduceAction367 < ReduceAction367: superclass init_table position */},
+  {(int) parser___ReduceAction367___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction367(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction367;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction367___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction367();
+  parser___ReduceAction367___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction368[44] = {
+  {(int) 1291 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction368 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction368 < ReduceAction: superclass typecheck marker */},
+  {(int) 1291 /* 3: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction368 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction368 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction368___action},
+  {(int) 2 /* 42: ReduceAction368 < ReduceAction368: superclass init_table position */},
+  {(int) parser___ReduceAction368___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction368(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction368;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction368___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction368();
+  parser___ReduceAction368___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction369[44] = {
+  {(int) 1287 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction369 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction369 < ReduceAction: superclass typecheck marker */},
+  {(int) 1287 /* 3: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction369 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction369 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction369___action},
+  {(int) 2 /* 42: ReduceAction369 < ReduceAction369: superclass init_table position */},
+  {(int) parser___ReduceAction369___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction369(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction369;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction369___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction369();
+  parser___ReduceAction369___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction370[44] = {
+  {(int) 1279 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction370 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction370 < ReduceAction: superclass typecheck marker */},
+  {(int) 1279 /* 3: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction370 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction370 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction370___action},
+  {(int) 2 /* 42: ReduceAction370 < ReduceAction370: superclass init_table position */},
+  {(int) parser___ReduceAction370___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction370(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction370;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction370___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction370();
+  parser___ReduceAction370___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction371[44] = {
+  {(int) 1275 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction371 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction371 < ReduceAction: superclass typecheck marker */},
+  {(int) 1275 /* 3: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction371 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction371 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction371___action},
+  {(int) 2 /* 42: ReduceAction371 < ReduceAction371: superclass init_table position */},
+  {(int) parser___ReduceAction371___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction371(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction371;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction371___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction371();
+  parser___ReduceAction371___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction372[44] = {
+  {(int) 1271 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction372 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction372 < ReduceAction: superclass typecheck marker */},
+  {(int) 1271 /* 3: ReduceAction372 < ReduceAction372: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction372 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction372 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction372___action},
+  {(int) 2 /* 42: ReduceAction372 < ReduceAction372: superclass init_table position */},
+  {(int) parser___ReduceAction372___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction372(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction372;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction372___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction372();
+  parser___ReduceAction372___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction373[44] = {
+  {(int) 1267 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction373 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction373 < ReduceAction: superclass typecheck marker */},
+  {(int) 1267 /* 3: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction373 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction373 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction373___action},
+  {(int) 2 /* 42: ReduceAction373 < ReduceAction373: superclass init_table position */},
+  {(int) parser___ReduceAction373___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction373(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction373;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction373___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction373();
+  parser___ReduceAction373___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction374[44] = {
+  {(int) 1263 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction374 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction374 < ReduceAction: superclass typecheck marker */},
+  {(int) 1263 /* 3: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction374 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction374 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction374___action},
+  {(int) 2 /* 42: ReduceAction374 < ReduceAction374: superclass init_table position */},
+  {(int) parser___ReduceAction374___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction374(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction374;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction374___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction374();
+  parser___ReduceAction374___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction375[44] = {
+  {(int) 1259 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction375 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction375 < ReduceAction: superclass typecheck marker */},
+  {(int) 1259 /* 3: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction375 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction375 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction375___action},
+  {(int) 2 /* 42: ReduceAction375 < ReduceAction375: superclass init_table position */},
+  {(int) parser___ReduceAction375___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction375(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction375;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction375___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction375();
+  parser___ReduceAction375___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction376[44] = {
+  {(int) 1255 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction376 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction376 < ReduceAction: superclass typecheck marker */},
+  {(int) 1255 /* 3: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction376 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction376 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction376___action},
+  {(int) 2 /* 42: ReduceAction376 < ReduceAction376: superclass init_table position */},
+  {(int) parser___ReduceAction376___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction376(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction376;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction376___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction376();
+  parser___ReduceAction376___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction377[44] = {
+  {(int) 1251 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction377 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction377 < ReduceAction: superclass typecheck marker */},
+  {(int) 1251 /* 3: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction377 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction377 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction377___action},
+  {(int) 2 /* 42: ReduceAction377 < ReduceAction377: superclass init_table position */},
+  {(int) parser___ReduceAction377___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction377(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction377;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction377___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction377();
+  parser___ReduceAction377___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction378[44] = {
+  {(int) 1247 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction378 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction378 < ReduceAction: superclass typecheck marker */},
+  {(int) 1247 /* 3: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction378 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction378 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction378___action},
+  {(int) 2 /* 42: ReduceAction378 < ReduceAction378: superclass init_table position */},
+  {(int) parser___ReduceAction378___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction378(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction378;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction378___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction378();
+  parser___ReduceAction378___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction379[44] = {
+  {(int) 1243 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction379 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction379 < ReduceAction: superclass typecheck marker */},
+  {(int) 1243 /* 3: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction379 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction379 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction379___action},
+  {(int) 2 /* 42: ReduceAction379 < ReduceAction379: superclass init_table position */},
+  {(int) parser___ReduceAction379___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction379(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction379;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction379___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction379();
+  parser___ReduceAction379___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction380[44] = {
+  {(int) 1235 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction380 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction380 < ReduceAction: superclass typecheck marker */},
+  {(int) 1235 /* 3: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction380 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction380 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction380___action},
+  {(int) 2 /* 42: ReduceAction380 < ReduceAction380: superclass init_table position */},
+  {(int) parser___ReduceAction380___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction380(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction380;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction380___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction380();
+  parser___ReduceAction380___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction381[44] = {
+  {(int) 1231 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction381 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction381 < ReduceAction: superclass typecheck marker */},
+  {(int) 1231 /* 3: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction381 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction381 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction381___action},
+  {(int) 2 /* 42: ReduceAction381 < ReduceAction381: superclass init_table position */},
+  {(int) parser___ReduceAction381___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction381(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction381;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction381___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction381();
+  parser___ReduceAction381___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction382[44] = {
+  {(int) 1227 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction382 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction382 < ReduceAction: superclass typecheck marker */},
+  {(int) 1227 /* 3: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction382 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction382 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction382___action},
+  {(int) 2 /* 42: ReduceAction382 < ReduceAction382: superclass init_table position */},
+  {(int) parser___ReduceAction382___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction382(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction382;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction382___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction382();
+  parser___ReduceAction382___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction383[44] = {
+  {(int) 1223 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction383 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction383 < ReduceAction: superclass typecheck marker */},
+  {(int) 1223 /* 3: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction383 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction383 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction383___action},
+  {(int) 2 /* 42: ReduceAction383 < ReduceAction383: superclass init_table position */},
+  {(int) parser___ReduceAction383___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction383(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction383;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction383___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction383();
+  parser___ReduceAction383___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction384[44] = {
+  {(int) 1219 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction384 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction384 < ReduceAction: superclass typecheck marker */},
+  {(int) 1219 /* 3: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction384 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction384 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction384___action},
+  {(int) 2 /* 42: ReduceAction384 < ReduceAction384: superclass init_table position */},
+  {(int) parser___ReduceAction384___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction384(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction384;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction384___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction384();
+  parser___ReduceAction384___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction385[44] = {
+  {(int) 1215 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction385 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction385 < ReduceAction: superclass typecheck marker */},
+  {(int) 1215 /* 3: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction385 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction385 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction385___action},
+  {(int) 2 /* 42: ReduceAction385 < ReduceAction385: superclass init_table position */},
+  {(int) parser___ReduceAction385___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction385(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction385;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction385___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction385();
+  parser___ReduceAction385___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction386[44] = {
+  {(int) 1211 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction386 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction386 < ReduceAction: superclass typecheck marker */},
+  {(int) 1211 /* 3: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction386 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction386 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction386___action},
+  {(int) 2 /* 42: ReduceAction386 < ReduceAction386: superclass init_table position */},
+  {(int) parser___ReduceAction386___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction386(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction386;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction386___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction386();
+  parser___ReduceAction386___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction387[44] = {
+  {(int) 1207 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction387 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction387 < ReduceAction: superclass typecheck marker */},
+  {(int) 1207 /* 3: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction387 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction387 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction387___action},
+  {(int) 2 /* 42: ReduceAction387 < ReduceAction387: superclass init_table position */},
+  {(int) parser___ReduceAction387___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction387(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction387;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction387___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction387();
+  parser___ReduceAction387___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction388[44] = {
+  {(int) 1203 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction388 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction388 < ReduceAction: superclass typecheck marker */},
+  {(int) 1203 /* 3: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction388 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction388 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction388___action},
+  {(int) 2 /* 42: ReduceAction388 < ReduceAction388: superclass init_table position */},
+  {(int) parser___ReduceAction388___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction388(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction388;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction388___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction388();
+  parser___ReduceAction388___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction389[44] = {
+  {(int) 1199 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction389 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction389 < ReduceAction: superclass typecheck marker */},
+  {(int) 1199 /* 3: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction389 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction389 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction389___action},
+  {(int) 2 /* 42: ReduceAction389 < ReduceAction389: superclass init_table position */},
+  {(int) parser___ReduceAction389___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction389(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction389;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction389___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction389();
+  parser___ReduceAction389___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction390[44] = {
+  {(int) 1191 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction390 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction390 < ReduceAction: superclass typecheck marker */},
+  {(int) 1191 /* 3: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction390 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction390 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction390___action},
+  {(int) 2 /* 42: ReduceAction390 < ReduceAction390: superclass init_table position */},
+  {(int) parser___ReduceAction390___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction390(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction390;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction390___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction390();
+  parser___ReduceAction390___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction391[44] = {
+  {(int) 1187 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction391 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction391 < ReduceAction: superclass typecheck marker */},
+  {(int) 1187 /* 3: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction391 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction391 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction391___action},
+  {(int) 2 /* 42: ReduceAction391 < ReduceAction391: superclass init_table position */},
+  {(int) parser___ReduceAction391___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction391(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction391;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction391___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction391();
+  parser___ReduceAction391___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction392[44] = {
+  {(int) 1183 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction392 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction392 < ReduceAction: superclass typecheck marker */},
+  {(int) 1183 /* 3: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction392 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction392 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction392___action},
+  {(int) 2 /* 42: ReduceAction392 < ReduceAction392: superclass init_table position */},
+  {(int) parser___ReduceAction392___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction392(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction392;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction392___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction392();
+  parser___ReduceAction392___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction393[44] = {
+  {(int) 1179 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction393 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction393 < ReduceAction: superclass typecheck marker */},
+  {(int) 1179 /* 3: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction393 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction393 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction393___action},
+  {(int) 2 /* 42: ReduceAction393 < ReduceAction393: superclass init_table position */},
+  {(int) parser___ReduceAction393___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction393(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction393;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction393___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction393();
+  parser___ReduceAction393___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction394[44] = {
+  {(int) 1175 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction394 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction394 < ReduceAction: superclass typecheck marker */},
+  {(int) 1175 /* 3: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction394 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction394 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction394___action},
+  {(int) 2 /* 42: ReduceAction394 < ReduceAction394: superclass init_table position */},
+  {(int) parser___ReduceAction394___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction394(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction394;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction394___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction394();
+  parser___ReduceAction394___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction395[44] = {
+  {(int) 1171 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction395 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction395 < ReduceAction: superclass typecheck marker */},
+  {(int) 1171 /* 3: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction395 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction395 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction395___action},
+  {(int) 2 /* 42: ReduceAction395 < ReduceAction395: superclass init_table position */},
+  {(int) parser___ReduceAction395___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction395(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction395;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction395___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction395();
+  parser___ReduceAction395___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction396[44] = {
+  {(int) 1167 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction396 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction396 < ReduceAction: superclass typecheck marker */},
+  {(int) 1167 /* 3: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction396 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction396 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction396___action},
+  {(int) 2 /* 42: ReduceAction396 < ReduceAction396: superclass init_table position */},
+  {(int) parser___ReduceAction396___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction396(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction396;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction396___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction396();
+  parser___ReduceAction396___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction397[44] = {
+  {(int) 1163 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction397 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction397 < ReduceAction: superclass typecheck marker */},
+  {(int) 1163 /* 3: ReduceAction397 < ReduceAction397: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction397 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction397 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction397___action},
+  {(int) 2 /* 42: ReduceAction397 < ReduceAction397: superclass init_table position */},
+  {(int) parser___ReduceAction397___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction397(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction397;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction397___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction397();
+  parser___ReduceAction397___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction398[44] = {
+  {(int) 1159 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction398 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction398 < ReduceAction: superclass typecheck marker */},
+  {(int) 1159 /* 3: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction398 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction398 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction398___action},
+  {(int) 2 /* 42: ReduceAction398 < ReduceAction398: superclass init_table position */},
+  {(int) parser___ReduceAction398___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction398(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction398;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction398___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction398();
+  parser___ReduceAction398___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction399[44] = {
+  {(int) 1155 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction399 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction399 < ReduceAction: superclass typecheck marker */},
+  {(int) 1155 /* 3: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction399 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction399 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction399___action},
+  {(int) 2 /* 42: ReduceAction399 < ReduceAction399: superclass init_table position */},
+  {(int) parser___ReduceAction399___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction399(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction399;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction399___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction399();
+  parser___ReduceAction399___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction400[44] = {
+  {(int) 1143 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction400 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction400 < ReduceAction: superclass typecheck marker */},
+  {(int) 1143 /* 3: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction400 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction400 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction400___action},
+  {(int) 2 /* 42: ReduceAction400 < ReduceAction400: superclass init_table position */},
+  {(int) parser___ReduceAction400___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction400(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction400;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction400___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction400();
+  parser___ReduceAction400___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction401[44] = {
+  {(int) 1139 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction401 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction401 < ReduceAction: superclass typecheck marker */},
+  {(int) 1139 /* 3: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction401 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction401 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction401___action},
+  {(int) 2 /* 42: ReduceAction401 < ReduceAction401: superclass init_table position */},
+  {(int) parser___ReduceAction401___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction401(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction401;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction401___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction401();
+  parser___ReduceAction401___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction402[44] = {
+  {(int) 1135 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction402 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction402 < ReduceAction: superclass typecheck marker */},
+  {(int) 1135 /* 3: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction402 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction402 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction402___action},
+  {(int) 2 /* 42: ReduceAction402 < ReduceAction402: superclass init_table position */},
+  {(int) parser___ReduceAction402___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction402(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction402;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction402___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction402();
+  parser___ReduceAction402___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction403[44] = {
+  {(int) 1131 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction403 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction403 < ReduceAction: superclass typecheck marker */},
+  {(int) 1131 /* 3: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction403 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction403 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction403___action},
+  {(int) 2 /* 42: ReduceAction403 < ReduceAction403: superclass init_table position */},
+  {(int) parser___ReduceAction403___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction403(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction403;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction403___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction403();
+  parser___ReduceAction403___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction404[44] = {
+  {(int) 1127 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction404 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction404 < ReduceAction: superclass typecheck marker */},
+  {(int) 1127 /* 3: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction404 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction404 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction404___action},
+  {(int) 2 /* 42: ReduceAction404 < ReduceAction404: superclass init_table position */},
+  {(int) parser___ReduceAction404___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction404(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction404;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction404___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction404();
+  parser___ReduceAction404___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction405[44] = {
+  {(int) 1123 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction405 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction405 < ReduceAction: superclass typecheck marker */},
+  {(int) 1123 /* 3: ReduceAction405 < ReduceAction405: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction405 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction405 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction405___action},
+  {(int) 2 /* 42: ReduceAction405 < ReduceAction405: superclass init_table position */},
+  {(int) parser___ReduceAction405___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction405(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction405;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction405___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction405();
+  parser___ReduceAction405___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction406[44] = {
+  {(int) 1119 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction406 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction406 < ReduceAction: superclass typecheck marker */},
+  {(int) 1119 /* 3: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction406 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction406 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction406___action},
+  {(int) 2 /* 42: ReduceAction406 < ReduceAction406: superclass init_table position */},
+  {(int) parser___ReduceAction406___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction406(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction406;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction406___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction406();
+  parser___ReduceAction406___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction407[44] = {
+  {(int) 1115 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction407 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction407 < ReduceAction: superclass typecheck marker */},
+  {(int) 1115 /* 3: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction407 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction407 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction407___action},
+  {(int) 2 /* 42: ReduceAction407 < ReduceAction407: superclass init_table position */},
+  {(int) parser___ReduceAction407___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction407(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction407;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction407___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction407();
+  parser___ReduceAction407___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction408[44] = {
+  {(int) 1111 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction408 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction408 < ReduceAction: superclass typecheck marker */},
+  {(int) 1111 /* 3: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction408 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction408 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction408___action},
+  {(int) 2 /* 42: ReduceAction408 < ReduceAction408: superclass init_table position */},
+  {(int) parser___ReduceAction408___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction408(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction408;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction408___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction408();
+  parser___ReduceAction408___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction409[44] = {
+  {(int) 1107 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction409 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction409 < ReduceAction: superclass typecheck marker */},
+  {(int) 1107 /* 3: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction409 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction409 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction409___action},
+  {(int) 2 /* 42: ReduceAction409 < ReduceAction409: superclass init_table position */},
+  {(int) parser___ReduceAction409___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction409(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction409;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction409___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction409();
+  parser___ReduceAction409___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction410[44] = {
+  {(int) 1099 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction410 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction410 < ReduceAction: superclass typecheck marker */},
+  {(int) 1099 /* 3: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction410 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction410 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction410___action},
+  {(int) 2 /* 42: ReduceAction410 < ReduceAction410: superclass init_table position */},
+  {(int) parser___ReduceAction410___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction410(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction410;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction410___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction410();
+  parser___ReduceAction410___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction411[44] = {
+  {(int) 1095 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction411 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction411 < ReduceAction: superclass typecheck marker */},
+  {(int) 1095 /* 3: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction411 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction411 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction411___action},
+  {(int) 2 /* 42: ReduceAction411 < ReduceAction411: superclass init_table position */},
+  {(int) parser___ReduceAction411___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction411(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction411;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction411___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction411();
+  parser___ReduceAction411___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction412[44] = {
+  {(int) 1091 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction412 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction412 < ReduceAction: superclass typecheck marker */},
+  {(int) 1091 /* 3: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction412 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction412 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction412___action},
+  {(int) 2 /* 42: ReduceAction412 < ReduceAction412: superclass init_table position */},
+  {(int) parser___ReduceAction412___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction412(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction412;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction412___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction412();
+  parser___ReduceAction412___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction413[44] = {
+  {(int) 1087 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction413 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction413 < ReduceAction: superclass typecheck marker */},
+  {(int) 1087 /* 3: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction413 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction413 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction413___action},
+  {(int) 2 /* 42: ReduceAction413 < ReduceAction413: superclass init_table position */},
+  {(int) parser___ReduceAction413___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction413(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction413;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction413___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction413();
+  parser___ReduceAction413___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction414[44] = {
+  {(int) 1083 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction414 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction414 < ReduceAction: superclass typecheck marker */},
+  {(int) 1083 /* 3: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction414 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction414 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction414___action},
+  {(int) 2 /* 42: ReduceAction414 < ReduceAction414: superclass init_table position */},
+  {(int) parser___ReduceAction414___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction414(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction414;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction414___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction414();
+  parser___ReduceAction414___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction415[44] = {
+  {(int) 1079 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction415 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction415 < ReduceAction: superclass typecheck marker */},
+  {(int) 1079 /* 3: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction415 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction415 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction415___action},
+  {(int) 2 /* 42: ReduceAction415 < ReduceAction415: superclass init_table position */},
+  {(int) parser___ReduceAction415___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction415(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction415;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction415___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction415();
+  parser___ReduceAction415___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction416[44] = {
+  {(int) 1075 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction416 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction416 < ReduceAction: superclass typecheck marker */},
+  {(int) 1075 /* 3: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction416 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction416 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction416___action},
+  {(int) 2 /* 42: ReduceAction416 < ReduceAction416: superclass init_table position */},
+  {(int) parser___ReduceAction416___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction416(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction416;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction416___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction416();
+  parser___ReduceAction416___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction417[44] = {
+  {(int) 1071 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction417 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction417 < ReduceAction: superclass typecheck marker */},
+  {(int) 1071 /* 3: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction417 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction417 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction417___action},
+  {(int) 2 /* 42: ReduceAction417 < ReduceAction417: superclass init_table position */},
+  {(int) parser___ReduceAction417___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction417(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction417;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction417___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction417();
+  parser___ReduceAction417___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction418[44] = {
+  {(int) 1067 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction418 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction418 < ReduceAction: superclass typecheck marker */},
+  {(int) 1067 /* 3: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction418 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction418 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction418___action},
+  {(int) 2 /* 42: ReduceAction418 < ReduceAction418: superclass init_table position */},
+  {(int) parser___ReduceAction418___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction418(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction418;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction418___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction418();
+  parser___ReduceAction418___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction419[44] = {
+  {(int) 1063 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction419 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction419 < ReduceAction: superclass typecheck marker */},
+  {(int) 1063 /* 3: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction419 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction419 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction419___action},
+  {(int) 2 /* 42: ReduceAction419 < ReduceAction419: superclass init_table position */},
+  {(int) parser___ReduceAction419___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction419(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction419;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction419___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction419();
+  parser___ReduceAction419___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction420[44] = {
+  {(int) 1055 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction420 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction420 < ReduceAction: superclass typecheck marker */},
+  {(int) 1055 /* 3: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction420 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction420 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction420___action},
+  {(int) 2 /* 42: ReduceAction420 < ReduceAction420: superclass init_table position */},
+  {(int) parser___ReduceAction420___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction420(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction420;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction420___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction420();
+  parser___ReduceAction420___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction421[44] = {
+  {(int) 1051 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction421 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction421 < ReduceAction: superclass typecheck marker */},
+  {(int) 1051 /* 3: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction421 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction421 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction421___action},
+  {(int) 2 /* 42: ReduceAction421 < ReduceAction421: superclass init_table position */},
+  {(int) parser___ReduceAction421___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction421(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction421;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction421___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction421();
+  parser___ReduceAction421___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction422[44] = {
+  {(int) 1047 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction422 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction422 < ReduceAction: superclass typecheck marker */},
+  {(int) 1047 /* 3: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction422 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction422 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction422___action},
+  {(int) 2 /* 42: ReduceAction422 < ReduceAction422: superclass init_table position */},
+  {(int) parser___ReduceAction422___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction422(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction422;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction422___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction422();
+  parser___ReduceAction422___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction423[44] = {
+  {(int) 1043 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction423 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction423 < ReduceAction: superclass typecheck marker */},
+  {(int) 1043 /* 3: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction423 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction423 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction423___action},
+  {(int) 2 /* 42: ReduceAction423 < ReduceAction423: superclass init_table position */},
+  {(int) parser___ReduceAction423___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction423(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction423;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction423___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction423();
+  parser___ReduceAction423___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction424[44] = {
+  {(int) 1039 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction424 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction424 < ReduceAction: superclass typecheck marker */},
+  {(int) 1039 /* 3: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction424 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction424 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction424___action},
+  {(int) 2 /* 42: ReduceAction424 < ReduceAction424: superclass init_table position */},
+  {(int) parser___ReduceAction424___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction424(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction424;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction424___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction424();
+  parser___ReduceAction424___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction425[44] = {
+  {(int) 1035 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction425 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction425 < ReduceAction: superclass typecheck marker */},
+  {(int) 1035 /* 3: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction425 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction425 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction425___action},
+  {(int) 2 /* 42: ReduceAction425 < ReduceAction425: superclass init_table position */},
+  {(int) parser___ReduceAction425___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction425(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction425;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction425___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction425();
+  parser___ReduceAction425___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction426[44] = {
+  {(int) 1031 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction426 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction426 < ReduceAction: superclass typecheck marker */},
+  {(int) 1031 /* 3: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction426 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction426 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction426___action},
+  {(int) 2 /* 42: ReduceAction426 < ReduceAction426: superclass init_table position */},
+  {(int) parser___ReduceAction426___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction426(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction426;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction426___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction426();
+  parser___ReduceAction426___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction427[44] = {
+  {(int) 1027 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction427 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction427 < ReduceAction: superclass typecheck marker */},
+  {(int) 1027 /* 3: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction427 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction427 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction427___action},
+  {(int) 2 /* 42: ReduceAction427 < ReduceAction427: superclass init_table position */},
+  {(int) parser___ReduceAction427___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction427(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction427;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction427___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction427();
+  parser___ReduceAction427___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction428[44] = {
+  {(int) 1023 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction428 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction428 < ReduceAction: superclass typecheck marker */},
+  {(int) 1023 /* 3: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction428 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction428 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction428___action},
+  {(int) 2 /* 42: ReduceAction428 < ReduceAction428: superclass init_table position */},
+  {(int) parser___ReduceAction428___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction428(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction428;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction428___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction428();
+  parser___ReduceAction428___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction429[44] = {
+  {(int) 1019 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction429 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction429 < ReduceAction: superclass typecheck marker */},
+  {(int) 1019 /* 3: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction429 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction429 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction429___action},
+  {(int) 2 /* 42: ReduceAction429 < ReduceAction429: superclass init_table position */},
+  {(int) parser___ReduceAction429___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction429(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction429;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction429___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction429();
+  parser___ReduceAction429___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction430[44] = {
+  {(int) 1011 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction430 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction430 < ReduceAction: superclass typecheck marker */},
+  {(int) 1011 /* 3: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction430 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction430 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction430___action},
+  {(int) 2 /* 42: ReduceAction430 < ReduceAction430: superclass init_table position */},
+  {(int) parser___ReduceAction430___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction430(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction430;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction430___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction430();
+  parser___ReduceAction430___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction431[44] = {
+  {(int) 1007 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction431 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction431 < ReduceAction: superclass typecheck marker */},
+  {(int) 1007 /* 3: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction431 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction431 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction431___action},
+  {(int) 2 /* 42: ReduceAction431 < ReduceAction431: superclass init_table position */},
+  {(int) parser___ReduceAction431___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction431(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction431;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction431___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction431();
+  parser___ReduceAction431___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction432[44] = {
+  {(int) 1003 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction432 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction432 < ReduceAction: superclass typecheck marker */},
+  {(int) 1003 /* 3: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction432 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction432 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction432___action},
+  {(int) 2 /* 42: ReduceAction432 < ReduceAction432: superclass init_table position */},
+  {(int) parser___ReduceAction432___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction432(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction432;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction432___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction432();
+  parser___ReduceAction432___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction433[44] = {
+  {(int) 999 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction433 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction433 < ReduceAction: superclass typecheck marker */},
+  {(int) 999 /* 3: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction433 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction433 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction433___action},
+  {(int) 2 /* 42: ReduceAction433 < ReduceAction433: superclass init_table position */},
+  {(int) parser___ReduceAction433___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction433(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction433;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction433___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction433();
+  parser___ReduceAction433___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction434[44] = {
+  {(int) 995 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction434 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction434 < ReduceAction: superclass typecheck marker */},
+  {(int) 995 /* 3: ReduceAction434 < ReduceAction434: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction434 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction434 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction434___action},
+  {(int) 2 /* 42: ReduceAction434 < ReduceAction434: superclass init_table position */},
+  {(int) parser___ReduceAction434___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction434(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction434;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction434___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction434();
+  parser___ReduceAction434___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction435[44] = {
+  {(int) 991 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction435 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction435 < ReduceAction: superclass typecheck marker */},
+  {(int) 991 /* 3: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction435 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction435 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction435___action},
+  {(int) 2 /* 42: ReduceAction435 < ReduceAction435: superclass init_table position */},
+  {(int) parser___ReduceAction435___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction435(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction435;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction435___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction435();
+  parser___ReduceAction435___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction436[44] = {
+  {(int) 987 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction436 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction436 < ReduceAction: superclass typecheck marker */},
+  {(int) 987 /* 3: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction436 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction436 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction436___action},
+  {(int) 2 /* 42: ReduceAction436 < ReduceAction436: superclass init_table position */},
+  {(int) parser___ReduceAction436___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction436(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction436;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction436___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction436();
+  parser___ReduceAction436___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction437[44] = {
+  {(int) 983 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction437 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction437 < ReduceAction: superclass typecheck marker */},
+  {(int) 983 /* 3: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction437 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction437 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction437___action},
+  {(int) 2 /* 42: ReduceAction437 < ReduceAction437: superclass init_table position */},
+  {(int) parser___ReduceAction437___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction437(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction437;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction437___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction437();
+  parser___ReduceAction437___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction438[44] = {
+  {(int) 979 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction438 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction438 < ReduceAction: superclass typecheck marker */},
+  {(int) 979 /* 3: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction438 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction438 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction438___action},
+  {(int) 2 /* 42: ReduceAction438 < ReduceAction438: superclass init_table position */},
+  {(int) parser___ReduceAction438___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction438(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction438;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction438___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction438();
+  parser___ReduceAction438___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction439[44] = {
+  {(int) 975 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction439 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction439 < ReduceAction: superclass typecheck marker */},
+  {(int) 975 /* 3: ReduceAction439 < ReduceAction439: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction439 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction439 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction439___action},
+  {(int) 2 /* 42: ReduceAction439 < ReduceAction439: superclass init_table position */},
+  {(int) parser___ReduceAction439___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction439(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction439;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction439___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction439();
+  parser___ReduceAction439___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction440[44] = {
+  {(int) 967 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction440 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction440 < ReduceAction: superclass typecheck marker */},
+  {(int) 967 /* 3: ReduceAction440 < ReduceAction440: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction440 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction440 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction440___action},
+  {(int) 2 /* 42: ReduceAction440 < ReduceAction440: superclass init_table position */},
+  {(int) parser___ReduceAction440___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction440(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction440;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction440___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction440();
+  parser___ReduceAction440___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction441[44] = {
+  {(int) 963 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction441 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction441 < ReduceAction: superclass typecheck marker */},
+  {(int) 963 /* 3: ReduceAction441 < ReduceAction441: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction441 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction441 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction441___action},
+  {(int) 2 /* 42: ReduceAction441 < ReduceAction441: superclass init_table position */},
+  {(int) parser___ReduceAction441___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction441(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction441;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction441___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction441();
+  parser___ReduceAction441___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction442[44] = {
+  {(int) 959 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction442 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction442 < ReduceAction: superclass typecheck marker */},
+  {(int) 959 /* 3: ReduceAction442 < ReduceAction442: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction442 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction442 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction442___action},
+  {(int) 2 /* 42: ReduceAction442 < ReduceAction442: superclass init_table position */},
+  {(int) parser___ReduceAction442___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction442(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction442;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction442___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction442();
+  parser___ReduceAction442___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction443[44] = {
+  {(int) 955 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction443 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction443 < ReduceAction: superclass typecheck marker */},
+  {(int) 955 /* 3: ReduceAction443 < ReduceAction443: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction443 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction443 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction443___action},
+  {(int) 2 /* 42: ReduceAction443 < ReduceAction443: superclass init_table position */},
+  {(int) parser___ReduceAction443___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction443(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction443;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction443___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction443();
+  parser___ReduceAction443___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction444[44] = {
+  {(int) 951 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction444 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction444 < ReduceAction: superclass typecheck marker */},
+  {(int) 951 /* 3: ReduceAction444 < ReduceAction444: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction444 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction444 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction444___action},
+  {(int) 2 /* 42: ReduceAction444 < ReduceAction444: superclass init_table position */},
+  {(int) parser___ReduceAction444___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction444(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction444;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction444___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction444();
+  parser___ReduceAction444___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction445[44] = {
+  {(int) 947 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction445 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction445 < ReduceAction: superclass typecheck marker */},
+  {(int) 947 /* 3: ReduceAction445 < ReduceAction445: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction445 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction445 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction445___action},
+  {(int) 2 /* 42: ReduceAction445 < ReduceAction445: superclass init_table position */},
+  {(int) parser___ReduceAction445___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction445(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction445;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction445___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction445();
+  parser___ReduceAction445___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction446[44] = {
+  {(int) 943 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction446 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction446 < ReduceAction: superclass typecheck marker */},
+  {(int) 943 /* 3: ReduceAction446 < ReduceAction446: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction446 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction446 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction446___action},
+  {(int) 2 /* 42: ReduceAction446 < ReduceAction446: superclass init_table position */},
+  {(int) parser___ReduceAction446___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction446(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction446;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction446___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction446();
+  parser___ReduceAction446___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction447[44] = {
+  {(int) 939 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction447 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction447 < ReduceAction: superclass typecheck marker */},
+  {(int) 939 /* 3: ReduceAction447 < ReduceAction447: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction447 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction447 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction447___action},
+  {(int) 2 /* 42: ReduceAction447 < ReduceAction447: superclass init_table position */},
+  {(int) parser___ReduceAction447___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction447(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction447;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction447___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction447();
+  parser___ReduceAction447___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction448[44] = {
+  {(int) 935 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction448 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction448 < ReduceAction: superclass typecheck marker */},
+  {(int) 935 /* 3: ReduceAction448 < ReduceAction448: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction448 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction448 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction448___action},
+  {(int) 2 /* 42: ReduceAction448 < ReduceAction448: superclass init_table position */},
+  {(int) parser___ReduceAction448___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction448(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction448;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction448___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction448();
+  parser___ReduceAction448___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction449[44] = {
+  {(int) 931 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction449 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction449 < ReduceAction: superclass typecheck marker */},
+  {(int) 931 /* 3: ReduceAction449 < ReduceAction449: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction449 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction449 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction449___action},
+  {(int) 2 /* 42: ReduceAction449 < ReduceAction449: superclass init_table position */},
+  {(int) parser___ReduceAction449___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction449(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction449;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction449___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction449();
+  parser___ReduceAction449___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction450[44] = {
+  {(int) 923 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction450 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction450 < ReduceAction: superclass typecheck marker */},
+  {(int) 923 /* 3: ReduceAction450 < ReduceAction450: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction450 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction450 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction450___action},
+  {(int) 2 /* 42: ReduceAction450 < ReduceAction450: superclass init_table position */},
+  {(int) parser___ReduceAction450___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction450(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction450;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction450___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction450();
+  parser___ReduceAction450___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction451[44] = {
+  {(int) 919 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction451 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction451 < ReduceAction: superclass typecheck marker */},
+  {(int) 919 /* 3: ReduceAction451 < ReduceAction451: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction451 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction451 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction451___action},
+  {(int) 2 /* 42: ReduceAction451 < ReduceAction451: superclass init_table position */},
+  {(int) parser___ReduceAction451___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction451(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction451;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction451___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction451();
+  parser___ReduceAction451___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction452[44] = {
+  {(int) 915 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction452 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction452 < ReduceAction: superclass typecheck marker */},
+  {(int) 915 /* 3: ReduceAction452 < ReduceAction452: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction452 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction452 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction452___action},
+  {(int) 2 /* 42: ReduceAction452 < ReduceAction452: superclass init_table position */},
+  {(int) parser___ReduceAction452___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction452(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction452;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction452___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction452();
+  parser___ReduceAction452___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction453[44] = {
+  {(int) 911 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction453 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction453 < ReduceAction: superclass typecheck marker */},
+  {(int) 911 /* 3: ReduceAction453 < ReduceAction453: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction453 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction453 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction453___action},
+  {(int) 2 /* 42: ReduceAction453 < ReduceAction453: superclass init_table position */},
+  {(int) parser___ReduceAction453___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction453(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction453;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction453___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction453();
+  parser___ReduceAction453___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction454[44] = {
+  {(int) 907 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction454 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction454 < ReduceAction: superclass typecheck marker */},
+  {(int) 907 /* 3: ReduceAction454 < ReduceAction454: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction454 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction454 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction454___action},
+  {(int) 2 /* 42: ReduceAction454 < ReduceAction454: superclass init_table position */},
+  {(int) parser___ReduceAction454___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction454(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction454;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction454___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction454();
+  parser___ReduceAction454___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction455[44] = {
+  {(int) 903 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction455 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction455 < ReduceAction: superclass typecheck marker */},
+  {(int) 903 /* 3: ReduceAction455 < ReduceAction455: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction455 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction455 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction455___action},
+  {(int) 2 /* 42: ReduceAction455 < ReduceAction455: superclass init_table position */},
+  {(int) parser___ReduceAction455___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction455(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction455;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction455___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction455();
+  parser___ReduceAction455___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction456[44] = {
+  {(int) 899 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction456 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction456 < ReduceAction: superclass typecheck marker */},
+  {(int) 899 /* 3: ReduceAction456 < ReduceAction456: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction456 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction456 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction456___action},
+  {(int) 2 /* 42: ReduceAction456 < ReduceAction456: superclass init_table position */},
+  {(int) parser___ReduceAction456___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction456(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction456;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction456___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction456();
+  parser___ReduceAction456___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction457[44] = {
+  {(int) 895 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction457 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction457 < ReduceAction: superclass typecheck marker */},
+  {(int) 895 /* 3: ReduceAction457 < ReduceAction457: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction457 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction457 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction457___action},
+  {(int) 2 /* 42: ReduceAction457 < ReduceAction457: superclass init_table position */},
+  {(int) parser___ReduceAction457___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction457(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction457;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction457___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction457();
+  parser___ReduceAction457___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction458[44] = {
+  {(int) 891 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction458 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction458 < ReduceAction: superclass typecheck marker */},
+  {(int) 891 /* 3: ReduceAction458 < ReduceAction458: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction458 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction458 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction458___action},
+  {(int) 2 /* 42: ReduceAction458 < ReduceAction458: superclass init_table position */},
+  {(int) parser___ReduceAction458___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction458(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction458;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction458___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction458();
+  parser___ReduceAction458___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction459[44] = {
+  {(int) 887 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction459 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction459 < ReduceAction: superclass typecheck marker */},
+  {(int) 887 /* 3: ReduceAction459 < ReduceAction459: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction459 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction459 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction459___action},
+  {(int) 2 /* 42: ReduceAction459 < ReduceAction459: superclass init_table position */},
+  {(int) parser___ReduceAction459___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction459(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction459;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction459___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction459();
+  parser___ReduceAction459___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction460[44] = {
+  {(int) 879 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction460 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction460 < ReduceAction: superclass typecheck marker */},
+  {(int) 879 /* 3: ReduceAction460 < ReduceAction460: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction460 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction460 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction460___action},
+  {(int) 2 /* 42: ReduceAction460 < ReduceAction460: superclass init_table position */},
+  {(int) parser___ReduceAction460___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction460(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction460;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction460___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction460();
+  parser___ReduceAction460___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction461[44] = {
+  {(int) 875 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction461 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction461 < ReduceAction: superclass typecheck marker */},
+  {(int) 875 /* 3: ReduceAction461 < ReduceAction461: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction461 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction461 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction461___action},
+  {(int) 2 /* 42: ReduceAction461 < ReduceAction461: superclass init_table position */},
+  {(int) parser___ReduceAction461___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction461(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction461;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction461___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction461();
+  parser___ReduceAction461___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction462[44] = {
+  {(int) 871 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction462 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction462 < ReduceAction: superclass typecheck marker */},
+  {(int) 871 /* 3: ReduceAction462 < ReduceAction462: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction462 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction462 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction462___action},
+  {(int) 2 /* 42: ReduceAction462 < ReduceAction462: superclass init_table position */},
+  {(int) parser___ReduceAction462___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction462(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction462;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction462___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction462();
+  parser___ReduceAction462___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction463[44] = {
+  {(int) 867 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction463 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction463 < ReduceAction: superclass typecheck marker */},
+  {(int) 867 /* 3: ReduceAction463 < ReduceAction463: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction463 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction463 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction463___action},
+  {(int) 2 /* 42: ReduceAction463 < ReduceAction463: superclass init_table position */},
+  {(int) parser___ReduceAction463___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction463(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction463;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction463___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction463();
+  parser___ReduceAction463___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction464[44] = {
+  {(int) 863 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction464 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction464 < ReduceAction: superclass typecheck marker */},
+  {(int) 863 /* 3: ReduceAction464 < ReduceAction464: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction464 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction464 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction464___action},
+  {(int) 2 /* 42: ReduceAction464 < ReduceAction464: superclass init_table position */},
+  {(int) parser___ReduceAction464___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction464(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction464;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction464___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction464();
+  parser___ReduceAction464___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction465[44] = {
+  {(int) 859 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction465 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction465 < ReduceAction: superclass typecheck marker */},
+  {(int) 859 /* 3: ReduceAction465 < ReduceAction465: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction465 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction465 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction465___action},
+  {(int) 2 /* 42: ReduceAction465 < ReduceAction465: superclass init_table position */},
+  {(int) parser___ReduceAction465___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction465(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction465;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction465___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction465();
+  parser___ReduceAction465___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction466[44] = {
+  {(int) 855 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction466 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction466 < ReduceAction: superclass typecheck marker */},
+  {(int) 855 /* 3: ReduceAction466 < ReduceAction466: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction466 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction466 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction466___action},
+  {(int) 2 /* 42: ReduceAction466 < ReduceAction466: superclass init_table position */},
+  {(int) parser___ReduceAction466___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction466(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction466;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction466___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction466();
+  parser___ReduceAction466___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction467[44] = {
+  {(int) 851 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction467 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction467 < ReduceAction: superclass typecheck marker */},
+  {(int) 851 /* 3: ReduceAction467 < ReduceAction467: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction467 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction467 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction467___action},
+  {(int) 2 /* 42: ReduceAction467 < ReduceAction467: superclass init_table position */},
+  {(int) parser___ReduceAction467___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction467(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction467;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction467___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction467();
+  parser___ReduceAction467___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction468[44] = {
+  {(int) 847 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction468 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction468 < ReduceAction: superclass typecheck marker */},
+  {(int) 847 /* 3: ReduceAction468 < ReduceAction468: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction468 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction468 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction468___action},
+  {(int) 2 /* 42: ReduceAction468 < ReduceAction468: superclass init_table position */},
+  {(int) parser___ReduceAction468___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction468(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction468;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction468___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction468();
+  parser___ReduceAction468___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction469[44] = {
+  {(int) 843 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction469 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction469 < ReduceAction: superclass typecheck marker */},
+  {(int) 843 /* 3: ReduceAction469 < ReduceAction469: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction469 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction469 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction469___action},
+  {(int) 2 /* 42: ReduceAction469 < ReduceAction469: superclass init_table position */},
+  {(int) parser___ReduceAction469___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction469(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction469;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction469___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction469();
+  parser___ReduceAction469___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction470[44] = {
+  {(int) 835 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction470 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction470 < ReduceAction: superclass typecheck marker */},
+  {(int) 835 /* 3: ReduceAction470 < ReduceAction470: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction470 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction470 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction470___action},
+  {(int) 2 /* 42: ReduceAction470 < ReduceAction470: superclass init_table position */},
+  {(int) parser___ReduceAction470___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction470(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction470;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction470___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction470();
+  parser___ReduceAction470___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction471[44] = {
+  {(int) 831 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction471 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction471 < ReduceAction: superclass typecheck marker */},
+  {(int) 831 /* 3: ReduceAction471 < ReduceAction471: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction471 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction471 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction471___action},
+  {(int) 2 /* 42: ReduceAction471 < ReduceAction471: superclass init_table position */},
+  {(int) parser___ReduceAction471___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction471(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction471;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction471___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction471();
+  parser___ReduceAction471___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction472[44] = {
+  {(int) 827 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction472 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction472 < ReduceAction: superclass typecheck marker */},
+  {(int) 827 /* 3: ReduceAction472 < ReduceAction472: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction472 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction472 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction472___action},
+  {(int) 2 /* 42: ReduceAction472 < ReduceAction472: superclass init_table position */},
+  {(int) parser___ReduceAction472___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction472(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction472;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction472___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction472();
+  parser___ReduceAction472___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction473[44] = {
+  {(int) 823 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction473 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction473 < ReduceAction: superclass typecheck marker */},
+  {(int) 823 /* 3: ReduceAction473 < ReduceAction473: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction473 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction473 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction473___action},
+  {(int) 2 /* 42: ReduceAction473 < ReduceAction473: superclass init_table position */},
+  {(int) parser___ReduceAction473___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction473(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction473;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction473___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction473();
+  parser___ReduceAction473___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction474[44] = {
+  {(int) 819 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction474 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction474 < ReduceAction: superclass typecheck marker */},
+  {(int) 819 /* 3: ReduceAction474 < ReduceAction474: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction474 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction474 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction474___action},
+  {(int) 2 /* 42: ReduceAction474 < ReduceAction474: superclass init_table position */},
+  {(int) parser___ReduceAction474___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction474(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction474;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction474___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction474();
+  parser___ReduceAction474___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction475[44] = {
+  {(int) 815 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction475 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction475 < ReduceAction: superclass typecheck marker */},
+  {(int) 815 /* 3: ReduceAction475 < ReduceAction475: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction475 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction475 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction475___action},
+  {(int) 2 /* 42: ReduceAction475 < ReduceAction475: superclass init_table position */},
+  {(int) parser___ReduceAction475___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction475(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction475;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction475___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction475();
+  parser___ReduceAction475___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction476[44] = {
+  {(int) 811 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction476 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction476 < ReduceAction: superclass typecheck marker */},
+  {(int) 811 /* 3: ReduceAction476 < ReduceAction476: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction476 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction476 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction476___action},
+  {(int) 2 /* 42: ReduceAction476 < ReduceAction476: superclass init_table position */},
+  {(int) parser___ReduceAction476___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction476(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction476;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction476___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction476();
+  parser___ReduceAction476___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction477[44] = {
+  {(int) 807 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction477 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction477 < ReduceAction: superclass typecheck marker */},
+  {(int) 807 /* 3: ReduceAction477 < ReduceAction477: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction477 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction477 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction477___action},
+  {(int) 2 /* 42: ReduceAction477 < ReduceAction477: superclass init_table position */},
+  {(int) parser___ReduceAction477___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction477(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction477;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction477___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction477();
+  parser___ReduceAction477___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction478[44] = {
+  {(int) 803 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction478 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction478 < ReduceAction: superclass typecheck marker */},
+  {(int) 803 /* 3: ReduceAction478 < ReduceAction478: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction478 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction478 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction478___action},
+  {(int) 2 /* 42: ReduceAction478 < ReduceAction478: superclass init_table position */},
+  {(int) parser___ReduceAction478___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction478(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction478;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction478___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction478();
+  parser___ReduceAction478___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction479[44] = {
+  {(int) 799 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction479 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction479 < ReduceAction: superclass typecheck marker */},
+  {(int) 799 /* 3: ReduceAction479 < ReduceAction479: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction479 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction479 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction479___action},
+  {(int) 2 /* 42: ReduceAction479 < ReduceAction479: superclass init_table position */},
+  {(int) parser___ReduceAction479___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction479(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction479;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction479___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction479();
+  parser___ReduceAction479___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction480[44] = {
+  {(int) 791 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction480 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction480 < ReduceAction: superclass typecheck marker */},
+  {(int) 791 /* 3: ReduceAction480 < ReduceAction480: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction480 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction480 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction480___action},
+  {(int) 2 /* 42: ReduceAction480 < ReduceAction480: superclass init_table position */},
+  {(int) parser___ReduceAction480___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction480(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction480;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction480___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction480();
+  parser___ReduceAction480___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction481[44] = {
+  {(int) 787 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction481 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction481 < ReduceAction: superclass typecheck marker */},
+  {(int) 787 /* 3: ReduceAction481 < ReduceAction481: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction481 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction481 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction481___action},
+  {(int) 2 /* 42: ReduceAction481 < ReduceAction481: superclass init_table position */},
+  {(int) parser___ReduceAction481___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction481(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction481;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction481___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction481();
+  parser___ReduceAction481___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction482[44] = {
+  {(int) 783 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction482 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction482 < ReduceAction: superclass typecheck marker */},
+  {(int) 783 /* 3: ReduceAction482 < ReduceAction482: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction482 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction482 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction482___action},
+  {(int) 2 /* 42: ReduceAction482 < ReduceAction482: superclass init_table position */},
+  {(int) parser___ReduceAction482___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction482(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction482;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction482___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction482();
+  parser___ReduceAction482___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction483[44] = {
+  {(int) 779 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction483 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction483 < ReduceAction: superclass typecheck marker */},
+  {(int) 779 /* 3: ReduceAction483 < ReduceAction483: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction483 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction483 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction483___action},
+  {(int) 2 /* 42: ReduceAction483 < ReduceAction483: superclass init_table position */},
+  {(int) parser___ReduceAction483___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction483(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction483;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction483___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction483();
+  parser___ReduceAction483___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction484[44] = {
+  {(int) 775 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction484 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction484 < ReduceAction: superclass typecheck marker */},
+  {(int) 775 /* 3: ReduceAction484 < ReduceAction484: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction484 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction484 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction484___action},
+  {(int) 2 /* 42: ReduceAction484 < ReduceAction484: superclass init_table position */},
+  {(int) parser___ReduceAction484___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction484(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction484;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction484___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction484();
+  parser___ReduceAction484___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction485[44] = {
+  {(int) 771 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction485 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction485 < ReduceAction: superclass typecheck marker */},
+  {(int) 771 /* 3: ReduceAction485 < ReduceAction485: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction485 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction485 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction485___action},
+  {(int) 2 /* 42: ReduceAction485 < ReduceAction485: superclass init_table position */},
+  {(int) parser___ReduceAction485___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction485(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction485;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction485___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction485();
+  parser___ReduceAction485___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction486[44] = {
+  {(int) 767 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction486 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction486 < ReduceAction: superclass typecheck marker */},
+  {(int) 767 /* 3: ReduceAction486 < ReduceAction486: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction486 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction486 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction486___action},
+  {(int) 2 /* 42: ReduceAction486 < ReduceAction486: superclass init_table position */},
+  {(int) parser___ReduceAction486___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction486(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction486;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction486___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction486();
+  parser___ReduceAction486___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction487[44] = {
+  {(int) 763 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction487 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction487 < ReduceAction: superclass typecheck marker */},
+  {(int) 763 /* 3: ReduceAction487 < ReduceAction487: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction487 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction487 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction487___action},
+  {(int) 2 /* 42: ReduceAction487 < ReduceAction487: superclass init_table position */},
+  {(int) parser___ReduceAction487___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction487(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction487;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction487___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction487();
+  parser___ReduceAction487___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction488[44] = {
+  {(int) 759 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction488 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction488 < ReduceAction: superclass typecheck marker */},
+  {(int) 759 /* 3: ReduceAction488 < ReduceAction488: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction488 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction488 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction488___action},
+  {(int) 2 /* 42: ReduceAction488 < ReduceAction488: superclass init_table position */},
+  {(int) parser___ReduceAction488___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction488(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction488;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction488___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction488();
+  parser___ReduceAction488___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction489[44] = {
+  {(int) 755 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction489 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction489 < ReduceAction: superclass typecheck marker */},
+  {(int) 755 /* 3: ReduceAction489 < ReduceAction489: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction489 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction489 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction489___action},
+  {(int) 2 /* 42: ReduceAction489 < ReduceAction489: superclass init_table position */},
+  {(int) parser___ReduceAction489___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction489(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction489;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction489___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction489();
+  parser___ReduceAction489___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction490[44] = {
+  {(int) 747 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction490 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction490 < ReduceAction: superclass typecheck marker */},
+  {(int) 747 /* 3: ReduceAction490 < ReduceAction490: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction490 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction490 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction490___action},
+  {(int) 2 /* 42: ReduceAction490 < ReduceAction490: superclass init_table position */},
+  {(int) parser___ReduceAction490___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction490(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction490;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction490___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction490();
+  parser___ReduceAction490___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction491[44] = {
+  {(int) 743 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction491 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction491 < ReduceAction: superclass typecheck marker */},
+  {(int) 743 /* 3: ReduceAction491 < ReduceAction491: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction491 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction491 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction491___action},
+  {(int) 2 /* 42: ReduceAction491 < ReduceAction491: superclass init_table position */},
+  {(int) parser___ReduceAction491___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction491(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction491;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction491___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction491();
+  parser___ReduceAction491___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction492[44] = {
+  {(int) 739 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction492 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction492 < ReduceAction: superclass typecheck marker */},
+  {(int) 739 /* 3: ReduceAction492 < ReduceAction492: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction492 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction492 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction492___action},
+  {(int) 2 /* 42: ReduceAction492 < ReduceAction492: superclass init_table position */},
+  {(int) parser___ReduceAction492___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction492(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction492;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction492___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction492();
+  parser___ReduceAction492___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction493[44] = {
+  {(int) 735 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction493 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction493 < ReduceAction: superclass typecheck marker */},
+  {(int) 735 /* 3: ReduceAction493 < ReduceAction493: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction493 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction493 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction493___action},
+  {(int) 2 /* 42: ReduceAction493 < ReduceAction493: superclass init_table position */},
+  {(int) parser___ReduceAction493___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction493(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction493;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction493___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction493();
+  parser___ReduceAction493___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction494[44] = {
+  {(int) 731 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction494 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction494 < ReduceAction: superclass typecheck marker */},
+  {(int) 731 /* 3: ReduceAction494 < ReduceAction494: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction494 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction494 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction494___action},
+  {(int) 2 /* 42: ReduceAction494 < ReduceAction494: superclass init_table position */},
+  {(int) parser___ReduceAction494___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction494(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction494;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction494___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction494();
+  parser___ReduceAction494___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction495[44] = {
+  {(int) 727 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction495 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction495 < ReduceAction: superclass typecheck marker */},
+  {(int) 727 /* 3: ReduceAction495 < ReduceAction495: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction495 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction495 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction495___action},
+  {(int) 2 /* 42: ReduceAction495 < ReduceAction495: superclass init_table position */},
+  {(int) parser___ReduceAction495___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction495(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction495;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction495___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction495();
+  parser___ReduceAction495___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction496[44] = {
+  {(int) 723 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction496 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction496 < ReduceAction: superclass typecheck marker */},
+  {(int) 723 /* 3: ReduceAction496 < ReduceAction496: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction496 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction496 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction496___action},
+  {(int) 2 /* 42: ReduceAction496 < ReduceAction496: superclass init_table position */},
+  {(int) parser___ReduceAction496___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction496(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction496;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction496___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction496();
+  parser___ReduceAction496___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction497[44] = {
+  {(int) 719 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction497 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction497 < ReduceAction: superclass typecheck marker */},
+  {(int) 719 /* 3: ReduceAction497 < ReduceAction497: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction497 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction497 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction497___action},
+  {(int) 2 /* 42: ReduceAction497 < ReduceAction497: superclass init_table position */},
+  {(int) parser___ReduceAction497___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction497(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction497;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction497___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction497();
+  parser___ReduceAction497___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction498[44] = {
+  {(int) 715 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction498 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction498 < ReduceAction: superclass typecheck marker */},
+  {(int) 715 /* 3: ReduceAction498 < ReduceAction498: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction498 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction498 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction498___action},
+  {(int) 2 /* 42: ReduceAction498 < ReduceAction498: superclass init_table position */},
+  {(int) parser___ReduceAction498___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction498(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction498;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction498___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction498();
+  parser___ReduceAction498___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction499[44] = {
+  {(int) 711 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction499 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction499 < ReduceAction: superclass typecheck marker */},
+  {(int) 711 /* 3: ReduceAction499 < ReduceAction499: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction499 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction499 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction499___action},
+  {(int) 2 /* 42: ReduceAction499 < ReduceAction499: superclass init_table position */},
+  {(int) parser___ReduceAction499___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction499(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction499;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction499___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction499();
+  parser___ReduceAction499___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction500[44] = {
+  {(int) 699 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction500 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction500 < ReduceAction: superclass typecheck marker */},
+  {(int) 699 /* 3: ReduceAction500 < ReduceAction500: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction500 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction500 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction500___action},
+  {(int) 2 /* 42: ReduceAction500 < ReduceAction500: superclass init_table position */},
+  {(int) parser___ReduceAction500___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction500(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction500;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction500___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction500();
+  parser___ReduceAction500___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction501[44] = {
+  {(int) 695 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction501 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction501 < ReduceAction: superclass typecheck marker */},
+  {(int) 695 /* 3: ReduceAction501 < ReduceAction501: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction501 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction501 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction501___action},
+  {(int) 2 /* 42: ReduceAction501 < ReduceAction501: superclass init_table position */},
+  {(int) parser___ReduceAction501___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction501(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction501;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction501___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction501();
+  parser___ReduceAction501___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction502[44] = {
+  {(int) 691 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction502 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction502 < ReduceAction: superclass typecheck marker */},
+  {(int) 691 /* 3: ReduceAction502 < ReduceAction502: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction502 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction502 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction502___action},
+  {(int) 2 /* 42: ReduceAction502 < ReduceAction502: superclass init_table position */},
+  {(int) parser___ReduceAction502___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction502(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction502;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction502___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction502();
+  parser___ReduceAction502___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction503[44] = {
+  {(int) 687 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction503 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction503 < ReduceAction: superclass typecheck marker */},
+  {(int) 687 /* 3: ReduceAction503 < ReduceAction503: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction503 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction503 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction503___action},
+  {(int) 2 /* 42: ReduceAction503 < ReduceAction503: superclass init_table position */},
+  {(int) parser___ReduceAction503___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction503(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction503;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction503___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction503();
+  parser___ReduceAction503___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction504[44] = {
+  {(int) 683 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction504 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction504 < ReduceAction: superclass typecheck marker */},
+  {(int) 683 /* 3: ReduceAction504 < ReduceAction504: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction504 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction504 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction504___action},
+  {(int) 2 /* 42: ReduceAction504 < ReduceAction504: superclass init_table position */},
+  {(int) parser___ReduceAction504___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction504(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction504;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction504___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction504();
+  parser___ReduceAction504___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction505[44] = {
+  {(int) 679 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction505 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction505 < ReduceAction: superclass typecheck marker */},
+  {(int) 679 /* 3: ReduceAction505 < ReduceAction505: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction505 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction505 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction505___action},
+  {(int) 2 /* 42: ReduceAction505 < ReduceAction505: superclass init_table position */},
+  {(int) parser___ReduceAction505___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction505(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction505;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction505___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction505();
+  parser___ReduceAction505___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction506[44] = {
+  {(int) 675 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction506 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction506 < ReduceAction: superclass typecheck marker */},
+  {(int) 675 /* 3: ReduceAction506 < ReduceAction506: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction506 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction506 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction506___action},
+  {(int) 2 /* 42: ReduceAction506 < ReduceAction506: superclass init_table position */},
+  {(int) parser___ReduceAction506___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction506(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction506;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction506___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction506();
+  parser___ReduceAction506___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction507[44] = {
+  {(int) 671 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction507 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction507 < ReduceAction: superclass typecheck marker */},
+  {(int) 671 /* 3: ReduceAction507 < ReduceAction507: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction507 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction507 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction507___action},
+  {(int) 2 /* 42: ReduceAction507 < ReduceAction507: superclass init_table position */},
+  {(int) parser___ReduceAction507___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction507(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction507;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction507___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction507();
+  parser___ReduceAction507___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction508[44] = {
+  {(int) 667 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction508 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction508 < ReduceAction: superclass typecheck marker */},
+  {(int) 667 /* 3: ReduceAction508 < ReduceAction508: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction508 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction508 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction508___action},
+  {(int) 2 /* 42: ReduceAction508 < ReduceAction508: superclass init_table position */},
+  {(int) parser___ReduceAction508___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction508(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction508;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction508___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction508();
+  parser___ReduceAction508___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction509[44] = {
+  {(int) 663 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction509 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction509 < ReduceAction: superclass typecheck marker */},
+  {(int) 663 /* 3: ReduceAction509 < ReduceAction509: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction509 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction509 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction509___action},
+  {(int) 2 /* 42: ReduceAction509 < ReduceAction509: superclass init_table position */},
+  {(int) parser___ReduceAction509___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction509(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction509;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction509___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction509();
+  parser___ReduceAction509___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction510[44] = {
+  {(int) 655 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction510 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction510 < ReduceAction: superclass typecheck marker */},
+  {(int) 655 /* 3: ReduceAction510 < ReduceAction510: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction510 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction510 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction510___action},
+  {(int) 2 /* 42: ReduceAction510 < ReduceAction510: superclass init_table position */},
+  {(int) parser___ReduceAction510___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction510(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction510;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction510___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction510();
+  parser___ReduceAction510___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction511[44] = {
+  {(int) 651 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction511 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction511 < ReduceAction: superclass typecheck marker */},
+  {(int) 651 /* 3: ReduceAction511 < ReduceAction511: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction511 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction511 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction511___action},
+  {(int) 2 /* 42: ReduceAction511 < ReduceAction511: superclass init_table position */},
+  {(int) parser___ReduceAction511___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction511(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction511;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction511___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction511();
+  parser___ReduceAction511___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction512[44] = {
+  {(int) 647 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction512 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction512 < ReduceAction: superclass typecheck marker */},
+  {(int) 647 /* 3: ReduceAction512 < ReduceAction512: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction512 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction512 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction512___action},
+  {(int) 2 /* 42: ReduceAction512 < ReduceAction512: superclass init_table position */},
+  {(int) parser___ReduceAction512___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction512(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction512;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction512___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction512();
+  parser___ReduceAction512___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction513[44] = {
+  {(int) 643 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction513 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction513 < ReduceAction: superclass typecheck marker */},
+  {(int) 643 /* 3: ReduceAction513 < ReduceAction513: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction513 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction513 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction513___action},
+  {(int) 2 /* 42: ReduceAction513 < ReduceAction513: superclass init_table position */},
+  {(int) parser___ReduceAction513___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction513(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction513;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction513___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction513();
+  parser___ReduceAction513___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction514[44] = {
+  {(int) 639 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction514 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction514 < ReduceAction: superclass typecheck marker */},
+  {(int) 639 /* 3: ReduceAction514 < ReduceAction514: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction514 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction514 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction514___action},
+  {(int) 2 /* 42: ReduceAction514 < ReduceAction514: superclass init_table position */},
+  {(int) parser___ReduceAction514___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction514(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction514;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction514___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction514();
+  parser___ReduceAction514___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction515[44] = {
+  {(int) 635 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction515 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction515 < ReduceAction: superclass typecheck marker */},
+  {(int) 635 /* 3: ReduceAction515 < ReduceAction515: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction515 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction515 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction515___action},
+  {(int) 2 /* 42: ReduceAction515 < ReduceAction515: superclass init_table position */},
+  {(int) parser___ReduceAction515___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction515(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction515;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction515___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction515();
+  parser___ReduceAction515___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction516[44] = {
+  {(int) 631 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction516 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction516 < ReduceAction: superclass typecheck marker */},
+  {(int) 631 /* 3: ReduceAction516 < ReduceAction516: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction516 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction516 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction516___action},
+  {(int) 2 /* 42: ReduceAction516 < ReduceAction516: superclass init_table position */},
+  {(int) parser___ReduceAction516___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction516(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction516;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction516___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction516();
+  parser___ReduceAction516___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction517[44] = {
+  {(int) 627 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction517 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction517 < ReduceAction: superclass typecheck marker */},
+  {(int) 627 /* 3: ReduceAction517 < ReduceAction517: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction517 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction517 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction517___action},
+  {(int) 2 /* 42: ReduceAction517 < ReduceAction517: superclass init_table position */},
+  {(int) parser___ReduceAction517___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction517(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction517;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction517___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction517();
+  parser___ReduceAction517___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction518[44] = {
+  {(int) 623 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction518 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction518 < ReduceAction: superclass typecheck marker */},
+  {(int) 623 /* 3: ReduceAction518 < ReduceAction518: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction518 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction518 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction518___action},
+  {(int) 2 /* 42: ReduceAction518 < ReduceAction518: superclass init_table position */},
+  {(int) parser___ReduceAction518___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction518(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction518;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction518___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction518();
+  parser___ReduceAction518___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction519[44] = {
+  {(int) 619 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction519 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction519 < ReduceAction: superclass typecheck marker */},
+  {(int) 619 /* 3: ReduceAction519 < ReduceAction519: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction519 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction519 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction519___action},
+  {(int) 2 /* 42: ReduceAction519 < ReduceAction519: superclass init_table position */},
+  {(int) parser___ReduceAction519___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction519(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction519;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction519___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction519();
+  parser___ReduceAction519___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction520[44] = {
+  {(int) 611 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction520 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction520 < ReduceAction: superclass typecheck marker */},
+  {(int) 611 /* 3: ReduceAction520 < ReduceAction520: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction520 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction520 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction520___action},
+  {(int) 2 /* 42: ReduceAction520 < ReduceAction520: superclass init_table position */},
+  {(int) parser___ReduceAction520___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction520(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction520;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction520___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction520();
+  parser___ReduceAction520___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction521[44] = {
+  {(int) 607 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction521 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction521 < ReduceAction: superclass typecheck marker */},
+  {(int) 607 /* 3: ReduceAction521 < ReduceAction521: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction521 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction521 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction521___action},
+  {(int) 2 /* 42: ReduceAction521 < ReduceAction521: superclass init_table position */},
+  {(int) parser___ReduceAction521___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction521(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction521;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction521___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction521();
+  parser___ReduceAction521___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction522[44] = {
+  {(int) 603 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction522 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction522 < ReduceAction: superclass typecheck marker */},
+  {(int) 603 /* 3: ReduceAction522 < ReduceAction522: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction522 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction522 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction522___action},
+  {(int) 2 /* 42: ReduceAction522 < ReduceAction522: superclass init_table position */},
+  {(int) parser___ReduceAction522___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction522(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction522;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction522___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction522();
+  parser___ReduceAction522___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction523[44] = {
+  {(int) 599 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction523 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction523 < ReduceAction: superclass typecheck marker */},
+  {(int) 599 /* 3: ReduceAction523 < ReduceAction523: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction523 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction523 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction523___action},
+  {(int) 2 /* 42: ReduceAction523 < ReduceAction523: superclass init_table position */},
+  {(int) parser___ReduceAction523___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction523(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction523;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction523___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction523();
+  parser___ReduceAction523___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction524[44] = {
+  {(int) 595 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction524 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction524 < ReduceAction: superclass typecheck marker */},
+  {(int) 595 /* 3: ReduceAction524 < ReduceAction524: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction524 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction524 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction524___action},
+  {(int) 2 /* 42: ReduceAction524 < ReduceAction524: superclass init_table position */},
+  {(int) parser___ReduceAction524___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction524(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction524;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction524___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction524();
+  parser___ReduceAction524___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction525[44] = {
+  {(int) 591 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction525 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction525 < ReduceAction: superclass typecheck marker */},
+  {(int) 591 /* 3: ReduceAction525 < ReduceAction525: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction525 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction525 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction525___action},
+  {(int) 2 /* 42: ReduceAction525 < ReduceAction525: superclass init_table position */},
+  {(int) parser___ReduceAction525___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction525(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction525;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction525___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction525();
+  parser___ReduceAction525___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction526[44] = {
+  {(int) 587 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction526 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction526 < ReduceAction: superclass typecheck marker */},
+  {(int) 587 /* 3: ReduceAction526 < ReduceAction526: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction526 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction526 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction526___action},
+  {(int) 2 /* 42: ReduceAction526 < ReduceAction526: superclass init_table position */},
+  {(int) parser___ReduceAction526___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction526(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction526;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction526___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction526();
+  parser___ReduceAction526___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction527[44] = {
+  {(int) 583 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction527 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction527 < ReduceAction: superclass typecheck marker */},
+  {(int) 583 /* 3: ReduceAction527 < ReduceAction527: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction527 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction527 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction527___action},
+  {(int) 2 /* 42: ReduceAction527 < ReduceAction527: superclass init_table position */},
+  {(int) parser___ReduceAction527___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction527(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction527;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction527___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction527();
+  parser___ReduceAction527___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction528[44] = {
+  {(int) 579 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction528 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction528 < ReduceAction: superclass typecheck marker */},
+  {(int) 579 /* 3: ReduceAction528 < ReduceAction528: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction528 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction528 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction528___action},
+  {(int) 2 /* 42: ReduceAction528 < ReduceAction528: superclass init_table position */},
+  {(int) parser___ReduceAction528___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction528(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction528;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction528___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction528();
+  parser___ReduceAction528___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction529[44] = {
+  {(int) 575 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction529 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction529 < ReduceAction: superclass typecheck marker */},
+  {(int) 575 /* 3: ReduceAction529 < ReduceAction529: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction529 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction529 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction529___action},
+  {(int) 2 /* 42: ReduceAction529 < ReduceAction529: superclass init_table position */},
+  {(int) parser___ReduceAction529___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction529(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction529;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction529___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction529();
+  parser___ReduceAction529___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction530[44] = {
+  {(int) 567 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction530 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction530 < ReduceAction: superclass typecheck marker */},
+  {(int) 567 /* 3: ReduceAction530 < ReduceAction530: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction530 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction530 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction530___action},
+  {(int) 2 /* 42: ReduceAction530 < ReduceAction530: superclass init_table position */},
+  {(int) parser___ReduceAction530___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction530(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction530;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction530___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction530();
+  parser___ReduceAction530___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction531[44] = {
+  {(int) 563 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction531 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction531 < ReduceAction: superclass typecheck marker */},
+  {(int) 563 /* 3: ReduceAction531 < ReduceAction531: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction531 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction531 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction531___action},
+  {(int) 2 /* 42: ReduceAction531 < ReduceAction531: superclass init_table position */},
+  {(int) parser___ReduceAction531___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction531(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction531;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction531___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction531();
+  parser___ReduceAction531___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction532[44] = {
+  {(int) 559 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction532 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction532 < ReduceAction: superclass typecheck marker */},
+  {(int) 559 /* 3: ReduceAction532 < ReduceAction532: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction532 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction532 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction532___action},
+  {(int) 2 /* 42: ReduceAction532 < ReduceAction532: superclass init_table position */},
+  {(int) parser___ReduceAction532___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction532(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction532;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction532___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction532();
+  parser___ReduceAction532___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction533[44] = {
+  {(int) 555 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction533 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction533 < ReduceAction: superclass typecheck marker */},
+  {(int) 555 /* 3: ReduceAction533 < ReduceAction533: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction533 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction533 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction533___action},
+  {(int) 2 /* 42: ReduceAction533 < ReduceAction533: superclass init_table position */},
+  {(int) parser___ReduceAction533___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction533(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction533;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction533___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction533();
+  parser___ReduceAction533___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction534[44] = {
+  {(int) 551 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction534 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction534 < ReduceAction: superclass typecheck marker */},
+  {(int) 551 /* 3: ReduceAction534 < ReduceAction534: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction534 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction534 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction534___action},
+  {(int) 2 /* 42: ReduceAction534 < ReduceAction534: superclass init_table position */},
+  {(int) parser___ReduceAction534___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction534(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction534;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction534___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction534();
+  parser___ReduceAction534___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction535[44] = {
+  {(int) 547 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction535 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction535 < ReduceAction: superclass typecheck marker */},
+  {(int) 547 /* 3: ReduceAction535 < ReduceAction535: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction535 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction535 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction535___action},
+  {(int) 2 /* 42: ReduceAction535 < ReduceAction535: superclass init_table position */},
+  {(int) parser___ReduceAction535___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction535(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction535;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction535___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction535();
+  parser___ReduceAction535___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction536[44] = {
+  {(int) 543 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction536 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction536 < ReduceAction: superclass typecheck marker */},
+  {(int) 543 /* 3: ReduceAction536 < ReduceAction536: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction536 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction536 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction536___action},
+  {(int) 2 /* 42: ReduceAction536 < ReduceAction536: superclass init_table position */},
+  {(int) parser___ReduceAction536___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction536(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction536;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction536___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction536();
+  parser___ReduceAction536___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction537[44] = {
+  {(int) 539 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction537 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction537 < ReduceAction: superclass typecheck marker */},
+  {(int) 539 /* 3: ReduceAction537 < ReduceAction537: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction537 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction537 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction537___action},
+  {(int) 2 /* 42: ReduceAction537 < ReduceAction537: superclass init_table position */},
+  {(int) parser___ReduceAction537___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction537(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction537;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction537___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction537();
+  parser___ReduceAction537___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction538[44] = {
+  {(int) 535 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction538 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction538 < ReduceAction: superclass typecheck marker */},
+  {(int) 535 /* 3: ReduceAction538 < ReduceAction538: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction538 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction538 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction538___action},
+  {(int) 2 /* 42: ReduceAction538 < ReduceAction538: superclass init_table position */},
+  {(int) parser___ReduceAction538___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction538(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction538;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction538___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction538();
+  parser___ReduceAction538___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction539[44] = {
+  {(int) 531 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction539 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction539 < ReduceAction: superclass typecheck marker */},
+  {(int) 531 /* 3: ReduceAction539 < ReduceAction539: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction539 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction539 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction539___action},
+  {(int) 2 /* 42: ReduceAction539 < ReduceAction539: superclass init_table position */},
+  {(int) parser___ReduceAction539___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction539(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction539;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction539___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction539();
+  parser___ReduceAction539___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction540[44] = {
+  {(int) 523 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction540 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction540 < ReduceAction: superclass typecheck marker */},
+  {(int) 523 /* 3: ReduceAction540 < ReduceAction540: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction540 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction540 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction540___action},
+  {(int) 2 /* 42: ReduceAction540 < ReduceAction540: superclass init_table position */},
+  {(int) parser___ReduceAction540___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction540(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction540;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction540___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction540();
+  parser___ReduceAction540___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction541[44] = {
+  {(int) 519 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction541 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction541 < ReduceAction: superclass typecheck marker */},
+  {(int) 519 /* 3: ReduceAction541 < ReduceAction541: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction541 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction541 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction541___action},
+  {(int) 2 /* 42: ReduceAction541 < ReduceAction541: superclass init_table position */},
+  {(int) parser___ReduceAction541___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction541(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction541;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction541___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction541();
+  parser___ReduceAction541___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction542[44] = {
+  {(int) 515 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction542 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction542 < ReduceAction: superclass typecheck marker */},
+  {(int) 515 /* 3: ReduceAction542 < ReduceAction542: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction542 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction542 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction542___action},
+  {(int) 2 /* 42: ReduceAction542 < ReduceAction542: superclass init_table position */},
+  {(int) parser___ReduceAction542___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction542(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction542;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction542___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction542();
+  parser___ReduceAction542___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction543[44] = {
+  {(int) 511 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction543 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction543 < ReduceAction: superclass typecheck marker */},
+  {(int) 511 /* 3: ReduceAction543 < ReduceAction543: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction543 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction543 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction543___action},
+  {(int) 2 /* 42: ReduceAction543 < ReduceAction543: superclass init_table position */},
+  {(int) parser___ReduceAction543___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction543(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction543;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction543___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction543();
+  parser___ReduceAction543___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction544[44] = {
+  {(int) 507 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction544 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction544 < ReduceAction: superclass typecheck marker */},
+  {(int) 507 /* 3: ReduceAction544 < ReduceAction544: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction544 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction544 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction544___action},
+  {(int) 2 /* 42: ReduceAction544 < ReduceAction544: superclass init_table position */},
+  {(int) parser___ReduceAction544___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction544(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction544;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction544___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction544();
+  parser___ReduceAction544___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction545[44] = {
+  {(int) 503 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction545 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction545 < ReduceAction: superclass typecheck marker */},
+  {(int) 503 /* 3: ReduceAction545 < ReduceAction545: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction545 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction545 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction545___action},
+  {(int) 2 /* 42: ReduceAction545 < ReduceAction545: superclass init_table position */},
+  {(int) parser___ReduceAction545___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction545(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction545;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction545___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction545();
+  parser___ReduceAction545___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction546[44] = {
+  {(int) 499 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction546 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction546 < ReduceAction: superclass typecheck marker */},
+  {(int) 499 /* 3: ReduceAction546 < ReduceAction546: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction546 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction546 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction546___action},
+  {(int) 2 /* 42: ReduceAction546 < ReduceAction546: superclass init_table position */},
+  {(int) parser___ReduceAction546___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction546(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction546;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction546___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction546();
+  parser___ReduceAction546___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction547[44] = {
+  {(int) 495 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction547 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction547 < ReduceAction: superclass typecheck marker */},
+  {(int) 495 /* 3: ReduceAction547 < ReduceAction547: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction547 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction547 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction547___action},
+  {(int) 2 /* 42: ReduceAction547 < ReduceAction547: superclass init_table position */},
+  {(int) parser___ReduceAction547___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction547(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction547;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction547___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction547();
+  parser___ReduceAction547___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction548[44] = {
+  {(int) 491 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction548 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction548 < ReduceAction: superclass typecheck marker */},
+  {(int) 491 /* 3: ReduceAction548 < ReduceAction548: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction548 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction548 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction548___action},
+  {(int) 2 /* 42: ReduceAction548 < ReduceAction548: superclass init_table position */},
+  {(int) parser___ReduceAction548___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction548(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction548;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction548___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction548();
+  parser___ReduceAction548___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction549[44] = {
+  {(int) 487 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction549 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction549 < ReduceAction: superclass typecheck marker */},
+  {(int) 487 /* 3: ReduceAction549 < ReduceAction549: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction549 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction549 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction549___action},
+  {(int) 2 /* 42: ReduceAction549 < ReduceAction549: superclass init_table position */},
+  {(int) parser___ReduceAction549___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction549(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction549;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction549___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction549();
+  parser___ReduceAction549___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction550[44] = {
+  {(int) 479 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction550 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction550 < ReduceAction: superclass typecheck marker */},
+  {(int) 479 /* 3: ReduceAction550 < ReduceAction550: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction550 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction550 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction550___action},
+  {(int) 2 /* 42: ReduceAction550 < ReduceAction550: superclass init_table position */},
+  {(int) parser___ReduceAction550___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction550(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction550;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction550___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction550();
+  parser___ReduceAction550___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction551[44] = {
+  {(int) 475 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction551 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction551 < ReduceAction: superclass typecheck marker */},
+  {(int) 475 /* 3: ReduceAction551 < ReduceAction551: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction551 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction551 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction551___action},
+  {(int) 2 /* 42: ReduceAction551 < ReduceAction551: superclass init_table position */},
+  {(int) parser___ReduceAction551___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction551(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction551;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction551___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction551();
+  parser___ReduceAction551___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction552[44] = {
+  {(int) 471 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction552 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction552 < ReduceAction: superclass typecheck marker */},
+  {(int) 471 /* 3: ReduceAction552 < ReduceAction552: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction552 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction552 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction552___action},
+  {(int) 2 /* 42: ReduceAction552 < ReduceAction552: superclass init_table position */},
+  {(int) parser___ReduceAction552___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction552(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction552;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction552___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction552();
+  parser___ReduceAction552___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction553[44] = {
+  {(int) 467 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction553 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction553 < ReduceAction: superclass typecheck marker */},
+  {(int) 467 /* 3: ReduceAction553 < ReduceAction553: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction553 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction553 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction553___action},
+  {(int) 2 /* 42: ReduceAction553 < ReduceAction553: superclass init_table position */},
+  {(int) parser___ReduceAction553___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction553(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction553;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction553___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction553();
+  parser___ReduceAction553___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction554[44] = {
+  {(int) 463 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction554 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction554 < ReduceAction: superclass typecheck marker */},
+  {(int) 463 /* 3: ReduceAction554 < ReduceAction554: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction554 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction554 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction554___action},
+  {(int) 2 /* 42: ReduceAction554 < ReduceAction554: superclass init_table position */},
+  {(int) parser___ReduceAction554___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction554(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction554;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction554___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction554();
+  parser___ReduceAction554___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction555[44] = {
+  {(int) 459 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction555 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction555 < ReduceAction: superclass typecheck marker */},
+  {(int) 459 /* 3: ReduceAction555 < ReduceAction555: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction555 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction555 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction555___action},
+  {(int) 2 /* 42: ReduceAction555 < ReduceAction555: superclass init_table position */},
+  {(int) parser___ReduceAction555___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction555(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction555;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction555___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction555();
+  parser___ReduceAction555___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction556[44] = {
+  {(int) 455 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction556 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction556 < ReduceAction: superclass typecheck marker */},
+  {(int) 455 /* 3: ReduceAction556 < ReduceAction556: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction556 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction556 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction556___action},
+  {(int) 2 /* 42: ReduceAction556 < ReduceAction556: superclass init_table position */},
+  {(int) parser___ReduceAction556___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction556(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction556;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction556___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction556();
+  parser___ReduceAction556___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction557[44] = {
+  {(int) 451 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction557 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction557 < ReduceAction: superclass typecheck marker */},
+  {(int) 451 /* 3: ReduceAction557 < ReduceAction557: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction557 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction557 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction557___action},
+  {(int) 2 /* 42: ReduceAction557 < ReduceAction557: superclass init_table position */},
+  {(int) parser___ReduceAction557___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction557(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction557;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction557___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction557();
+  parser___ReduceAction557___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction558[44] = {
+  {(int) 447 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction558 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction558 < ReduceAction: superclass typecheck marker */},
+  {(int) 447 /* 3: ReduceAction558 < ReduceAction558: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction558 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction558 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction558___action},
+  {(int) 2 /* 42: ReduceAction558 < ReduceAction558: superclass init_table position */},
+  {(int) parser___ReduceAction558___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction558(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction558;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction558___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction558();
+  parser___ReduceAction558___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction559[44] = {
+  {(int) 443 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction559 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction559 < ReduceAction: superclass typecheck marker */},
+  {(int) 443 /* 3: ReduceAction559 < ReduceAction559: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction559 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction559 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction559___action},
+  {(int) 2 /* 42: ReduceAction559 < ReduceAction559: superclass init_table position */},
+  {(int) parser___ReduceAction559___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction559(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction559;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction559___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction559();
+  parser___ReduceAction559___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction560[44] = {
+  {(int) 435 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction560 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction560 < ReduceAction: superclass typecheck marker */},
+  {(int) 435 /* 3: ReduceAction560 < ReduceAction560: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction560 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction560 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction560___action},
+  {(int) 2 /* 42: ReduceAction560 < ReduceAction560: superclass init_table position */},
+  {(int) parser___ReduceAction560___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction560(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction560;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction560___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction560();
+  parser___ReduceAction560___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction561[44] = {
+  {(int) 431 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction561 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction561 < ReduceAction: superclass typecheck marker */},
+  {(int) 431 /* 3: ReduceAction561 < ReduceAction561: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction561 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction561 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction561___action},
+  {(int) 2 /* 42: ReduceAction561 < ReduceAction561: superclass init_table position */},
+  {(int) parser___ReduceAction561___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction561(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction561;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction561___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction561();
+  parser___ReduceAction561___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction562[44] = {
+  {(int) 427 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction562 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction562 < ReduceAction: superclass typecheck marker */},
+  {(int) 427 /* 3: ReduceAction562 < ReduceAction562: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction562 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction562 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction562___action},
+  {(int) 2 /* 42: ReduceAction562 < ReduceAction562: superclass init_table position */},
+  {(int) parser___ReduceAction562___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction562(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction562;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction562___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction562();
+  parser___ReduceAction562___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction563[44] = {
+  {(int) 423 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction563 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction563 < ReduceAction: superclass typecheck marker */},
+  {(int) 423 /* 3: ReduceAction563 < ReduceAction563: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction563 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction563 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction563___action},
+  {(int) 2 /* 42: ReduceAction563 < ReduceAction563: superclass init_table position */},
+  {(int) parser___ReduceAction563___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction563(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction563;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction563___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction563();
+  parser___ReduceAction563___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction564[44] = {
+  {(int) 419 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction564 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction564 < ReduceAction: superclass typecheck marker */},
+  {(int) 419 /* 3: ReduceAction564 < ReduceAction564: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction564 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction564 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction564___action},
+  {(int) 2 /* 42: ReduceAction564 < ReduceAction564: superclass init_table position */},
+  {(int) parser___ReduceAction564___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction564(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction564;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction564___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction564();
+  parser___ReduceAction564___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction565[44] = {
+  {(int) 415 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction565 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction565 < ReduceAction: superclass typecheck marker */},
+  {(int) 415 /* 3: ReduceAction565 < ReduceAction565: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction565 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction565 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction565___action},
+  {(int) 2 /* 42: ReduceAction565 < ReduceAction565: superclass init_table position */},
+  {(int) parser___ReduceAction565___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction565(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction565;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction565___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction565();
+  parser___ReduceAction565___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction566[44] = {
+  {(int) 411 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction566 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction566 < ReduceAction: superclass typecheck marker */},
+  {(int) 411 /* 3: ReduceAction566 < ReduceAction566: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction566 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction566 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction566___action},
+  {(int) 2 /* 42: ReduceAction566 < ReduceAction566: superclass init_table position */},
+  {(int) parser___ReduceAction566___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction566(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction566;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction566___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction566();
+  parser___ReduceAction566___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction567[44] = {
+  {(int) 407 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction567 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction567 < ReduceAction: superclass typecheck marker */},
+  {(int) 407 /* 3: ReduceAction567 < ReduceAction567: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction567 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction567 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction567___action},
+  {(int) 2 /* 42: ReduceAction567 < ReduceAction567: superclass init_table position */},
+  {(int) parser___ReduceAction567___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction567(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction567;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction567___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction567();
+  parser___ReduceAction567___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ReduceAction568[44] = {
+  {(int) 403 /* 0: Identity */},
+  {(int) 3 /* 1: ReduceAction568 < Object: superclass typecheck marker */},
+  {(int) 39 /* 2: ReduceAction568 < ReduceAction: superclass typecheck marker */},
+  {(int) 403 /* 3: ReduceAction568 < ReduceAction568: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ReduceAction568 < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ReduceAction568 < ReduceAction: superclass init_table position */},
+  {(int) parser___ReduceAction568___action},
+  {(int) 2 /* 42: ReduceAction568 < ReduceAction568: superclass init_table position */},
+  {(int) parser___ReduceAction568___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ReduceAction568(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction568;
+  return OBJ2VAL(obj);
+}
+val_t NEW_parser___ReduceAction568___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ReduceAction568();
+  parser___ReduceAction568___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PartialOrder[80] = {
+  {(int) 2499 /* 0: Identity */},
+  {(int) 3 /* 1: PartialOrder < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 163 /* 5: PartialOrder < Collection: superclass typecheck marker */},
+  {(int) 2499 /* 6: PartialOrder < PartialOrder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Collection___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PartialOrder < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) string___Collection___join},
+  {(int) array___Collection___to_a},
+  {(int) 1 /* 58: PartialOrder < Collection: superclass init_table position */},
+  {(int) partial_order___PartialOrder___iterator},
+  {(int) partial_order___PartialOrder___is_empty},
+  {(int) partial_order___PartialOrder___length},
+  {(int) partial_order___PartialOrder___has},
+  {(int) partial_order___PartialOrder___has_only},
+  {(int) partial_order___PartialOrder___count},
+  {(int) partial_order___PartialOrder___first},
+  {(int) 2 /* 66: PartialOrder < PartialOrder: superclass init_table position */},
+  {(int) partial_order___PartialOrder___roots},
+  {(int) partial_order___PartialOrder_____bra},
+  {(int) partial_order___PartialOrder___to_dot},
+  {(int) partial_order___PartialOrder___to_dot_header},
+  {(int) partial_order___PartialOrder___to_dot_node},
+  {(int) partial_order___PartialOrder___to_dot_edge},
+  {(int) partial_order___PartialOrder___select_smallests},
+  {(int) partial_order___PartialOrder___add},
+  {(int) partial_order___PartialOrder___has_all},
+  {(int) partial_order___PartialOrder___new_poe},
+  {(int) partial_order___PartialOrder___add_to_smallests},
+  {(int) partial_order___PartialOrder___compute_smallers_for},
+  {(int) partial_order___PartialOrder___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PartialOrder::_elements */
+/* 2: Attribute PartialOrder::_elements_list */
+/* 3: Attribute PartialOrder::_roots */
+val_t NEW_PartialOrder(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PartialOrder;
+  return OBJ2VAL(obj);
+}
+val_t NEW_partial_order___PartialOrder___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_PartialOrder();
+  partial_order___PartialOrder___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PartialOrderElement[57] = {
+  {(int) 55 /* 0: Identity */},
+  {(int) 3 /* 1: PartialOrderElement < Object: superclass typecheck marker */},
+  {(int) 55 /* 2: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PartialOrderElement < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: PartialOrderElement < PartialOrderElement: superclass init_table position */},
+  {(int) partial_order___PartialOrderElement___order},
+  {(int) partial_order___PartialOrderElement___value},
+  {(int) partial_order___PartialOrderElement___rank},
+  {(int) partial_order___PartialOrderElement___direct_greaters},
+  {(int) partial_order___PartialOrderElement___direct_smallers},
+  {(int) partial_order___PartialOrderElement___greaters},
+  {(int) partial_order___PartialOrderElement___greaters_and_self},
+  {(int) partial_order___PartialOrderElement___smallers},
+  {(int) partial_order___PartialOrderElement___linear_extension},
+  {(int) partial_order___PartialOrderElement___reverse_linear_extension},
+  {(int) partial_order___PartialOrderElement_____l},
+  {(int) partial_order___PartialOrderElement_____leq},
+  {(int) partial_order___PartialOrderElement_____g},
+  {(int) partial_order___PartialOrderElement_____geq},
+  {(int) partial_order___PartialOrderElement___register_direct_smallers},
+  {(int) partial_order___PartialOrderElement___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PartialOrderElement::_order */
+/* 2: Attribute PartialOrderElement::_value */
+/* 3: Attribute PartialOrderElement::_rank */
+/* 4: Attribute PartialOrderElement::_direct_greaters */
+/* 5: Attribute PartialOrderElement::_direct_smallers */
+/* 6: Attribute PartialOrderElement::_greaters */
+/* 7: Attribute PartialOrderElement::_greaters_and_self_cache */
+/* 8: Attribute PartialOrderElement::_smallers_last_length */
+/* 9: Attribute PartialOrderElement::_smallers_cache */
+/* 10: Attribute PartialOrderElement::_linear_extension_cache */
+/* 11: Attribute PartialOrderElement::_reverse_linear_extension_cache */
+val_t NEW_PartialOrderElement(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_PartialOrderElement;
+  ATTR_partial_order___PartialOrderElement____rank(obj) = TAG_Int((int)0);
+  ATTR_partial_order___PartialOrderElement____smallers_last_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_PartialOrderElement();
+  partial_order___PartialOrderElement___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMContext[50] = {
+  {(int) 119 /* 0: Identity */},
+  {(int) 3 /* 1: MMContext < Object: superclass typecheck marker */},
+  {(int) 119 /* 2: MMContext < MMContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) syntax___MMContext___tc},
+  {(int) syntax___MMContext___tc__eq},
+  {(int) 1 /* 42: MMContext < MMContext: superclass init_table position */},
+  {(int) abstractmetamodel___MMContext___init},
+  {(int) abstractmetamodel___MMContext___module_hierarchy},
+  {(int) abstractmetamodel___MMContext___class_hierarchy},
+  {(int) abstractmetamodel___MMContext___modules},
+  {(int) abstractmetamodel___MMContext___add_module},
+  {(int) abstractmetamodel___MMContext___add_global_class},
+  {(int) abstractmetamodel___MMContext___add_local_class},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMContext::_tc */
+/* 2: Attribute MMContext::_module_hierarchy */
+/* 3: Attribute MMContext::_class_hierarchy */
+/* 4: Attribute MMContext::_global_classes */
+/* 5: Attribute MMContext::_modules */
+val_t NEW_MMContext(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMContext;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
+  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMContext___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMContext();
+  abstractmetamodel___MMContext___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMDirectory[51] = {
+  {(int) 115 /* 0: Identity */},
+  {(int) 3 /* 1: MMDirectory < Object: superclass typecheck marker */},
+  {(int) 115 /* 2: MMDirectory < MMDirectory: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMDirectory < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: MMDirectory < MMDirectory: superclass init_table position */},
+  {(int) abstractmetamodel___MMDirectory___name},
+  {(int) abstractmetamodel___MMDirectory___path},
+  {(int) abstractmetamodel___MMDirectory___parent},
+  {(int) abstractmetamodel___MMDirectory___owner},
+  {(int) abstractmetamodel___MMDirectory___owner__eq},
+  {(int) abstractmetamodel___MMDirectory___modules},
+  {(int) abstractmetamodel___MMDirectory___add_module},
+  {(int) abstractmetamodel___MMDirectory___dhe},
+  {(int) abstractmetamodel___MMDirectory___init},
+  {(int) abstractmetamodel___MMDirectory___full_name_for},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMDirectory::_name */
+/* 2: Attribute MMDirectory::_path */
+/* 3: Attribute MMDirectory::_parent */
+/* 4: Attribute MMDirectory::_owner */
+/* 5: Attribute MMDirectory::_modules */
+/* 6: Attribute MMDirectory::_dhe */
+val_t NEW_MMDirectory(void) {
+  val_t variable0;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_MMDirectory;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMModule]*/
+  ATTR_abstractmetamodel___MMDirectory____modules(obj) = variable0;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMDirectory();
+  abstractmetamodel___MMDirectory___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMModule[70] = {
+  {(int) 95 /* 0: Identity */},
+  {(int) 3 /* 1: MMModule < Object: superclass typecheck marker */},
+  {(int) 95 /* 2: MMModule < MMModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMModule___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMModule < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMModule___dump_module_info},
+  {(int) mmloader___MMModule___filename},
+  {(int) mmloader___MMModule___filename__eq},
+  {(int) mmloader___MMModule___mtime},
+  {(int) mmloader___MMModule___mtime__eq},
+  {(int) mmloader___MMModule___import_supers_modules},
+  {(int) inheritance___MMModule___type_any},
+  {(int) inheritance___MMModule___import_global_classes},
+  {(int) inheritance___MMModule___import_local_classes},
+  {(int) static_type___MMModule___type_none},
+  {(int) 1 /* 50: MMModule < MMModule: superclass init_table position */},
+  {(int) abstractmetamodel___MMModule___context},
+  {(int) abstractmetamodel___MMModule___name},
+  {(int) abstractmetamodel___MMModule___full_name},
+  {(int) abstractmetamodel___MMModule___directory},
+  {(int) abstractmetamodel___MMModule___mhe},
+  {(int) abstractmetamodel___MMModule___global_classes},
+  {(int) abstractmetamodel___MMModule___local_classes},
+  {(int) abstractmetamodel___MMModule___class_specialization_hierarchy},
+  {(int) abstractmetamodel___MMModule___explicit_imported_modules},
+  {(int) abstractmetamodel___MMModule___init},
+  {(int) abstractmetamodel___MMModule___add_super_module},
+  {(int) abstractmetamodel___MMModule___visibility_for},
+  {(int) abstractmetamodel___MMModule_____bra},
+  {(int) abstractmetamodel___MMModule___add_local_class},
+  {(int) abstractmetamodel___MMModule___class_by_name},
+  {(int) abstractmetamodel___MMModule___has_global_class_named},
+  {(int) abstractmetamodel___MMModule___global_class_named},
+  {(int) abstractmetamodel___MMModule___set_supers_class},
+  {(int) abstractmetamodel___MMModule___register_global_class},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMModule::_filename */
+/* 2: Attribute MMModule::_mtime */
+/* 3: Attribute MMModule::_type_none */
+/* 4: Attribute MMModule::_context */
+/* 5: Attribute MMModule::_name */
+/* 6: Attribute MMModule::_full_name */
+/* 7: Attribute MMModule::_directory */
+/* 8: Attribute MMModule::_mhe */
+/* 9: Attribute MMModule::_global_classes */
+/* 10: Attribute MMModule::_local_classes */
+/* 11: Attribute MMModule::_class_specialization_hierarchy */
+/* 12: Attribute MMModule::_intrude_modules */
+/* 13: Attribute MMModule::_public_modules */
+/* 14: Attribute MMModule::_private_modules */
+/* 15: Attribute MMModule::_explicit_imported_modules */
+/* 16: Attribute MMModule::_local_class_by_global */
+/* 17: Attribute MMModule::_global_class_by_name */
+val_t NEW_MMModule(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 18);
+  obj->vft = (classtable_elt_t*)VFT_MMModule;
+  variable0 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMModule____global_classes(obj) = variable0;
+  variable1 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____local_classes(obj) = variable1;
+  variable2 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(obj) = variable2;
+  variable3 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____intrude_modules(obj) = variable3;
+  variable4 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____public_modules(obj) = variable4;
+  variable5 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____private_modules(obj) = variable5;
+  variable6 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(obj) = variable6;
+  variable7 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalClass, MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____local_class_by_global(obj) = variable7;
+  variable8 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMModule____global_class_by_name(obj) = variable8;
+  variable9 = OBJ2VAL(obj);
+  variable10 = NEW_static_type___MMTypeNone___init(variable9); /*new MMTypeNone*/
+  ATTR_static_type___MMModule____type_none(obj) = variable10;
+  ATTR_mmloader___MMModule____mtime(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMModule();
+  abstractmetamodel___MMModule___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMGlobalClass[59] = {
+  {(int) 111 /* 0: Identity */},
+  {(int) 3 /* 1: MMGlobalClass < Object: superclass typecheck marker */},
+  {(int) 111 /* 2: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMGlobalClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMGlobalClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMGlobalClass___id_id},
+  {(int) compiling_base___MMGlobalClass___color_id},
+  {(int) compiling_base___MMGlobalClass___init_table_pos_id},
+  {(int) syntax_base___MMGlobalClass___check_visibility},
+  {(int) 1 /* 44: MMGlobalClass < MMGlobalClass: superclass init_table position */},
+  {(int) abstractmetamodel___MMGlobalClass___intro},
+  {(int) abstractmetamodel___MMGlobalClass___class_refinement_hierarchy},
+  {(int) abstractmetamodel___MMGlobalClass___init},
+  {(int) abstractmetamodel___MMGlobalClass___name},
+  {(int) abstractmetamodel___MMGlobalClass___module},
+  {(int) abstractmetamodel___MMGlobalClass___register_local_class},
+  {(int) abstractmetamodel___MMGlobalClass___is_interface},
+  {(int) abstractmetamodel___MMGlobalClass___is_interface__eq},
+  {(int) abstractmetamodel___MMGlobalClass___is_abstract},
+  {(int) abstractmetamodel___MMGlobalClass___is_abstract__eq},
+  {(int) abstractmetamodel___MMGlobalClass___is_universal},
+  {(int) abstractmetamodel___MMGlobalClass___is_universal__eq},
+  {(int) abstractmetamodel___MMGlobalClass___visibility_level},
+  {(int) abstractmetamodel___MMGlobalClass___visibility_level__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMGlobalClass::_intro */
+/* 2: Attribute MMGlobalClass::_class_refinement_hierarchy */
+/* 3: Attribute MMGlobalClass::_is_interface */
+/* 4: Attribute MMGlobalClass::_is_abstract */
+/* 5: Attribute MMGlobalClass::_is_universal */
+/* 6: Attribute MMGlobalClass::_visibility_level */
+val_t NEW_MMGlobalClass(void) {
+  val_t variable0;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_MMGlobalClass;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(obj) = variable0;
+  ATTR_abstractmetamodel___MMGlobalClass____is_interface(obj) = TAG_Bool((int)0);
+  ATTR_abstractmetamodel___MMGlobalClass____is_abstract(obj) = TAG_Bool((int)0);
+  ATTR_abstractmetamodel___MMGlobalClass____is_universal(obj) = TAG_Bool((int)0);
+  ATTR_abstractmetamodel___MMGlobalClass____visibility_level(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMGlobalClass___init(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMGlobalClass();
+  abstractmetamodel___MMGlobalClass___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMLocalClass[99] = {
+  {(int) 103 /* 0: Identity */},
+  {(int) 3 /* 1: MMLocalClass < Object: superclass typecheck marker */},
+  {(int) 103 /* 2: MMLocalClass < MMLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMLocalClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMLocalClass___dump_properties},
+  {(int) genericity___MMLocalClass___get_formal},
+  {(int) genericity___MMLocalClass___register_formal},
+  {(int) genericity___MMLocalClass___get_instantiate_type},
+  {(int) genericity___MMLocalClass___formals_types},
+  {(int) static_type___MMLocalClass___get_type},
+  {(int) genericity___MMLocalClass___is_generic},
+  {(int) inheritance___MMLocalClass___compute_super_classes},
+  {(int) inheritance___MMLocalClass___compute_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_global_properties},
+  {(int) inheritance___MMLocalClass___add_direct_parent},
+  {(int) inheritance___MMLocalClass___computed_super_classes},
+  {(int) inheritance___MMLocalClass___computed_ancestors},
+  {(int) inheritance___MMLocalClass___ancestor_for},
+  {(int) abstractmetamodel___MMLocalClass_____bra},
+  {(int) inheritance___MMLocalClass___add_default_any_class},
+  {(int) inheritance___MMLocalClass___add_super_classes},
+  {(int) inheritance___MMLocalClass___add_explicit_classes},
+  {(int) inheritance___MMLocalClass___compute_super_parents},
+  {(int) inheritance___MMLocalClass___build_ancestors},
+  {(int) inheritance___MMLocalClass___group_ancestors},
+  {(int) inheritance___MMLocalClass___merge_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_local_property},
+  {(int) genericity___MMLocalClass___get_type},
+  {(int) static_type___MMLocalClass___add_ancestor},
+  {(int) static_type___MMLocalClass___ancestors},
+  {(int) static_type___MMLocalClass___ancestor},
+  {(int) 1 /* 67: MMLocalClass < MMLocalClass: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalClass___name},
+  {(int) abstractmetamodel___MMLocalClass___arity},
+  {(int) abstractmetamodel___MMLocalClass___module},
+  {(int) abstractmetamodel___MMLocalClass___abstract},
+  {(int) abstractmetamodel___MMLocalClass___abstract__eq},
+  {(int) abstractmetamodel___MMLocalClass___global},
+  {(int) abstractmetamodel___MMLocalClass___crhe},
+  {(int) abstractmetamodel___MMLocalClass___cshe},
+  {(int) abstractmetamodel___MMLocalClass___che},
+  {(int) abstractmetamodel___MMLocalClass___local_property_by_global},
+  {(int) abstractmetamodel___MMLocalClass___global_properties},
+  {(int) abstractmetamodel___MMLocalClass___properties_by_name},
+  {(int) abstractmetamodel___MMLocalClass___init},
+  {(int) abstractmetamodel___MMLocalClass___for_module},
+  {(int) abstractmetamodel___MMLocalClass___new_global},
+  {(int) abstractmetamodel___MMLocalClass___set_global},
+  {(int) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___attribute},
+  {(int) abstractmetamodel___MMLocalClass___method},
+  {(int) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(int) abstractmetamodel___MMLocalClass___register_local_property},
+  {(int) abstractmetamodel___MMLocalClass___register_global_property},
+  {(int) inheritance___MMLocalClass_____bra},
+  {(int) abstractmetamodel___MMLocalClass___context},
+  {(int) virtualtype___MMLocalClass___virtual_type},
+  {(int) compiling_global___MMLocalClass___compare},
+  {(int) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(int) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(int) compiling_base___MMLocalClass___primitive_info},
+  {(int) compiling_base___MMLocalClass___primitive_ctypes},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMLocalClass::_types */
+/* 2: Attribute MMLocalClass::_formals_types */
+/* 3: Attribute MMLocalClass::_direct_parents */
+/* 4: Attribute MMLocalClass::_computing_super */
+/* 5: Attribute MMLocalClass::_base_type_cache */
+/* 6: Attribute MMLocalClass::_ancestors */
+/* 7: Attribute MMLocalClass::_name */
+/* 8: Attribute MMLocalClass::_arity */
+/* 9: Attribute MMLocalClass::_module */
+/* 10: Attribute MMLocalClass::_abstract */
+/* 11: Attribute MMLocalClass::_global */
+/* 12: Attribute MMLocalClass::_crhe */
+/* 13: Attribute MMLocalClass::_cshe */
+/* 14: Attribute MMLocalClass::_che */
+/* 15: Attribute MMLocalClass::_local_property_by_global */
+/* 16: Attribute MMLocalClass::_global_properties */
+/* 17: Attribute MMLocalClass::_properties_by_name */
+/* 18: Attribute MMLocalClass::_primitive_info_cache */
+/* 19: Attribute MMLocalClass::_primitive_info_b */
+val_t NEW_MMLocalClass(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 20);
+  obj->vft = (classtable_elt_t*)VFT_MMLocalClass;
+  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((int)0);
+  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
+  variable0 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
+  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
+  variable1 = NEW_array___Array___init(); /*new Array[MMTypeGeneric]*/
+  ATTR_genericity___MMLocalClass____types(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMTypeFormalParameter]*/
+  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
+  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMLocalClass();
+  abstractmetamodel___MMLocalClass___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMGlobalProperty[60] = {
+  {(int) 107 /* 0: Identity */},
+  {(int) 3 /* 1: MMGlobalProperty < Object: superclass typecheck marker */},
+  {(int) 107 /* 2: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMGlobalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMGlobalProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_global___MMGlobalProperty___pos_of},
+  {(int) compiling_global___MMGlobalProperty___pos_of__eq},
+  {(int) compiling_base___MMGlobalProperty___meth_call},
+  {(int) compiling_base___MMGlobalProperty___attr_access},
+  {(int) compiling_base___MMGlobalProperty___color_id},
+  {(int) syntax_base___MMGlobalProperty___check_visibility},
+  {(int) virtualtype___MMGlobalProperty___is_virtual_type},
+  {(int) inheritance___MMGlobalProperty___get_compatible_concrete_properties_for},
+  {(int) 1 /* 48: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMGlobalProperty___intro},
+  {(int) abstractmetamodel___MMGlobalProperty___local_class},
+  {(int) abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy},
+  {(int) abstractmetamodel___MMGlobalProperty___init},
+  {(int) abstractmetamodel___MMGlobalProperty___add_concrete_property},
+  {(int) abstractmetamodel___MMGlobalProperty___is_attribute},
+  {(int) abstractmetamodel___MMGlobalProperty___is_method},
+  {(int) abstractmetamodel___MMGlobalProperty___is_init},
+  {(int) abstractmetamodel___MMGlobalProperty___is_init__eq},
+  {(int) abstractmetamodel___MMGlobalProperty___visibility_level},
+  {(int) abstractmetamodel___MMGlobalProperty___visibility_level__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMGlobalProperty::_pos_of */
+/* 2: Attribute MMGlobalProperty::_intro */
+/* 3: Attribute MMGlobalProperty::_concrete_property_hierarchy */
+/* 4: Attribute MMGlobalProperty::_is_init */
+/* 5: Attribute MMGlobalProperty::_visibility_level */
+val_t NEW_MMGlobalProperty(void) {
+  val_t variable0;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMGlobalProperty;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMConcreteProperty]*/
+  ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy(obj) = variable0;
+  ATTR_abstractmetamodel___MMGlobalProperty____is_init(obj) = TAG_Bool((int)0);
+  ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(obj) = TAG_Int((int)0);
+  ATTR_compiling_global___MMGlobalProperty____pos_of(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMGlobalProperty___init(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMGlobalProperty();
+  abstractmetamodel___MMGlobalProperty___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMLocalProperty[61] = {
+  {(int) 99 /* 0: Identity */},
+  {(int) 3 /* 1: MMLocalProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMLocalProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMLocalProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMLocalProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMLocalProperty::_cname_cache */
+/* 2: Attribute MMLocalProperty::_recv_alone */
+/* 3: Attribute MMLocalProperty::_signature_cache */
+/* 4: Attribute MMLocalProperty::_name */
+/* 5: Attribute MMLocalProperty::_local_class */
+/* 6: Attribute MMLocalProperty::_global */
+/* 7: Attribute MMLocalProperty::_super_prop */
+/* 8: Attribute MMLocalProperty::_concrete_property */
+val_t NEW_MMLocalProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMLocalProperty;
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMLocalProperty();
+  abstractmetamodel___MMLocalProperty___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMAttribute[63] = {
+  {(int) 2587 /* 0: Identity */},
+  {(int) 3 /* 1: MMAttribute < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2587 /* 3: MMAttribute < MMAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMAttribute < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMAttribute___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMAttribute < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMAttribute___compile_access},
+  {(int) 2 /* 62: MMAttribute < MMAttribute: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMAttribute::_cname_cache */
+/* 2: Attribute MMAttribute::_recv_alone */
+/* 3: Attribute MMAttribute::_signature_cache */
+/* 4: Attribute MMAttribute::_name */
+/* 5: Attribute MMAttribute::_local_class */
+/* 6: Attribute MMAttribute::_global */
+/* 7: Attribute MMAttribute::_super_prop */
+/* 8: Attribute MMAttribute::_concrete_property */
+val_t NEW_MMAttribute(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMAttribute;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMMethod[65] = {
+  {(int) 2563 /* 0: Identity */},
+  {(int) 3 /* 1: MMMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMMethod < MMMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 2 /* 64: MMMethod < MMMethod: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMMethod::_cname_cache */
+/* 2: Attribute MMMethod::_recv_alone */
+/* 3: Attribute MMMethod::_signature_cache */
+/* 4: Attribute MMMethod::_name */
+/* 5: Attribute MMMethod::_local_class */
+/* 6: Attribute MMMethod::_global */
+/* 7: Attribute MMMethod::_super_prop */
+/* 8: Attribute MMMethod::_concrete_property */
+val_t NEW_MMMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMMethod;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMConcreteClass[100] = {
+  {(int) 2583 /* 0: Identity */},
+  {(int) 3 /* 1: MMConcreteClass < Object: superclass typecheck marker */},
+  {(int) 103 /* 2: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
+  {(int) 2583 /* 3: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMConcreteClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMLocalClass___dump_properties},
+  {(int) genericity___MMLocalClass___get_formal},
+  {(int) genericity___MMLocalClass___register_formal},
+  {(int) genericity___MMLocalClass___get_instantiate_type},
+  {(int) genericity___MMLocalClass___formals_types},
+  {(int) static_type___MMLocalClass___get_type},
+  {(int) genericity___MMLocalClass___is_generic},
+  {(int) inheritance___MMLocalClass___compute_super_classes},
+  {(int) inheritance___MMLocalClass___compute_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_global_properties},
+  {(int) inheritance___MMLocalClass___add_direct_parent},
+  {(int) inheritance___MMLocalClass___computed_super_classes},
+  {(int) inheritance___MMLocalClass___computed_ancestors},
+  {(int) inheritance___MMLocalClass___ancestor_for},
+  {(int) abstractmetamodel___MMLocalClass_____bra},
+  {(int) inheritance___MMLocalClass___add_default_any_class},
+  {(int) inheritance___MMLocalClass___add_super_classes},
+  {(int) inheritance___MMLocalClass___add_explicit_classes},
+  {(int) inheritance___MMLocalClass___compute_super_parents},
+  {(int) inheritance___MMLocalClass___build_ancestors},
+  {(int) inheritance___MMLocalClass___group_ancestors},
+  {(int) inheritance___MMLocalClass___merge_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_local_property},
+  {(int) genericity___MMLocalClass___get_type},
+  {(int) static_type___MMLocalClass___add_ancestor},
+  {(int) static_type___MMLocalClass___ancestors},
+  {(int) static_type___MMLocalClass___ancestor},
+  {(int) 1 /* 67: MMConcreteClass < MMLocalClass: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalClass___name},
+  {(int) abstractmetamodel___MMLocalClass___arity},
+  {(int) abstractmetamodel___MMLocalClass___module},
+  {(int) abstractmetamodel___MMLocalClass___abstract},
+  {(int) abstractmetamodel___MMLocalClass___abstract__eq},
+  {(int) abstractmetamodel___MMLocalClass___global},
+  {(int) abstractmetamodel___MMLocalClass___crhe},
+  {(int) abstractmetamodel___MMLocalClass___cshe},
+  {(int) abstractmetamodel___MMLocalClass___che},
+  {(int) abstractmetamodel___MMLocalClass___local_property_by_global},
+  {(int) abstractmetamodel___MMLocalClass___global_properties},
+  {(int) abstractmetamodel___MMLocalClass___properties_by_name},
+  {(int) abstractmetamodel___MMLocalClass___init},
+  {(int) abstractmetamodel___MMLocalClass___for_module},
+  {(int) abstractmetamodel___MMLocalClass___new_global},
+  {(int) abstractmetamodel___MMLocalClass___set_global},
+  {(int) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___attribute},
+  {(int) abstractmetamodel___MMLocalClass___method},
+  {(int) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(int) abstractmetamodel___MMLocalClass___register_local_property},
+  {(int) abstractmetamodel___MMLocalClass___register_global_property},
+  {(int) inheritance___MMLocalClass_____bra},
+  {(int) abstractmetamodel___MMLocalClass___context},
+  {(int) virtualtype___MMLocalClass___virtual_type},
+  {(int) compiling_global___MMLocalClass___compare},
+  {(int) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(int) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(int) compiling_base___MMLocalClass___primitive_info},
+  {(int) compiling_base___MMLocalClass___primitive_ctypes},
+  {(int) 2 /* 99: MMConcreteClass < MMConcreteClass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMConcreteClass::_types */
+/* 2: Attribute MMConcreteClass::_formals_types */
+/* 3: Attribute MMConcreteClass::_direct_parents */
+/* 4: Attribute MMConcreteClass::_computing_super */
+/* 5: Attribute MMConcreteClass::_base_type_cache */
+/* 6: Attribute MMConcreteClass::_ancestors */
+/* 7: Attribute MMConcreteClass::_name */
+/* 8: Attribute MMConcreteClass::_arity */
+/* 9: Attribute MMConcreteClass::_module */
+/* 10: Attribute MMConcreteClass::_abstract */
+/* 11: Attribute MMConcreteClass::_global */
+/* 12: Attribute MMConcreteClass::_crhe */
+/* 13: Attribute MMConcreteClass::_cshe */
+/* 14: Attribute MMConcreteClass::_che */
+/* 15: Attribute MMConcreteClass::_local_property_by_global */
+/* 16: Attribute MMConcreteClass::_global_properties */
+/* 17: Attribute MMConcreteClass::_properties_by_name */
+/* 18: Attribute MMConcreteClass::_primitive_info_cache */
+/* 19: Attribute MMConcreteClass::_primitive_info_b */
+val_t NEW_MMConcreteClass(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 20);
+  obj->vft = (classtable_elt_t*)VFT_MMConcreteClass;
+  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((int)0);
+  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
+  variable0 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
+  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
+  variable1 = NEW_array___Array___init(); /*new Array[MMTypeGeneric]*/
+  ATTR_genericity___MMLocalClass____types(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMTypeFormalParameter]*/
+  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
+  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMConcreteProperty[71] = {
+  {(int) 2579 /* 0: Identity */},
+  {(int) 3 /* 1: MMConcreteProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMConcreteProperty < MMLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2579 /* 4: MMConcreteProperty < MMConcreteProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMConcreteProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMLocalProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMConcreteProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMConcreteProperty < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMConcreteProperty::_cname_cache */
+/* 2: Attribute MMConcreteProperty::_recv_alone */
+/* 3: Attribute MMConcreteProperty::_signature_cache */
+/* 4: Attribute MMConcreteProperty::_name */
+/* 5: Attribute MMConcreteProperty::_local_class */
+/* 6: Attribute MMConcreteProperty::_global */
+/* 7: Attribute MMConcreteProperty::_super_prop */
+/* 8: Attribute MMConcreteProperty::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMConcreteProperty::_cprhe */
+/* 11: Attribute MMConcreteProperty::_need_super */
+val_t NEW_MMConcreteProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_MMConcreteProperty;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMSignature[53] = {
+  {(int) 91 /* 0: Identity */},
+  {(int) 3 /* 1: MMSignature < Object: superclass typecheck marker */},
+  {(int) 91 /* 2: MMSignature < MMSignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMSignature___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSignature < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) vararg___MMSignature___vararg_rank},
+  {(int) vararg___MMSignature___vararg_rank__eq},
+  {(int) vararg___MMSignature___has_vararg},
+  {(int) genericity___MMSignature___adaptation_to},
+  {(int) static_type___MMSignature___init},
+  {(int) vararg___MMSignature___adaptation_to},
+  {(int) 1 /* 46: MMSignature < MMSignature: superclass init_table position */},
+  {(int) static_type___MMSignature___recv},
+  {(int) static_type___MMSignature___return_type},
+  {(int) static_type___MMSignature___arity},
+  {(int) static_type___MMSignature_____l},
+  {(int) static_type___MMSignature_____bra},
+  {(int) vararg___MMSignature___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSignature::_vararg_rank */
+/* 2: Attribute MMSignature::_recv */
+/* 3: Attribute MMSignature::_params */
+/* 4: Attribute MMSignature::_return_type */
+val_t NEW_MMSignature(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMSignature;
+  ATTR_vararg___MMSignature____vararg_rank(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_MMSignature();
+  vararg___MMSignature___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMAncestor[49] = {
+  {(int) 123 /* 0: Identity */},
+  {(int) 3 /* 1: MMAncestor < Object: superclass typecheck marker */},
+  {(int) 123 /* 2: MMAncestor < MMAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMAncestor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMAncestor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) inheritance___MMAncestor___add_in},
+  {(int) 1 /* 41: MMAncestor < MMAncestor: superclass init_table position */},
+  {(int) static_type___MMAncestor___stype},
+  {(int) static_type___MMAncestor___stype__eq},
+  {(int) static_type___MMAncestor___inheriter},
+  {(int) static_type___MMAncestor___inheriter__eq},
+  {(int) static_type___MMAncestor___is_reffinement},
+  {(int) static_type___MMAncestor___is_specialisation},
+  {(int) static_type___MMAncestor___local_class},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMAncestor::_stype */
+/* 2: Attribute MMAncestor::_inheriter */
+val_t NEW_MMAncestor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_MMAncestor;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMType[61] = {
+  {(int) 87 /* 0: Identity */},
+  {(int) 3 /* 1: MMType < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMType < MMType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMType < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMType___is_generic},
+  {(int) type_formal___MMType___direct_type},
+  {(int) 1 /* 48: MMType < MMType: superclass init_table position */},
+  {(int) static_type___MMType___module},
+  {(int) static_type___MMType___local_class},
+  {(int) static_type___MMType_____l},
+  {(int) static_type___MMType___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) static_type___MMType___select_property},
+  {(int) static_type___MMType___for_module},
+  {(int) static_type___MMType___adapt_to},
+  {(int) static_type___MMType___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_MMType(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_MMType;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMTypeClass[63] = {
+  {(int) 2543 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeClass < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeClass < MMType: superclass typecheck marker */},
+  {(int) 2543 /* 3: MMTypeClass < MMTypeClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMTypeClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMType___is_generic},
+  {(int) type_formal___MMType___direct_type},
+  {(int) 1 /* 48: MMTypeClass < MMType: superclass init_table position */},
+  {(int) static_type___MMTypeClass___module},
+  {(int) static_type___MMTypeClass___local_class},
+  {(int) static_type___MMTypeClass_____l},
+  {(int) static_type___MMType___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) static_type___MMType___select_property},
+  {(int) static_type___MMType___for_module},
+  {(int) static_type___MMType___adapt_to},
+  {(int) static_type___MMTypeClass___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeClass < MMTypeClass: superclass init_table position */},
+  {(int) static_type___MMTypeClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeClass::_local_class */
+val_t NEW_MMTypeClass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeClass;
+  return OBJ2VAL(obj);
+}
+val_t NEW_static_type___MMTypeClass___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMTypeClass();
+  static_type___MMTypeClass___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeSimpleClass[65] = {
+  {(int) 3135 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeSimpleClass < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeSimpleClass < MMType: superclass typecheck marker */},
+  {(int) 2543 /* 3: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
+  {(int) 3135 /* 4: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMTypeClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeSimpleClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeSimpleClass___is_generic},
+  {(int) type_formal___MMType___direct_type},
+  {(int) 1 /* 48: MMTypeSimpleClass < MMType: superclass init_table position */},
+  {(int) static_type___MMTypeClass___module},
+  {(int) static_type___MMTypeClass___local_class},
+  {(int) static_type___MMTypeClass_____l},
+  {(int) static_type___MMTypeSimpleClass___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) static_type___MMTypeSimpleClass___select_property},
+  {(int) static_type___MMTypeSimpleClass___for_module},
+  {(int) static_type___MMTypeSimpleClass___adapt_to},
+  {(int) static_type___MMTypeClass___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeSimpleClass < MMTypeClass: superclass init_table position */},
+  {(int) static_type___MMTypeClass___init},
+  {(int) 3 /* 63: MMTypeSimpleClass < MMTypeSimpleClass: superclass init_table position */},
+  {(int) static_type___MMTypeSimpleClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeSimpleClass::_local_class */
+val_t NEW_MMTypeSimpleClass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeSimpleClass;
+  return OBJ2VAL(obj);
+}
+val_t NEW_static_type___MMTypeSimpleClass___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMTypeSimpleClass();
+  static_type___MMTypeSimpleClass___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeNone[63] = {
+  {(int) 2535 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeNone < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeNone < MMType: superclass typecheck marker */},
+  {(int) 2535 /* 3: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeNone < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeNone___is_generic},
+  {(int) type_formal___MMType___direct_type},
+  {(int) 1 /* 48: MMTypeNone < MMType: superclass init_table position */},
+  {(int) static_type___MMTypeNone___module},
+  {(int) static_type___MMTypeNone___local_class},
+  {(int) static_type___MMTypeNone_____l},
+  {(int) static_type___MMTypeNone___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) static_type___MMType___select_property},
+  {(int) genericity___MMTypeNone___for_module},
+  {(int) genericity___MMTypeNone___adapt_to},
+  {(int) static_type___MMTypeNone___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeNone < MMTypeNone: superclass init_table position */},
+  {(int) static_type___MMTypeNone___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeNone::_module */
+val_t NEW_MMTypeNone(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeNone;
+  return OBJ2VAL(obj);
+}
+val_t NEW_static_type___MMTypeNone___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMTypeNone();
+  static_type___MMTypeNone___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMImplicitProperty[67] = {
+  {(int) 2567 /* 0: Identity */},
+  {(int) 3 /* 1: MMImplicitProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMImplicitProperty < MMLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2567 /* 4: MMImplicitProperty < MMImplicitProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMImplicitProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMLocalProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMImplicitProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 2 /* 65: MMImplicitProperty < MMImplicitProperty: superclass init_table position */},
+  {(int) inheritance___MMImplicitProperty___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMImplicitProperty::_cname_cache */
+/* 2: Attribute MMImplicitProperty::_recv_alone */
+/* 3: Attribute MMImplicitProperty::_signature_cache */
+/* 4: Attribute MMImplicitProperty::_name */
+/* 5: Attribute MMImplicitProperty::_local_class */
+/* 6: Attribute MMImplicitProperty::_global */
+/* 7: Attribute MMImplicitProperty::_super_prop */
+/* 8: Attribute MMImplicitProperty::_concrete_property */
+val_t NEW_MMImplicitProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitProperty;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMImplicitProperty___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMImplicitProperty();
+  inheritance___MMImplicitProperty___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMImplicitMethod[69] = {
+  {(int) 3159 /* 0: Identity */},
+  {(int) 3 /* 1: MMImplicitMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMImplicitMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMImplicitMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2567 /* 4: MMImplicitMethod < MMImplicitProperty: superclass typecheck marker */},
+  {(int) 3159 /* 5: MMImplicitMethod < MMImplicitMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMImplicitMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMImplicitMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 2 /* 64: MMImplicitMethod < MMMethod: superclass init_table position */},
+  {(int) 3 /* 65: MMImplicitMethod < MMImplicitProperty: superclass init_table position */},
+  {(int) inheritance___MMImplicitProperty___init},
+  {(int) 4 /* 67: MMImplicitMethod < MMImplicitMethod: superclass init_table position */},
+  {(int) inheritance___MMImplicitMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMImplicitMethod::_cname_cache */
+/* 2: Attribute MMImplicitMethod::_recv_alone */
+/* 3: Attribute MMImplicitMethod::_signature_cache */
+/* 4: Attribute MMImplicitMethod::_name */
+/* 5: Attribute MMImplicitMethod::_local_class */
+/* 6: Attribute MMImplicitMethod::_global */
+/* 7: Attribute MMImplicitMethod::_super_prop */
+/* 8: Attribute MMImplicitMethod::_concrete_property */
+val_t NEW_MMImplicitMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitMethod;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMImplicitMethod___init(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_MMImplicitMethod();
+  inheritance___MMImplicitMethod___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMImplicitAttribute[67] = {
+  {(int) 3163 /* 0: Identity */},
+  {(int) 3 /* 1: MMImplicitAttribute < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMImplicitAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2587 /* 3: MMImplicitAttribute < MMAttribute: superclass typecheck marker */},
+  {(int) 2567 /* 4: MMImplicitAttribute < MMImplicitProperty: superclass typecheck marker */},
+  {(int) 3163 /* 5: MMImplicitAttribute < MMImplicitAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMImplicitAttribute < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMAttribute___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMImplicitAttribute < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMAttribute___compile_access},
+  {(int) 2 /* 62: MMImplicitAttribute < MMAttribute: superclass init_table position */},
+  {(int) 4 /* 63: MMImplicitAttribute < MMImplicitAttribute: superclass init_table position */},
+  {(int) inheritance___MMImplicitAttribute___init},
+  {(int) 3 /* 65: MMImplicitAttribute < MMImplicitProperty: superclass init_table position */},
+  {(int) inheritance___MMImplicitProperty___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMImplicitAttribute::_cname_cache */
+/* 2: Attribute MMImplicitAttribute::_recv_alone */
+/* 3: Attribute MMImplicitAttribute::_signature_cache */
+/* 4: Attribute MMImplicitAttribute::_name */
+/* 5: Attribute MMImplicitAttribute::_local_class */
+/* 6: Attribute MMImplicitAttribute::_global */
+/* 7: Attribute MMImplicitAttribute::_super_prop */
+/* 8: Attribute MMImplicitAttribute::_concrete_property */
+val_t NEW_MMImplicitAttribute(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitAttribute;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMImplicitAttribute___init(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_MMImplicitAttribute();
+  inheritance___MMImplicitAttribute___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMImplicitLocalClass[101] = {
+  {(int) 2571 /* 0: Identity */},
+  {(int) 3 /* 1: MMImplicitLocalClass < Object: superclass typecheck marker */},
+  {(int) 103 /* 2: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(int) 2571 /* 3: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMImplicitLocalClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMLocalClass___dump_properties},
+  {(int) genericity___MMLocalClass___get_formal},
+  {(int) genericity___MMLocalClass___register_formal},
+  {(int) genericity___MMLocalClass___get_instantiate_type},
+  {(int) genericity___MMLocalClass___formals_types},
+  {(int) static_type___MMLocalClass___get_type},
+  {(int) genericity___MMLocalClass___is_generic},
+  {(int) inheritance___MMLocalClass___compute_super_classes},
+  {(int) inheritance___MMLocalClass___compute_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_global_properties},
+  {(int) inheritance___MMLocalClass___add_direct_parent},
+  {(int) inheritance___MMLocalClass___computed_super_classes},
+  {(int) inheritance___MMLocalClass___computed_ancestors},
+  {(int) inheritance___MMLocalClass___ancestor_for},
+  {(int) abstractmetamodel___MMLocalClass_____bra},
+  {(int) inheritance___MMLocalClass___add_default_any_class},
+  {(int) inheritance___MMLocalClass___add_super_classes},
+  {(int) inheritance___MMLocalClass___add_explicit_classes},
+  {(int) inheritance___MMLocalClass___compute_super_parents},
+  {(int) inheritance___MMLocalClass___build_ancestors},
+  {(int) inheritance___MMLocalClass___group_ancestors},
+  {(int) inheritance___MMLocalClass___merge_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_local_property},
+  {(int) genericity___MMLocalClass___get_type},
+  {(int) static_type___MMLocalClass___add_ancestor},
+  {(int) static_type___MMLocalClass___ancestors},
+  {(int) static_type___MMLocalClass___ancestor},
+  {(int) 1 /* 67: MMImplicitLocalClass < MMLocalClass: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalClass___name},
+  {(int) abstractmetamodel___MMLocalClass___arity},
+  {(int) abstractmetamodel___MMLocalClass___module},
+  {(int) abstractmetamodel___MMLocalClass___abstract},
+  {(int) abstractmetamodel___MMLocalClass___abstract__eq},
+  {(int) abstractmetamodel___MMLocalClass___global},
+  {(int) abstractmetamodel___MMLocalClass___crhe},
+  {(int) abstractmetamodel___MMLocalClass___cshe},
+  {(int) abstractmetamodel___MMLocalClass___che},
+  {(int) abstractmetamodel___MMLocalClass___local_property_by_global},
+  {(int) abstractmetamodel___MMLocalClass___global_properties},
+  {(int) abstractmetamodel___MMLocalClass___properties_by_name},
+  {(int) abstractmetamodel___MMLocalClass___init},
+  {(int) abstractmetamodel___MMLocalClass___for_module},
+  {(int) abstractmetamodel___MMLocalClass___new_global},
+  {(int) abstractmetamodel___MMLocalClass___set_global},
+  {(int) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___attribute},
+  {(int) abstractmetamodel___MMLocalClass___method},
+  {(int) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(int) abstractmetamodel___MMLocalClass___register_local_property},
+  {(int) abstractmetamodel___MMLocalClass___register_global_property},
+  {(int) inheritance___MMLocalClass_____bra},
+  {(int) abstractmetamodel___MMLocalClass___context},
+  {(int) virtualtype___MMLocalClass___virtual_type},
+  {(int) compiling_global___MMLocalClass___compare},
+  {(int) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(int) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(int) compiling_base___MMLocalClass___primitive_info},
+  {(int) compiling_base___MMLocalClass___primitive_ctypes},
+  {(int) 2 /* 99: MMImplicitLocalClass < MMImplicitLocalClass: superclass init_table position */},
+  {(int) inheritance___MMImplicitLocalClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMImplicitLocalClass::_types */
+/* 2: Attribute MMImplicitLocalClass::_formals_types */
+/* 3: Attribute MMImplicitLocalClass::_direct_parents */
+/* 4: Attribute MMImplicitLocalClass::_computing_super */
+/* 5: Attribute MMImplicitLocalClass::_base_type_cache */
+/* 6: Attribute MMImplicitLocalClass::_ancestors */
+/* 7: Attribute MMImplicitLocalClass::_name */
+/* 8: Attribute MMImplicitLocalClass::_arity */
+/* 9: Attribute MMImplicitLocalClass::_module */
+/* 10: Attribute MMImplicitLocalClass::_abstract */
+/* 11: Attribute MMImplicitLocalClass::_global */
+/* 12: Attribute MMImplicitLocalClass::_crhe */
+/* 13: Attribute MMImplicitLocalClass::_cshe */
+/* 14: Attribute MMImplicitLocalClass::_che */
+/* 15: Attribute MMImplicitLocalClass::_local_property_by_global */
+/* 16: Attribute MMImplicitLocalClass::_global_properties */
+/* 17: Attribute MMImplicitLocalClass::_properties_by_name */
+/* 18: Attribute MMImplicitLocalClass::_primitive_info_cache */
+/* 19: Attribute MMImplicitLocalClass::_primitive_info_b */
+val_t NEW_MMImplicitLocalClass(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 20);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitLocalClass;
+  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((int)0);
+  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
+  variable0 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
+  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
+  variable1 = NEW_array___Array___init(); /*new Array[MMTypeGeneric]*/
+  ATTR_genericity___MMLocalClass____types(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMTypeFormalParameter]*/
+  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
+  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMImplicitLocalClass___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMImplicitLocalClass();
+  inheritance___MMImplicitLocalClass___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMRefineAncestor[51] = {
+  {(int) 2559 /* 0: Identity */},
+  {(int) 3 /* 1: MMRefineAncestor < Object: superclass typecheck marker */},
+  {(int) 123 /* 2: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
+  {(int) 2559 /* 3: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMAncestor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMRefineAncestor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) inheritance___MMAncestor___add_in},
+  {(int) 1 /* 41: MMRefineAncestor < MMAncestor: superclass init_table position */},
+  {(int) static_type___MMAncestor___stype},
+  {(int) static_type___MMAncestor___stype__eq},
+  {(int) static_type___MMAncestor___inheriter},
+  {(int) static_type___MMAncestor___inheriter__eq},
+  {(int) static_type___MMAncestor___is_reffinement},
+  {(int) static_type___MMAncestor___is_specialisation},
+  {(int) inheritance___MMRefineAncestor___local_class},
+  {(int) 2 /* 49: MMRefineAncestor < MMRefineAncestor: superclass init_table position */},
+  {(int) inheritance___MMRefineAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMRefineAncestor::_stype */
+/* 2: Attribute MMRefineAncestor::_inheriter */
+/* 3: Attribute MMRefineAncestor::_local_class */
+val_t NEW_MMRefineAncestor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMRefineAncestor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMRefineAncestor___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMRefineAncestor();
+  inheritance___MMRefineAncestor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSpecAncestor[51] = {
+  {(int) 2555 /* 0: Identity */},
+  {(int) 3 /* 1: MMSpecAncestor < Object: superclass typecheck marker */},
+  {(int) 123 /* 2: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
+  {(int) 2555 /* 3: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMAncestor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSpecAncestor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) inheritance___MMAncestor___add_in},
+  {(int) 1 /* 41: MMSpecAncestor < MMAncestor: superclass init_table position */},
+  {(int) static_type___MMAncestor___stype},
+  {(int) static_type___MMAncestor___stype__eq},
+  {(int) static_type___MMAncestor___inheriter},
+  {(int) static_type___MMAncestor___inheriter__eq},
+  {(int) static_type___MMAncestor___is_reffinement},
+  {(int) static_type___MMAncestor___is_specialisation},
+  {(int) inheritance___MMSpecAncestor___local_class},
+  {(int) 2 /* 49: MMSpecAncestor < MMSpecAncestor: superclass init_table position */},
+  {(int) inheritance___MMSpecAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSpecAncestor::_stype */
+/* 2: Attribute MMSpecAncestor::_inheriter */
+val_t NEW_MMSpecAncestor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_MMSpecAncestor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMSpecAncestor___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMSpecAncestor();
+  inheritance___MMSpecAncestor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMDefaultAncestor[51] = {
+  {(int) 2575 /* 0: Identity */},
+  {(int) 3 /* 1: MMDefaultAncestor < Object: superclass typecheck marker */},
+  {(int) 123 /* 2: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
+  {(int) 2575 /* 3: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMAncestor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMDefaultAncestor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) inheritance___MMAncestor___add_in},
+  {(int) 1 /* 41: MMDefaultAncestor < MMAncestor: superclass init_table position */},
+  {(int) static_type___MMAncestor___stype},
+  {(int) static_type___MMAncestor___stype__eq},
+  {(int) static_type___MMAncestor___inheriter},
+  {(int) static_type___MMAncestor___inheriter__eq},
+  {(int) static_type___MMAncestor___is_reffinement},
+  {(int) static_type___MMAncestor___is_specialisation},
+  {(int) inheritance___MMDefaultAncestor___local_class},
+  {(int) 2 /* 49: MMDefaultAncestor < MMDefaultAncestor: superclass init_table position */},
+  {(int) inheritance___MMDefaultAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMDefaultAncestor::_stype */
+/* 2: Attribute MMDefaultAncestor::_inheriter */
+val_t NEW_MMDefaultAncestor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_MMDefaultAncestor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_inheritance___MMDefaultAncestor___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMDefaultAncestor();
+  inheritance___MMDefaultAncestor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeFormal[65] = {
+  {(int) 2539 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeFormal < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeFormal < MMType: superclass typecheck marker */},
+  {(int) 2539 /* 3: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) type_formal___MMTypeFormal___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeFormal < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeFormal___is_generic},
+  {(int) type_formal___MMTypeFormal___direct_type},
+  {(int) 1 /* 48: MMTypeFormal < MMType: superclass init_table position */},
+  {(int) static_type___MMType___module},
+  {(int) type_formal___MMTypeFormal___local_class},
+  {(int) type_formal___MMTypeFormal_____l},
+  {(int) type_formal___MMTypeFormal___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) type_formal___MMTypeFormal___select_property},
+  {(int) static_type___MMType___for_module},
+  {(int) static_type___MMType___adapt_to},
+  {(int) static_type___MMType___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeFormal < MMTypeFormal: superclass init_table position */},
+  {(int) type_formal___MMTypeFormal___name},
+  {(int) type_formal___MMTypeFormal___bound},
+  {(int) type_formal___MMTypeFormal___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeFormal::_name */
+/* 2: Attribute MMTypeFormal::_bound */
+val_t NEW_MMTypeFormal(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeFormal;
+  return OBJ2VAL(obj);
+}
+val_t NEW_type_formal___MMTypeFormal___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMTypeFormal();
+  type_formal___MMTypeFormal___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeGeneric[70] = {
+  {(int) 3139 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeGeneric < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeGeneric < MMType: superclass typecheck marker */},
+  {(int) 2543 /* 3: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
+  {(int) 3139 /* 4: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) genericity___MMTypeGeneric___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeGeneric < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeGeneric___is_generic},
+  {(int) type_formal___MMType___direct_type},
+  {(int) 1 /* 48: MMTypeGeneric < MMType: superclass init_table position */},
+  {(int) static_type___MMTypeClass___module},
+  {(int) static_type___MMTypeClass___local_class},
+  {(int) static_type___MMTypeClass_____l},
+  {(int) genericity___MMTypeGeneric___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) genericity___MMTypeGeneric___select_property},
+  {(int) genericity___MMTypeGeneric___for_module},
+  {(int) genericity___MMTypeGeneric___adapt_to},
+  {(int) genericity___MMTypeGeneric___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeGeneric < MMTypeClass: superclass init_table position */},
+  {(int) static_type___MMTypeClass___init},
+  {(int) 3 /* 63: MMTypeGeneric < MMTypeGeneric: superclass init_table position */},
+  {(int) genericity___MMTypeGeneric___params},
+  {(int) static_type___MMTypeClass___upcast_for},
+  {(int) genericity___MMTypeGeneric___params_equals},
+  {(int) static_type___MMTypeClass___to_s},
+  {(int) genericity___MMTypeGeneric___is_subtype},
+  {(int) genericity___MMTypeGeneric___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeGeneric::_local_class */
+/* 2: Attribute MMTypeGeneric::_params */
+/* 3: Attribute MMTypeGeneric::_props */
+val_t NEW_MMTypeGeneric(void) {
+  val_t variable0;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeGeneric;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalProperty, MMLocalProperty]*/
+  ATTR_genericity___MMTypeGeneric____props(obj) = variable0;
+  return OBJ2VAL(obj);
+}
+val_t NEW_genericity___MMTypeGeneric___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMTypeGeneric();
+  genericity___MMTypeGeneric___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeFormalParameter[71] = {
+  {(int) 3143 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeFormalParameter < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(int) 2539 /* 3: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(int) 3143 /* 4: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) type_formal___MMTypeFormal___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeFormalParameter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeFormal___is_generic},
+  {(int) type_formal___MMTypeFormal___direct_type},
+  {(int) 1 /* 48: MMTypeFormalParameter < MMType: superclass init_table position */},
+  {(int) genericity___MMTypeFormalParameter___module},
+  {(int) type_formal___MMTypeFormal___local_class},
+  {(int) type_formal___MMTypeFormal_____l},
+  {(int) type_formal___MMTypeFormal___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) type_formal___MMTypeFormal___select_property},
+  {(int) genericity___MMTypeFormalParameter___for_module},
+  {(int) genericity___MMTypeFormalParameter___adapt_to},
+  {(int) genericity___MMTypeFormalParameter___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMTypeFormalParameter < MMTypeFormal: superclass init_table position */},
+  {(int) type_formal___MMTypeFormal___name},
+  {(int) type_formal___MMTypeFormal___bound},
+  {(int) type_formal___MMTypeFormal___init},
+  {(int) 3 /* 65: MMTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
+  {(int) genericity___MMTypeFormalParameter___def_class},
+  {(int) genericity___MMTypeFormalParameter___position},
+  {(int) genericity___MMTypeFormalParameter___bound__eq},
+  {(int) genericity___MMTypeFormalParameter___with_bound},
+  {(int) genericity___MMTypeFormalParameter___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeFormalParameter::_name */
+/* 2: Attribute MMTypeFormalParameter::_bound */
+/* 3: Attribute MMTypeFormalParameter::_def_class */
+/* 4: Attribute MMTypeFormalParameter::_position */
+val_t NEW_MMTypeFormalParameter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeFormalParameter;
+  ATTR_genericity___MMTypeFormalParameter____position(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_genericity___MMTypeFormalParameter___with_bound(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMTypeFormalParameter();
+  genericity___MMTypeFormalParameter___with_bound(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+val_t NEW_genericity___MMTypeFormalParameter___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMTypeFormalParameter();
+  genericity___MMTypeFormalParameter___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMTypeProperty[63] = {
+  {(int) 2531 /* 0: Identity */},
+  {(int) 3 /* 1: MMTypeProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2531 /* 3: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMTypeProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) virtualtype___MMTypeProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMTypeProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) 2 /* 61: MMTypeProperty < MMTypeProperty: superclass init_table position */},
+  {(int) virtualtype___MMTypeProperty___stype},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMTypeProperty::_cname_cache */
+/* 2: Attribute MMTypeProperty::_recv_alone */
+/* 3: Attribute MMTypeProperty::_signature_cache */
+/* 4: Attribute MMTypeProperty::_name */
+/* 5: Attribute MMTypeProperty::_local_class */
+/* 6: Attribute MMTypeProperty::_global */
+/* 7: Attribute MMTypeProperty::_super_prop */
+/* 8: Attribute MMTypeProperty::_concrete_property */
+/* 9: Attribute MMTypeProperty::_stype_cache */
+val_t NEW_MMTypeProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeProperty;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMVirtualType[68] = {
+  {(int) 3131 /* 0: Identity */},
+  {(int) 3 /* 1: MMVirtualType < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMVirtualType < MMType: superclass typecheck marker */},
+  {(int) 2539 /* 3: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
+  {(int) 3131 /* 4: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) type_formal___MMTypeFormal___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMVirtualType < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeFormal___is_generic},
+  {(int) type_formal___MMTypeFormal___direct_type},
+  {(int) 1 /* 48: MMVirtualType < MMType: superclass init_table position */},
+  {(int) static_type___MMType___module},
+  {(int) type_formal___MMTypeFormal___local_class},
+  {(int) type_formal___MMTypeFormal_____l},
+  {(int) type_formal___MMTypeFormal___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) type_formal___MMTypeFormal___select_property},
+  {(int) virtualtype___MMVirtualType___for_module},
+  {(int) virtualtype___MMVirtualType___adapt_to},
+  {(int) static_type___MMType___upcast_for},
+  {(int) virtualtype___MMVirtualType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMVirtualType < MMTypeFormal: superclass init_table position */},
+  {(int) type_formal___MMTypeFormal___name},
+  {(int) type_formal___MMTypeFormal___bound},
+  {(int) type_formal___MMTypeFormal___init},
+  {(int) 3 /* 65: MMVirtualType < MMVirtualType: superclass init_table position */},
+  {(int) virtualtype___MMVirtualType___property},
+  {(int) virtualtype___MMVirtualType___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMVirtualType::_name */
+/* 2: Attribute MMVirtualType::_bound */
+/* 3: Attribute MMVirtualType::_property */
+val_t NEW_MMVirtualType(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMVirtualType;
+  return OBJ2VAL(obj);
+}
+val_t NEW_virtualtype___MMVirtualType___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMVirtualType();
+  virtualtype___MMVirtualType___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMImplicitType[67] = {
+  {(int) 3155 /* 0: Identity */},
+  {(int) 3 /* 1: MMImplicitType < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMImplicitType < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2531 /* 3: MMImplicitType < MMTypeProperty: superclass typecheck marker */},
+  {(int) 2567 /* 4: MMImplicitType < MMImplicitProperty: superclass typecheck marker */},
+  {(int) 3155 /* 5: MMImplicitType < MMImplicitType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMImplicitType < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) virtualtype___MMTypeProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMImplicitType < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) 2 /* 61: MMImplicitType < MMTypeProperty: superclass init_table position */},
+  {(int) virtualtype___MMTypeProperty___stype},
+  {(int) 4 /* 63: MMImplicitType < MMImplicitType: superclass init_table position */},
+  {(int) virtualtype___MMImplicitType___init},
+  {(int) 3 /* 65: MMImplicitType < MMImplicitProperty: superclass init_table position */},
+  {(int) inheritance___MMImplicitProperty___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMImplicitType::_cname_cache */
+/* 2: Attribute MMImplicitType::_recv_alone */
+/* 3: Attribute MMImplicitType::_signature_cache */
+/* 4: Attribute MMImplicitType::_name */
+/* 5: Attribute MMImplicitType::_local_class */
+/* 6: Attribute MMImplicitType::_global */
+/* 7: Attribute MMImplicitType::_super_prop */
+/* 8: Attribute MMImplicitType::_concrete_property */
+/* 9: Attribute MMImplicitType::_stype_cache */
+val_t NEW_MMImplicitType(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitType;
+  return OBJ2VAL(obj);
+}
+val_t NEW_virtualtype___MMImplicitType___init(val_t p0, val_t p1) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_MMImplicitType();
+  virtualtype___MMImplicitType___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Option[56] = {
+  {(int) 71 /* 0: Identity */},
+  {(int) 3 /* 1: Option < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: Option < Option: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Option < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Option < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___Option___read_param},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Option::_names */
+/* 2: Attribute Option::_helptext */
+/* 3: Attribute Option::_mandatory */
+/* 4: Attribute Option::_context */
+/* 5: Attribute Option::_value */
+/* 6: Attribute Option::_default_value */
+val_t NEW_Option(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_Option;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___Option___init_opt(val_t p0, val_t p1, val_t p2) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Option();
+  opts___Option___init_opt(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionText[58] = {
+  {(int) 2503 /* 0: Identity */},
+  {(int) 3 /* 1: OptionText < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionText < Option: superclass typecheck marker */},
+  {(int) 2503 /* 3: OptionText < OptionText: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___OptionText___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionText < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionText < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___OptionText___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___Option___read_param},
+  {(int) 2 /* 56: OptionText < OptionText: superclass init_table position */},
+  {(int) opts___OptionText___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionText::_names */
+/* 2: Attribute OptionText::_helptext */
+/* 3: Attribute OptionText::_mandatory */
+/* 4: Attribute OptionText::_context */
+/* 5: Attribute OptionText::_value */
+/* 6: Attribute OptionText::_default_value */
+val_t NEW_OptionText(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionText;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionText___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_OptionText();
+  opts___OptionText___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionBool[58] = {
+  {(int) 2511 /* 0: Identity */},
+  {(int) 3 /* 1: OptionBool < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionBool < Option: superclass typecheck marker */},
+  {(int) 2511 /* 3: OptionBool < OptionBool: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionBool < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionBool < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___OptionBool___read_param},
+  {(int) 2 /* 56: OptionBool < OptionBool: superclass init_table position */},
+  {(int) opts___OptionBool___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionBool::_names */
+/* 2: Attribute OptionBool::_helptext */
+/* 3: Attribute OptionBool::_mandatory */
+/* 4: Attribute OptionBool::_context */
+/* 5: Attribute OptionBool::_value */
+/* 6: Attribute OptionBool::_default_value */
+val_t NEW_OptionBool(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionBool;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  ATTR_opts___Option____value(obj) = TAG_Bool((int)0);
+  ATTR_opts___Option____default_value(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionBool___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_OptionBool();
+  opts___OptionBool___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionParameter[59] = {
+  {(int) 2507 /* 0: Identity */},
+  {(int) 3 /* 1: OptionParameter < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionParameter < Option: superclass typecheck marker */},
+  {(int) 2507 /* 3: OptionParameter < OptionParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionParameter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionParameter < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___OptionParameter___read_param},
+  {(int) 2 /* 56: OptionParameter < OptionParameter: superclass init_table position */},
+  {(int) opts___OptionParameter___convert},
+  {(int) opts___OptionParameter___init_opt},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionParameter::_names */
+/* 2: Attribute OptionParameter::_helptext */
+/* 3: Attribute OptionParameter::_mandatory */
+/* 4: Attribute OptionParameter::_context */
+/* 5: Attribute OptionParameter::_value */
+/* 6: Attribute OptionParameter::_default_value */
+val_t NEW_OptionParameter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionParameter;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_OptionParameter();
+  opts___OptionParameter___init_opt(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionString[61] = {
+  {(int) 3103 /* 0: Identity */},
+  {(int) 3 /* 1: OptionString < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionString < Option: superclass typecheck marker */},
+  {(int) 2507 /* 3: OptionString < OptionParameter: superclass typecheck marker */},
+  {(int) 3103 /* 4: OptionString < OptionString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionString < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionString < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___OptionParameter___read_param},
+  {(int) 2 /* 56: OptionString < OptionParameter: superclass init_table position */},
+  {(int) opts___OptionString___convert},
+  {(int) opts___OptionParameter___init_opt},
+  {(int) 3 /* 59: OptionString < OptionString: superclass init_table position */},
+  {(int) opts___OptionString___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionString::_names */
+/* 2: Attribute OptionString::_helptext */
+/* 3: Attribute OptionString::_mandatory */
+/* 4: Attribute OptionString::_context */
+/* 5: Attribute OptionString::_value */
+/* 6: Attribute OptionString::_default_value */
+val_t NEW_OptionString(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionString;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionString___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_OptionString();
+  opts___OptionString___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionEnum[61] = {
+  {(int) 3111 /* 0: Identity */},
+  {(int) 3 /* 1: OptionEnum < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionEnum < Option: superclass typecheck marker */},
+  {(int) 2507 /* 3: OptionEnum < OptionParameter: superclass typecheck marker */},
+  {(int) 3111 /* 4: OptionEnum < OptionEnum: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionEnum < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionEnum < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___OptionEnum___pretty_default},
+  {(int) opts___OptionParameter___read_param},
+  {(int) 2 /* 56: OptionEnum < OptionParameter: superclass init_table position */},
+  {(int) opts___OptionEnum___convert},
+  {(int) opts___OptionParameter___init_opt},
+  {(int) 3 /* 59: OptionEnum < OptionEnum: superclass init_table position */},
+  {(int) opts___OptionEnum___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionEnum::_names */
+/* 2: Attribute OptionEnum::_helptext */
+/* 3: Attribute OptionEnum::_mandatory */
+/* 4: Attribute OptionEnum::_context */
+/* 5: Attribute OptionEnum::_value */
+/* 6: Attribute OptionEnum::_default_value */
+/* 7: Attribute OptionEnum::_enum */
+val_t NEW_OptionEnum(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_OptionEnum;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  ATTR_opts___Option____value(obj) = TAG_Int((int)0);
+  ATTR_opts___Option____default_value(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_OptionEnum();
+  opts___OptionEnum___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionInt[61] = {
+  {(int) 3107 /* 0: Identity */},
+  {(int) 3 /* 1: OptionInt < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionInt < Option: superclass typecheck marker */},
+  {(int) 2507 /* 3: OptionInt < OptionParameter: superclass typecheck marker */},
+  {(int) 3107 /* 4: OptionInt < OptionInt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionInt < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionInt < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___OptionParameter___read_param},
+  {(int) 2 /* 56: OptionInt < OptionParameter: superclass init_table position */},
+  {(int) opts___OptionInt___convert},
+  {(int) opts___OptionParameter___init_opt},
+  {(int) 3 /* 59: OptionInt < OptionInt: superclass init_table position */},
+  {(int) opts___OptionInt___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionInt::_names */
+/* 2: Attribute OptionInt::_helptext */
+/* 3: Attribute OptionInt::_mandatory */
+/* 4: Attribute OptionInt::_context */
+/* 5: Attribute OptionInt::_value */
+/* 6: Attribute OptionInt::_default_value */
+val_t NEW_OptionInt(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionInt;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  ATTR_opts___Option____value(obj) = TAG_Int((int)0);
+  ATTR_opts___Option____default_value(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionInt___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_OptionInt();
+  opts___OptionInt___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionArray[61] = {
+  {(int) 3115 /* 0: Identity */},
+  {(int) 3 /* 1: OptionArray < Object: superclass typecheck marker */},
+  {(int) 71 /* 2: OptionArray < Option: superclass typecheck marker */},
+  {(int) 2507 /* 3: OptionArray < OptionParameter: superclass typecheck marker */},
+  {(int) 3115 /* 4: OptionArray < OptionArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) opts___Option___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionArray < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionArray < Option: superclass init_table position */},
+  {(int) opts___Option___names},
+  {(int) opts___Option___helptext},
+  {(int) opts___Option___mandatory},
+  {(int) opts___Option___mandatory__eq},
+  {(int) opts___Option___context},
+  {(int) opts___Option___context__eq},
+  {(int) opts___Option___value},
+  {(int) opts___Option___value__eq},
+  {(int) opts___Option___default_value},
+  {(int) opts___Option___default_value__eq},
+  {(int) opts___Option___init_opt},
+  {(int) opts___Option___add_aliases},
+  {(int) opts___Option___pretty},
+  {(int) opts___Option___pretty_default},
+  {(int) opts___OptionParameter___read_param},
+  {(int) 2 /* 56: OptionArray < OptionParameter: superclass init_table position */},
+  {(int) opts___OptionArray___convert},
+  {(int) opts___OptionParameter___init_opt},
+  {(int) 3 /* 59: OptionArray < OptionArray: superclass init_table position */},
+  {(int) opts___OptionArray___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionArray::_names */
+/* 2: Attribute OptionArray::_helptext */
+/* 3: Attribute OptionArray::_mandatory */
+/* 4: Attribute OptionArray::_context */
+/* 5: Attribute OptionArray::_value */
+/* 6: Attribute OptionArray::_default_value */
+/* 7: Attribute OptionArray::_values */
+val_t NEW_OptionArray(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_OptionArray;
+  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionArray___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_OptionArray();
+  opts___OptionArray___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_OptionContext[49] = {
+  {(int) 67 /* 0: Identity */},
+  {(int) 3 /* 1: OptionContext < Object: superclass typecheck marker */},
+  {(int) 67 /* 2: OptionContext < OptionContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: OptionContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: OptionContext < OptionContext: superclass init_table position */},
+  {(int) opts___OptionContext___options},
+  {(int) opts___OptionContext___rest},
+  {(int) opts___OptionContext___usage},
+  {(int) opts___OptionContext___parse},
+  {(int) opts___OptionContext___parse_intern},
+  {(int) opts___OptionContext___add_option},
+  {(int) opts___OptionContext___init},
+  {(int) opts___OptionContext___build},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute OptionContext::_options */
+/* 2: Attribute OptionContext::_rest */
+/* 3: Attribute OptionContext::_optmap */
+val_t NEW_OptionContext(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_OptionContext;
+  return OBJ2VAL(obj);
+}
+val_t NEW_opts___OptionContext___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_OptionContext();
+  opts___OptionContext___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ToolContext[88] = {
+  {(int) 179 /* 0: Identity */},
+  {(int) 3 /* 1: ToolContext < Object: superclass typecheck marker */},
+  {(int) 119 /* 2: ToolContext < MMContext: superclass typecheck marker */},
+  {(int) 179 /* 3: ToolContext < ToolContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ToolContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) syntax___MMContext___tc},
+  {(int) syntax___MMContext___tc__eq},
+  {(int) 1 /* 42: ToolContext < MMContext: superclass init_table position */},
+  {(int) abstractmetamodel___MMContext___init},
+  {(int) abstractmetamodel___MMContext___module_hierarchy},
+  {(int) abstractmetamodel___MMContext___class_hierarchy},
+  {(int) abstractmetamodel___MMContext___modules},
+  {(int) abstractmetamodel___MMContext___add_module},
+  {(int) abstractmetamodel___MMContext___add_global_class},
+  {(int) abstractmetamodel___MMContext___add_local_class},
+  {(int) compiling_base___ToolContext___global},
+  {(int) compiling_base___ToolContext___global__eq},
+  {(int) compiling_base___ToolContext___attr_sim},
+  {(int) compiling_base___ToolContext___attr_sim__eq},
+  {(int) compiling_base___ToolContext___base_dir},
+  {(int) compiling_base___ToolContext___base_dir__eq},
+  {(int) compiling_base___ToolContext___clibdir},
+  {(int) compiling_base___ToolContext___clibdir__eq},
+  {(int) compiling_base___ToolContext___bindir},
+  {(int) compiling_base___ToolContext___bindir__eq},
+  {(int) compiling_base___ToolContext___output_file},
+  {(int) compiling_base___ToolContext___output_file__eq},
+  {(int) compiling_base___ToolContext___boost},
+  {(int) compiling_base___ToolContext___boost__eq},
+  {(int) compiling_base___ToolContext___no_cc},
+  {(int) compiling_base___ToolContext___no_cc__eq},
+  {(int) compiling_base___ToolContext___ext_prefix},
+  {(int) compiling_base___ToolContext___ext_prefix__eq},
+  {(int) 2 /* 68: ToolContext < ToolContext: superclass init_table position */},
+  {(int) mmloader___ToolContext___error_count},
+  {(int) mmloader___ToolContext___warning_count},
+  {(int) mmloader___ToolContext___error},
+  {(int) mmloader___ToolContext___warning},
+  {(int) mmloader___ToolContext___paths},
+  {(int) mmloader___ToolContext___option_context},
+  {(int) mmloader___ToolContext___opt_warn},
+  {(int) mmloader___ToolContext___opt_path},
+  {(int) mmloader___ToolContext___opt_log},
+  {(int) mmloader___ToolContext___opt_only_metamodel},
+  {(int) mmloader___ToolContext___opt_only_parse},
+  {(int) mmloader___ToolContext___opt_help},
+  {(int) mmloader___ToolContext___init},
+  {(int) mmloader___ToolContext___process_options},
+  {(int) mmloader___ToolContext___try_to_load},
+  {(int) mmloader___ToolContext___get_module_from_filename},
+  {(int) mmloader___ToolContext___get_module},
+  {(int) mmloader___ToolContext___directory_for},
+  {(int) mmloader___ToolContext___register_loader},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ToolContext::_tc */
+/* 2: Attribute ToolContext::_module_hierarchy */
+/* 3: Attribute ToolContext::_class_hierarchy */
+/* 4: Attribute ToolContext::_global_classes */
+/* 5: Attribute ToolContext::_modules */
+/* 6: Attribute ToolContext::_global */
+/* 7: Attribute ToolContext::_attr_sim */
+/* 8: Attribute ToolContext::_base_dir */
+/* 9: Attribute ToolContext::_clibdir */
+/* 10: Attribute ToolContext::_bindir */
+/* 11: Attribute ToolContext::_output_file */
+/* 12: Attribute ToolContext::_boost */
+/* 13: Attribute ToolContext::_no_cc */
+/* 14: Attribute ToolContext::_ext_prefix */
+/* 15: Attribute ToolContext::_error_count */
+/* 16: Attribute ToolContext::_warning_count */
+/* 17: Attribute ToolContext::_paths */
+/* 18: Attribute ToolContext::_loaders */
+/* 19: Attribute ToolContext::_option_context */
+/* 20: Attribute ToolContext::_opt_warn */
+/* 21: Attribute ToolContext::_opt_path */
+/* 22: Attribute ToolContext::_opt_log */
+/* 23: Attribute ToolContext::_opt_only_metamodel */
+/* 24: Attribute ToolContext::_opt_only_parse */
+/* 25: Attribute ToolContext::_opt_help */
+/* 26: Attribute ToolContext::_processing_modules */
+/* 27: Attribute ToolContext::_path_dirs */
+val_t NEW_ToolContext(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 28);
+  obj->vft = (classtable_elt_t*)VFT_ToolContext;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
+  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
+  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((int)0);
+  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((int)0);
+  variable4 = NEW_array___Array___init(); /*new Array[ModuleLoader]*/
+  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
+  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
+  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
+  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*Array::add*/;
+  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
+  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*Array::add*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*Array::add*/;
+  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
+  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
+  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*Array::add*/;
+  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
+  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*Array::add*/;
+  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
+  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*Array::add*/;
+  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
+  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
+  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*Array::add*/;
+  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*Array::add*/;
+  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*Array::add*/;
+  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
+  variable24 = NEW_hash___HashSet___init(); /*new HashSet[Symbol]*/
+  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
+  variable25 = NEW_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
+  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
+  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmloader___ToolContext___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ToolContext();
+  mmloader___ToolContext___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ModuleLoader[48] = {
+  {(int) 79 /* 0: Identity */},
+  {(int) 3 /* 1: ModuleLoader < Object: superclass typecheck marker */},
+  {(int) 79 /* 2: ModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ModuleLoader < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ModuleLoader < ModuleLoader: superclass init_table position */},
+  {(int) mmloader___ModuleLoader___file_type},
+  {(int) mmloader___ModuleLoader___try_to_load_dir},
+  {(int) mmloader___ModuleLoader___can_handle},
+  {(int) mmloader___ModuleLoader___load_and_process_module},
+  {(int) mmloader___ModuleLoader___load_module},
+  {(int) mmloader___ModuleLoader___parse_file},
+  {(int) mmloader___ModuleLoader___process_metamodel},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ModuleLoader(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ModuleLoader;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMSrcModule[93] = {
+  {(int) 2547 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcModule < Object: superclass typecheck marker */},
+  {(int) 95 /* 2: MMSrcModule < MMModule: superclass typecheck marker */},
+  {(int) 2547 /* 3: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMModule___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcModule < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMModule___dump_module_info},
+  {(int) mmloader___MMModule___filename},
+  {(int) mmloader___MMModule___filename__eq},
+  {(int) mmloader___MMModule___mtime},
+  {(int) mmloader___MMModule___mtime__eq},
+  {(int) mmloader___MMModule___import_supers_modules},
+  {(int) inheritance___MMModule___type_any},
+  {(int) inheritance___MMModule___import_global_classes},
+  {(int) inheritance___MMModule___import_local_classes},
+  {(int) static_type___MMModule___type_none},
+  {(int) 1 /* 50: MMSrcModule < MMModule: superclass init_table position */},
+  {(int) abstractmetamodel___MMModule___context},
+  {(int) abstractmetamodel___MMModule___name},
+  {(int) abstractmetamodel___MMModule___full_name},
+  {(int) abstractmetamodel___MMModule___directory},
+  {(int) abstractmetamodel___MMModule___mhe},
+  {(int) abstractmetamodel___MMModule___global_classes},
+  {(int) abstractmetamodel___MMModule___local_classes},
+  {(int) abstractmetamodel___MMModule___class_specialization_hierarchy},
+  {(int) abstractmetamodel___MMModule___explicit_imported_modules},
+  {(int) abstractmetamodel___MMModule___init},
+  {(int) abstractmetamodel___MMModule___add_super_module},
+  {(int) abstractmetamodel___MMModule___visibility_for},
+  {(int) abstractmetamodel___MMModule_____bra},
+  {(int) abstractmetamodel___MMModule___add_local_class},
+  {(int) abstractmetamodel___MMModule___class_by_name},
+  {(int) abstractmetamodel___MMModule___has_global_class_named},
+  {(int) abstractmetamodel___MMModule___global_class_named},
+  {(int) abstractmetamodel___MMModule___set_supers_class},
+  {(int) abstractmetamodel___MMModule___register_global_class},
+  {(int) compiling___MMSrcModule___compile_prog_to_c},
+  {(int) compiling___MMSrcModule___compile_main},
+  {(int) compiling___MMSrcModule___compile_separate_module},
+  {(int) compiling_global___MMSrcModule___local_analysis},
+  {(int) compiling_global___MMSrcModule___global_analysis},
+  {(int) compiling_global___MMSrcModule___append_to_table},
+  {(int) compiling_global___MMSrcModule___build_tables},
+  {(int) compiling_global___MMSrcModule___colorize},
+  {(int) compiling_global___MMSrcModule___free_color},
+  {(int) compiling_global___MMSrcModule___compile_tables_to_c},
+  {(int) compiling_global___MMSrcModule___declare_class_tables_to_c},
+  {(int) compiling_global___MMSrcModule___compile_main_part},
+  {(int) compiling_global___MMSrcModule___compile_mod_to_c},
+  {(int) compiling_global___MMSrcModule___compile_local_table_to_c},
+  {(int) syntax___MMSrcModule___process_supermodules},
+  {(int) syntax___MMSrcModule___process_syntax},
+  {(int) mmbuilder___MMSrcModule___do_mmbuilder},
+  {(int) 2 /* 87: MMSrcModule < MMSrcModule: superclass init_table position */},
+  {(int) syntax_base___MMSrcModule___node},
+  {(int) syntax_base___MMSrcModule___src_local_classes},
+  {(int) syntax_base___MMSrcModule___init},
+  {(int) control_flow___MMSrcModule___do_control_flow},
+  {(int) typing___MMSrcModule___do_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcModule::_filename */
+/* 2: Attribute MMSrcModule::_mtime */
+/* 3: Attribute MMSrcModule::_type_none */
+/* 4: Attribute MMSrcModule::_context */
+/* 5: Attribute MMSrcModule::_name */
+/* 6: Attribute MMSrcModule::_full_name */
+/* 7: Attribute MMSrcModule::_directory */
+/* 8: Attribute MMSrcModule::_mhe */
+/* 9: Attribute MMSrcModule::_global_classes */
+/* 10: Attribute MMSrcModule::_local_classes */
+/* 11: Attribute MMSrcModule::_class_specialization_hierarchy */
+/* 12: Attribute MMSrcModule::_intrude_modules */
+/* 13: Attribute MMSrcModule::_public_modules */
+/* 14: Attribute MMSrcModule::_private_modules */
+/* 15: Attribute MMSrcModule::_explicit_imported_modules */
+/* 16: Attribute MMSrcModule::_local_class_by_global */
+/* 17: Attribute MMSrcModule::_global_class_by_name */
+/* 18: Attribute MMSrcModule::_local_table */
+/* 19: Attribute MMSrcModule::_node */
+/* 20: Attribute MMSrcModule::_src_local_classes */
+val_t NEW_MMSrcModule(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 21);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcModule;
+  variable0 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMModule____global_classes(obj) = variable0;
+  variable1 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____local_classes(obj) = variable1;
+  variable2 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(obj) = variable2;
+  variable3 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____intrude_modules(obj) = variable3;
+  variable4 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____public_modules(obj) = variable4;
+  variable5 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____private_modules(obj) = variable5;
+  variable6 = NEW_hash___HashSet___init(); /*new HashSet[MMModule]*/
+  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(obj) = variable6;
+  variable7 = NEW_hash___HashMap___init(); /*new HashMap[MMGlobalClass, MMLocalClass]*/
+  ATTR_abstractmetamodel___MMModule____local_class_by_global(obj) = variable7;
+  variable8 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMModule____global_class_by_name(obj) = variable8;
+  variable9 = OBJ2VAL(obj);
+  variable10 = NEW_static_type___MMTypeNone___init(variable9); /*new MMTypeNone*/
+  ATTR_static_type___MMModule____type_none(obj) = variable10;
+  ATTR_mmloader___MMModule____mtime(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMSrcModule();
+  syntax_base___MMSrcModule___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcLocalClass[112] = {
+  {(int) 3151 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcLocalClass < Object: superclass typecheck marker */},
+  {(int) 103 /* 2: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(int) 2583 /* 3: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
+  {(int) 3151 /* 4: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalClass___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcLocalClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) abstracttool___MMLocalClass___dump_properties},
+  {(int) genericity___MMLocalClass___get_formal},
+  {(int) genericity___MMLocalClass___register_formal},
+  {(int) genericity___MMLocalClass___get_instantiate_type},
+  {(int) genericity___MMLocalClass___formals_types},
+  {(int) static_type___MMLocalClass___get_type},
+  {(int) genericity___MMLocalClass___is_generic},
+  {(int) inheritance___MMLocalClass___compute_super_classes},
+  {(int) inheritance___MMLocalClass___compute_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_global_properties},
+  {(int) inheritance___MMLocalClass___add_direct_parent},
+  {(int) inheritance___MMLocalClass___computed_super_classes},
+  {(int) inheritance___MMLocalClass___computed_ancestors},
+  {(int) inheritance___MMLocalClass___ancestor_for},
+  {(int) abstractmetamodel___MMLocalClass_____bra},
+  {(int) inheritance___MMLocalClass___add_default_any_class},
+  {(int) inheritance___MMLocalClass___add_super_classes},
+  {(int) inheritance___MMLocalClass___add_explicit_classes},
+  {(int) inheritance___MMLocalClass___compute_super_parents},
+  {(int) inheritance___MMLocalClass___build_ancestors},
+  {(int) inheritance___MMLocalClass___group_ancestors},
+  {(int) inheritance___MMLocalClass___merge_ancestors},
+  {(int) inheritance___MMLocalClass___inherit_local_property},
+  {(int) genericity___MMLocalClass___get_type},
+  {(int) static_type___MMLocalClass___add_ancestor},
+  {(int) static_type___MMLocalClass___ancestors},
+  {(int) static_type___MMLocalClass___ancestor},
+  {(int) 1 /* 67: MMSrcLocalClass < MMLocalClass: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalClass___name},
+  {(int) abstractmetamodel___MMLocalClass___arity},
+  {(int) abstractmetamodel___MMLocalClass___module},
+  {(int) abstractmetamodel___MMLocalClass___abstract},
+  {(int) abstractmetamodel___MMLocalClass___abstract__eq},
+  {(int) abstractmetamodel___MMLocalClass___global},
+  {(int) abstractmetamodel___MMLocalClass___crhe},
+  {(int) abstractmetamodel___MMLocalClass___cshe},
+  {(int) abstractmetamodel___MMLocalClass___che},
+  {(int) abstractmetamodel___MMLocalClass___local_property_by_global},
+  {(int) abstractmetamodel___MMLocalClass___global_properties},
+  {(int) abstractmetamodel___MMLocalClass___properties_by_name},
+  {(int) abstractmetamodel___MMLocalClass___init},
+  {(int) abstractmetamodel___MMLocalClass___for_module},
+  {(int) abstractmetamodel___MMLocalClass___new_global},
+  {(int) abstractmetamodel___MMLocalClass___set_global},
+  {(int) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(int) abstractmetamodel___MMLocalClass___attribute},
+  {(int) abstractmetamodel___MMLocalClass___method},
+  {(int) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(int) abstractmetamodel___MMLocalClass___register_local_property},
+  {(int) abstractmetamodel___MMLocalClass___register_global_property},
+  {(int) inheritance___MMLocalClass_____bra},
+  {(int) abstractmetamodel___MMLocalClass___context},
+  {(int) virtualtype___MMLocalClass___virtual_type},
+  {(int) compiling_global___MMLocalClass___compare},
+  {(int) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(int) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(int) compiling_base___MMLocalClass___primitive_info},
+  {(int) compiling_base___MMLocalClass___primitive_ctypes},
+  {(int) 2 /* 99: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
+  {(int) compiling_global___MMSrcLocalClass___base_attr_pos},
+  {(int) compiling_global___MMSrcLocalClass___class_color_pos},
+  {(int) compiling_global___MMSrcLocalClass___class_layout},
+  {(int) compiling_global___MMSrcLocalClass___instance_layout},
+  {(int) compiling_global___MMSrcLocalClass___build_layout_in},
+  {(int) mmbuilder___MMSrcLocalClass___add_src_local_property},
+  {(int) 3 /* 106: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalClass___nodes},
+  {(int) syntax_base___MMSrcLocalClass___formal_dict},
+  {(int) syntax_base___MMSrcLocalClass___formal_dict__eq},
+  {(int) syntax_base___MMSrcLocalClass___src_local_properties},
+  {(int) syntax_base___MMSrcLocalClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcLocalClass::_types */
+/* 2: Attribute MMSrcLocalClass::_formals_types */
+/* 3: Attribute MMSrcLocalClass::_direct_parents */
+/* 4: Attribute MMSrcLocalClass::_computing_super */
+/* 5: Attribute MMSrcLocalClass::_base_type_cache */
+/* 6: Attribute MMSrcLocalClass::_ancestors */
+/* 7: Attribute MMSrcLocalClass::_name */
+/* 8: Attribute MMSrcLocalClass::_arity */
+/* 9: Attribute MMSrcLocalClass::_module */
+/* 10: Attribute MMSrcLocalClass::_abstract */
+/* 11: Attribute MMSrcLocalClass::_global */
+/* 12: Attribute MMSrcLocalClass::_crhe */
+/* 13: Attribute MMSrcLocalClass::_cshe */
+/* 14: Attribute MMSrcLocalClass::_che */
+/* 15: Attribute MMSrcLocalClass::_local_property_by_global */
+/* 16: Attribute MMSrcLocalClass::_global_properties */
+/* 17: Attribute MMSrcLocalClass::_properties_by_name */
+/* 18: Attribute MMSrcLocalClass::_primitive_info_cache */
+/* 19: Attribute MMSrcLocalClass::_primitive_info_b */
+/* 20: Attribute MMSrcLocalClass::_base_attr_pos */
+/* 21: Attribute MMSrcLocalClass::_class_color_pos */
+/* 22: Attribute MMSrcLocalClass::_class_layout */
+/* 23: Attribute MMSrcLocalClass::_instance_layout */
+/* 24: Attribute MMSrcLocalClass::_nodes */
+/* 25: Attribute MMSrcLocalClass::_formal_dict */
+/* 26: Attribute MMSrcLocalClass::_src_local_properties */
+val_t NEW_MMSrcLocalClass(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 27);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcLocalClass;
+  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((int)0);
+  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
+  variable0 = NEW_array___Array___init(); /*new Array[MMAncestor]*/
+  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
+  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
+  variable1 = NEW_array___Array___init(); /*new Array[MMTypeGeneric]*/
+  ATTR_genericity___MMLocalClass____types(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMTypeFormalParameter]*/
+  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
+  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_MMSrcLocalClass();
+  syntax_base___MMSrcLocalClass___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcLocalProperty[74] = {
+  {(int) 3147 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcLocalProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMSrcLocalProperty < MMLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 2579 /* 4: MMSrcLocalProperty < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMSrcLocalProperty < MMSrcLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcLocalProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMLocalProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMSrcLocalProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMSrcLocalProperty < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcLocalProperty___compile_property_to_c},
+  {(int) 3 /* 72: MMSrcLocalProperty < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcLocalProperty::_cname_cache */
+/* 2: Attribute MMSrcLocalProperty::_recv_alone */
+/* 3: Attribute MMSrcLocalProperty::_signature_cache */
+/* 4: Attribute MMSrcLocalProperty::_name */
+/* 5: Attribute MMSrcLocalProperty::_local_class */
+/* 6: Attribute MMSrcLocalProperty::_global */
+/* 7: Attribute MMSrcLocalProperty::_super_prop */
+/* 8: Attribute MMSrcLocalProperty::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMSrcLocalProperty::_cprhe */
+/* 11: Attribute MMSrcLocalProperty::_need_super */
+/* 12: Attribute MMSrcLocalProperty::_node */
+val_t NEW_MMSrcLocalProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcLocalProperty;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMSrcAttribute[74] = {
+  {(int) 3287 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcAttribute < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2587 /* 3: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMSrcAttribute < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMSrcAttribute < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3287 /* 6: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcAttribute < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMAttribute___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMSrcAttribute < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMAttribute___compile_access},
+  {(int) 4 /* 62: MMSrcAttribute < MMAttribute: superclass init_table position */},
+  {(int) 5 /* 63: MMSrcAttribute < MMSrcAttribute: superclass init_table position */},
+  {(int) syntax_base___MMSrcAttribute___init},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMSrcAttribute < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcLocalProperty___compile_property_to_c},
+  {(int) 3 /* 72: MMSrcAttribute < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcAttribute::_cname_cache */
+/* 2: Attribute MMSrcAttribute::_recv_alone */
+/* 3: Attribute MMSrcAttribute::_signature_cache */
+/* 4: Attribute MMSrcAttribute::_name */
+/* 5: Attribute MMSrcAttribute::_local_class */
+/* 6: Attribute MMSrcAttribute::_global */
+/* 7: Attribute MMSrcAttribute::_super_prop */
+/* 8: Attribute MMSrcAttribute::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMSrcAttribute::_cprhe */
+/* 11: Attribute MMSrcAttribute::_need_super */
+/* 12: Attribute MMSrcAttribute::_node */
+val_t NEW_MMSrcAttribute(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcAttribute;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_MMSrcAttribute();
+  syntax_base___MMSrcAttribute___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcMethod[77] = {
+  {(int) 3283 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMSrcMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMSrcMethod < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMSrcMethod < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3283 /* 6: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMSrcMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 4 /* 64: MMSrcMethod < MMMethod: superclass init_table position */},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMSrcMethod < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcMethod___compile_property_to_c},
+  {(int) 3 /* 72: MMSrcMethod < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+  {(int) compiling_methods___MMSrcMethod___decl_csignature},
+  {(int) compiling_methods___MMSrcMethod___do_compile_inside},
+  {(int) 5 /* 76: MMSrcMethod < MMSrcMethod: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcMethod::_cname_cache */
+/* 2: Attribute MMSrcMethod::_recv_alone */
+/* 3: Attribute MMSrcMethod::_signature_cache */
+/* 4: Attribute MMSrcMethod::_name */
+/* 5: Attribute MMSrcMethod::_local_class */
+/* 6: Attribute MMSrcMethod::_global */
+/* 7: Attribute MMSrcMethod::_super_prop */
+/* 8: Attribute MMSrcMethod::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMSrcMethod::_cprhe */
+/* 11: Attribute MMSrcMethod::_need_super */
+/* 12: Attribute MMSrcMethod::_node */
+val_t NEW_MMSrcMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcMethod;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMAttrImplementationMethod[78] = {
+  {(int) 3615 /* 0: Identity */},
+  {(int) 3 /* 1: MMAttrImplementationMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMAttrImplementationMethod < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMAttrImplementationMethod < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3283 /* 6: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(int) 3615 /* 7: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMAttrImplementationMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMAttrImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 4 /* 64: MMAttrImplementationMethod < MMMethod: superclass init_table position */},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMAttrImplementationMethod < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcMethod___compile_property_to_c},
+  {(int) 3 /* 72: MMAttrImplementationMethod < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+  {(int) compiling_methods___MMSrcMethod___decl_csignature},
+  {(int) compiling_methods___MMSrcMethod___do_compile_inside},
+  {(int) 5 /* 76: MMAttrImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(int) 6 /* 77: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMAttrImplementationMethod::_cname_cache */
+/* 2: Attribute MMAttrImplementationMethod::_recv_alone */
+/* 3: Attribute MMAttrImplementationMethod::_signature_cache */
+/* 4: Attribute MMAttrImplementationMethod::_name */
+/* 5: Attribute MMAttrImplementationMethod::_local_class */
+/* 6: Attribute MMAttrImplementationMethod::_global */
+/* 7: Attribute MMAttrImplementationMethod::_super_prop */
+/* 8: Attribute MMAttrImplementationMethod::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMAttrImplementationMethod::_cprhe */
+/* 11: Attribute MMAttrImplementationMethod::_need_super */
+/* 12: Attribute MMAttrImplementationMethod::_node */
+val_t NEW_MMAttrImplementationMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMAttrImplementationMethod;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_MMReadImplementationMethod[80] = {
+  {(int) 3779 /* 0: Identity */},
+  {(int) 3 /* 1: MMReadImplementationMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMReadImplementationMethod < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMReadImplementationMethod < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3283 /* 6: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(int) 3615 /* 7: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(int) 3779 /* 8: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMReadImplementationMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMReadImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 4 /* 64: MMReadImplementationMethod < MMMethod: superclass init_table position */},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMReadImplementationMethod < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcMethod___compile_property_to_c},
+  {(int) 3 /* 72: MMReadImplementationMethod < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+  {(int) compiling_methods___MMSrcMethod___decl_csignature},
+  {(int) compiling_methods___MMReadImplementationMethod___do_compile_inside},
+  {(int) 5 /* 76: MMReadImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(int) 6 /* 77: MMReadImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(int) 7 /* 78: MMReadImplementationMethod < MMReadImplementationMethod: superclass init_table position */},
+  {(int) syntax_base___MMReadImplementationMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMReadImplementationMethod::_cname_cache */
+/* 2: Attribute MMReadImplementationMethod::_recv_alone */
+/* 3: Attribute MMReadImplementationMethod::_signature_cache */
+/* 4: Attribute MMReadImplementationMethod::_name */
+/* 5: Attribute MMReadImplementationMethod::_local_class */
+/* 6: Attribute MMReadImplementationMethod::_global */
+/* 7: Attribute MMReadImplementationMethod::_super_prop */
+/* 8: Attribute MMReadImplementationMethod::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMReadImplementationMethod::_cprhe */
+/* 11: Attribute MMReadImplementationMethod::_need_super */
+/* 12: Attribute MMReadImplementationMethod::_node */
+val_t NEW_MMReadImplementationMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMReadImplementationMethod;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_MMReadImplementationMethod();
+  syntax_base___MMReadImplementationMethod___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMWriteImplementationMethod[80] = {
+  {(int) 3775 /* 0: Identity */},
+  {(int) 3 /* 1: MMWriteImplementationMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMWriteImplementationMethod < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMWriteImplementationMethod < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3283 /* 6: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(int) 3615 /* 7: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(int) 3775 /* 8: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMWriteImplementationMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMWriteImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 4 /* 64: MMWriteImplementationMethod < MMMethod: superclass init_table position */},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMWriteImplementationMethod < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcMethod___compile_property_to_c},
+  {(int) 3 /* 72: MMWriteImplementationMethod < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+  {(int) compiling_methods___MMSrcMethod___decl_csignature},
+  {(int) compiling_methods___MMWriteImplementationMethod___do_compile_inside},
+  {(int) 5 /* 76: MMWriteImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(int) 6 /* 77: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(int) 7 /* 78: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass init_table position */},
+  {(int) syntax_base___MMWriteImplementationMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMWriteImplementationMethod::_cname_cache */
+/* 2: Attribute MMWriteImplementationMethod::_recv_alone */
+/* 3: Attribute MMWriteImplementationMethod::_signature_cache */
+/* 4: Attribute MMWriteImplementationMethod::_name */
+/* 5: Attribute MMWriteImplementationMethod::_local_class */
+/* 6: Attribute MMWriteImplementationMethod::_global */
+/* 7: Attribute MMWriteImplementationMethod::_super_prop */
+/* 8: Attribute MMWriteImplementationMethod::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMWriteImplementationMethod::_cprhe */
+/* 11: Attribute MMWriteImplementationMethod::_need_super */
+/* 12: Attribute MMWriteImplementationMethod::_node */
+val_t NEW_MMWriteImplementationMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMWriteImplementationMethod;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_MMWriteImplementationMethod();
+  syntax_base___MMWriteImplementationMethod___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMMethSrcMethod[79] = {
+  {(int) 3611 /* 0: Identity */},
+  {(int) 3 /* 1: MMMethSrcMethod < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2563 /* 3: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMMethSrcMethod < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMMethSrcMethod < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3283 /* 6: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {(int) 3611 /* 7: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMMethSrcMethod < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) inheritance___MMMethod___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMMethSrcMethod < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) compiling_methods___MMMethod___compile_call},
+  {(int) compiling_methods___MMMethod___compile_constructor_call},
+  {(int) compiling_methods___MMMethod___compile_super_call},
+  {(int) 4 /* 64: MMMethSrcMethod < MMMethod: superclass init_table position */},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMMethSrcMethod < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcMethod___compile_property_to_c},
+  {(int) 3 /* 72: MMMethSrcMethod < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+  {(int) compiling_methods___MMSrcMethod___decl_csignature},
+  {(int) compiling_methods___MMMethSrcMethod___do_compile_inside},
+  {(int) 5 /* 76: MMMethSrcMethod < MMSrcMethod: superclass init_table position */},
+  {(int) 6 /* 77: MMMethSrcMethod < MMMethSrcMethod: superclass init_table position */},
+  {(int) syntax_base___MMMethSrcMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMMethSrcMethod::_cname_cache */
+/* 2: Attribute MMMethSrcMethod::_recv_alone */
+/* 3: Attribute MMMethSrcMethod::_signature_cache */
+/* 4: Attribute MMMethSrcMethod::_name */
+/* 5: Attribute MMMethSrcMethod::_local_class */
+/* 6: Attribute MMMethSrcMethod::_global */
+/* 7: Attribute MMMethSrcMethod::_super_prop */
+/* 8: Attribute MMMethSrcMethod::_concrete_property */
+/* Instance Hole :( */
+/* 10: Attribute MMMethSrcMethod::_cprhe */
+/* 11: Attribute MMMethSrcMethod::_need_super */
+/* 12: Attribute MMMethSrcMethod::_node */
+val_t NEW_MMMethSrcMethod(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMMethSrcMethod;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_MMMethSrcMethod();
+  syntax_base___MMMethSrcMethod___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcTypeProperty[74] = {
+  {(int) 3275 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcTypeProperty < Object: superclass typecheck marker */},
+  {(int) 99 /* 2: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(int) 2531 /* 3: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {(int) 2579 /* 4: MMSrcTypeProperty < MMConcreteProperty: superclass typecheck marker */},
+  {(int) 3147 /* 5: MMSrcTypeProperty < MMSrcLocalProperty: superclass typecheck marker */},
+  {(int) 3275 /* 6: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) abstractmetamodel___MMLocalProperty___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcTypeProperty < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_base___MMLocalProperty___cname},
+  {(int) compiling_base___MMLocalProperty___color_id_for_super},
+  {(int) genericity___MMLocalProperty___recv},
+  {(int) genericity___MMLocalProperty___recv__eq},
+  {(int) genericity___MMLocalProperty___adapt_property},
+  {(int) inheritance___MMLocalProperty___inherit_from},
+  {(int) inheritance___MMLocalProperty___inherit_global},
+  {(int) virtualtype___MMTypeProperty___inherit_to},
+  {(int) genericity___MMLocalProperty___inherit_from},
+  {(int) genericity___MMLocalProperty___signature},
+  {(int) static_type___MMLocalProperty___signature__eq},
+  {(int) 1 /* 51: MMSrcTypeProperty < MMLocalProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMLocalProperty___name},
+  {(int) abstractmetamodel___MMLocalProperty___local_class},
+  {(int) abstractmetamodel___MMLocalProperty___global},
+  {(int) abstractmetamodel___MMLocalProperty___super_prop},
+  {(int) abstractmetamodel___MMLocalProperty___concrete_property},
+  {(int) abstractmetamodel___MMLocalProperty___module},
+  {(int) abstractmetamodel___MMLocalProperty___full_name},
+  {(int) abstractmetamodel___MMLocalProperty___set_global},
+  {(int) abstractmetamodel___MMLocalProperty___init},
+  {(int) 4 /* 61: MMSrcTypeProperty < MMTypeProperty: superclass init_table position */},
+  {(int) virtualtype___MMTypeProperty___stype},
+  {(int) 5 /* 63: MMSrcTypeProperty < MMSrcTypeProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcTypeProperty___init},
+  {(int) inheritance___MMConcreteProperty___is_deferred},
+  {(int) 2 /* 66: MMSrcTypeProperty < MMConcreteProperty: superclass init_table position */},
+  {(int) abstractmetamodel___MMConcreteProperty___cprhe},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super},
+  {(int) abstractmetamodel___MMConcreteProperty___need_super__eq},
+  {(int) abstractmetamodel___MMConcreteProperty___new_global},
+  {(int) compiling_methods___MMSrcLocalProperty___compile_property_to_c},
+  {(int) 3 /* 72: MMSrcTypeProperty < MMSrcLocalProperty: superclass init_table position */},
+  {(int) syntax_base___MMSrcLocalProperty___node},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcTypeProperty::_cname_cache */
+/* 2: Attribute MMSrcTypeProperty::_recv_alone */
+/* 3: Attribute MMSrcTypeProperty::_signature_cache */
+/* 4: Attribute MMSrcTypeProperty::_name */
+/* 5: Attribute MMSrcTypeProperty::_local_class */
+/* 6: Attribute MMSrcTypeProperty::_global */
+/* 7: Attribute MMSrcTypeProperty::_super_prop */
+/* 8: Attribute MMSrcTypeProperty::_concrete_property */
+/* 9: Attribute MMSrcTypeProperty::_stype_cache */
+/* 10: Attribute MMSrcTypeProperty::_cprhe */
+/* 11: Attribute MMSrcTypeProperty::_need_super */
+/* 12: Attribute MMSrcTypeProperty::_node */
+val_t NEW_MMSrcTypeProperty(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcTypeProperty;
+  ATTR_abstractmetamodel___MMConcreteProperty____need_super(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_MMSrcTypeProperty();
+  syntax_base___MMSrcTypeProperty___init(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_Variable[46] = {
+  {(int) 15 /* 0: Identity */},
+  {(int) 3 /* 1: Variable < Object: superclass typecheck marker */},
+  {(int) 15 /* 2: Variable < Variable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: Variable < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: Variable < Variable: superclass init_table position */},
+  {(int) syntax_base___Variable___name},
+  {(int) syntax_base___Variable___decl},
+  {(int) syntax_base___Variable___stype},
+  {(int) syntax_base___Variable___stype__eq},
+  {(int) syntax_base___Variable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute Variable::_name */
+/* 2: Attribute Variable::_decl */
+/* 3: Attribute Variable::_stype */
+val_t NEW_Variable(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Variable;
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___Variable___init(val_t p0, val_t p1) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_Variable();
+  syntax_base___Variable___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AbsSyntaxVisitor[64] = {
+  {(int) 2667 /* 0: Identity */},
+  {(int) 3 /* 1: AbsSyntaxVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: AbsSyntaxVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AbsSyntaxVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: AbsSyntaxVisitor < Visitor: superclass init_table position */},
+  {(int) parser_prod___Visitor___visit},
+  {(int) 2 /* 42: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AbsSyntaxVisitor::_module */
+/* 2: Attribute AbsSyntaxVisitor::_local_class */
+/* 3: Attribute AbsSyntaxVisitor::_local_property */
+/* 4: Attribute AbsSyntaxVisitor::_tc */
+val_t NEW_AbsSyntaxVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AbsSyntaxVisitor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_AbsSyntaxVisitor();
+  syntax_base___AbsSyntaxVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_CSHSorter[48] = {
+  {(int) 2655 /* 0: Identity */},
+  {(int) 3 /* 1: CSHSorter < Object: superclass typecheck marker */},
+  {(int) 175 /* 2: CSHSorter < AbstractSorter: superclass typecheck marker */},
+  {(int) 2655 /* 3: CSHSorter < CSHSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CSHSorter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: CSHSorter < AbstractSorter: superclass init_table position */},
+  {(int) mmbuilder___CSHSorter___compare},
+  {(int) sorter___AbstractSorter___sort},
+  {(int) sorter___AbstractSorter___sub_sort},
+  {(int) sorter___AbstractSorter___quick_sort},
+  {(int) sorter___AbstractSorter___bubble_sort},
+  {(int) 2 /* 46: CSHSorter < CSHSorter: superclass init_table position */},
+  {(int) mmbuilder___CSHSorter___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_CSHSorter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_CSHSorter;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___CSHSorter___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_CSHSorter();
+  mmbuilder___CSHSorter___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcAncestor[52] = {
+  {(int) 2551 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcAncestor < Object: superclass typecheck marker */},
+  {(int) 123 /* 2: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
+  {(int) 2551 /* 3: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) static_type___MMAncestor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcAncestor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) inheritance___MMAncestor___add_in},
+  {(int) 1 /* 41: MMSrcAncestor < MMAncestor: superclass init_table position */},
+  {(int) static_type___MMAncestor___stype},
+  {(int) static_type___MMAncestor___stype__eq},
+  {(int) static_type___MMAncestor___inheriter},
+  {(int) static_type___MMAncestor___inheriter__eq},
+  {(int) static_type___MMAncestor___is_reffinement},
+  {(int) static_type___MMAncestor___is_specialisation},
+  {(int) mmbuilder___MMSrcAncestor___local_class},
+  {(int) 2 /* 49: MMSrcAncestor < MMSrcAncestor: superclass init_table position */},
+  {(int) mmbuilder___MMSrcAncestor___node},
+  {(int) mmbuilder___MMSrcAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcAncestor::_stype */
+/* 2: Attribute MMSrcAncestor::_inheriter */
+/* 3: Attribute MMSrcAncestor::_node */
+/* 4: Attribute MMSrcAncestor::_local_class */
+val_t NEW_MMSrcAncestor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcAncestor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MMSrcAncestor();
+  mmbuilder___MMSrcAncestor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ClassBuilderVisitor[70] = {
+  {(int) 3215 /* 0: Identity */},
+  {(int) 3 /* 1: ClassBuilderVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: ClassBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3215 /* 4: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ClassBuilderVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ClassBuilderVisitor < Visitor: superclass init_table position */},
+  {(int) mmbuilder___ClassBuilderVisitor___visit},
+  {(int) 2 /* 42: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
+  {(int) mmbuilder___ClassBuilderVisitor___local_class_arity},
+  {(int) mmbuilder___ClassBuilderVisitor___local_class_arity__eq},
+  {(int) mmbuilder___ClassBuilderVisitor___formals},
+  {(int) mmbuilder___ClassBuilderVisitor___formals__eq},
+  {(int) mmbuilder___ClassBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ClassBuilderVisitor::_module */
+/* 2: Attribute ClassBuilderVisitor::_local_class */
+/* 3: Attribute ClassBuilderVisitor::_local_property */
+/* 4: Attribute ClassBuilderVisitor::_tc */
+/* 5: Attribute ClassBuilderVisitor::_local_class_arity */
+/* 6: Attribute ClassBuilderVisitor::_formals */
+val_t NEW_ClassBuilderVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ClassBuilderVisitor;
+  ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ClassBuilderVisitor();
+  mmbuilder___ClassBuilderVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[66] = {
+  {(int) 3211 /* 0: Identity */},
+  {(int) 3 /* 1: ClassSpecializationBuilderVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: ClassSpecializationBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3211 /* 4: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ClassSpecializationBuilderVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ClassSpecializationBuilderVisitor < Visitor: superclass init_table position */},
+  {(int) mmbuilder___ClassSpecializationBuilderVisitor___visit},
+  {(int) 2 /* 42: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
+  {(int) mmbuilder___ClassSpecializationBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ClassSpecializationBuilderVisitor::_module */
+/* 2: Attribute ClassSpecializationBuilderVisitor::_local_class */
+/* 3: Attribute ClassSpecializationBuilderVisitor::_local_property */
+/* 4: Attribute ClassSpecializationBuilderVisitor::_tc */
+val_t NEW_ClassSpecializationBuilderVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ClassSpecializationBuilderVisitor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ClassSpecializationBuilderVisitor();
+  mmbuilder___ClassSpecializationBuilderVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ClassAncestorBuilder[66] = {
+  {(int) 3219 /* 0: Identity */},
+  {(int) 3 /* 1: ClassAncestorBuilder < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: ClassAncestorBuilder < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3219 /* 4: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ClassAncestorBuilder < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ClassAncestorBuilder < Visitor: superclass init_table position */},
+  {(int) mmbuilder___ClassAncestorBuilder___visit},
+  {(int) 2 /* 42: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
+  {(int) mmbuilder___ClassAncestorBuilder___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ClassAncestorBuilder::_module */
+/* 2: Attribute ClassAncestorBuilder::_local_class */
+/* 3: Attribute ClassAncestorBuilder::_local_property */
+/* 4: Attribute ClassAncestorBuilder::_tc */
+val_t NEW_ClassAncestorBuilder(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ClassAncestorBuilder;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ClassAncestorBuilder();
+  mmbuilder___ClassAncestorBuilder___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ClassVerifierVisitor[66] = {
+  {(int) 3207 /* 0: Identity */},
+  {(int) 3 /* 1: ClassVerifierVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: ClassVerifierVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3207 /* 4: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ClassVerifierVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ClassVerifierVisitor < Visitor: superclass init_table position */},
+  {(int) mmbuilder___ClassVerifierVisitor___visit},
+  {(int) 2 /* 42: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
+  {(int) mmbuilder___ClassVerifierVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ClassVerifierVisitor::_module */
+/* 2: Attribute ClassVerifierVisitor::_local_class */
+/* 3: Attribute ClassVerifierVisitor::_local_property */
+/* 4: Attribute ClassVerifierVisitor::_tc */
+val_t NEW_ClassVerifierVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ClassVerifierVisitor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ClassVerifierVisitor();
+  mmbuilder___ClassVerifierVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PropertyBuilderVisitor[66] = {
+  {(int) 3027 /* 0: Identity */},
+  {(int) 3 /* 1: PropertyBuilderVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: PropertyBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3027 /* 4: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PropertyBuilderVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: PropertyBuilderVisitor < Visitor: superclass init_table position */},
+  {(int) mmbuilder___PropertyBuilderVisitor___visit},
+  {(int) 2 /* 42: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
+  {(int) mmbuilder___PropertyBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PropertyBuilderVisitor::_module */
+/* 2: Attribute PropertyBuilderVisitor::_local_class */
+/* 3: Attribute PropertyBuilderVisitor::_local_property */
+/* 4: Attribute PropertyBuilderVisitor::_tc */
+val_t NEW_PropertyBuilderVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PropertyBuilderVisitor;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_PropertyBuilderVisitor();
+  mmbuilder___PropertyBuilderVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PropertyVerifierVisitor[74] = {
+  {(int) 3023 /* 0: Identity */},
+  {(int) 3 /* 1: PropertyVerifierVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: PropertyVerifierVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3023 /* 4: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PropertyVerifierVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: PropertyVerifierVisitor < Visitor: superclass init_table position */},
+  {(int) mmbuilder___PropertyVerifierVisitor___visit},
+  {(int) 2 /* 42: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
+  {(int) mmbuilder___PropertyVerifierVisitor___params},
+  {(int) mmbuilder___PropertyVerifierVisitor___params__eq},
+  {(int) mmbuilder___PropertyVerifierVisitor___untyped_params},
+  {(int) mmbuilder___PropertyVerifierVisitor___untyped_params__eq},
+  {(int) mmbuilder___PropertyVerifierVisitor___vararg_rank},
+  {(int) mmbuilder___PropertyVerifierVisitor___vararg_rank__eq},
+  {(int) mmbuilder___PropertyVerifierVisitor___signature},
+  {(int) mmbuilder___PropertyVerifierVisitor___signature__eq},
+  {(int) mmbuilder___PropertyVerifierVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PropertyVerifierVisitor::_module */
+/* 2: Attribute PropertyVerifierVisitor::_local_class */
+/* 3: Attribute PropertyVerifierVisitor::_local_property */
+/* 4: Attribute PropertyVerifierVisitor::_tc */
+/* 5: Attribute PropertyVerifierVisitor::_params */
+/* 6: Attribute PropertyVerifierVisitor::_untyped_params */
+/* 7: Attribute PropertyVerifierVisitor::_vararg_rank */
+/* 8: Attribute PropertyVerifierVisitor::_signature */
+val_t NEW_PropertyVerifierVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_PropertyVerifierVisitor;
+  ATTR_mmbuilder___PropertyVerifierVisitor____vararg_rank(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_PropertyVerifierVisitor();
+  mmbuilder___PropertyVerifierVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MMSrcTypeFormalParameter[74] = {
+  {(int) 3279 /* 0: Identity */},
+  {(int) 3 /* 1: MMSrcTypeFormalParameter < Object: superclass typecheck marker */},
+  {(int) 87 /* 2: MMSrcTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(int) 2539 /* 3: MMSrcTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(int) 3143 /* 4: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {(int) 3279 /* 5: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) type_formal___MMTypeFormal___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MMSrcTypeFormalParameter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_methods___MMType___compile_cast},
+  {(int) compiling_methods___MMType___compile_type_check},
+  {(int) compiling_base___MMType___cname},
+  {(int) compiling_base___MMType___default_cvalue},
+  {(int) compiling_base___MMType___boxtype},
+  {(int) compiling_base___MMType___unboxtype},
+  {(int) genericity___MMTypeFormal___is_generic},
+  {(int) type_formal___MMTypeFormal___direct_type},
+  {(int) 1 /* 48: MMSrcTypeFormalParameter < MMType: superclass init_table position */},
+  {(int) genericity___MMTypeFormalParameter___module},
+  {(int) type_formal___MMTypeFormal___local_class},
+  {(int) type_formal___MMTypeFormal_____l},
+  {(int) type_formal___MMTypeFormal___is_supertype},
+  {(int) static_type___MMType___select_method},
+  {(int) static_type___MMType___select_attribute},
+  {(int) type_formal___MMTypeFormal___select_property},
+  {(int) genericity___MMTypeFormalParameter___for_module},
+  {(int) genericity___MMTypeFormalParameter___adapt_to},
+  {(int) genericity___MMTypeFormalParameter___upcast_for},
+  {(int) static_type___MMType___not_for_self},
+  {(int) virtualtype___MMType___select_virtual_type},
+  {(int) 2 /* 61: MMSrcTypeFormalParameter < MMTypeFormal: superclass init_table position */},
+  {(int) type_formal___MMTypeFormal___name},
+  {(int) type_formal___MMTypeFormal___bound},
+  {(int) type_formal___MMTypeFormal___init},
+  {(int) 3 /* 65: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
+  {(int) genericity___MMTypeFormalParameter___def_class},
+  {(int) genericity___MMTypeFormalParameter___position},
+  {(int) genericity___MMTypeFormalParameter___bound__eq},
+  {(int) genericity___MMTypeFormalParameter___with_bound},
+  {(int) genericity___MMTypeFormalParameter___init},
+  {(int) 4 /* 71: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass init_table position */},
+  {(int) mmbuilder___MMSrcTypeFormalParameter___node},
+  {(int) mmbuilder___MMSrcTypeFormalParameter___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MMSrcTypeFormalParameter::_name */
+/* 2: Attribute MMSrcTypeFormalParameter::_bound */
+/* 3: Attribute MMSrcTypeFormalParameter::_def_class */
+/* 4: Attribute MMSrcTypeFormalParameter::_position */
+/* 5: Attribute MMSrcTypeFormalParameter::_node */
+val_t NEW_MMSrcTypeFormalParameter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcTypeFormalParameter;
+  ATTR_genericity___MMTypeFormalParameter____position(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___MMSrcTypeFormalParameter___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_MMSrcTypeFormalParameter();
+  mmbuilder___MMSrcTypeFormalParameter___init(self, p0, p1, p2, p3, init_table);
+  return self;
+}
+const classtable_elt_t VFT_MethidAccumulator[45] = {
+  {(int) 2523 /* 0: Identity */},
+  {(int) 3 /* 1: MethidAccumulator < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: MethidAccumulator < Visitor: superclass typecheck marker */},
+  {(int) 2523 /* 3: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: MethidAccumulator < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: MethidAccumulator < Visitor: superclass init_table position */},
+  {(int) mmbuilder___MethidAccumulator___visit},
+  {(int) 2 /* 42: MethidAccumulator < MethidAccumulator: superclass init_table position */},
+  {(int) mmbuilder___MethidAccumulator___name},
+  {(int) mmbuilder___MethidAccumulator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute MethidAccumulator::_name */
+val_t NEW_MethidAccumulator(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_MethidAccumulator;
+  return OBJ2VAL(obj);
+}
+val_t NEW_mmbuilder___MethidAccumulator___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_MethidAccumulator();
+  mmbuilder___MethidAccumulator___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ControlFlowVisitor[70] = {
+  {(int) 3203 /* 0: Identity */},
+  {(int) 3 /* 1: ControlFlowVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: ControlFlowVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: ControlFlowVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 3203 /* 4: ControlFlowVisitor < ControlFlowVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ControlFlowVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ControlFlowVisitor < Visitor: superclass init_table position */},
+  {(int) control_flow___ControlFlowVisitor___visit},
+  {(int) 2 /* 42: ControlFlowVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: ControlFlowVisitor < ControlFlowVisitor: superclass init_table position */},
+  {(int) control_flow___ControlFlowVisitor___once_count},
+  {(int) control_flow___ControlFlowVisitor___once_count__eq},
+  {(int) control_flow___ControlFlowVisitor___control_flow_ctx},
+  {(int) control_flow___ControlFlowVisitor___control_flow_ctx__eq},
+  {(int) control_flow___ControlFlowVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ControlFlowVisitor::_module */
+/* 2: Attribute ControlFlowVisitor::_local_class */
+/* 3: Attribute ControlFlowVisitor::_local_property */
+/* 4: Attribute ControlFlowVisitor::_tc */
+/* 5: Attribute ControlFlowVisitor::_once_count */
+/* 6: Attribute ControlFlowVisitor::_control_flow_ctx */
+val_t NEW_ControlFlowVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ControlFlowVisitor;
+  ATTR_control_flow___ControlFlowVisitor____once_count(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_control_flow___ControlFlowVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ControlFlowVisitor();
+  control_flow___ControlFlowVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ControlFlowContext[53] = {
+  {(int) 147 /* 0: Identity */},
+  {(int) 3 /* 1: ControlFlowContext < Object: superclass typecheck marker */},
+  {(int) 147 /* 2: ControlFlowContext < ControlFlowContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ControlFlowContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ControlFlowContext < ControlFlowContext: superclass init_table position */},
+  {(int) control_flow___ControlFlowContext___prev},
+  {(int) control_flow___ControlFlowContext___has_return},
+  {(int) control_flow___ControlFlowContext___has_return__eq},
+  {(int) control_flow___ControlFlowContext___unreash},
+  {(int) control_flow___ControlFlowContext___unreash__eq},
+  {(int) control_flow___ControlFlowContext___already_unreash},
+  {(int) control_flow___ControlFlowContext___already_unreash__eq},
+  {(int) control_flow___ControlFlowContext___base_block},
+  {(int) control_flow___ControlFlowContext___base_block__eq},
+  {(int) control_flow___ControlFlowContext___sub},
+  {(int) control_flow___ControlFlowContext___init},
+  {(int) control_flow___ControlFlowContext___with},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ControlFlowContext::_prev */
+/* 2: Attribute ControlFlowContext::_has_return */
+/* 3: Attribute ControlFlowContext::_unreash */
+/* 4: Attribute ControlFlowContext::_already_unreash */
+/* 5: Attribute ControlFlowContext::_base_block */
+val_t NEW_ControlFlowContext(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ControlFlowContext;
+  ATTR_control_flow___ControlFlowContext____has_return(obj) = TAG_Bool((int)0);
+  ATTR_control_flow___ControlFlowContext____unreash(obj) = TAG_Bool((int)0);
+  ATTR_control_flow___ControlFlowContext____already_unreash(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_control_flow___ControlFlowContext___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_ControlFlowContext();
+  control_flow___ControlFlowContext___init(self, init_table);
+  return self;
+}
+val_t NEW_control_flow___ControlFlowContext___with(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_ControlFlowContext();
+  control_flow___ControlFlowContext___with(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ABlockControler[77] = {
+  {(int) 3567 /* 0: Identity */},
+  {(int) 3 /* 1: ABlockControler < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ABlockControler < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ABlockControler < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ABlockControler < PExpr: superclass typecheck marker */},
+  {(int) 3567 /* 5: ABlockControler < ABlockControler: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ABlockControler < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ABlockControler < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ABlockControler < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ABlockControler < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 4 /* 75: ABlockControler < ABlockControler: superclass init_table position */},
+  {(int) control_flow___ABlockControler___block},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ABlockControler::_parent */
+/* 2: Attribute ABlockControler::_first_token */
+/* 3: Attribute ABlockControler::_last_token */
+/* 4: Attribute ABlockControler::_stype */
+/* 5: Attribute ABlockControler::_if_true_variable_ctx */
+/* 6: Attribute ABlockControler::_block */
+val_t NEW_ABlockControler(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ABlockControler;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_AControlableBlock[78] = {
+  {(int) 3535 /* 0: Identity */},
+  {(int) 3 /* 1: AControlableBlock < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AControlableBlock < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AControlableBlock < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AControlableBlock < PExpr: superclass typecheck marker */},
+  {(int) 3535 /* 5: AControlableBlock < AControlableBlock: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AControlableBlock < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AControlableBlock < PNode: superclass init_table position */},
+  {(int) control_flow___AControlableBlock___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AControlableBlock < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___AControlableBlock___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AControlableBlock < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) compiling_methods___AControlableBlock___compile_inside_block},
+  {(int) 4 /* 76: AControlableBlock < AControlableBlock: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AControlableBlock::_parent */
+/* 2: Attribute AControlableBlock::_first_token */
+/* 3: Attribute AControlableBlock::_last_token */
+/* 4: Attribute AControlableBlock::_stype */
+/* 5: Attribute AControlableBlock::_if_true_variable_ctx */
+val_t NEW_AControlableBlock(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AControlableBlock;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_TypingVisitor[77] = {
+  {(int) 2671 /* 0: Identity */},
+  {(int) 3 /* 1: TypingVisitor < Object: superclass typecheck marker */},
+  {(int) 7 /* 2: TypingVisitor < Visitor: superclass typecheck marker */},
+  {(int) 2667 /* 3: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(int) 2671 /* 4: TypingVisitor < TypingVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TypingVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TypingVisitor < Visitor: superclass init_table position */},
+  {(int) typing___TypingVisitor___visit},
+  {(int) 2 /* 42: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(int) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(int) syntax_base___AbsSyntaxVisitor___type_int},
+  {(int) syntax_base___AbsSyntaxVisitor___type_float},
+  {(int) syntax_base___AbsSyntaxVisitor___type_char},
+  {(int) syntax_base___AbsSyntaxVisitor___type_string},
+  {(int) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(int) syntax_base___AbsSyntaxVisitor___type_array},
+  {(int) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(int) syntax_base___AbsSyntaxVisitor___type_range},
+  {(int) syntax_base___AbsSyntaxVisitor___type_none},
+  {(int) syntax_base___AbsSyntaxVisitor___module},
+  {(int) syntax_base___AbsSyntaxVisitor___module__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class},
+  {(int) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property},
+  {(int) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(int) syntax_base___AbsSyntaxVisitor___tc},
+  {(int) syntax_base___AbsSyntaxVisitor___error},
+  {(int) syntax_base___AbsSyntaxVisitor___warning},
+  {(int) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(int) syntax_base___AbsSyntaxVisitor___init},
+  {(int) 3 /* 64: TypingVisitor < TypingVisitor: superclass init_table position */},
+  {(int) typing___TypingVisitor___variable_ctx},
+  {(int) typing___TypingVisitor___variable_ctx__eq},
+  {(int) typing___TypingVisitor___self_type},
+  {(int) typing___TypingVisitor___self_type__eq},
+  {(int) typing___TypingVisitor___top_block},
+  {(int) typing___TypingVisitor___top_block__eq},
+  {(int) typing___TypingVisitor___explicit_super_init_calls},
+  {(int) typing___TypingVisitor___explicit_super_init_calls__eq},
+  {(int) typing___TypingVisitor___explicit_other_init_call},
+  {(int) typing___TypingVisitor___explicit_other_init_call__eq},
+  {(int) typing___TypingVisitor___init},
+  {(int) typing___TypingVisitor___get_default_constructor_for},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TypingVisitor::_module */
+/* 2: Attribute TypingVisitor::_local_class */
+/* 3: Attribute TypingVisitor::_local_property */
+/* 4: Attribute TypingVisitor::_tc */
+/* 5: Attribute TypingVisitor::_variable_ctx */
+/* 6: Attribute TypingVisitor::_self_type */
+/* 7: Attribute TypingVisitor::_top_block */
+/* 8: Attribute TypingVisitor::_explicit_super_init_calls */
+/* 9: Attribute TypingVisitor::_explicit_other_init_call */
+val_t NEW_TypingVisitor(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_TypingVisitor;
+  ATTR_typing___TypingVisitor____explicit_other_init_call(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_typing___TypingVisitor___init(val_t p0, val_t p1) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TypingVisitor();
+  typing___TypingVisitor___init(self, p0, p1, init_table);
+  return self;
+}
+const classtable_elt_t VFT_VariableContext[47] = {
+  {(int) 11 /* 0: Identity */},
+  {(int) 3 /* 1: VariableContext < Object: superclass typecheck marker */},
+  {(int) 11 /* 2: VariableContext < VariableContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: VariableContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: VariableContext < VariableContext: superclass init_table position */},
+  {(int) typing___VariableContext_____bra},
+  {(int) typing___VariableContext___add},
+  {(int) typing___VariableContext___stype},
+  {(int) typing___VariableContext___sub},
+  {(int) typing___VariableContext___sub_with},
+  {(int) typing___VariableContext___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute VariableContext::_dico */
+val_t NEW_VariableContext(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_VariableContext;
+  return OBJ2VAL(obj);
+}
+val_t NEW_typing___VariableContext___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_VariableContext();
+  typing___VariableContext___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_SubVariableContext[50] = {
+  {(int) 199 /* 0: Identity */},
+  {(int) 3 /* 1: SubVariableContext < Object: superclass typecheck marker */},
+  {(int) 11 /* 2: SubVariableContext < VariableContext: superclass typecheck marker */},
+  {(int) 199 /* 3: SubVariableContext < SubVariableContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: SubVariableContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: SubVariableContext < VariableContext: superclass init_table position */},
+  {(int) typing___SubVariableContext_____bra},
+  {(int) typing___VariableContext___add},
+  {(int) typing___SubVariableContext___stype},
+  {(int) typing___VariableContext___sub},
+  {(int) typing___VariableContext___sub_with},
+  {(int) typing___VariableContext___init},
+  {(int) 2 /* 47: SubVariableContext < SubVariableContext: superclass init_table position */},
+  {(int) typing___SubVariableContext___prev},
+  {(int) typing___SubVariableContext___with},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute SubVariableContext::_dico */
+/* 2: Attribute SubVariableContext::_prev */
+/* 3: Attribute SubVariableContext::_variable */
+/* 4: Attribute SubVariableContext::_var_type */
+val_t NEW_SubVariableContext(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_SubVariableContext;
+  return OBJ2VAL(obj);
+}
+val_t NEW_typing___SubVariableContext___with(val_t p0, val_t p1, val_t p2) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_SubVariableContext();
+  typing___SubVariableContext___with(self, p0, p1, p2, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AAbsSendExpr[93] = {
+  {(int) 3599 /* 0: Identity */},
+  {(int) 3 /* 1: AAbsSendExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: AAbsSendExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: AAbsSendExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: AAbsSendExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AAbsSendExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: AAbsSendExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: AAbsSendExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: AAbsSendExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 87: AAbsSendExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AAbsSendExpr::_parent */
+/* 2: Attribute AAbsSendExpr::_first_token */
+/* 3: Attribute AAbsSendExpr::_last_token */
+/* 4: Attribute AAbsSendExpr::_stype */
+/* 5: Attribute AAbsSendExpr::_if_true_variable_ctx */
+/* 6: Attribute AAbsSendExpr::_prop */
+/* 7: Attribute AAbsSendExpr::_arguments */
+val_t NEW_AAbsSendExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AAbsSendExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ASuperInitCall[93] = {
+  {(int) 3663 /* 0: Identity */},
+  {(int) 3 /* 1: ASuperInitCall < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASuperInitCall < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASuperInitCall < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASuperInitCall < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(int) 3663 /* 7: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ASuperInitCall < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___PNode___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___PNode___visit_all},
+  {(int) parser_prod___PNode___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 1 /* 56: ASuperInitCall < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___PNode___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 2 /* 65: ASuperInitCall < Prod: superclass init_table position */},
+  {(int) compiling_methods___PExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___PExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 3 /* 70: ASuperInitCall < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 5 /* 75: ASuperInitCall < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) 4 /* 87: ASuperInitCall < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASuperInitCall::_parent */
+/* 2: Attribute ASuperInitCall::_first_token */
+/* 3: Attribute ASuperInitCall::_last_token */
+/* 4: Attribute ASuperInitCall::_stype */
+/* 5: Attribute ASuperInitCall::_if_true_variable_ctx */
+/* 6: Attribute ASuperInitCall::_prop */
+/* 7: Attribute ASuperInitCall::_arguments */
+val_t NEW_ASuperInitCall(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ASuperInitCall;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_ASendReassignExpr[101] = {
+  {(int) 3807 /* 0: Identity */},
+  {(int) 3 /* 1: ASendReassignExpr < Object: superclass typecheck marker */},
+  {(int) 63 /* 2: ASendReassignExpr < PNode: superclass typecheck marker */},
+  {(int) 2495 /* 3: ASendReassignExpr < Prod: superclass typecheck marker */},
+  {(int) 3079 /* 4: ASendReassignExpr < PExpr: superclass typecheck marker */},
+  {(int) 3599 /* 5: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(int) 3383 /* 6: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(int) 3663 /* 7: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(int) 3791 /* 8: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(int) 3807 /* 9: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 2 /* 20: ASendReassignExpr < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) mmbuilder___PExpr___accept_class_builder},
+  {(int) mmbuilder___PNode___accept_class_specialization_builder},
+  {(int) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(int) mmbuilder___PNode___accept_class_verifier},
+  {(int) mmbuilder___PExpr___accept_property_builder},
+  {(int) mmbuilder___PExpr___accept_property_verifier},
+  {(int) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(int) parser_prod___PNode___parent},
+  {(int) parser_prod___PNode___parent__eq},
+  {(int) parser_prod___PNode___remove_child},
+  {(int) parser_prod___ASendExpr___replace_child},
+  {(int) parser_prod___Prod___replace_with},
+  {(int) parser_prod___ASendExpr___visit_all},
+  {(int) parser_prod___ASendExpr___visit_all_reverse},
+  {(int) parser_prod___Prod___locate},
+  {(int) parser_prod___PNode___printl},
+  {(int) 3 /* 56: ASendReassignExpr < PNode: superclass init_table position */},
+  {(int) control_flow___PNode___accept_control_flow},
+  {(int) typing___PNode___accept_typing},
+  {(int) typing___ASendExpr___after_typing},
+  {(int) parser_prod___Prod___first_token},
+  {(int) parser_prod___Prod___first_token__eq},
+  {(int) parser_prod___Prod___last_token},
+  {(int) parser_prod___Prod___last_token__eq},
+  {(int) parser_prod___PNode___replace_with},
+  {(int) 4 /* 65: ASendReassignExpr < Prod: superclass init_table position */},
+  {(int) compiling_methods___ASendReassignExpr___compile_expr},
+  {(int) compiling_methods___PExpr___prepare_compile_stmt},
+  {(int) compiling_methods___ASendExpr___compile_stmt},
+  {(int) typing___PExpr___stype},
+  {(int) 5 /* 70: ASendReassignExpr < PExpr: superclass init_table position */},
+  {(int) typing___PExpr___is_implicit_self},
+  {(int) typing___PExpr___is_self},
+  {(int) typing___PExpr___is_variable},
+  {(int) typing___PExpr___if_true_variable_ctx},
+  {(int) 0 /* 75: ASendReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(int) typing___ASuperInitCall___register_super_init_call},
+  {(int) 8 /* 77: ASendReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(int) typing___ASendReassignExpr___read_prop},
+  {0} /* Class Hole :( */,
+  {(int) typing___AReassignFormExpr___do_lvalue_typing},
+  {(int) typing___AReassignFormExpr___assign_method},
+  {(int) 7 /* 82: ASendReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(int) parser_nodes___AReassignFormExpr___n_assign_op__eq},
+  {(int) parser_nodes___AReassignFormExpr___n_value},
+  {(int) parser_nodes___AReassignFormExpr___n_value__eq},
+  {(int) 1 /* 87: ASendReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(int) typing___AAbsSendExpr___do_typing},
+  {(int) typing___AAbsSendExpr___get_property},
+  {(int) typing___AAbsSendExpr___process_signature},
+  {(int) typing___AAbsSendExpr___prop},
+  {(int) typing___AAbsSendExpr___arguments},
+  {(int) typing___ASendExpr___name},
+  {(int) typing___ASendExpr___raw_arguments},
+  {(int) typing___ASendReassignExpr___do_all_typing},
+  {(int) parser_prod___ASendExpr___empty_init},
+  {(int) parser_prod___ASendExpr___init_asendexpr},
+  {(int) 6 /* 98: ASendReassignExpr < ASendExpr: superclass init_table position */},
+  {(int) parser_nodes___ASendExpr___n_expr},
+  {(int) parser_prod___ASendExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ASendReassignExpr::_parent */
+/* 2: Attribute ASendReassignExpr::_first_token */
+/* 3: Attribute ASendReassignExpr::_last_token */
+/* 4: Attribute ASendReassignExpr::_stype */
+/* 5: Attribute ASendReassignExpr::_if_true_variable_ctx */
+/* 6: Attribute ASendReassignExpr::_prop */
+/* 7: Attribute ASendReassignExpr::_arguments */
+/* 8: Attribute ASendReassignExpr::_assign_method */
+/* 9: Attribute ASendReassignExpr::_n_assign_op */
+/* 10: Attribute ASendReassignExpr::_n_value */
+/* 11: Attribute ASendReassignExpr::_n_expr */
+/* 12: Attribute ASendReassignExpr::_read_prop */
+val_t NEW_ASendReassignExpr(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_ASendReassignExpr;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_SrcModuleLoader[50] = {
+  {(int) 203 /* 0: Identity */},
+  {(int) 3 /* 1: SrcModuleLoader < Object: superclass typecheck marker */},
+  {(int) 79 /* 2: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {(int) 203 /* 3: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: SrcModuleLoader < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: SrcModuleLoader < ModuleLoader: superclass init_table position */},
+  {(int) syntax___SrcModuleLoader___file_type},
+  {(int) mmloader___ModuleLoader___try_to_load_dir},
+  {(int) mmloader___ModuleLoader___can_handle},
+  {(int) mmloader___ModuleLoader___load_and_process_module},
+  {(int) mmloader___ModuleLoader___load_module},
+  {(int) syntax___SrcModuleLoader___parse_file},
+  {(int) syntax___SrcModuleLoader___process_metamodel},
+  {(int) 2 /* 48: SrcModuleLoader < SrcModuleLoader: superclass init_table position */},
+  {(int) syntax___SrcModuleLoader___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_SrcModuleLoader(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_SrcModuleLoader;
+  return OBJ2VAL(obj);
+}
+val_t NEW_syntax___SrcModuleLoader___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_SrcModuleLoader();
+  syntax___SrcModuleLoader___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_AbstractCompiler[93] = {
+  {(int) 3227 /* 0: Identity */},
+  {(int) 3 /* 1: AbstractCompiler < Object: superclass typecheck marker */},
+  {(int) 119 /* 2: AbstractCompiler < MMContext: superclass typecheck marker */},
+  {(int) 179 /* 3: AbstractCompiler < ToolContext: superclass typecheck marker */},
+  {(int) 3227 /* 4: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: AbstractCompiler < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) syntax___MMContext___tc},
+  {(int) syntax___MMContext___tc__eq},
+  {(int) 1 /* 42: AbstractCompiler < MMContext: superclass init_table position */},
+  {(int) abstractmetamodel___MMContext___init},
+  {(int) abstractmetamodel___MMContext___module_hierarchy},
+  {(int) abstractmetamodel___MMContext___class_hierarchy},
+  {(int) abstractmetamodel___MMContext___modules},
+  {(int) abstractmetamodel___MMContext___add_module},
+  {(int) abstractmetamodel___MMContext___add_global_class},
+  {(int) abstractmetamodel___MMContext___add_local_class},
+  {(int) compiling_base___ToolContext___global},
+  {(int) compiling_base___ToolContext___global__eq},
+  {(int) compiling_base___ToolContext___attr_sim},
+  {(int) compiling_base___ToolContext___attr_sim__eq},
+  {(int) compiling_base___ToolContext___base_dir},
+  {(int) compiling_base___ToolContext___base_dir__eq},
+  {(int) compiling_base___ToolContext___clibdir},
+  {(int) compiling_base___ToolContext___clibdir__eq},
+  {(int) compiling_base___ToolContext___bindir},
+  {(int) compiling_base___ToolContext___bindir__eq},
+  {(int) compiling_base___ToolContext___output_file},
+  {(int) compiling_base___ToolContext___output_file__eq},
+  {(int) compiling_base___ToolContext___boost},
+  {(int) compiling_base___ToolContext___boost__eq},
+  {(int) compiling_base___ToolContext___no_cc},
+  {(int) compiling_base___ToolContext___no_cc__eq},
+  {(int) compiling_base___ToolContext___ext_prefix},
+  {(int) compiling_base___ToolContext___ext_prefix__eq},
+  {(int) 2 /* 68: AbstractCompiler < ToolContext: superclass init_table position */},
+  {(int) mmloader___ToolContext___error_count},
+  {(int) mmloader___ToolContext___warning_count},
+  {(int) mmloader___ToolContext___error},
+  {(int) mmloader___ToolContext___warning},
+  {(int) mmloader___ToolContext___paths},
+  {(int) mmloader___ToolContext___option_context},
+  {(int) mmloader___ToolContext___opt_warn},
+  {(int) mmloader___ToolContext___opt_path},
+  {(int) mmloader___ToolContext___opt_log},
+  {(int) mmloader___ToolContext___opt_only_metamodel},
+  {(int) mmloader___ToolContext___opt_only_parse},
+  {(int) mmloader___ToolContext___opt_help},
+  {(int) mmloader___ToolContext___init},
+  {(int) mmloader___ToolContext___process_options},
+  {(int) mmloader___ToolContext___try_to_load},
+  {(int) mmloader___ToolContext___get_module_from_filename},
+  {(int) mmloader___ToolContext___get_module},
+  {(int) mmloader___ToolContext___directory_for},
+  {(int) mmloader___ToolContext___register_loader},
+  {(int) 3 /* 88: AbstractCompiler < AbstractCompiler: superclass init_table position */},
+  {(int) abstracttool___AbstractCompiler___init},
+  {(int) abstracttool___AbstractCompiler___exec_cmd_line},
+  {(int) abstracttool___AbstractCompiler___perform_work},
+  {(int) abstracttool___AbstractCompiler___dump_context_info},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute AbstractCompiler::_tc */
+/* 2: Attribute AbstractCompiler::_module_hierarchy */
+/* 3: Attribute AbstractCompiler::_class_hierarchy */
+/* 4: Attribute AbstractCompiler::_global_classes */
+/* 5: Attribute AbstractCompiler::_modules */
+/* 6: Attribute AbstractCompiler::_global */
+/* 7: Attribute AbstractCompiler::_attr_sim */
+/* 8: Attribute AbstractCompiler::_base_dir */
+/* 9: Attribute AbstractCompiler::_clibdir */
+/* 10: Attribute AbstractCompiler::_bindir */
+/* 11: Attribute AbstractCompiler::_output_file */
+/* 12: Attribute AbstractCompiler::_boost */
+/* 13: Attribute AbstractCompiler::_no_cc */
+/* 14: Attribute AbstractCompiler::_ext_prefix */
+/* 15: Attribute AbstractCompiler::_error_count */
+/* 16: Attribute AbstractCompiler::_warning_count */
+/* 17: Attribute AbstractCompiler::_paths */
+/* 18: Attribute AbstractCompiler::_loaders */
+/* 19: Attribute AbstractCompiler::_option_context */
+/* 20: Attribute AbstractCompiler::_opt_warn */
+/* 21: Attribute AbstractCompiler::_opt_path */
+/* 22: Attribute AbstractCompiler::_opt_log */
+/* 23: Attribute AbstractCompiler::_opt_only_metamodel */
+/* 24: Attribute AbstractCompiler::_opt_only_parse */
+/* 25: Attribute AbstractCompiler::_opt_help */
+/* 26: Attribute AbstractCompiler::_processing_modules */
+/* 27: Attribute AbstractCompiler::_path_dirs */
+val_t NEW_AbstractCompiler(void) {
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 28);
+  obj->vft = (classtable_elt_t*)VFT_AbstractCompiler;
+  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
+  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalClass]*/
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
+  variable2 = NEW_array___Array___init(); /*new Array[MMGlobalClass]*/
+  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
+  variable3 = NEW_array___Array___init(); /*new Array[MMModule]*/
+  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
+  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((int)0);
+  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((int)0);
+  variable4 = NEW_array___Array___init(); /*new Array[ModuleLoader]*/
+  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
+  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
+  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
+  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*Array::add*/;
+  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
+  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*Array::add*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*Array::add*/;
+  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
+  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
+  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*Array::add*/;
+  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
+  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
+  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*Array::add*/;
+  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
+  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
+  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*Array::add*/;
+  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
+  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
+  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*Array::add*/;
+  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*Array::add*/;
+  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
+  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*Array::add*/;
+  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
+  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
+  variable24 = NEW_hash___HashSet___init(); /*new HashSet[Symbol]*/
+  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
+  variable25 = NEW_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
+  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
+  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
+  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_abstracttool___AbstractCompiler___init() {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_AbstractCompiler();
+  abstracttool___AbstractCompiler___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_CompilerVisitor[82] = {
+  {(int) 151 /* 0: Identity */},
+  {(int) 3 /* 1: CompilerVisitor < Object: superclass typecheck marker */},
+  {(int) 151 /* 2: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) compiling_base___CompilerVisitor___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CompilerVisitor < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) compiling_global___CompilerVisitor___global_analysis},
+  {(int) compiling_global___CompilerVisitor___global_analysis__eq},
+  {(int) compiling_methods___CompilerVisitor___compile_stmt},
+  {(int) compiling_methods___CompilerVisitor___compile_expr},
+  {(int) compiling_methods___CompilerVisitor___ensure_var},
+  {(int) compiling_methods___CompilerVisitor___add_assignment},
+  {(int) compiling_methods___CompilerVisitor___variable},
+  {(int) compiling_methods___CompilerVisitor___get_var},
+  {(int) compiling_methods___CompilerVisitor___free_var},
+  {(int) compiling_methods___CompilerVisitor___clear},
+  {(int) compiling_methods___CompilerVisitor___varnames},
+  {(int) compiling_methods___CompilerVisitor___has_return},
+  {(int) compiling_methods___CompilerVisitor___has_return__eq},
+  {(int) compiling_methods___CompilerVisitor___method_params},
+  {(int) compiling_methods___CompilerVisitor___method_params__eq},
+  {(int) compiling_methods___CompilerVisitor___method},
+  {(int) compiling_methods___CompilerVisitor___method__eq},
+  {(int) compiling_methods___CompilerVisitor___return_label},
+  {(int) compiling_methods___CompilerVisitor___return_label__eq},
+  {(int) compiling_methods___CompilerVisitor___break_label},
+  {(int) compiling_methods___CompilerVisitor___break_label__eq},
+  {(int) compiling_methods___CompilerVisitor___continue_label},
+  {(int) compiling_methods___CompilerVisitor___continue_label__eq},
+  {(int) compiling_methods___CompilerVisitor___return_value},
+  {(int) compiling_methods___CompilerVisitor___return_value__eq},
+  {(int) compiling_base___CompilerVisitor___init},
+  {(int) compiling_methods___CompilerVisitor___invoke_super_init_calls_after},
+  {(int) 1 /* 67: CompilerVisitor < CompilerVisitor: superclass init_table position */},
+  {(int) compiling_base___CompilerVisitor___add_decl},
+  {(int) compiling_base___CompilerVisitor___add_instr},
+  {(int) compiling_base___CompilerVisitor___new_number},
+  {(int) compiling_base___CompilerVisitor___indent},
+  {(int) compiling_base___CompilerVisitor___unindent},
+  {(int) compiling_base___CompilerVisitor___module},
+  {(int) compiling_base___CompilerVisitor___module__eq},
+  {(int) compiling_base___CompilerVisitor___ctx},
+  {(int) compiling_base___CompilerVisitor___ctx__eq},
+  {(int) compiling_base___CompilerVisitor___indent_level},
+  {(int) compiling_base___CompilerVisitor___indent_level__eq},
+  {(int) compiling_base___CompilerVisitor___tc},
+  {(int) compiling_base___CompilerVisitor___tc__eq},
+  {(int) compiling_methods___CompilerVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute CompilerVisitor::_global_analysis */
+/* 2: Attribute CompilerVisitor::_variable_index */
+/* 3: Attribute CompilerVisitor::_variable_index_max */
+/* 4: Attribute CompilerVisitor::_varnames */
+/* 5: Attribute CompilerVisitor::_has_return */
+/* 6: Attribute CompilerVisitor::_method_params */
+/* 7: Attribute CompilerVisitor::_method */
+/* 8: Attribute CompilerVisitor::_return_label */
+/* 9: Attribute CompilerVisitor::_break_label */
+/* 10: Attribute CompilerVisitor::_continue_label */
+/* 11: Attribute CompilerVisitor::_return_value */
+/* 12: Attribute CompilerVisitor::_number_cpt */
+/* 13: Attribute CompilerVisitor::_module */
+/* 14: Attribute CompilerVisitor::_ctx */
+/* 15: Attribute CompilerVisitor::_indent_level */
+/* 16: Attribute CompilerVisitor::_tc */
+val_t NEW_CompilerVisitor(void) {
+  val_t variable0;
+  val_t variable1;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_CompilerVisitor;
+  ATTR_compiling_base___CompilerVisitor____number_cpt(obj) = TAG_Int((int)0);
+  variable0 = NEW_compiling_base___CContext___init(); /*new CContext*/
+  ATTR_compiling_base___CompilerVisitor____ctx(obj) = variable0;
+  ATTR_compiling_base___CompilerVisitor____indent_level(obj) = TAG_Int((int)0);
+  ATTR_compiling_methods___CompilerVisitor____variable_index(obj) = TAG_Int((int)0);
+  ATTR_compiling_methods___CompilerVisitor____variable_index_max(obj) = TAG_Int((int)0);
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[Variable, String]*/
+  ATTR_compiling_methods___CompilerVisitor____varnames(obj) = variable1;
+  ATTR_compiling_methods___CompilerVisitor____has_return(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_base___CompilerVisitor___init(val_t p0) {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_CompilerVisitor();
+  compiling_methods___CompilerVisitor___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_CContext[45] = {
+  {(int) 167 /* 0: Identity */},
+  {(int) 3 /* 1: CContext < Object: superclass typecheck marker */},
+  {(int) 167 /* 2: CContext < CContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: CContext < CContext: superclass init_table position */},
+  {(int) compiling_base___CContext___decls},
+  {(int) compiling_base___CContext___instrs},
+  {(int) compiling_base___CContext___append},
+  {(int) compiling_base___CContext___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute CContext::_decls */
+/* 2: Attribute CContext::_instrs */
+val_t NEW_CContext(void) {
+  val_t variable0;
+  val_t variable1;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_CContext;
+  variable0 = NEW_array___Array___init(); /*new Array[String]*/
+  ATTR_compiling_base___CContext____decls(obj) = variable0;
+  variable1 = NEW_array___Array___init(); /*new Array[String]*/
+  ATTR_compiling_base___CContext____instrs(obj) = variable1;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_base___CContext___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_CContext();
+  compiling_base___CContext___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_PrimitiveInfo[48] = {
+  {(int) 47 /* 0: Identity */},
+  {(int) 3 /* 1: PrimitiveInfo < Object: superclass typecheck marker */},
+  {(int) 47 /* 2: PrimitiveInfo < PrimitiveInfo: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: PrimitiveInfo < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: PrimitiveInfo < PrimitiveInfo: superclass init_table position */},
+  {(int) compiling_base___PrimitiveInfo___name},
+  {(int) compiling_base___PrimitiveInfo___name__eq},
+  {(int) compiling_base___PrimitiveInfo___tagged},
+  {(int) compiling_base___PrimitiveInfo___tagged__eq},
+  {(int) compiling_base___PrimitiveInfo___cname},
+  {(int) compiling_base___PrimitiveInfo___cname__eq},
+  {(int) compiling_base___PrimitiveInfo___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute PrimitiveInfo::_name */
+/* 2: Attribute PrimitiveInfo::_tagged */
+/* 3: Attribute PrimitiveInfo::_cname */
+val_t NEW_PrimitiveInfo(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_PrimitiveInfo;
+  ATTR_compiling_base___PrimitiveInfo____tagged(obj) = TAG_Bool((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_base___PrimitiveInfo___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_PrimitiveInfo();
+  compiling_base___PrimitiveInfo___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ColorContext[44] = {
+  {(int) 159 /* 0: Identity */},
+  {(int) 3 /* 1: ColorContext < Object: superclass typecheck marker */},
+  {(int) 159 /* 2: ColorContext < ColorContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ColorContext < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ColorContext < ColorContext: superclass init_table position */},
+  {(int) compiling_global___ColorContext___color},
+  {(int) compiling_global___ColorContext___has_color},
+  {(int) compiling_global___ColorContext___color__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ColorContext::_colors */
+val_t NEW_ColorContext(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ColorContext;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_GlobalAnalysis[50] = {
+  {(int) 2619 /* 0: Identity */},
+  {(int) 3 /* 1: GlobalAnalysis < Object: superclass typecheck marker */},
+  {(int) 159 /* 2: GlobalAnalysis < ColorContext: superclass typecheck marker */},
+  {(int) 2619 /* 3: GlobalAnalysis < GlobalAnalysis: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: GlobalAnalysis < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: GlobalAnalysis < ColorContext: superclass init_table position */},
+  {(int) compiling_global___ColorContext___color},
+  {(int) compiling_global___ColorContext___has_color},
+  {(int) compiling_global___ColorContext___color__eq},
+  {(int) 2 /* 44: GlobalAnalysis < GlobalAnalysis: superclass init_table position */},
+  {(int) compiling_global___GlobalAnalysis___compiled_classes},
+  {(int) compiling_global___GlobalAnalysis___module},
+  {(int) compiling_global___GlobalAnalysis___max_class_table_length},
+  {(int) compiling_global___GlobalAnalysis___max_class_table_length__eq},
+  {(int) compiling_global___GlobalAnalysis___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute GlobalAnalysis::_colors */
+/* 2: Attribute GlobalAnalysis::_compiled_classes */
+/* 3: Attribute GlobalAnalysis::_module */
+/* 4: Attribute GlobalAnalysis::_max_class_table_length */
+val_t NEW_GlobalAnalysis(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_GlobalAnalysis;
+  ATTR_compiling_global___GlobalAnalysis____max_class_table_length(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___GlobalAnalysis___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_GlobalAnalysis();
+  compiling_global___GlobalAnalysis___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_CompiledClass[57] = {
+  {(int) 2643 /* 0: Identity */},
+  {(int) 3 /* 1: CompiledClass < Object: superclass typecheck marker */},
+  {(int) 159 /* 2: CompiledClass < ColorContext: superclass typecheck marker */},
+  {(int) 2643 /* 3: CompiledClass < CompiledClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: CompiledClass < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: CompiledClass < ColorContext: superclass init_table position */},
+  {(int) compiling_global___ColorContext___color},
+  {(int) compiling_global___ColorContext___has_color},
+  {(int) compiling_global___ColorContext___color__eq},
+  {(int) 2 /* 44: CompiledClass < CompiledClass: superclass init_table position */},
+  {(int) compiling_global___CompiledClass___local_class},
+  {(int) compiling_global___CompiledClass___id},
+  {(int) compiling_global___CompiledClass___id__eq},
+  {(int) compiling_global___CompiledClass___class_table},
+  {(int) compiling_global___CompiledClass___class_table__eq},
+  {(int) compiling_global___CompiledClass___instance_table},
+  {(int) compiling_global___CompiledClass___instance_table__eq},
+  {(int) compiling_global___CompiledClass___class_layout},
+  {(int) compiling_global___CompiledClass___class_layout__eq},
+  {(int) compiling_global___CompiledClass___instance_layout},
+  {(int) compiling_global___CompiledClass___instance_layout__eq},
+  {(int) compiling_global___CompiledClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute CompiledClass::_colors */
+/* 2: Attribute CompiledClass::_local_class */
+/* 3: Attribute CompiledClass::_id */
+/* 4: Attribute CompiledClass::_class_table */
+/* 5: Attribute CompiledClass::_instance_table */
+/* 6: Attribute CompiledClass::_class_layout */
+/* 7: Attribute CompiledClass::_instance_layout */
+val_t NEW_CompiledClass(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_CompiledClass;
+  ATTR_compiling_global___CompiledClass____id(obj) = TAG_Int((int)0);
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___CompiledClass___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_CompiledClass();
+  compiling_global___CompiledClass___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableElt[45] = {
+  {(int) 19 /* 0: Identity */},
+  {(int) 3 /* 1: TableElt < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableElt < TableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableElt < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableElt < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableElt___compile_to_c},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_TableElt(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_TableElt;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_LocalTableElt[48] = {
+  {(int) 2591 /* 0: Identity */},
+  {(int) 3 /* 1: LocalTableElt < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: LocalTableElt < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: LocalTableElt < LocalTableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: LocalTableElt < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: LocalTableElt < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableElt___compile_to_c},
+  {(int) 2 /* 45: LocalTableElt < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___LocalTableElt___symbol},
+  {(int) compiling_global___LocalTableElt___value},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_LocalTableElt(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_LocalTableElt;
+  return OBJ2VAL(obj);
+}
+const classtable_elt_t VFT_TableEltPropPos[50] = {
+  {(int) 2675 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltPropPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltPropPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltPropPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2675 /* 4: TableEltPropPos < TableEltPropPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltPropPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltPropPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableElt___compile_to_c},
+  {(int) 2 /* 45: TableEltPropPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___symbol},
+  {(int) compiling_global___TableEltPropPos___value},
+  {(int) 3 /* 48: TableEltPropPos < TableEltPropPos: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltPropPos::_property */
+val_t NEW_TableEltPropPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltPropPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltPropPos___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TableEltPropPos();
+  compiling_global___TableEltPropPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltMethPos[52] = {
+  {(int) 3235 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltMethPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltMethPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltMethPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2675 /* 4: TableEltMethPos < TableEltPropPos: superclass typecheck marker */},
+  {(int) 3235 /* 5: TableEltMethPos < TableEltMethPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltMethPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltMethPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltMethPos___compile_to_c},
+  {(int) 2 /* 45: TableEltMethPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___symbol},
+  {(int) compiling_global___TableEltPropPos___value},
+  {(int) 3 /* 48: TableEltMethPos < TableEltPropPos: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___init},
+  {(int) 4 /* 50: TableEltMethPos < TableEltMethPos: superclass init_table position */},
+  {(int) compiling_global___TableEltMethPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltMethPos::_property */
+val_t NEW_TableEltMethPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltMethPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltMethPos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltMethPos();
+  compiling_global___TableEltMethPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltSuperPos[52] = {
+  {(int) 3231 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltSuperPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltSuperPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltSuperPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2675 /* 4: TableEltSuperPos < TableEltPropPos: superclass typecheck marker */},
+  {(int) 3231 /* 5: TableEltSuperPos < TableEltSuperPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltSuperPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltSuperPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltSuperPos___compile_to_c},
+  {(int) 2 /* 45: TableEltSuperPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltSuperPos___symbol},
+  {(int) compiling_global___TableEltPropPos___value},
+  {(int) 3 /* 48: TableEltSuperPos < TableEltPropPos: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___init},
+  {(int) 4 /* 50: TableEltSuperPos < TableEltSuperPos: superclass init_table position */},
+  {(int) compiling_global___TableEltSuperPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltSuperPos::_property */
+val_t NEW_TableEltSuperPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltSuperPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltSuperPos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltSuperPos();
+  compiling_global___TableEltSuperPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltAttrPos[52] = {
+  {(int) 3251 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltAttrPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltAttrPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltAttrPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2675 /* 4: TableEltAttrPos < TableEltPropPos: superclass typecheck marker */},
+  {(int) 3251 /* 5: TableEltAttrPos < TableEltAttrPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltAttrPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltAttrPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltAttrPos___compile_to_c},
+  {(int) 2 /* 45: TableEltAttrPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___symbol},
+  {(int) compiling_global___TableEltPropPos___value},
+  {(int) 3 /* 48: TableEltAttrPos < TableEltPropPos: superclass init_table position */},
+  {(int) compiling_global___TableEltPropPos___init},
+  {(int) 4 /* 50: TableEltAttrPos < TableEltAttrPos: superclass init_table position */},
+  {(int) compiling_global___TableEltAttrPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltAttrPos::_property */
+val_t NEW_TableEltAttrPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltAttrPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltAttrPos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltAttrPos();
+  compiling_global___TableEltAttrPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltClassPos[50] = {
+  {(int) 2679 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltClassPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltClassPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltClassPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2679 /* 4: TableEltClassPos < TableEltClassPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltClassPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltClassPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableElt___compile_to_c},
+  {(int) 2 /* 45: TableEltClassPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___LocalTableElt___symbol},
+  {(int) compiling_global___LocalTableElt___value},
+  {(int) 3 /* 48: TableEltClassPos < TableEltClassPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltClassPos::_local_class */
+val_t NEW_TableEltClassPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltClassPos___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TableEltClassPos();
+  compiling_global___TableEltClassPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltClassIdPos[52] = {
+  {(int) 3243 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltClassIdPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltClassIdPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltClassIdPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2679 /* 4: TableEltClassIdPos < TableEltClassPos: superclass typecheck marker */},
+  {(int) 3243 /* 5: TableEltClassIdPos < TableEltClassIdPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltClassIdPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltClassIdPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableElt___compile_to_c},
+  {(int) 2 /* 45: TableEltClassIdPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassIdPos___symbol},
+  {(int) compiling_global___TableEltClassIdPos___value},
+  {(int) 3 /* 48: TableEltClassIdPos < TableEltClassPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___init},
+  {(int) 4 /* 50: TableEltClassIdPos < TableEltClassIdPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassIdPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltClassIdPos::_local_class */
+val_t NEW_TableEltClassIdPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassIdPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltClassIdPos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltClassIdPos();
+  compiling_global___TableEltClassIdPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltClassInitTablePos[52] = {
+  {(int) 3239 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltClassInitTablePos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltClassInitTablePos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltClassInitTablePos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2679 /* 4: TableEltClassInitTablePos < TableEltClassPos: superclass typecheck marker */},
+  {(int) 3239 /* 5: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltClassInitTablePos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltClassInitTablePos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltClassInitTablePos___compile_to_c},
+  {(int) 2 /* 45: TableEltClassInitTablePos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassInitTablePos___symbol},
+  {(int) compiling_global___TableEltClassInitTablePos___value},
+  {(int) 3 /* 48: TableEltClassInitTablePos < TableEltClassPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___init},
+  {(int) 4 /* 50: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassInitTablePos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltClassInitTablePos::_local_class */
+val_t NEW_TableEltClassInitTablePos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassInitTablePos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltClassInitTablePos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltClassInitTablePos();
+  compiling_global___TableEltClassInitTablePos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltClassColorPos[52] = {
+  {(int) 3247 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltClassColorPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltClassColorPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltClassColorPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2679 /* 4: TableEltClassColorPos < TableEltClassPos: superclass typecheck marker */},
+  {(int) 3247 /* 5: TableEltClassColorPos < TableEltClassColorPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltClassColorPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltClassColorPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltClassColorPos___compile_to_c},
+  {(int) 2 /* 45: TableEltClassColorPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassColorPos___symbol},
+  {(int) compiling_global___TableEltClassColorPos___value},
+  {(int) 3 /* 48: TableEltClassColorPos < TableEltClassPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassPos___init},
+  {(int) 4 /* 50: TableEltClassColorPos < TableEltClassColorPos: superclass init_table position */},
+  {(int) compiling_global___TableEltClassColorPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltClassColorPos::_local_class */
+val_t NEW_TableEltClassColorPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassColorPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltClassColorPos___init(val_t p0) {
+  int init_table[5] = {0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltClassColorPos();
+  compiling_global___TableEltClassColorPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltBaseAttrPos[50] = {
+  {(int) 2683 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltBaseAttrPos < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltBaseAttrPos < TableElt: superclass typecheck marker */},
+  {(int) 2591 /* 3: TableEltBaseAttrPos < LocalTableElt: superclass typecheck marker */},
+  {(int) 2683 /* 4: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltBaseAttrPos < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltBaseAttrPos < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableElt___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltBaseAttrPos___compile_to_c},
+  {(int) 2 /* 45: TableEltBaseAttrPos < LocalTableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltBaseAttrPos___symbol},
+  {(int) compiling_global___TableEltBaseAttrPos___value},
+  {(int) 3 /* 48: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass init_table position */},
+  {(int) compiling_global___TableEltBaseAttrPos___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltBaseAttrPos::_local_class */
+val_t NEW_TableEltBaseAttrPos(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableEltBaseAttrPos;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltBaseAttrPos___init(val_t p0) {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_TableEltBaseAttrPos();
+  compiling_global___TableEltBaseAttrPos___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltComposite[48] = {
+  {(int) 191 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltComposite < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltComposite < TableElt: superclass typecheck marker */},
+  {(int) 191 /* 3: TableEltComposite < TableEltComposite: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltComposite < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltComposite < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltComposite___is_related_to},
+  {(int) compiling_global___TableEltComposite___length},
+  {(int) compiling_global___TableEltComposite___item},
+  {(int) compiling_global___TableEltComposite___compile_to_c},
+  {(int) 2 /* 45: TableEltComposite < TableEltComposite: superclass init_table position */},
+  {(int) compiling_global___TableEltComposite___add},
+  {(int) compiling_global___TableEltComposite___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute TableEltComposite::_table */
+/* 2: Attribute TableEltComposite::_cc */
+/* 3: Attribute TableEltComposite::_offsets */
+val_t NEW_TableEltComposite(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_TableEltComposite;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltComposite___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_TableEltComposite();
+  compiling_global___TableEltComposite___init(self, p0, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltClassSelfId[47] = {
+  {(int) 195 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltClassSelfId < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltClassSelfId < TableElt: superclass typecheck marker */},
+  {(int) 195 /* 3: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltClassSelfId < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltClassSelfId < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltClassSelfId___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltClassSelfId___compile_to_c},
+  {(int) 2 /* 45: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
+  {(int) compiling_global___TableEltClassSelfId___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_TableEltClassSelfId(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassSelfId;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltClassSelfId___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_TableEltClassSelfId();
+  compiling_global___TableEltClassSelfId___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableEltVftPointer[47] = {
+  {(int) 187 /* 0: Identity */},
+  {(int) 3 /* 1: TableEltVftPointer < Object: superclass typecheck marker */},
+  {(int) 19 /* 2: TableEltVftPointer < TableElt: superclass typecheck marker */},
+  {(int) 187 /* 3: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: TableEltVftPointer < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: TableEltVftPointer < TableElt: superclass init_table position */},
+  {(int) compiling_global___TableEltVftPointer___is_related_to},
+  {(int) compiling_global___TableElt___length},
+  {(int) compiling_global___TableElt___item},
+  {(int) compiling_global___TableEltVftPointer___compile_to_c},
+  {(int) 2 /* 45: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
+  {(int) compiling_global___TableEltVftPointer___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_TableEltVftPointer(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_TableEltVftPointer;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___TableEltVftPointer___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_TableEltVftPointer();
+  compiling_global___TableEltVftPointer___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ClassSorter[48] = {
+  {(int) 2651 /* 0: Identity */},
+  {(int) 3 /* 1: ClassSorter < Object: superclass typecheck marker */},
+  {(int) 175 /* 2: ClassSorter < AbstractSorter: superclass typecheck marker */},
+  {(int) 2651 /* 3: ClassSorter < ClassSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(int) utils___Object___cmangle},
+  {(int) utils___Object___cmangle_table},
+  {(int) hash___Object___hash},
+  {(int) string___Object___to_s},
+  {(int) string___Object___inspect},
+  {(int) string___Object___inspect_head},
+  {(int) string___Object___args},
+  {(int) 0 /* 20: ClassSorter < Object: superclass init_table position */},
+  {(int) kernel___Object___object_id},
+  {(int) kernel___Object___is_same_type},
+  {(int) kernel___Object_____eqeq},
+  {(int) kernel___Object_____neq},
+  {(int) kernel___Object___output},
+  {(int) kernel___Object___exit},
+  {(int) kernel___Object___sys},
+  {(int) time___Object___get_time},
+  {(int) file___Object___printn},
+  {(int) file___Object___print},
+  {(int) file___Object___getc},
+  {(int) file___Object___gets},
+  {(int) file___Object___stdin},
+  {(int) file___Object___stdout},
+  {(int) file___Object___stderr},
+  {(int) math___Object___atan2},
+  {(int) math___Object___pi},
+  {(int) math___Object___srand_from},
+  {(int) math___Object___srand},
+  {(int) 1 /* 40: ClassSorter < AbstractSorter: superclass init_table position */},
+  {(int) compiling_global___ClassSorter___compare},
+  {(int) sorter___AbstractSorter___sort},
+  {(int) sorter___AbstractSorter___sub_sort},
+  {(int) sorter___AbstractSorter___quick_sort},
+  {(int) sorter___AbstractSorter___bubble_sort},
+  {(int) 2 /* 46: ClassSorter < ClassSorter: superclass init_table position */},
+  {(int) compiling_global___ClassSorter___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_ClassSorter(void) {
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_ClassSorter;
+  return OBJ2VAL(obj);
+}
+val_t NEW_compiling_global___ClassSorter___init() {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_ClassSorter();
+  compiling_global___ClassSorter___init(self, init_table);
+  return self;
+}
+classtable_t TAG2VFT[4] = {NULL, (const classtable_t)VFT_Int, (const classtable_t)VFT_Char, (const classtable_t)VFT_Bool};
+int main(int argc, char **argv) {
+  prepare_signals();
+  glob_argc = argc; glob_argv = argv;
+  G_sys = NEW_Sys();
+  nitc___Sys___main(G_sys);
+  return 0;
+}
diff --git a/c_src/opts._sep.c b/c_src/opts._sep.c
new file mode 100644 (file)
index 0000000..4e781bd
--- /dev/null
@@ -0,0 +1,698 @@
+#include "opts._sep.h"
+val_t opts___Option___names(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::names (bin/../lib/opts.nit:16,2--17:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____names( self) /*Option::_names*/;
+}
+val_t opts___Option___helptext(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::helptext (bin/../lib/opts.nit:22,2--23:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____helptext( self) /*Option::_helptext*/;
+}
+val_t opts___Option___mandatory(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::mandatory (bin/../lib/opts.nit:25,2--26:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/;
+}
+void opts___Option___mandatory__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::mandatory= (bin/../lib/opts.nit:25,2--26:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___Option___context(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::context (bin/../lib/opts.nit:28,2--29:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____context( self) /*Option::_context*/;
+}
+void opts___Option___context__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::context= (bin/../lib/opts.nit:28,2--29:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_opts___Option____context( self) /*Option::_context*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___Option___value(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::value (bin/../lib/opts.nit:31,2--32:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____value( self) /*Option::_value*/;
+}
+void opts___Option___value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::value= (bin/../lib/opts.nit:31,2--32:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_opts___Option____value( self) /*Option::_value*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___Option___default_value(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::default_value (bin/../lib/opts.nit:34,2--35:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___Option____default_value( self) /*Option::_default_value*/;
+}
+void opts___Option___default_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::default_value= (bin/../lib/opts.nit:34,2--35:45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_opts___Option____default_value( self) /*Option::_default_value*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void opts___Option___init_opt(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "opts::Option::init_opt (bin/../lib/opts.nit:37,2--47:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Option].i]) return;
+  variable3 = TAG_Bool(( variable2 /*names*/ ==  NIT_NULL /*null*/) || (( variable2 /*names*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable2 /*names*/,COLOR_kernel___Object_____eqeq))( variable2 /*names*/,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_array___Array___init(); /*new Array[String]*/
+    ATTR_opts___Option____names( self) /*Option::_names*/ = variable3;
+  } else { /*if*/
+    variable3 = ((array___Collection___to_a_t)CALL( variable2 /*names*/,COLOR_array___Collection___to_a))( variable2 /*names*/) /*Array::to_a*/;
+    ATTR_opts___Option____names( self) /*Option::_names*/ = variable3;
+  }
+  ATTR_opts___Option____helptext( self) /*Option::_helptext*/ =  variable0 /*help*/;
+  ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/ =  TAG_Bool(false);
+  ATTR_opts___Option____default_value( self) /*Option::_default_value*/ =  variable1 /*default*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Option].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void opts___Option___add_aliases(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::add_aliases (bin/../lib/opts.nit:50,2--51:59)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  /* check if p<Array[String] with p:String */
+  if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:51,19--34\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable0 =  param0;
+  variable1 = ATTR_opts___Option____names( self) /*Option::_names*/;
+  ((abstract_collection___SimpleCollection___add_all_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add_all))(variable1,  variable0 /*names*/) /*Array::add_all*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___Option___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::to_s (bin/../lib/opts.nit:53,2--54:35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((opts___Option___pretty_t)CALL( self,COLOR_opts___Option___pretty))( self,  TAG_Int(2)) /*Option::pretty*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t opts___Option___pretty(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::pretty (bin/../lib/opts.nit:56,2--66:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
+  variable1 = variable2;
+  variable2 = ATTR_opts___Option____names( self) /*Option::_names*/;
+  variable3 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable2 = ((string___Collection___join_t)CALL(variable2,COLOR_string___Collection___join))(variable2, variable3) /*Array::join*/;
+  ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable2) /*String::append*/;
+  variable2 = NEW_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
+  ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable2) /*String::append*/;
+  variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*text*/,COLOR_abstract_collection___Collection___length))( variable1 /*text*/) /*String::length*/;
+  variable3 = TAG_Int(UNTAG_Int( variable0 /*off*/)-UNTAG_Int(variable3));
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*rest*/)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
+    variable3 = ((string___String_____star_t)CALL(variable3,COLOR_string___String_____star))(variable3,  variable2 /*rest*/) /*String::**/;
+    ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable3) /*String::append*/;
+  }
+  variable3 = ((opts___Option___helptext_t)CALL( self,COLOR_opts___Option___helptext))( self) /*Option::helptext*/;
+  ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable3) /*String::append*/;
+  variable1 =  variable1 /*text*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t opts___Option___pretty_default(val_t  self) {
+  struct trace_t trace = {NULL, "opts::Option::pretty_default (bin/../lib/opts.nit:69,2--74:11)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*Option::default_value*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_string___String___init(); /*new String*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
+    variable2 = variable1;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+    variable3 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*Option::default_value*/;
+    variable4 = variable3;
+    variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+    goto return_label4;
+  }
+  variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void opts___Option___read_param(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::Option::read_param (bin/../lib/opts.nit:77,2--78:46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method read_param called (bin/../lib/opts.nit:77,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionText___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionText::init (bin/../lib/opts.nit:83,2--48)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionText].i]) return;
+  ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self,  variable0 /*text*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*OptionText::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionText].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionText___pretty(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionText::pretty (bin/../lib/opts.nit:85,2--38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((opts___OptionText___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*OptionText::to_s*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t opts___OptionText___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionText::to_s (bin/../lib/opts.nit:87,2--35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((opts___Option___helptext_t)CALL( self,COLOR_opts___Option___helptext))( self) /*OptionText::helptext*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void opts___OptionBool___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionBool::init (bin/../lib/opts.nit:94,2--68)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:94,21--36\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionBool].i]) return;
+  ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self,  variable0 /*help*/,  TAG_Bool(false),  variable1 /*names*/, init_table /*YYY*/) /*OptionBool::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionBool].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionBool___read_param(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionBool::read_param (bin/../lib/opts.nit:96,2--42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((opts___Option___value__eq_t)CALL( self,COLOR_opts___Option___value__eq))( self,  TAG_Bool(true)) /*OptionBool::value=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionParameter___convert(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionParameter::convert (bin/../lib/opts.nit:102,2--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method convert called (bin/../lib/opts.nit:102,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void opts___OptionParameter___read_param(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionParameter::read_param (bin/../lib/opts.nit:104,2--109:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((opts___Option___context_t)CALL( self,COLOR_opts___Option___context))( self) /*OptionParameter::context*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*OptionContext::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/opts.nit:106,3--24\n"); nit_exit(1);}
+  variable1 = ((abstract_collection___Iterator___is_ok_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable0 /*it*/) /*Iterator::is_ok*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/;
+    variable1 = ((opts___OptionParameter___convert_t)CALL( self,COLOR_opts___OptionParameter___convert))( self, variable1) /*OptionParameter::convert*/;
+    ((opts___Option___value__eq_t)CALL( self,COLOR_opts___Option___value__eq))( self, variable1) /*OptionParameter::value=*/;
+    ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionParameter___init_opt(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionParameter::init_opt (bin/../lib/opts.nit:115,2--32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionParameter].i]) return;
+  ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self,  param0,  param1,  param2, init_table /*YYY*/) /*Option::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionParameter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionString___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionString::init (bin/../lib/opts.nit:122,2--67)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:122,21--36\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionString].i]) return;
+  ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self,  variable0 /*help*/,  NIT_NULL /*null*/,  variable1 /*names*/, init_table /*YYY*/) /*OptionString::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionString].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionString___convert(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionString::convert (bin/../lib/opts.nit:124,2--38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  variable0 /*str*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void opts___OptionEnum___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionEnum::init (bin/../lib/opts.nit:132,2--136:55)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  /* check if p<Array[String] with p:String */
+  if (( param3!=NIT_NULL) && !VAL_ISA( param3, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:132,56--71\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionEnum].i]) return;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*enum*/ ==  NIT_NULL /*null*/) || (( variable0 /*enum*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable0 /*enum*/,COLOR_kernel___Object_____eqeq))( variable0 /*enum*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ((array___AbstractArray___length_t)CALL( variable0 /*enum*/,COLOR_abstract_collection___Collection___length))( variable0 /*enum*/) /*Array::length*/;
+    variable5 = TAG_Bool(UNTAG_Int(variable5)>UNTAG_Int( TAG_Int(0)));
+  }
+  variable4 = variable5;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: bin/../lib/opts.nit:134,3--41\n"); nit_exit(1);}
+  variable4 = ((array___Collection___to_a_t)CALL( variable0 /*enum*/,COLOR_array___Collection___to_a))( variable0 /*enum*/) /*Array::to_a*/;
+  ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/ = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable1 /*help*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(" <"), TAG_Int(2)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  variable10 = ((string___Collection___join_t)CALL( variable0 /*enum*/,COLOR_string___Collection___join))( variable0 /*enum*/, variable10) /*Array::join*/;
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+  ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self, variable4,  variable2 /*default*/,  variable3 /*names*/, init_table /*YYY*/) /*OptionEnum::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionEnum].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionEnum___convert(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionEnum::convert (bin/../lib/opts.nit:139,2--142:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/;
+  variable2 = ((array___AbstractArray___index_of_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___index_of))(variable2,  variable0 /*str*/) /*Array::index_of*/;
+  variable1 = variable2;
+  variable1 =  variable1 /*id*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t opts___OptionEnum___pretty_default(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionEnum::pretty_default (bin/../lib/opts.nit:145,2--150:12)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*OptionEnum::default_value*/;
+  variable0 = TAG_Bool((variable0)!=( NIT_NULL /*null*/));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_string___String___init(); /*new String*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
+    variable2 = variable1;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+    variable3 = ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/;
+    variable4 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*OptionEnum::default_value*/;
+    variable5 = variable4;
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable7 = variable6;
+    if (UNTAG_Bool(variable7)) { /* and */
+      variable7 = variable3;
+      variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+    }
+    variable6 = variable7;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable6 = variable3;
+    variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+    variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+    goto return_label17;
+    return_label17: while(false);
+    variable3 = variable6;
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+    goto return_label16;
+  } else { /*if*/
+    variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    goto return_label16;
+  }
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void opts___OptionInt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionInt::init (bin/../lib/opts.nit:159,2--84)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  /* check if p<Array[String] with p:String */
+  if (( param2!=NIT_NULL) && !VAL_ISA( param2, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:159,35--50\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionInt].i]) return;
+  ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self,  variable0 /*help*/,  variable1 /*default*/,  variable2 /*names*/, init_table /*YYY*/) /*OptionInt::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionInt].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionInt___convert(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionInt::convert (bin/../lib/opts.nit:161,2--43)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string___String___to_i_t)CALL( variable0 /*str*/,COLOR_string___String___to_i))( variable0 /*str*/) /*String::to_i*/;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void opts___OptionArray___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionArray::init (bin/../lib/opts.nit:168,2--171:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  /* check if p<Array[String] with p:String */
+  if (( param1!=NIT_NULL) && !VAL_ISA( param1, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:168,21--36\n"); nit_exit(1); } /*cast Array[String]*/;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionArray].i]) return;
+  variable2 = NEW_array___Array___init(); /*new Array[String]*/
+  ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/ = variable2;
+  variable2 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/;
+  ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self,  variable0 /*help*/, variable2,  variable1 /*names*/, init_table /*YYY*/) /*OptionArray::init_opt*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionArray].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t opts___OptionArray___convert(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionArray::convert (bin/../lib/opts.nit:175,2--178:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*str*/) /*Array::add*/;
+  variable1 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t opts___OptionContext___options(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionContext::options (bin/../lib/opts.nit:183,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/;
+}
+val_t opts___OptionContext___rest(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionContext::rest (bin/../lib/opts.nit:184,2--34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/;
+}
+void opts___OptionContext___usage(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionContext::usage (bin/../lib/opts.nit:188,2--200:22)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+      val_t variable5;
+      val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(1);
+  variable1 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 =  TAG_Int(3);
+    variable4 = ((opts___Option___names_t)CALL( variable2 /*i*/,COLOR_opts___Option___names))( variable2 /*i*/) /*Option::names*/;
+    variable4 = ((array___AbstractArray___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+      variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*n*/,COLOR_abstract_collection___Collection___length))( variable5 /*n*/) /*String::length*/;
+      variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( TAG_Int(2)));
+      variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int(variable6)) /*l*/;
+      continue_24: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+    }
+    break_24: while(0);
+    variable4 = TAG_Bool(UNTAG_Int( variable0 /*lmax*/)<UNTAG_Int( variable3 /*l*/));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable0 =  variable3 /*l*/ /*lmax=*/;
+    }
+    continue_23: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_23: while(0);
+  variable1 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/;
+  variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((opts___Option___pretty_t)CALL( variable2 /*i*/,COLOR_opts___Option___pretty))( variable2 /*i*/,  variable0 /*lmax*/) /*Option::pretty*/;
+    ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable3) /*OptionContext::print*/;
+    continue_25: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_25: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionContext___parse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionContext::parse (bin/../lib/opts.nit:204,2--208:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*argv*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*argv*/) /*Collection::iterator*/;
+  variable1 = variable2;
+  ((opts___OptionContext___parse_intern_t)CALL( self,COLOR_opts___OptionContext___parse_intern))( self,  variable1 /*it*/) /*OptionContext::parse_intern*/;
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionContext___parse_intern(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionContext::parse_intern (bin/../lib/opts.nit:211,2--230:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+        val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Bool(true);
+  ((opts___OptionContext___build_t)CALL( self,COLOR_opts___OptionContext___build))( self) /*OptionContext::build*/;
+  variable3 = ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 =  variable1 /*parseargs*/;
+    if (UNTAG_Bool(variable3)) { /* and */
+      variable3 = ((abstract_collection___Iterator___is_ok_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable0 /*it*/) /*Iterator::is_ok*/;
+    }
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/;
+    variable3 = variable4;
+    variable4 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
+    variable4 = TAG_Bool(( variable3 /*str*/ == variable4) || (( variable3 /*str*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable3 /*str*/,COLOR_kernel___Object_____eqeq))( variable3 /*str*/, variable4) /*String::==*/)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/;
+      variable4 = ((array___Iterator___to_a_t)CALL( variable0 /*it*/,COLOR_array___Iterator___to_a))( variable0 /*it*/) /*Iterator::to_a*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable2 /*rest*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable2 /*rest*/, variable4) /*Array::add_all*/;
+      variable1 =  TAG_Bool(false) /*parseargs=*/;
+    } else { /*if*/
+      variable4 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/;
+      variable4 = ((abstract_collection___Map___has_key_t)CALL(variable4,COLOR_abstract_collection___Map___has_key))(variable4,  variable3 /*str*/) /*Map::has_key*/;
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable5 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/;
+        variable5 = ((abstract_collection___Map_____bra_t)CALL(variable5,COLOR_abstract_collection___Map_____bra))(variable5,  variable3 /*str*/) /*Map::[]*/;
+        variable4 = variable5;
+        ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/;
+        ((opts___Option___read_param_t)CALL( variable4 /*opt*/,COLOR_opts___Option___read_param))( variable4 /*opt*/,  variable0 /*it*/) /*Option::read_param*/;
+      } else { /*if*/
+        variable4 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/;
+        ((array___AbstractArray___add_t)CALL( variable2 /*rest*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*rest*/, variable4) /*Array::add*/;
+        ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/;
+      }
+    }
+    continue_28: while(0);
+  }
+  break_28: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionContext___add_option(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "opts::OptionContext::add_option (bin/../lib/opts.nit:236,2--240:19)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  /* check if p<Array[Option] with p:Option */
+  if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at bin/../lib/opts.nit:236,18--32\n"); nit_exit(1); } /*cast Array[Option]*/;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*opts*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*opts*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    ((opts___Option___context__eq_t)CALL( variable2 /*opt*/,COLOR_opts___Option___context__eq))( variable2 /*opt*/,  self) /*Option::context=*/;
+    variable3 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*opt*/) /*Array::add*/;
+    continue_30: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_30: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "opts::OptionContext::init (bin/../lib/opts.nit:244,2--248:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionContext].i]) return;
+  variable0 = NEW_array___Array___init(); /*new Array[Option]*/
+  ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/ = variable0;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[String, Option]*/
+  ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/ = variable0;
+  variable0 = NEW_array___Array___init(); /*new Array[String]*/
+  ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void opts___OptionContext___build(val_t  self) {
+  struct trace_t trace = {NULL, "opts::OptionContext::build (bin/../lib/opts.nit:251,2--255:18)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+      val_t variable3;
+      val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable1 = ((array___ArrayIterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable1)) break; /*for*/
+    variable1 = ((array___ArrayIterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*ArrayIterator::item*/;
+    variable2 = ((opts___Option___names_t)CALL( variable1 /*o*/,COLOR_opts___Option___names))( variable1 /*o*/) /*Option::names*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable3)) break; /*for*/
+      variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+      variable4 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/;
+      ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*n*/,  variable1 /*o*/) /*Map::[]=*/;
+      continue_34: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+    }
+    break_34: while(0);
+    continue_33: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*ArrayIterator::next*/;
+  }
+  break_33: while(0);
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/opts._sep.h b/c_src/opts._sep.h
new file mode 100644 (file)
index 0000000..4fb8faa
--- /dev/null
@@ -0,0 +1,195 @@
+#ifndef opts__sep
+#define opts__sep
+#include "standard._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Option[];
+
+extern const classtable_elt_t VFT_OptionText[];
+
+extern const classtable_elt_t VFT_OptionBool[];
+
+extern const classtable_elt_t VFT_OptionParameter[];
+
+extern const classtable_elt_t VFT_OptionString[];
+
+extern const classtable_elt_t VFT_OptionEnum[];
+
+extern const classtable_elt_t VFT_OptionInt[];
+
+extern const classtable_elt_t VFT_OptionArray[];
+
+extern const classtable_elt_t VFT_OptionContext[];
+extern const int SFT_opts[];
+#define ID_Option SFT_opts[0]
+#define COLOR_Option SFT_opts[1]
+#define COLOR_opts___Option____names SFT_opts[2]
+#define COLOR_opts___Option____helptext SFT_opts[3]
+#define COLOR_opts___Option____mandatory SFT_opts[4]
+#define COLOR_opts___Option____context SFT_opts[5]
+#define COLOR_opts___Option____value SFT_opts[6]
+#define COLOR_opts___Option____default_value SFT_opts[7]
+#define INIT_TABLE_POS_Option SFT_opts[8]
+#define COLOR_opts___Option___names SFT_opts[9]
+#define COLOR_opts___Option___helptext SFT_opts[10]
+#define COLOR_opts___Option___mandatory SFT_opts[11]
+#define COLOR_opts___Option___mandatory__eq SFT_opts[12]
+#define COLOR_opts___Option___context SFT_opts[13]
+#define COLOR_opts___Option___context__eq SFT_opts[14]
+#define COLOR_opts___Option___value SFT_opts[15]
+#define COLOR_opts___Option___value__eq SFT_opts[16]
+#define COLOR_opts___Option___default_value SFT_opts[17]
+#define COLOR_opts___Option___default_value__eq SFT_opts[18]
+#define COLOR_opts___Option___init_opt SFT_opts[19]
+#define COLOR_opts___Option___add_aliases SFT_opts[20]
+#define COLOR_opts___Option___pretty SFT_opts[21]
+#define COLOR_opts___Option___pretty_default SFT_opts[22]
+#define COLOR_opts___Option___read_param SFT_opts[23]
+#define ID_OptionText SFT_opts[24]
+#define COLOR_OptionText SFT_opts[25]
+#define INIT_TABLE_POS_OptionText SFT_opts[26]
+#define COLOR_opts___OptionText___init SFT_opts[27]
+#define ID_OptionBool SFT_opts[28]
+#define COLOR_OptionBool SFT_opts[29]
+#define INIT_TABLE_POS_OptionBool SFT_opts[30]
+#define COLOR_opts___OptionBool___init SFT_opts[31]
+#define ID_OptionParameter SFT_opts[32]
+#define COLOR_OptionParameter SFT_opts[33]
+#define INIT_TABLE_POS_OptionParameter SFT_opts[34]
+#define COLOR_opts___OptionParameter___convert SFT_opts[35]
+#define COLOR_opts___OptionParameter___init_opt SFT_opts[36]
+#define ID_OptionString SFT_opts[37]
+#define COLOR_OptionString SFT_opts[38]
+#define INIT_TABLE_POS_OptionString SFT_opts[39]
+#define COLOR_opts___OptionString___init SFT_opts[40]
+#define ID_OptionEnum SFT_opts[41]
+#define COLOR_OptionEnum SFT_opts[42]
+#define COLOR_opts___OptionEnum____enum SFT_opts[43]
+#define INIT_TABLE_POS_OptionEnum SFT_opts[44]
+#define COLOR_opts___OptionEnum___init SFT_opts[45]
+#define ID_OptionInt SFT_opts[46]
+#define COLOR_OptionInt SFT_opts[47]
+#define INIT_TABLE_POS_OptionInt SFT_opts[48]
+#define COLOR_opts___OptionInt___init SFT_opts[49]
+#define ID_OptionArray SFT_opts[50]
+#define COLOR_OptionArray SFT_opts[51]
+#define COLOR_opts___OptionArray____values SFT_opts[52]
+#define INIT_TABLE_POS_OptionArray SFT_opts[53]
+#define COLOR_opts___OptionArray___init SFT_opts[54]
+#define ID_OptionContext SFT_opts[55]
+#define COLOR_OptionContext SFT_opts[56]
+#define COLOR_opts___OptionContext____options SFT_opts[57]
+#define COLOR_opts___OptionContext____rest SFT_opts[58]
+#define COLOR_opts___OptionContext____optmap SFT_opts[59]
+#define INIT_TABLE_POS_OptionContext SFT_opts[60]
+#define COLOR_opts___OptionContext___options SFT_opts[61]
+#define COLOR_opts___OptionContext___rest SFT_opts[62]
+#define COLOR_opts___OptionContext___usage SFT_opts[63]
+#define COLOR_opts___OptionContext___parse SFT_opts[64]
+#define COLOR_opts___OptionContext___parse_intern SFT_opts[65]
+#define COLOR_opts___OptionContext___add_option SFT_opts[66]
+#define COLOR_opts___OptionContext___init SFT_opts[67]
+#define COLOR_opts___OptionContext___build SFT_opts[68]
+#define ATTR_opts___Option____names(recv) ATTR(recv, COLOR_opts___Option____names)
+typedef val_t (* opts___Option___names_t)(val_t  self);
+val_t opts___Option___names(val_t  self);
+#define ATTR_opts___Option____helptext(recv) ATTR(recv, COLOR_opts___Option____helptext)
+typedef val_t (* opts___Option___helptext_t)(val_t  self);
+val_t opts___Option___helptext(val_t  self);
+#define ATTR_opts___Option____mandatory(recv) ATTR(recv, COLOR_opts___Option____mandatory)
+typedef val_t (* opts___Option___mandatory_t)(val_t  self);
+val_t opts___Option___mandatory(val_t  self);
+typedef void (* opts___Option___mandatory__eq_t)(val_t  self, val_t  param0);
+void opts___Option___mandatory__eq(val_t  self, val_t  param0);
+#define ATTR_opts___Option____context(recv) ATTR(recv, COLOR_opts___Option____context)
+typedef val_t (* opts___Option___context_t)(val_t  self);
+val_t opts___Option___context(val_t  self);
+typedef void (* opts___Option___context__eq_t)(val_t  self, val_t  param0);
+void opts___Option___context__eq(val_t  self, val_t  param0);
+#define ATTR_opts___Option____value(recv) ATTR(recv, COLOR_opts___Option____value)
+typedef val_t (* opts___Option___value_t)(val_t  self);
+val_t opts___Option___value(val_t  self);
+typedef void (* opts___Option___value__eq_t)(val_t  self, val_t  param0);
+void opts___Option___value__eq(val_t  self, val_t  param0);
+#define ATTR_opts___Option____default_value(recv) ATTR(recv, COLOR_opts___Option____default_value)
+typedef val_t (* opts___Option___default_value_t)(val_t  self);
+val_t opts___Option___default_value(val_t  self);
+typedef void (* opts___Option___default_value__eq_t)(val_t  self, val_t  param0);
+void opts___Option___default_value__eq(val_t  self, val_t  param0);
+typedef void (* opts___Option___init_opt_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void opts___Option___init_opt(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_opts___Option___init_opt(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* opts___Option___add_aliases_t)(val_t  self, val_t  param0);
+void opts___Option___add_aliases(val_t  self, val_t  param0);
+typedef val_t (* opts___Option___to_s_t)(val_t  self);
+val_t opts___Option___to_s(val_t  self);
+typedef val_t (* opts___Option___pretty_t)(val_t  self, val_t  param0);
+val_t opts___Option___pretty(val_t  self, val_t  param0);
+typedef val_t (* opts___Option___pretty_default_t)(val_t  self);
+val_t opts___Option___pretty_default(val_t  self);
+typedef void (* opts___Option___read_param_t)(val_t  self, val_t  param0);
+void opts___Option___read_param(val_t  self, val_t  param0);
+typedef void (* opts___OptionText___init_t)(val_t  self, val_t  param0, int* init_table);
+void opts___OptionText___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_opts___OptionText___init(val_t  param0);
+typedef val_t (* opts___OptionText___pretty_t)(val_t  self, val_t  param0);
+val_t opts___OptionText___pretty(val_t  self, val_t  param0);
+typedef val_t (* opts___OptionText___to_s_t)(val_t  self);
+val_t opts___OptionText___to_s(val_t  self);
+typedef void (* opts___OptionBool___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void opts___OptionBool___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_opts___OptionBool___init(val_t  param0, val_t  param1);
+typedef void (* opts___OptionBool___read_param_t)(val_t  self, val_t  param0);
+void opts___OptionBool___read_param(val_t  self, val_t  param0);
+typedef val_t (* opts___OptionParameter___convert_t)(val_t  self, val_t  param0);
+val_t opts___OptionParameter___convert(val_t  self, val_t  param0);
+typedef void (* opts___OptionParameter___read_param_t)(val_t  self, val_t  param0);
+void opts___OptionParameter___read_param(val_t  self, val_t  param0);
+typedef void (* opts___OptionParameter___init_opt_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void opts___OptionParameter___init_opt(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_opts___OptionParameter___init_opt(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* opts___OptionString___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void opts___OptionString___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_opts___OptionString___init(val_t  param0, val_t  param1);
+typedef val_t (* opts___OptionString___convert_t)(val_t  self, val_t  param0);
+val_t opts___OptionString___convert(val_t  self, val_t  param0);
+#define ATTR_opts___OptionEnum____enum(recv) ATTR(recv, COLOR_opts___OptionEnum____enum)
+typedef void (* opts___OptionEnum___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void opts___OptionEnum___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_opts___OptionEnum___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* opts___OptionEnum___convert_t)(val_t  self, val_t  param0);
+val_t opts___OptionEnum___convert(val_t  self, val_t  param0);
+typedef val_t (* opts___OptionEnum___pretty_default_t)(val_t  self);
+val_t opts___OptionEnum___pretty_default(val_t  self);
+typedef void (* opts___OptionInt___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void opts___OptionInt___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_opts___OptionInt___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* opts___OptionInt___convert_t)(val_t  self, val_t  param0);
+val_t opts___OptionInt___convert(val_t  self, val_t  param0);
+typedef void (* opts___OptionArray___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void opts___OptionArray___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_opts___OptionArray___init(val_t  param0, val_t  param1);
+#define ATTR_opts___OptionArray____values(recv) ATTR(recv, COLOR_opts___OptionArray____values)
+typedef val_t (* opts___OptionArray___convert_t)(val_t  self, val_t  param0);
+val_t opts___OptionArray___convert(val_t  self, val_t  param0);
+#define ATTR_opts___OptionContext____options(recv) ATTR(recv, COLOR_opts___OptionContext____options)
+typedef val_t (* opts___OptionContext___options_t)(val_t  self);
+val_t opts___OptionContext___options(val_t  self);
+#define ATTR_opts___OptionContext____rest(recv) ATTR(recv, COLOR_opts___OptionContext____rest)
+typedef val_t (* opts___OptionContext___rest_t)(val_t  self);
+val_t opts___OptionContext___rest(val_t  self);
+#define ATTR_opts___OptionContext____optmap(recv) ATTR(recv, COLOR_opts___OptionContext____optmap)
+typedef void (* opts___OptionContext___usage_t)(val_t  self);
+void opts___OptionContext___usage(val_t  self);
+typedef void (* opts___OptionContext___parse_t)(val_t  self, val_t  param0);
+void opts___OptionContext___parse(val_t  self, val_t  param0);
+typedef void (* opts___OptionContext___parse_intern_t)(val_t  self, val_t  param0);
+void opts___OptionContext___parse_intern(val_t  self, val_t  param0);
+typedef void (* opts___OptionContext___add_option_t)(val_t  self, val_t  param0);
+void opts___OptionContext___add_option(val_t  self, val_t  param0);
+typedef void (* opts___OptionContext___init_t)(val_t  self, int* init_table);
+void opts___OptionContext___init(val_t  self, int* init_table);
+val_t NEW_opts___OptionContext___init();
+typedef void (* opts___OptionContext___build_t)(val_t  self);
+void opts___OptionContext___build(val_t  self);
+#endif
diff --git a/c_src/parser._sep.c b/c_src/parser._sep.c
new file mode 100644 (file)
index 0000000..33902e3
--- /dev/null
@@ -0,0 +1,33633 @@
+#include "parser._sep.h"
+val_t parser___State___state(val_t  self) {
+  struct trace_t trace = {NULL, "parser::State::state (src/parser//parser.nit:10,2--11:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser___State____state( self) /*State::_state*/;
+}
+void parser___State___state__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::State::state= (src/parser//parser.nit:10,2--11:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser___State____state( self) /*State::_state*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser___State___nodes(val_t  self) {
+  struct trace_t trace = {NULL, "parser::State::nodes (src/parser//parser.nit:13,2--14:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser___State____nodes( self) /*State::_nodes*/;
+}
+void parser___State___nodes__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::State::nodes= (src/parser//parser.nit:13,2--14:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser___State____nodes( self) /*State::_nodes*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser___State___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser::State::init (src/parser//parser.nit:16,2--19:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_State].i]) return;
+  ATTR_parser___State____state( self) /*State::_state*/ =  variable0 /*state*/;
+  ATTR_parser___State____nodes( self) /*State::_nodes*/ =  variable1 /*nodes*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_State].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___Parser___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser::Parser::init (src/parser//parser.nit:33,2--41:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Parser].i]) return;
+  ATTR_parser___Parser____lexer( self) /*Parser::_lexer*/ =  variable0 /*lexer*/;
+  variable1 = NEW_array___Array___init(); /*new Array[State]*/
+  ATTR_parser___Parser____stack( self) /*Parser::_stack*/ = variable1;
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/ = variable1;
+  ((parser_tables___Parser___build_goto_table_t)CALL( self,COLOR_parser_tables___Parser___build_goto_table))( self) /*Parser::build_goto_table*/;
+  ((parser_tables___Parser___build_action_table_t)CALL( self,COLOR_parser_tables___Parser___build_action_table))( self) /*Parser::build_action_table*/;
+  ((parser___Parser___build_reduce_table_t)CALL( self,COLOR_parser___Parser___build_reduce_table))( self) /*Parser::build_reduce_table*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Parser].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser___Parser___go_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::Parser::go_to (src/parser//parser.nit:44,2--65:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+        val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser___Parser___state_t)CALL( self,COLOR_parser___Parser___state))( self) /*Parser::state*/;
+  variable1 = variable2;
+  variable3 = ATTR_parser_tables___Parser____goto_table( self) /*Parser::_goto_table*/;
+  variable4 =  variable0 /*index*/;
+  variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable6 = variable5;
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = variable3;
+    variable6 = ATTR_array___AbstractArray____length(variable6) /*Array::_length*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+  }
+  variable5 = variable6;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable5 = variable3;
+  variable5 = ATTR_array___Array____items(variable5) /*Array::_items*/;
+  variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+  goto return_label3;
+  return_label3: while(false);
+  variable3 = variable5;
+  variable2 = variable3;
+  variable3 =  TAG_Int(1);
+  variable5 = ((array___AbstractArray___length_t)CALL( variable2 /*table*/,COLOR_abstract_collection___Collection___length))( variable2 /*table*/) /*Array::length*/;
+  variable5 = TAG_Int(UNTAG_Int(variable5)/UNTAG_Int( TAG_Int(2)));
+  variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
+  variable4 = variable5;
+  while (true) { /*while*/
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*low*/)<=UNTAG_Int( variable4 /*high*/));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable6 = TAG_Int(UNTAG_Int( variable3 /*low*/)+UNTAG_Int( variable4 /*high*/));
+    variable6 = TAG_Int(UNTAG_Int(variable6)/UNTAG_Int( TAG_Int(2)));
+    variable5 = variable6;
+    variable7 = TAG_Int(UNTAG_Int( variable5 /*middle*/)*UNTAG_Int( TAG_Int(2)));
+    variable6 = variable7;
+    variable7 =  variable6 /*subindex*/;
+    variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable9 = variable8;
+    if (UNTAG_Bool(variable9)) { /* and */
+      variable9 = ATTR_array___AbstractArray____length( variable2 /*table*/) /*Array::_length*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+    }
+    variable8 = variable9;
+    if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable8 = ATTR_array___Array____items( variable2 /*table*/) /*Array::_items*/;
+    variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+    goto return_label5;
+    return_label5: while(false);
+    variable7 = variable8;
+    variable7 = TAG_Bool(UNTAG_Int( variable1 /*state*/)<UNTAG_Int(variable7));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 = TAG_Int(UNTAG_Int( variable5 /*middle*/)-UNTAG_Int( TAG_Int(1)));
+      variable4 = variable7 /*high=*/;
+    } else { /*if*/
+      variable7 =  variable6 /*subindex*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable2 /*table*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable2 /*table*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label6;
+      return_label6: while(false);
+      variable7 = variable8;
+      variable7 = TAG_Bool(UNTAG_Int( variable1 /*state*/)>UNTAG_Int(variable7));
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable7 = TAG_Int(UNTAG_Int( variable5 /*middle*/)+UNTAG_Int( TAG_Int(1)));
+        variable3 = variable7 /*low=*/;
+      } else { /*if*/
+        variable7 = TAG_Int(UNTAG_Int( variable6 /*subindex*/)+UNTAG_Int( TAG_Int(1)));
+        variable8 = variable7;
+        variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable10 = variable9;
+        if (UNTAG_Bool(variable10)) { /* and */
+          variable10 = ATTR_array___AbstractArray____length( variable2 /*table*/) /*Array::_length*/;
+          variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+        }
+        variable9 = variable10;
+        if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable9 = ATTR_array___Array____items( variable2 /*table*/) /*Array::_items*/;
+        variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+        goto return_label7;
+        return_label7: while(false);
+        variable7 = variable9;
+        variable1 = variable7;
+        goto return_label2;
+      }
+    }
+    continue_4: while(0);
+  }
+  break_4: while(0);
+  variable5 =  TAG_Int(1);
+  variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable7 = variable6;
+  if (UNTAG_Bool(variable7)) { /* and */
+    variable7 = ATTR_array___AbstractArray____length( variable2 /*table*/) /*Array::_length*/;
+    variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+  }
+  variable6 = variable7;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable6 = ATTR_array___Array____items( variable2 /*table*/) /*Array::_items*/;
+  variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+  goto return_label8;
+  return_label8: while(false);
+  variable5 = variable6;
+  variable1 = variable5;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void parser___Parser___push(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser::Parser::push (src/parser//parser.nit:68,2--78:44)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/ =  variable2 /*pos*/;
+  variable3 = ATTR_parser___Parser____stack( self) /*Parser::_stack*/;
+  variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*pos*/)<UNTAG_Int(variable3));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable4 = ATTR_parser___Parser____stack( self) /*Parser::_stack*/;
+    variable5 =  variable2 /*pos*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable7 = variable6;
+    if (UNTAG_Bool(variable7)) { /* and */
+      variable7 = variable4;
+      variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable7));
+    }
+    variable6 = variable7;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable6 = variable4;
+    variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/;
+    variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)];
+    goto return_label10;
+    return_label10: while(false);
+    variable4 = variable6;
+    variable3 = variable4;
+    ((parser___State___state__eq_t)CALL( variable3 /*state*/,COLOR_parser___State___state__eq))( variable3 /*state*/,  variable0 /*numstate*/) /*State::state=*/;
+    ((parser___State___nodes__eq_t)CALL( variable3 /*state*/,COLOR_parser___State___nodes__eq))( variable3 /*state*/,  variable1 /*list_node*/) /*State::nodes=*/;
+  } else { /*if*/
+    variable3 = ATTR_parser___Parser____stack( self) /*Parser::_stack*/;
+    variable4 = NEW_parser___State___init( variable0 /*numstate*/,  variable1 /*list_node*/); /*new State*/
+    ((array___AbstractArray___push_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___push))(variable3, variable4) /*Array::push*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t parser___Parser___state(val_t  self) {
+  struct trace_t trace = {NULL, "parser::Parser::state (src/parser//parser.nit:82,2--85:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_parser___Parser____stack( self) /*Parser::_stack*/;
+  variable1 = ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/;
+  variable2 = variable1;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = variable0;
+    variable4 = ATTR_array___AbstractArray____length(variable4) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = variable0;
+  variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label12;
+  return_label12: while(false);
+  variable0 = variable3;
+  variable0 = ((parser___State___state_t)CALL(variable0,COLOR_parser___State___state))(variable0) /*State::state*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser___Parser___pop(val_t  self) {
+  struct trace_t trace = {NULL, "parser::Parser::pop (src/parser//parser.nit:88,2--93:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_parser___Parser____stack( self) /*Parser::_stack*/;
+  variable2 = ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/;
+  variable3 = variable2;
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = variable1;
+    variable5 = ATTR_array___AbstractArray____length(variable5) /*Array::_length*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*index*/)<UNTAG_Int(variable5));
+  }
+  variable4 = variable5;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable4 = variable1;
+  variable4 = ATTR_array___Array____items(variable4) /*Array::_items*/;
+  variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable3 /*index*/)];
+  goto return_label14;
+  return_label14: while(false);
+  variable1 = variable4;
+  variable1 = ((parser___State___nodes_t)CALL(variable1,COLOR_parser___State___nodes))(variable1) /*State::nodes*/;
+  variable0 = variable1;
+  variable1 = ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  ATTR_parser___Parser____stack_pos( self) /*Parser::_stack_pos*/ = variable1;
+  variable0 =  variable0 /*res*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser___Parser___parse(val_t  self) {
+  struct trace_t trace = {NULL, "parser::Parser::parse (src/parser//parser.nit:96,2--154:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+      val_t variable15;
+          val_t variable16;
+            val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  ((parser___Parser___push_t)CALL( self,COLOR_parser___Parser___push))( self,  TAG_Int(0),  NIT_NULL /*null*/) /*Parser::push*/;
+  variable0 =  NIT_NULL /*null*/;
+  variable2 = ATTR_parser___Parser____lexer( self) /*Parser::_lexer*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable3 = ((lexer___Lexer___peek_t)CALL( variable1 /*lexer*/,COLOR_lexer___Lexer___peek))( variable1 /*lexer*/) /*Lexer::peek*/;
+    variable2 = variable3;
+    variable4 = ((lexer___Token___pos_t)CALL( variable2 /*token*/,COLOR_lexer___Token___pos))( variable2 /*token*/) /*Token::pos*/;
+    variable3 = variable4;
+    variable5 = ((lexer___Token___line_t)CALL( variable2 /*token*/,COLOR_lexer___Token___line))( variable2 /*token*/) /*Token::line*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable2 /*token*/==NIT_NULL) || VAL_ISA( variable2 /*token*/, COLOR_PError, ID_PError)) /*cast PError*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = TAG_Bool(( variable2 /*token*/==NIT_NULL) || VAL_ISA( variable2 /*token*/, COLOR_PError, ID_PError)) /*cast PError*/;
+      if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:109,5--27\n"); nit_exit(1);}
+      variable5 = NEW_parser_prod___Start___init( NIT_NULL /*null*/,  variable2 /*token*/); /*new Start*/
+      variable0 = variable5;
+      goto return_label15;
+    }
+    variable6 = ((lexer___Token___parser_index_t)CALL( variable2 /*token*/,COLOR_lexer___Token___parser_index))( variable2 /*token*/) /*Token::parser_index*/;
+    variable5 = variable6;
+    variable7 = ATTR_parser_tables___Parser____action_table( self) /*Parser::_action_table*/;
+    variable8 = ((parser___Parser___state_t)CALL( self,COLOR_parser___Parser___state))( self) /*Parser::state*/;
+    variable9 = variable8;
+    variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable11 = variable10;
+    if (UNTAG_Bool(variable11)) { /* and */
+      variable11 = variable7;
+      variable11 = ATTR_array___AbstractArray____length(variable11) /*Array::_length*/;
+      variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+    }
+    variable10 = variable11;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable10 = variable7;
+    variable10 = ATTR_array___Array____items(variable10) /*Array::_items*/;
+    variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+    goto return_label17;
+    return_label17: while(false);
+    variable7 = variable10;
+    variable6 = variable7;
+    variable8 =  TAG_Int(1);
+    variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+      variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+    }
+    variable9 = variable10;
+    if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable9 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+    variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+    goto return_label18;
+    return_label18: while(false);
+    variable8 = variable9;
+    variable7 = variable8;
+    variable9 =  TAG_Int(2);
+    variable10 = TAG_Bool(UNTAG_Int( variable9 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable11 = variable10;
+    if (UNTAG_Bool(variable11)) { /* and */
+      variable11 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+      variable11 = TAG_Bool(UNTAG_Int( variable9 /*index*/)<UNTAG_Int(variable11));
+    }
+    variable10 = variable11;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable10 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+    variable10 = UNBOX_NativeArray(variable10)[UNTAG_Int( variable9 /*index*/)];
+    goto return_label19;
+    return_label19: while(false);
+    variable9 = variable10;
+    variable8 = variable9;
+    variable9 =  TAG_Int(1);
+    variable11 = ((array___AbstractArray___length_t)CALL( variable6 /*table*/,COLOR_abstract_collection___Collection___length))( variable6 /*table*/) /*Array::length*/;
+    variable11 = TAG_Int(UNTAG_Int(variable11)/UNTAG_Int( TAG_Int(3)));
+    variable11 = TAG_Int(UNTAG_Int(variable11)-UNTAG_Int( TAG_Int(1)));
+    variable10 = variable11;
+    while (true) { /*while*/
+      variable11 = TAG_Bool(UNTAG_Int( variable9 /*low*/)<=UNTAG_Int( variable10 /*high*/));
+      if (!UNTAG_Bool(variable11)) break; /* while*/
+      variable12 = TAG_Int(UNTAG_Int( variable9 /*low*/)+UNTAG_Int( variable10 /*high*/));
+      variable12 = TAG_Int(UNTAG_Int(variable12)/UNTAG_Int( TAG_Int(2)));
+      variable11 = variable12;
+      variable13 = TAG_Int(UNTAG_Int( variable11 /*middle*/)*UNTAG_Int( TAG_Int(3)));
+      variable12 = variable13;
+      variable13 =  variable12 /*subindex*/;
+      variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable15 = variable14;
+      if (UNTAG_Bool(variable15)) { /* and */
+        variable15 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+        variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+      }
+      variable14 = variable15;
+      if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable14 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+      variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+      goto return_label21;
+      return_label21: while(false);
+      variable13 = variable14;
+      variable13 = TAG_Bool(UNTAG_Int( variable5 /*index*/)<UNTAG_Int(variable13));
+      if (UNTAG_Bool(variable13)) { /*if*/
+        variable13 = TAG_Int(UNTAG_Int( variable11 /*middle*/)-UNTAG_Int( TAG_Int(1)));
+        variable10 = variable13 /*high=*/;
+      } else { /*if*/
+        variable13 =  variable12 /*subindex*/;
+        variable14 = TAG_Bool(UNTAG_Int( variable13 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable15 = variable14;
+        if (UNTAG_Bool(variable15)) { /* and */
+          variable15 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+          variable15 = TAG_Bool(UNTAG_Int( variable13 /*index*/)<UNTAG_Int(variable15));
+        }
+        variable14 = variable15;
+        if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable14 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+        variable14 = UNBOX_NativeArray(variable14)[UNTAG_Int( variable13 /*index*/)];
+        goto return_label22;
+        return_label22: while(false);
+        variable13 = variable14;
+        variable13 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>UNTAG_Int(variable13));
+        if (UNTAG_Bool(variable13)) { /*if*/
+          variable13 = TAG_Int(UNTAG_Int( variable11 /*middle*/)+UNTAG_Int( TAG_Int(1)));
+          variable9 = variable13 /*low=*/;
+        } else { /*if*/
+          variable13 = TAG_Int(UNTAG_Int( variable12 /*subindex*/)+UNTAG_Int( TAG_Int(1)));
+          variable14 = variable13;
+          variable15 = TAG_Bool(UNTAG_Int( variable14 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable16 = variable15;
+          if (UNTAG_Bool(variable16)) { /* and */
+            variable16 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+            variable16 = TAG_Bool(UNTAG_Int( variable14 /*index*/)<UNTAG_Int(variable16));
+          }
+          variable15 = variable16;
+          if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable15 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+          variable15 = UNBOX_NativeArray(variable15)[UNTAG_Int( variable14 /*index*/)];
+          goto return_label23;
+          return_label23: while(false);
+          variable13 = variable15;
+          variable7 = variable13 /*action_type=*/;
+          variable13 = TAG_Int(UNTAG_Int( variable12 /*subindex*/)+UNTAG_Int( TAG_Int(2)));
+          variable14 = variable13;
+          variable15 = TAG_Bool(UNTAG_Int( variable14 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable16 = variable15;
+          if (UNTAG_Bool(variable16)) { /* and */
+            variable16 = ATTR_array___AbstractArray____length( variable6 /*table*/) /*Array::_length*/;
+            variable16 = TAG_Bool(UNTAG_Int( variable14 /*index*/)<UNTAG_Int(variable16));
+          }
+          variable15 = variable16;
+          if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable15 = ATTR_array___Array____items( variable6 /*table*/) /*Array::_items*/;
+          variable15 = UNBOX_NativeArray(variable15)[UNTAG_Int( variable14 /*index*/)];
+          goto return_label24;
+          return_label24: while(false);
+          variable13 = variable15;
+          variable8 = variable13 /*action_value=*/;
+          variable13 = TAG_Int(UNTAG_Int( variable9 /*low*/)-UNTAG_Int( TAG_Int(1)));
+          variable10 = variable13 /*high=*/;
+        }
+      }
+      continue_20: while(0);
+    }
+    break_20: while(0);
+    variable11 = TAG_Bool(( variable7 /*action_type*/)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 = ((lexer___Lexer___next_t)CALL( variable1 /*lexer*/,COLOR_lexer___Lexer___next))( variable1 /*lexer*/) /*Lexer::next*/;
+      ((parser___Parser___push_t)CALL( self,COLOR_parser___Parser___push))( self,  variable8 /*action_value*/, variable11) /*Parser::push*/;
+    } else { /*if*/
+      variable11 = TAG_Bool(( variable7 /*action_type*/)==( TAG_Int(1)));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable11 = ATTR_parser___Parser____reduce_table( self) /*Parser::_reduce_table*/;
+        variable12 =  variable8 /*action_value*/;
+        variable13 = TAG_Bool(UNTAG_Int( variable12 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable14 = variable13;
+        if (UNTAG_Bool(variable14)) { /* and */
+          variable14 = variable11;
+          variable14 = ATTR_array___AbstractArray____length(variable14) /*Array::_length*/;
+          variable14 = TAG_Bool(UNTAG_Int( variable12 /*index*/)<UNTAG_Int(variable14));
+        }
+        variable13 = variable14;
+        if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable13 = variable11;
+        variable13 = ATTR_array___Array____items(variable13) /*Array::_items*/;
+        variable13 = UNBOX_NativeArray(variable13)[UNTAG_Int( variable12 /*index*/)];
+        goto return_label25;
+        return_label25: while(false);
+        variable11 = variable13;
+        ((parser___ReduceAction___action_t)CALL(variable11,COLOR_parser___ReduceAction___action))(variable11,  self) /*ReduceAction::action*/;
+      } else { /*if*/
+        variable11 = TAG_Bool(( variable7 /*action_type*/)==( TAG_Int(2)));
+        if (UNTAG_Bool(variable11)) { /*if*/
+          variable12 = ((lexer___Lexer___next_t)CALL( variable1 /*lexer*/,COLOR_lexer___Lexer___next))( variable1 /*lexer*/) /*Lexer::next*/;
+          variable11 = variable12;
+          variable12 = TAG_Bool(( variable11 /*node2*/==NIT_NULL) || VAL_ISA( variable11 /*node2*/, COLOR_EOF, ID_EOF)) /*cast EOF*/;
+          if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:142,5--24\n"); nit_exit(1);}
+          variable13 = ((parser___Parser___pop_t)CALL( self,COLOR_parser___Parser___pop))( self) /*Parser::pop*/;
+          variable12 = variable13;
+          variable13 = TAG_Bool(( variable12 /*node1*/==NIT_NULL) || VAL_ISA( variable12 /*node1*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
+          if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:144,5--28\n"); nit_exit(1);}
+          variable14 = NEW_parser_prod___Start___init( variable12 /*node1*/,  variable11 /*node2*/); /*new Start*/
+          variable13 = variable14;
+          variable14 = NEW_parser___SearchTokensVisitor___init(); /*new SearchTokensVisitor*/
+          ((parser___SearchTokensVisitor___visit_t)CALL(variable14,COLOR_parser_prod___Visitor___visit))(variable14,  variable13 /*node*/) /*SearchTokensVisitor::visit*/;
+          variable0 =  variable13 /*node*/;
+          goto return_label15;
+        } else { /*if*/
+          variable11 = TAG_Bool(( variable7 /*action_type*/)==( TAG_Int(3)));
+          if (UNTAG_Bool(variable11)) { /*if*/
+            variable12 = ((lexer___Lexer___filename_t)CALL( variable1 /*lexer*/,COLOR_lexer___Lexer___filename))( variable1 /*lexer*/) /*Lexer::filename*/;
+            variable13 = ((parser_tables___Parser___error_messages_t)CALL( self,COLOR_parser_tables___Parser___error_messages))( self) /*Parser::error_messages*/;
+            variable14 = ((parser_tables___Parser___errors_t)CALL( self,COLOR_parser_tables___Parser___errors))( self) /*Parser::errors*/;
+            variable15 =  variable8 /*action_value*/;
+            variable16 = TAG_Bool(UNTAG_Int( variable15 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable17 = variable16;
+            if (UNTAG_Bool(variable17)) { /* and */
+              variable17 = variable14;
+              variable17 = ATTR_array___AbstractArray____length(variable17) /*Array::_length*/;
+              variable17 = TAG_Bool(UNTAG_Int( variable15 /*index*/)<UNTAG_Int(variable17));
+            }
+            variable16 = variable17;
+            if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable16 = variable14;
+            variable16 = ATTR_array___Array____items(variable16) /*Array::_items*/;
+            variable16 = UNBOX_NativeArray(variable16)[UNTAG_Int( variable15 /*index*/)];
+            goto return_label26;
+            return_label26: while(false);
+            variable14 = variable16;
+            variable15 = variable14;
+            variable16 = TAG_Bool(UNTAG_Int( variable15 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            variable17 = variable16;
+            if (UNTAG_Bool(variable17)) { /* and */
+              variable17 = variable13;
+              variable17 = ATTR_array___AbstractArray____length(variable17) /*Array::_length*/;
+              variable17 = TAG_Bool(UNTAG_Int( variable15 /*index*/)<UNTAG_Int(variable17));
+            }
+            variable16 = variable17;
+            if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+            variable16 = variable13;
+            variable16 = ATTR_array___Array____items(variable16) /*Array::_items*/;
+            variable16 = UNBOX_NativeArray(variable16)[UNTAG_Int( variable15 /*index*/)];
+            goto return_label27;
+            return_label27: while(false);
+            variable13 = variable16;
+            variable14 = NEW_lexer___PError___init_error(variable12,  variable4 /*last_line*/,  variable3 /*last_pos*/, variable13); /*new PError*/
+            variable12 = variable14;
+            variable11 = variable12;
+            variable13 = NEW_parser_prod___Start___init( NIT_NULL /*null*/,  variable11 /*node2*/); /*new Start*/
+            variable12 = variable13;
+            variable0 =  variable12 /*node*/;
+            goto return_label15;
+          }
+        }
+      }
+    }
+    continue_16: while(0);
+  }
+  break_16: while(0);
+  variable0 =  NIT_NULL /*null*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void parser___Parser___build_reduce_table(val_t  self) {
+  struct trace_t trace = {NULL, "parser::Parser::build_reduce_table (src/parser//parser.nit:158,2--729:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  val_t variable28;
+  val_t variable29;
+  val_t variable30;
+  val_t variable31;
+  val_t variable32;
+  val_t variable33;
+  val_t variable34;
+  val_t variable35;
+  val_t variable36;
+  val_t variable37;
+  val_t variable38;
+  val_t variable39;
+  val_t variable40;
+  val_t variable41;
+  val_t variable42;
+  val_t variable43;
+  val_t variable44;
+  val_t variable45;
+  val_t variable46;
+  val_t variable47;
+  val_t variable48;
+  val_t variable49;
+  val_t variable50;
+  val_t variable51;
+  val_t variable52;
+  val_t variable53;
+  val_t variable54;
+  val_t variable55;
+  val_t variable56;
+  val_t variable57;
+  val_t variable58;
+  val_t variable59;
+  val_t variable60;
+  val_t variable61;
+  val_t variable62;
+  val_t variable63;
+  val_t variable64;
+  val_t variable65;
+  val_t variable66;
+  val_t variable67;
+  val_t variable68;
+  val_t variable69;
+  val_t variable70;
+  val_t variable71;
+  val_t variable72;
+  val_t variable73;
+  val_t variable74;
+  val_t variable75;
+  val_t variable76;
+  val_t variable77;
+  val_t variable78;
+  val_t variable79;
+  val_t variable80;
+  val_t variable81;
+  val_t variable82;
+  val_t variable83;
+  val_t variable84;
+  val_t variable85;
+  val_t variable86;
+  val_t variable87;
+  val_t variable88;
+  val_t variable89;
+  val_t variable90;
+  val_t variable91;
+  val_t variable92;
+  val_t variable93;
+  val_t variable94;
+  val_t variable95;
+  val_t variable96;
+  val_t variable97;
+  val_t variable98;
+  val_t variable99;
+  val_t variable100;
+  val_t variable101;
+  val_t variable102;
+  val_t variable103;
+  val_t variable104;
+  val_t variable105;
+  val_t variable106;
+  val_t variable107;
+  val_t variable108;
+  val_t variable109;
+  val_t variable110;
+  val_t variable111;
+  val_t variable112;
+  val_t variable113;
+  val_t variable114;
+  val_t variable115;
+  val_t variable116;
+  val_t variable117;
+  val_t variable118;
+  val_t variable119;
+  val_t variable120;
+  val_t variable121;
+  val_t variable122;
+  val_t variable123;
+  val_t variable124;
+  val_t variable125;
+  val_t variable126;
+  val_t variable127;
+  val_t variable128;
+  val_t variable129;
+  val_t variable130;
+  val_t variable131;
+  val_t variable132;
+  val_t variable133;
+  val_t variable134;
+  val_t variable135;
+  val_t variable136;
+  val_t variable137;
+  val_t variable138;
+  val_t variable139;
+  val_t variable140;
+  val_t variable141;
+  val_t variable142;
+  val_t variable143;
+  val_t variable144;
+  val_t variable145;
+  val_t variable146;
+  val_t variable147;
+  val_t variable148;
+  val_t variable149;
+  val_t variable150;
+  val_t variable151;
+  val_t variable152;
+  val_t variable153;
+  val_t variable154;
+  val_t variable155;
+  val_t variable156;
+  val_t variable157;
+  val_t variable158;
+  val_t variable159;
+  val_t variable160;
+  val_t variable161;
+  val_t variable162;
+  val_t variable163;
+  val_t variable164;
+  val_t variable165;
+  val_t variable166;
+  val_t variable167;
+  val_t variable168;
+  val_t variable169;
+  val_t variable170;
+  val_t variable171;
+  val_t variable172;
+  val_t variable173;
+  val_t variable174;
+  val_t variable175;
+  val_t variable176;
+  val_t variable177;
+  val_t variable178;
+  val_t variable179;
+  val_t variable180;
+  val_t variable181;
+  val_t variable182;
+  val_t variable183;
+  val_t variable184;
+  val_t variable185;
+  val_t variable186;
+  val_t variable187;
+  val_t variable188;
+  val_t variable189;
+  val_t variable190;
+  val_t variable191;
+  val_t variable192;
+  val_t variable193;
+  val_t variable194;
+  val_t variable195;
+  val_t variable196;
+  val_t variable197;
+  val_t variable198;
+  val_t variable199;
+  val_t variable200;
+  val_t variable201;
+  val_t variable202;
+  val_t variable203;
+  val_t variable204;
+  val_t variable205;
+  val_t variable206;
+  val_t variable207;
+  val_t variable208;
+  val_t variable209;
+  val_t variable210;
+  val_t variable211;
+  val_t variable212;
+  val_t variable213;
+  val_t variable214;
+  val_t variable215;
+  val_t variable216;
+  val_t variable217;
+  val_t variable218;
+  val_t variable219;
+  val_t variable220;
+  val_t variable221;
+  val_t variable222;
+  val_t variable223;
+  val_t variable224;
+  val_t variable225;
+  val_t variable226;
+  val_t variable227;
+  val_t variable228;
+  val_t variable229;
+  val_t variable230;
+  val_t variable231;
+  val_t variable232;
+  val_t variable233;
+  val_t variable234;
+  val_t variable235;
+  val_t variable236;
+  val_t variable237;
+  val_t variable238;
+  val_t variable239;
+  val_t variable240;
+  val_t variable241;
+  val_t variable242;
+  val_t variable243;
+  val_t variable244;
+  val_t variable245;
+  val_t variable246;
+  val_t variable247;
+  val_t variable248;
+  val_t variable249;
+  val_t variable250;
+  val_t variable251;
+  val_t variable252;
+  val_t variable253;
+  val_t variable254;
+  val_t variable255;
+  val_t variable256;
+  val_t variable257;
+  val_t variable258;
+  val_t variable259;
+  val_t variable260;
+  val_t variable261;
+  val_t variable262;
+  val_t variable263;
+  val_t variable264;
+  val_t variable265;
+  val_t variable266;
+  val_t variable267;
+  val_t variable268;
+  val_t variable269;
+  val_t variable270;
+  val_t variable271;
+  val_t variable272;
+  val_t variable273;
+  val_t variable274;
+  val_t variable275;
+  val_t variable276;
+  val_t variable277;
+  val_t variable278;
+  val_t variable279;
+  val_t variable280;
+  val_t variable281;
+  val_t variable282;
+  val_t variable283;
+  val_t variable284;
+  val_t variable285;
+  val_t variable286;
+  val_t variable287;
+  val_t variable288;
+  val_t variable289;
+  val_t variable290;
+  val_t variable291;
+  val_t variable292;
+  val_t variable293;
+  val_t variable294;
+  val_t variable295;
+  val_t variable296;
+  val_t variable297;
+  val_t variable298;
+  val_t variable299;
+  val_t variable300;
+  val_t variable301;
+  val_t variable302;
+  val_t variable303;
+  val_t variable304;
+  val_t variable305;
+  val_t variable306;
+  val_t variable307;
+  val_t variable308;
+  val_t variable309;
+  val_t variable310;
+  val_t variable311;
+  val_t variable312;
+  val_t variable313;
+  val_t variable314;
+  val_t variable315;
+  val_t variable316;
+  val_t variable317;
+  val_t variable318;
+  val_t variable319;
+  val_t variable320;
+  val_t variable321;
+  val_t variable322;
+  val_t variable323;
+  val_t variable324;
+  val_t variable325;
+  val_t variable326;
+  val_t variable327;
+  val_t variable328;
+  val_t variable329;
+  val_t variable330;
+  val_t variable331;
+  val_t variable332;
+  val_t variable333;
+  val_t variable334;
+  val_t variable335;
+  val_t variable336;
+  val_t variable337;
+  val_t variable338;
+  val_t variable339;
+  val_t variable340;
+  val_t variable341;
+  val_t variable342;
+  val_t variable343;
+  val_t variable344;
+  val_t variable345;
+  val_t variable346;
+  val_t variable347;
+  val_t variable348;
+  val_t variable349;
+  val_t variable350;
+  val_t variable351;
+  val_t variable352;
+  val_t variable353;
+  val_t variable354;
+  val_t variable355;
+  val_t variable356;
+  val_t variable357;
+  val_t variable358;
+  val_t variable359;
+  val_t variable360;
+  val_t variable361;
+  val_t variable362;
+  val_t variable363;
+  val_t variable364;
+  val_t variable365;
+  val_t variable366;
+  val_t variable367;
+  val_t variable368;
+  val_t variable369;
+  val_t variable370;
+  val_t variable371;
+  val_t variable372;
+  val_t variable373;
+  val_t variable374;
+  val_t variable375;
+  val_t variable376;
+  val_t variable377;
+  val_t variable378;
+  val_t variable379;
+  val_t variable380;
+  val_t variable381;
+  val_t variable382;
+  val_t variable383;
+  val_t variable384;
+  val_t variable385;
+  val_t variable386;
+  val_t variable387;
+  val_t variable388;
+  val_t variable389;
+  val_t variable390;
+  val_t variable391;
+  val_t variable392;
+  val_t variable393;
+  val_t variable394;
+  val_t variable395;
+  val_t variable396;
+  val_t variable397;
+  val_t variable398;
+  val_t variable399;
+  val_t variable400;
+  val_t variable401;
+  val_t variable402;
+  val_t variable403;
+  val_t variable404;
+  val_t variable405;
+  val_t variable406;
+  val_t variable407;
+  val_t variable408;
+  val_t variable409;
+  val_t variable410;
+  val_t variable411;
+  val_t variable412;
+  val_t variable413;
+  val_t variable414;
+  val_t variable415;
+  val_t variable416;
+  val_t variable417;
+  val_t variable418;
+  val_t variable419;
+  val_t variable420;
+  val_t variable421;
+  val_t variable422;
+  val_t variable423;
+  val_t variable424;
+  val_t variable425;
+  val_t variable426;
+  val_t variable427;
+  val_t variable428;
+  val_t variable429;
+  val_t variable430;
+  val_t variable431;
+  val_t variable432;
+  val_t variable433;
+  val_t variable434;
+  val_t variable435;
+  val_t variable436;
+  val_t variable437;
+  val_t variable438;
+  val_t variable439;
+  val_t variable440;
+  val_t variable441;
+  val_t variable442;
+  val_t variable443;
+  val_t variable444;
+  val_t variable445;
+  val_t variable446;
+  val_t variable447;
+  val_t variable448;
+  val_t variable449;
+  val_t variable450;
+  val_t variable451;
+  val_t variable452;
+  val_t variable453;
+  val_t variable454;
+  val_t variable455;
+  val_t variable456;
+  val_t variable457;
+  val_t variable458;
+  val_t variable459;
+  val_t variable460;
+  val_t variable461;
+  val_t variable462;
+  val_t variable463;
+  val_t variable464;
+  val_t variable465;
+  val_t variable466;
+  val_t variable467;
+  val_t variable468;
+  val_t variable469;
+  val_t variable470;
+  val_t variable471;
+  val_t variable472;
+  val_t variable473;
+  val_t variable474;
+  val_t variable475;
+  val_t variable476;
+  val_t variable477;
+  val_t variable478;
+  val_t variable479;
+  val_t variable480;
+  val_t variable481;
+  val_t variable482;
+  val_t variable483;
+  val_t variable484;
+  val_t variable485;
+  val_t variable486;
+  val_t variable487;
+  val_t variable488;
+  val_t variable489;
+  val_t variable490;
+  val_t variable491;
+  val_t variable492;
+  val_t variable493;
+  val_t variable494;
+  val_t variable495;
+  val_t variable496;
+  val_t variable497;
+  val_t variable498;
+  val_t variable499;
+  val_t variable500;
+  val_t variable501;
+  val_t variable502;
+  val_t variable503;
+  val_t variable504;
+  val_t variable505;
+  val_t variable506;
+  val_t variable507;
+  val_t variable508;
+  val_t variable509;
+  val_t variable510;
+  val_t variable511;
+  val_t variable512;
+  val_t variable513;
+  val_t variable514;
+  val_t variable515;
+  val_t variable516;
+  val_t variable517;
+  val_t variable518;
+  val_t variable519;
+  val_t variable520;
+  val_t variable521;
+  val_t variable522;
+  val_t variable523;
+  val_t variable524;
+  val_t variable525;
+  val_t variable526;
+  val_t variable527;
+  val_t variable528;
+  val_t variable529;
+  val_t variable530;
+  val_t variable531;
+  val_t variable532;
+  val_t variable533;
+  val_t variable534;
+  val_t variable535;
+  val_t variable536;
+  val_t variable537;
+  val_t variable538;
+  val_t variable539;
+  val_t variable540;
+  val_t variable541;
+  val_t variable542;
+  val_t variable543;
+  val_t variable544;
+  val_t variable545;
+  val_t variable546;
+  val_t variable547;
+  val_t variable548;
+  val_t variable549;
+  val_t variable550;
+  val_t variable551;
+  val_t variable552;
+  val_t variable553;
+  val_t variable554;
+  val_t variable555;
+  val_t variable556;
+  val_t variable557;
+  val_t variable558;
+  val_t variable559;
+  val_t variable560;
+  val_t variable561;
+  val_t variable562;
+  val_t variable563;
+  val_t variable564;
+  val_t variable565;
+  val_t variable566;
+  val_t variable567;
+  val_t variable568;
+  val_t variable569;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(569)); /*new Array[ReduceAction]*/
+  variable1 = NEW_parser___ReduceAction0___init(); /*new ReduceAction0*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  variable2 = NEW_parser___ReduceAction1___init(); /*new ReduceAction1*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+  variable3 = NEW_parser___ReduceAction2___init(); /*new ReduceAction2*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable3) /*Array::add*/;
+  variable4 = NEW_parser___ReduceAction3___init(); /*new ReduceAction3*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable4) /*Array::add*/;
+  variable5 = NEW_parser___ReduceAction4___init(); /*new ReduceAction4*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable5) /*Array::add*/;
+  variable6 = NEW_parser___ReduceAction5___init(); /*new ReduceAction5*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable6) /*Array::add*/;
+  variable7 = NEW_parser___ReduceAction6___init(); /*new ReduceAction6*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable7) /*Array::add*/;
+  variable8 = NEW_parser___ReduceAction7___init(); /*new ReduceAction7*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable8) /*Array::add*/;
+  variable9 = NEW_parser___ReduceAction8___init(); /*new ReduceAction8*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable9) /*Array::add*/;
+  variable10 = NEW_parser___ReduceAction9___init(); /*new ReduceAction9*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable10) /*Array::add*/;
+  variable11 = NEW_parser___ReduceAction10___init(); /*new ReduceAction10*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable11) /*Array::add*/;
+  variable12 = NEW_parser___ReduceAction11___init(); /*new ReduceAction11*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable12) /*Array::add*/;
+  variable13 = NEW_parser___ReduceAction12___init(); /*new ReduceAction12*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable13) /*Array::add*/;
+  variable14 = NEW_parser___ReduceAction13___init(); /*new ReduceAction13*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable14) /*Array::add*/;
+  variable15 = NEW_parser___ReduceAction14___init(); /*new ReduceAction14*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable15) /*Array::add*/;
+  variable16 = NEW_parser___ReduceAction15___init(); /*new ReduceAction15*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable16) /*Array::add*/;
+  variable17 = NEW_parser___ReduceAction16___init(); /*new ReduceAction16*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable17) /*Array::add*/;
+  variable18 = NEW_parser___ReduceAction17___init(); /*new ReduceAction17*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable18) /*Array::add*/;
+  variable19 = NEW_parser___ReduceAction18___init(); /*new ReduceAction18*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable19) /*Array::add*/;
+  variable20 = NEW_parser___ReduceAction19___init(); /*new ReduceAction19*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable20) /*Array::add*/;
+  variable21 = NEW_parser___ReduceAction20___init(); /*new ReduceAction20*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable21) /*Array::add*/;
+  variable22 = NEW_parser___ReduceAction21___init(); /*new ReduceAction21*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable22) /*Array::add*/;
+  variable23 = NEW_parser___ReduceAction22___init(); /*new ReduceAction22*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable23) /*Array::add*/;
+  variable24 = NEW_parser___ReduceAction23___init(); /*new ReduceAction23*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable24) /*Array::add*/;
+  variable25 = NEW_parser___ReduceAction24___init(); /*new ReduceAction24*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable25) /*Array::add*/;
+  variable26 = NEW_parser___ReduceAction25___init(); /*new ReduceAction25*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable26) /*Array::add*/;
+  variable27 = NEW_parser___ReduceAction26___init(); /*new ReduceAction26*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable27) /*Array::add*/;
+  variable28 = NEW_parser___ReduceAction27___init(); /*new ReduceAction27*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable28) /*Array::add*/;
+  variable29 = NEW_parser___ReduceAction28___init(); /*new ReduceAction28*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable29) /*Array::add*/;
+  variable30 = NEW_parser___ReduceAction29___init(); /*new ReduceAction29*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable30) /*Array::add*/;
+  variable31 = NEW_parser___ReduceAction30___init(); /*new ReduceAction30*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable31) /*Array::add*/;
+  variable32 = NEW_parser___ReduceAction31___init(); /*new ReduceAction31*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable32) /*Array::add*/;
+  variable33 = NEW_parser___ReduceAction32___init(); /*new ReduceAction32*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable33) /*Array::add*/;
+  variable34 = NEW_parser___ReduceAction33___init(); /*new ReduceAction33*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable34) /*Array::add*/;
+  variable35 = NEW_parser___ReduceAction34___init(); /*new ReduceAction34*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable35) /*Array::add*/;
+  variable36 = NEW_parser___ReduceAction35___init(); /*new ReduceAction35*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable36) /*Array::add*/;
+  variable37 = NEW_parser___ReduceAction36___init(); /*new ReduceAction36*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable37) /*Array::add*/;
+  variable38 = NEW_parser___ReduceAction37___init(); /*new ReduceAction37*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable38) /*Array::add*/;
+  variable39 = NEW_parser___ReduceAction38___init(); /*new ReduceAction38*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable39) /*Array::add*/;
+  variable40 = NEW_parser___ReduceAction39___init(); /*new ReduceAction39*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable40) /*Array::add*/;
+  variable41 = NEW_parser___ReduceAction40___init(); /*new ReduceAction40*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable41) /*Array::add*/;
+  variable42 = NEW_parser___ReduceAction41___init(); /*new ReduceAction41*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable42) /*Array::add*/;
+  variable43 = NEW_parser___ReduceAction42___init(); /*new ReduceAction42*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable43) /*Array::add*/;
+  variable44 = NEW_parser___ReduceAction43___init(); /*new ReduceAction43*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable44) /*Array::add*/;
+  variable45 = NEW_parser___ReduceAction44___init(); /*new ReduceAction44*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable45) /*Array::add*/;
+  variable46 = NEW_parser___ReduceAction45___init(); /*new ReduceAction45*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable46) /*Array::add*/;
+  variable47 = NEW_parser___ReduceAction46___init(); /*new ReduceAction46*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable47) /*Array::add*/;
+  variable48 = NEW_parser___ReduceAction47___init(); /*new ReduceAction47*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable48) /*Array::add*/;
+  variable49 = NEW_parser___ReduceAction48___init(); /*new ReduceAction48*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable49) /*Array::add*/;
+  variable50 = NEW_parser___ReduceAction49___init(); /*new ReduceAction49*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable50) /*Array::add*/;
+  variable51 = NEW_parser___ReduceAction50___init(); /*new ReduceAction50*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable51) /*Array::add*/;
+  variable52 = NEW_parser___ReduceAction51___init(); /*new ReduceAction51*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable52) /*Array::add*/;
+  variable53 = NEW_parser___ReduceAction52___init(); /*new ReduceAction52*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable53) /*Array::add*/;
+  variable54 = NEW_parser___ReduceAction53___init(); /*new ReduceAction53*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable54) /*Array::add*/;
+  variable55 = NEW_parser___ReduceAction54___init(); /*new ReduceAction54*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable55) /*Array::add*/;
+  variable56 = NEW_parser___ReduceAction55___init(); /*new ReduceAction55*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable56) /*Array::add*/;
+  variable57 = NEW_parser___ReduceAction56___init(); /*new ReduceAction56*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable57) /*Array::add*/;
+  variable58 = NEW_parser___ReduceAction57___init(); /*new ReduceAction57*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable58) /*Array::add*/;
+  variable59 = NEW_parser___ReduceAction58___init(); /*new ReduceAction58*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable59) /*Array::add*/;
+  variable60 = NEW_parser___ReduceAction59___init(); /*new ReduceAction59*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable60) /*Array::add*/;
+  variable61 = NEW_parser___ReduceAction60___init(); /*new ReduceAction60*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable61) /*Array::add*/;
+  variable62 = NEW_parser___ReduceAction61___init(); /*new ReduceAction61*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable62) /*Array::add*/;
+  variable63 = NEW_parser___ReduceAction62___init(); /*new ReduceAction62*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable63) /*Array::add*/;
+  variable64 = NEW_parser___ReduceAction63___init(); /*new ReduceAction63*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable64) /*Array::add*/;
+  variable65 = NEW_parser___ReduceAction64___init(); /*new ReduceAction64*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable65) /*Array::add*/;
+  variable66 = NEW_parser___ReduceAction65___init(); /*new ReduceAction65*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable66) /*Array::add*/;
+  variable67 = NEW_parser___ReduceAction66___init(); /*new ReduceAction66*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable67) /*Array::add*/;
+  variable68 = NEW_parser___ReduceAction67___init(); /*new ReduceAction67*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable68) /*Array::add*/;
+  variable69 = NEW_parser___ReduceAction68___init(); /*new ReduceAction68*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable69) /*Array::add*/;
+  variable70 = NEW_parser___ReduceAction69___init(); /*new ReduceAction69*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable70) /*Array::add*/;
+  variable71 = NEW_parser___ReduceAction70___init(); /*new ReduceAction70*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable71) /*Array::add*/;
+  variable72 = NEW_parser___ReduceAction71___init(); /*new ReduceAction71*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable72) /*Array::add*/;
+  variable73 = NEW_parser___ReduceAction72___init(); /*new ReduceAction72*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable73) /*Array::add*/;
+  variable74 = NEW_parser___ReduceAction73___init(); /*new ReduceAction73*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable74) /*Array::add*/;
+  variable75 = NEW_parser___ReduceAction74___init(); /*new ReduceAction74*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable75) /*Array::add*/;
+  variable76 = NEW_parser___ReduceAction75___init(); /*new ReduceAction75*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable76) /*Array::add*/;
+  variable77 = NEW_parser___ReduceAction76___init(); /*new ReduceAction76*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable77) /*Array::add*/;
+  variable78 = NEW_parser___ReduceAction77___init(); /*new ReduceAction77*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable78) /*Array::add*/;
+  variable79 = NEW_parser___ReduceAction78___init(); /*new ReduceAction78*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable79) /*Array::add*/;
+  variable80 = NEW_parser___ReduceAction79___init(); /*new ReduceAction79*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable80) /*Array::add*/;
+  variable81 = NEW_parser___ReduceAction80___init(); /*new ReduceAction80*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable81) /*Array::add*/;
+  variable82 = NEW_parser___ReduceAction81___init(); /*new ReduceAction81*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable82) /*Array::add*/;
+  variable83 = NEW_parser___ReduceAction82___init(); /*new ReduceAction82*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable83) /*Array::add*/;
+  variable84 = NEW_parser___ReduceAction83___init(); /*new ReduceAction83*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable84) /*Array::add*/;
+  variable85 = NEW_parser___ReduceAction84___init(); /*new ReduceAction84*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable85) /*Array::add*/;
+  variable86 = NEW_parser___ReduceAction85___init(); /*new ReduceAction85*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable86) /*Array::add*/;
+  variable87 = NEW_parser___ReduceAction86___init(); /*new ReduceAction86*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable87) /*Array::add*/;
+  variable88 = NEW_parser___ReduceAction87___init(); /*new ReduceAction87*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable88) /*Array::add*/;
+  variable89 = NEW_parser___ReduceAction88___init(); /*new ReduceAction88*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable89) /*Array::add*/;
+  variable90 = NEW_parser___ReduceAction89___init(); /*new ReduceAction89*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable90) /*Array::add*/;
+  variable91 = NEW_parser___ReduceAction90___init(); /*new ReduceAction90*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable91) /*Array::add*/;
+  variable92 = NEW_parser___ReduceAction91___init(); /*new ReduceAction91*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable92) /*Array::add*/;
+  variable93 = NEW_parser___ReduceAction92___init(); /*new ReduceAction92*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable93) /*Array::add*/;
+  variable94 = NEW_parser___ReduceAction93___init(); /*new ReduceAction93*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable94) /*Array::add*/;
+  variable95 = NEW_parser___ReduceAction94___init(); /*new ReduceAction94*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable95) /*Array::add*/;
+  variable96 = NEW_parser___ReduceAction95___init(); /*new ReduceAction95*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable96) /*Array::add*/;
+  variable97 = NEW_parser___ReduceAction96___init(); /*new ReduceAction96*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable97) /*Array::add*/;
+  variable98 = NEW_parser___ReduceAction97___init(); /*new ReduceAction97*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable98) /*Array::add*/;
+  variable99 = NEW_parser___ReduceAction98___init(); /*new ReduceAction98*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable99) /*Array::add*/;
+  variable100 = NEW_parser___ReduceAction99___init(); /*new ReduceAction99*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable100) /*Array::add*/;
+  variable101 = NEW_parser___ReduceAction100___init(); /*new ReduceAction100*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable101) /*Array::add*/;
+  variable102 = NEW_parser___ReduceAction101___init(); /*new ReduceAction101*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable102) /*Array::add*/;
+  variable103 = NEW_parser___ReduceAction102___init(); /*new ReduceAction102*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable103) /*Array::add*/;
+  variable104 = NEW_parser___ReduceAction103___init(); /*new ReduceAction103*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable104) /*Array::add*/;
+  variable105 = NEW_parser___ReduceAction104___init(); /*new ReduceAction104*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable105) /*Array::add*/;
+  variable106 = NEW_parser___ReduceAction105___init(); /*new ReduceAction105*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable106) /*Array::add*/;
+  variable107 = NEW_parser___ReduceAction106___init(); /*new ReduceAction106*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable107) /*Array::add*/;
+  variable108 = NEW_parser___ReduceAction107___init(); /*new ReduceAction107*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable108) /*Array::add*/;
+  variable109 = NEW_parser___ReduceAction108___init(); /*new ReduceAction108*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable109) /*Array::add*/;
+  variable110 = NEW_parser___ReduceAction109___init(); /*new ReduceAction109*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable110) /*Array::add*/;
+  variable111 = NEW_parser___ReduceAction110___init(); /*new ReduceAction110*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable111) /*Array::add*/;
+  variable112 = NEW_parser___ReduceAction111___init(); /*new ReduceAction111*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable112) /*Array::add*/;
+  variable113 = NEW_parser___ReduceAction112___init(); /*new ReduceAction112*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable113) /*Array::add*/;
+  variable114 = NEW_parser___ReduceAction113___init(); /*new ReduceAction113*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable114) /*Array::add*/;
+  variable115 = NEW_parser___ReduceAction114___init(); /*new ReduceAction114*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable115) /*Array::add*/;
+  variable116 = NEW_parser___ReduceAction115___init(); /*new ReduceAction115*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable116) /*Array::add*/;
+  variable117 = NEW_parser___ReduceAction116___init(); /*new ReduceAction116*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable117) /*Array::add*/;
+  variable118 = NEW_parser___ReduceAction117___init(); /*new ReduceAction117*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable118) /*Array::add*/;
+  variable119 = NEW_parser___ReduceAction118___init(); /*new ReduceAction118*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable119) /*Array::add*/;
+  variable120 = NEW_parser___ReduceAction119___init(); /*new ReduceAction119*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable120) /*Array::add*/;
+  variable121 = NEW_parser___ReduceAction120___init(); /*new ReduceAction120*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable121) /*Array::add*/;
+  variable122 = NEW_parser___ReduceAction121___init(); /*new ReduceAction121*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable122) /*Array::add*/;
+  variable123 = NEW_parser___ReduceAction122___init(); /*new ReduceAction122*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable123) /*Array::add*/;
+  variable124 = NEW_parser___ReduceAction123___init(); /*new ReduceAction123*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable124) /*Array::add*/;
+  variable125 = NEW_parser___ReduceAction124___init(); /*new ReduceAction124*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable125) /*Array::add*/;
+  variable126 = NEW_parser___ReduceAction125___init(); /*new ReduceAction125*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable126) /*Array::add*/;
+  variable127 = NEW_parser___ReduceAction126___init(); /*new ReduceAction126*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable127) /*Array::add*/;
+  variable128 = NEW_parser___ReduceAction127___init(); /*new ReduceAction127*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable128) /*Array::add*/;
+  variable129 = NEW_parser___ReduceAction128___init(); /*new ReduceAction128*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable129) /*Array::add*/;
+  variable130 = NEW_parser___ReduceAction129___init(); /*new ReduceAction129*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable130) /*Array::add*/;
+  variable131 = NEW_parser___ReduceAction130___init(); /*new ReduceAction130*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable131) /*Array::add*/;
+  variable132 = NEW_parser___ReduceAction131___init(); /*new ReduceAction131*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable132) /*Array::add*/;
+  variable133 = NEW_parser___ReduceAction132___init(); /*new ReduceAction132*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable133) /*Array::add*/;
+  variable134 = NEW_parser___ReduceAction133___init(); /*new ReduceAction133*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable134) /*Array::add*/;
+  variable135 = NEW_parser___ReduceAction134___init(); /*new ReduceAction134*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable135) /*Array::add*/;
+  variable136 = NEW_parser___ReduceAction135___init(); /*new ReduceAction135*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable136) /*Array::add*/;
+  variable137 = NEW_parser___ReduceAction136___init(); /*new ReduceAction136*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable137) /*Array::add*/;
+  variable138 = NEW_parser___ReduceAction137___init(); /*new ReduceAction137*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable138) /*Array::add*/;
+  variable139 = NEW_parser___ReduceAction138___init(); /*new ReduceAction138*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable139) /*Array::add*/;
+  variable140 = NEW_parser___ReduceAction139___init(); /*new ReduceAction139*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable140) /*Array::add*/;
+  variable141 = NEW_parser___ReduceAction140___init(); /*new ReduceAction140*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable141) /*Array::add*/;
+  variable142 = NEW_parser___ReduceAction141___init(); /*new ReduceAction141*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable142) /*Array::add*/;
+  variable143 = NEW_parser___ReduceAction142___init(); /*new ReduceAction142*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable143) /*Array::add*/;
+  variable144 = NEW_parser___ReduceAction143___init(); /*new ReduceAction143*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable144) /*Array::add*/;
+  variable145 = NEW_parser___ReduceAction144___init(); /*new ReduceAction144*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable145) /*Array::add*/;
+  variable146 = NEW_parser___ReduceAction145___init(); /*new ReduceAction145*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable146) /*Array::add*/;
+  variable147 = NEW_parser___ReduceAction146___init(); /*new ReduceAction146*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable147) /*Array::add*/;
+  variable148 = NEW_parser___ReduceAction147___init(); /*new ReduceAction147*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable148) /*Array::add*/;
+  variable149 = NEW_parser___ReduceAction148___init(); /*new ReduceAction148*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable149) /*Array::add*/;
+  variable150 = NEW_parser___ReduceAction149___init(); /*new ReduceAction149*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable150) /*Array::add*/;
+  variable151 = NEW_parser___ReduceAction150___init(); /*new ReduceAction150*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable151) /*Array::add*/;
+  variable152 = NEW_parser___ReduceAction151___init(); /*new ReduceAction151*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable152) /*Array::add*/;
+  variable153 = NEW_parser___ReduceAction152___init(); /*new ReduceAction152*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable153) /*Array::add*/;
+  variable154 = NEW_parser___ReduceAction153___init(); /*new ReduceAction153*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable154) /*Array::add*/;
+  variable155 = NEW_parser___ReduceAction154___init(); /*new ReduceAction154*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable155) /*Array::add*/;
+  variable156 = NEW_parser___ReduceAction155___init(); /*new ReduceAction155*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable156) /*Array::add*/;
+  variable157 = NEW_parser___ReduceAction156___init(); /*new ReduceAction156*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable157) /*Array::add*/;
+  variable158 = NEW_parser___ReduceAction157___init(); /*new ReduceAction157*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable158) /*Array::add*/;
+  variable159 = NEW_parser___ReduceAction158___init(); /*new ReduceAction158*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable159) /*Array::add*/;
+  variable160 = NEW_parser___ReduceAction159___init(); /*new ReduceAction159*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable160) /*Array::add*/;
+  variable161 = NEW_parser___ReduceAction160___init(); /*new ReduceAction160*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable161) /*Array::add*/;
+  variable162 = NEW_parser___ReduceAction161___init(); /*new ReduceAction161*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable162) /*Array::add*/;
+  variable163 = NEW_parser___ReduceAction162___init(); /*new ReduceAction162*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable163) /*Array::add*/;
+  variable164 = NEW_parser___ReduceAction163___init(); /*new ReduceAction163*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable164) /*Array::add*/;
+  variable165 = NEW_parser___ReduceAction164___init(); /*new ReduceAction164*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable165) /*Array::add*/;
+  variable166 = NEW_parser___ReduceAction165___init(); /*new ReduceAction165*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable166) /*Array::add*/;
+  variable167 = NEW_parser___ReduceAction166___init(); /*new ReduceAction166*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable167) /*Array::add*/;
+  variable168 = NEW_parser___ReduceAction167___init(); /*new ReduceAction167*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable168) /*Array::add*/;
+  variable169 = NEW_parser___ReduceAction168___init(); /*new ReduceAction168*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable169) /*Array::add*/;
+  variable170 = NEW_parser___ReduceAction169___init(); /*new ReduceAction169*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable170) /*Array::add*/;
+  variable171 = NEW_parser___ReduceAction170___init(); /*new ReduceAction170*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable171) /*Array::add*/;
+  variable172 = NEW_parser___ReduceAction171___init(); /*new ReduceAction171*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable172) /*Array::add*/;
+  variable173 = NEW_parser___ReduceAction172___init(); /*new ReduceAction172*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable173) /*Array::add*/;
+  variable174 = NEW_parser___ReduceAction173___init(); /*new ReduceAction173*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable174) /*Array::add*/;
+  variable175 = NEW_parser___ReduceAction174___init(); /*new ReduceAction174*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable175) /*Array::add*/;
+  variable176 = NEW_parser___ReduceAction175___init(); /*new ReduceAction175*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable176) /*Array::add*/;
+  variable177 = NEW_parser___ReduceAction176___init(); /*new ReduceAction176*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable177) /*Array::add*/;
+  variable178 = NEW_parser___ReduceAction177___init(); /*new ReduceAction177*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable178) /*Array::add*/;
+  variable179 = NEW_parser___ReduceAction178___init(); /*new ReduceAction178*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable179) /*Array::add*/;
+  variable180 = NEW_parser___ReduceAction179___init(); /*new ReduceAction179*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable180) /*Array::add*/;
+  variable181 = NEW_parser___ReduceAction180___init(); /*new ReduceAction180*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable181) /*Array::add*/;
+  variable182 = NEW_parser___ReduceAction181___init(); /*new ReduceAction181*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable182) /*Array::add*/;
+  variable183 = NEW_parser___ReduceAction182___init(); /*new ReduceAction182*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable183) /*Array::add*/;
+  variable184 = NEW_parser___ReduceAction183___init(); /*new ReduceAction183*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable184) /*Array::add*/;
+  variable185 = NEW_parser___ReduceAction184___init(); /*new ReduceAction184*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable185) /*Array::add*/;
+  variable186 = NEW_parser___ReduceAction185___init(); /*new ReduceAction185*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable186) /*Array::add*/;
+  variable187 = NEW_parser___ReduceAction186___init(); /*new ReduceAction186*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable187) /*Array::add*/;
+  variable188 = NEW_parser___ReduceAction187___init(); /*new ReduceAction187*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable188) /*Array::add*/;
+  variable189 = NEW_parser___ReduceAction188___init(); /*new ReduceAction188*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable189) /*Array::add*/;
+  variable190 = NEW_parser___ReduceAction189___init(); /*new ReduceAction189*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable190) /*Array::add*/;
+  variable191 = NEW_parser___ReduceAction190___init(); /*new ReduceAction190*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable191) /*Array::add*/;
+  variable192 = NEW_parser___ReduceAction191___init(); /*new ReduceAction191*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable192) /*Array::add*/;
+  variable193 = NEW_parser___ReduceAction192___init(); /*new ReduceAction192*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable193) /*Array::add*/;
+  variable194 = NEW_parser___ReduceAction193___init(); /*new ReduceAction193*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable194) /*Array::add*/;
+  variable195 = NEW_parser___ReduceAction194___init(); /*new ReduceAction194*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable195) /*Array::add*/;
+  variable196 = NEW_parser___ReduceAction195___init(); /*new ReduceAction195*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable196) /*Array::add*/;
+  variable197 = NEW_parser___ReduceAction196___init(); /*new ReduceAction196*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable197) /*Array::add*/;
+  variable198 = NEW_parser___ReduceAction197___init(); /*new ReduceAction197*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable198) /*Array::add*/;
+  variable199 = NEW_parser___ReduceAction198___init(); /*new ReduceAction198*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable199) /*Array::add*/;
+  variable200 = NEW_parser___ReduceAction199___init(); /*new ReduceAction199*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable200) /*Array::add*/;
+  variable201 = NEW_parser___ReduceAction200___init(); /*new ReduceAction200*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable201) /*Array::add*/;
+  variable202 = NEW_parser___ReduceAction201___init(); /*new ReduceAction201*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable202) /*Array::add*/;
+  variable203 = NEW_parser___ReduceAction202___init(); /*new ReduceAction202*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable203) /*Array::add*/;
+  variable204 = NEW_parser___ReduceAction203___init(); /*new ReduceAction203*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable204) /*Array::add*/;
+  variable205 = NEW_parser___ReduceAction204___init(); /*new ReduceAction204*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable205) /*Array::add*/;
+  variable206 = NEW_parser___ReduceAction205___init(); /*new ReduceAction205*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable206) /*Array::add*/;
+  variable207 = NEW_parser___ReduceAction206___init(); /*new ReduceAction206*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable207) /*Array::add*/;
+  variable208 = NEW_parser___ReduceAction207___init(); /*new ReduceAction207*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable208) /*Array::add*/;
+  variable209 = NEW_parser___ReduceAction208___init(); /*new ReduceAction208*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable209) /*Array::add*/;
+  variable210 = NEW_parser___ReduceAction209___init(); /*new ReduceAction209*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable210) /*Array::add*/;
+  variable211 = NEW_parser___ReduceAction210___init(); /*new ReduceAction210*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable211) /*Array::add*/;
+  variable212 = NEW_parser___ReduceAction211___init(); /*new ReduceAction211*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable212) /*Array::add*/;
+  variable213 = NEW_parser___ReduceAction212___init(); /*new ReduceAction212*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable213) /*Array::add*/;
+  variable214 = NEW_parser___ReduceAction213___init(); /*new ReduceAction213*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable214) /*Array::add*/;
+  variable215 = NEW_parser___ReduceAction214___init(); /*new ReduceAction214*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable215) /*Array::add*/;
+  variable216 = NEW_parser___ReduceAction215___init(); /*new ReduceAction215*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable216) /*Array::add*/;
+  variable217 = NEW_parser___ReduceAction216___init(); /*new ReduceAction216*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable217) /*Array::add*/;
+  variable218 = NEW_parser___ReduceAction217___init(); /*new ReduceAction217*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable218) /*Array::add*/;
+  variable219 = NEW_parser___ReduceAction218___init(); /*new ReduceAction218*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable219) /*Array::add*/;
+  variable220 = NEW_parser___ReduceAction219___init(); /*new ReduceAction219*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable220) /*Array::add*/;
+  variable221 = NEW_parser___ReduceAction220___init(); /*new ReduceAction220*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable221) /*Array::add*/;
+  variable222 = NEW_parser___ReduceAction221___init(); /*new ReduceAction221*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable222) /*Array::add*/;
+  variable223 = NEW_parser___ReduceAction222___init(); /*new ReduceAction222*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable223) /*Array::add*/;
+  variable224 = NEW_parser___ReduceAction223___init(); /*new ReduceAction223*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable224) /*Array::add*/;
+  variable225 = NEW_parser___ReduceAction224___init(); /*new ReduceAction224*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable225) /*Array::add*/;
+  variable226 = NEW_parser___ReduceAction225___init(); /*new ReduceAction225*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable226) /*Array::add*/;
+  variable227 = NEW_parser___ReduceAction226___init(); /*new ReduceAction226*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable227) /*Array::add*/;
+  variable228 = NEW_parser___ReduceAction227___init(); /*new ReduceAction227*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable228) /*Array::add*/;
+  variable229 = NEW_parser___ReduceAction228___init(); /*new ReduceAction228*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable229) /*Array::add*/;
+  variable230 = NEW_parser___ReduceAction229___init(); /*new ReduceAction229*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable230) /*Array::add*/;
+  variable231 = NEW_parser___ReduceAction230___init(); /*new ReduceAction230*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable231) /*Array::add*/;
+  variable232 = NEW_parser___ReduceAction231___init(); /*new ReduceAction231*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable232) /*Array::add*/;
+  variable233 = NEW_parser___ReduceAction232___init(); /*new ReduceAction232*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable233) /*Array::add*/;
+  variable234 = NEW_parser___ReduceAction233___init(); /*new ReduceAction233*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable234) /*Array::add*/;
+  variable235 = NEW_parser___ReduceAction234___init(); /*new ReduceAction234*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable235) /*Array::add*/;
+  variable236 = NEW_parser___ReduceAction235___init(); /*new ReduceAction235*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable236) /*Array::add*/;
+  variable237 = NEW_parser___ReduceAction236___init(); /*new ReduceAction236*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable237) /*Array::add*/;
+  variable238 = NEW_parser___ReduceAction237___init(); /*new ReduceAction237*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable238) /*Array::add*/;
+  variable239 = NEW_parser___ReduceAction238___init(); /*new ReduceAction238*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable239) /*Array::add*/;
+  variable240 = NEW_parser___ReduceAction239___init(); /*new ReduceAction239*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable240) /*Array::add*/;
+  variable241 = NEW_parser___ReduceAction240___init(); /*new ReduceAction240*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable241) /*Array::add*/;
+  variable242 = NEW_parser___ReduceAction241___init(); /*new ReduceAction241*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable242) /*Array::add*/;
+  variable243 = NEW_parser___ReduceAction242___init(); /*new ReduceAction242*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable243) /*Array::add*/;
+  variable244 = NEW_parser___ReduceAction243___init(); /*new ReduceAction243*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable244) /*Array::add*/;
+  variable245 = NEW_parser___ReduceAction244___init(); /*new ReduceAction244*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable245) /*Array::add*/;
+  variable246 = NEW_parser___ReduceAction245___init(); /*new ReduceAction245*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable246) /*Array::add*/;
+  variable247 = NEW_parser___ReduceAction246___init(); /*new ReduceAction246*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable247) /*Array::add*/;
+  variable248 = NEW_parser___ReduceAction247___init(); /*new ReduceAction247*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable248) /*Array::add*/;
+  variable249 = NEW_parser___ReduceAction248___init(); /*new ReduceAction248*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable249) /*Array::add*/;
+  variable250 = NEW_parser___ReduceAction249___init(); /*new ReduceAction249*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable250) /*Array::add*/;
+  variable251 = NEW_parser___ReduceAction250___init(); /*new ReduceAction250*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable251) /*Array::add*/;
+  variable252 = NEW_parser___ReduceAction251___init(); /*new ReduceAction251*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable252) /*Array::add*/;
+  variable253 = NEW_parser___ReduceAction252___init(); /*new ReduceAction252*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable253) /*Array::add*/;
+  variable254 = NEW_parser___ReduceAction253___init(); /*new ReduceAction253*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable254) /*Array::add*/;
+  variable255 = NEW_parser___ReduceAction254___init(); /*new ReduceAction254*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable255) /*Array::add*/;
+  variable256 = NEW_parser___ReduceAction255___init(); /*new ReduceAction255*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable256) /*Array::add*/;
+  variable257 = NEW_parser___ReduceAction256___init(); /*new ReduceAction256*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable257) /*Array::add*/;
+  variable258 = NEW_parser___ReduceAction257___init(); /*new ReduceAction257*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable258) /*Array::add*/;
+  variable259 = NEW_parser___ReduceAction258___init(); /*new ReduceAction258*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable259) /*Array::add*/;
+  variable260 = NEW_parser___ReduceAction259___init(); /*new ReduceAction259*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable260) /*Array::add*/;
+  variable261 = NEW_parser___ReduceAction260___init(); /*new ReduceAction260*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable261) /*Array::add*/;
+  variable262 = NEW_parser___ReduceAction261___init(); /*new ReduceAction261*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable262) /*Array::add*/;
+  variable263 = NEW_parser___ReduceAction262___init(); /*new ReduceAction262*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable263) /*Array::add*/;
+  variable264 = NEW_parser___ReduceAction263___init(); /*new ReduceAction263*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable264) /*Array::add*/;
+  variable265 = NEW_parser___ReduceAction264___init(); /*new ReduceAction264*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable265) /*Array::add*/;
+  variable266 = NEW_parser___ReduceAction265___init(); /*new ReduceAction265*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable266) /*Array::add*/;
+  variable267 = NEW_parser___ReduceAction266___init(); /*new ReduceAction266*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable267) /*Array::add*/;
+  variable268 = NEW_parser___ReduceAction267___init(); /*new ReduceAction267*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable268) /*Array::add*/;
+  variable269 = NEW_parser___ReduceAction268___init(); /*new ReduceAction268*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable269) /*Array::add*/;
+  variable270 = NEW_parser___ReduceAction269___init(); /*new ReduceAction269*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable270) /*Array::add*/;
+  variable271 = NEW_parser___ReduceAction270___init(); /*new ReduceAction270*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable271) /*Array::add*/;
+  variable272 = NEW_parser___ReduceAction271___init(); /*new ReduceAction271*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable272) /*Array::add*/;
+  variable273 = NEW_parser___ReduceAction272___init(); /*new ReduceAction272*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable273) /*Array::add*/;
+  variable274 = NEW_parser___ReduceAction273___init(); /*new ReduceAction273*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable274) /*Array::add*/;
+  variable275 = NEW_parser___ReduceAction274___init(); /*new ReduceAction274*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable275) /*Array::add*/;
+  variable276 = NEW_parser___ReduceAction275___init(); /*new ReduceAction275*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable276) /*Array::add*/;
+  variable277 = NEW_parser___ReduceAction276___init(); /*new ReduceAction276*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable277) /*Array::add*/;
+  variable278 = NEW_parser___ReduceAction277___init(); /*new ReduceAction277*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable278) /*Array::add*/;
+  variable279 = NEW_parser___ReduceAction278___init(); /*new ReduceAction278*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable279) /*Array::add*/;
+  variable280 = NEW_parser___ReduceAction279___init(); /*new ReduceAction279*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable280) /*Array::add*/;
+  variable281 = NEW_parser___ReduceAction280___init(); /*new ReduceAction280*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable281) /*Array::add*/;
+  variable282 = NEW_parser___ReduceAction281___init(); /*new ReduceAction281*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable282) /*Array::add*/;
+  variable283 = NEW_parser___ReduceAction282___init(); /*new ReduceAction282*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable283) /*Array::add*/;
+  variable284 = NEW_parser___ReduceAction283___init(); /*new ReduceAction283*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable284) /*Array::add*/;
+  variable285 = NEW_parser___ReduceAction284___init(); /*new ReduceAction284*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable285) /*Array::add*/;
+  variable286 = NEW_parser___ReduceAction285___init(); /*new ReduceAction285*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable286) /*Array::add*/;
+  variable287 = NEW_parser___ReduceAction286___init(); /*new ReduceAction286*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable287) /*Array::add*/;
+  variable288 = NEW_parser___ReduceAction287___init(); /*new ReduceAction287*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable288) /*Array::add*/;
+  variable289 = NEW_parser___ReduceAction288___init(); /*new ReduceAction288*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable289) /*Array::add*/;
+  variable290 = NEW_parser___ReduceAction289___init(); /*new ReduceAction289*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable290) /*Array::add*/;
+  variable291 = NEW_parser___ReduceAction290___init(); /*new ReduceAction290*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable291) /*Array::add*/;
+  variable292 = NEW_parser___ReduceAction291___init(); /*new ReduceAction291*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable292) /*Array::add*/;
+  variable293 = NEW_parser___ReduceAction292___init(); /*new ReduceAction292*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable293) /*Array::add*/;
+  variable294 = NEW_parser___ReduceAction293___init(); /*new ReduceAction293*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable294) /*Array::add*/;
+  variable295 = NEW_parser___ReduceAction294___init(); /*new ReduceAction294*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable295) /*Array::add*/;
+  variable296 = NEW_parser___ReduceAction295___init(); /*new ReduceAction295*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable296) /*Array::add*/;
+  variable297 = NEW_parser___ReduceAction296___init(); /*new ReduceAction296*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable297) /*Array::add*/;
+  variable298 = NEW_parser___ReduceAction297___init(); /*new ReduceAction297*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable298) /*Array::add*/;
+  variable299 = NEW_parser___ReduceAction298___init(); /*new ReduceAction298*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable299) /*Array::add*/;
+  variable300 = NEW_parser___ReduceAction299___init(); /*new ReduceAction299*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable300) /*Array::add*/;
+  variable301 = NEW_parser___ReduceAction300___init(); /*new ReduceAction300*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable301) /*Array::add*/;
+  variable302 = NEW_parser___ReduceAction301___init(); /*new ReduceAction301*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable302) /*Array::add*/;
+  variable303 = NEW_parser___ReduceAction302___init(); /*new ReduceAction302*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable303) /*Array::add*/;
+  variable304 = NEW_parser___ReduceAction303___init(); /*new ReduceAction303*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable304) /*Array::add*/;
+  variable305 = NEW_parser___ReduceAction304___init(); /*new ReduceAction304*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable305) /*Array::add*/;
+  variable306 = NEW_parser___ReduceAction305___init(); /*new ReduceAction305*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable306) /*Array::add*/;
+  variable307 = NEW_parser___ReduceAction306___init(); /*new ReduceAction306*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable307) /*Array::add*/;
+  variable308 = NEW_parser___ReduceAction307___init(); /*new ReduceAction307*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable308) /*Array::add*/;
+  variable309 = NEW_parser___ReduceAction308___init(); /*new ReduceAction308*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable309) /*Array::add*/;
+  variable310 = NEW_parser___ReduceAction309___init(); /*new ReduceAction309*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable310) /*Array::add*/;
+  variable311 = NEW_parser___ReduceAction310___init(); /*new ReduceAction310*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable311) /*Array::add*/;
+  variable312 = NEW_parser___ReduceAction311___init(); /*new ReduceAction311*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable312) /*Array::add*/;
+  variable313 = NEW_parser___ReduceAction312___init(); /*new ReduceAction312*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable313) /*Array::add*/;
+  variable314 = NEW_parser___ReduceAction313___init(); /*new ReduceAction313*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable314) /*Array::add*/;
+  variable315 = NEW_parser___ReduceAction314___init(); /*new ReduceAction314*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable315) /*Array::add*/;
+  variable316 = NEW_parser___ReduceAction315___init(); /*new ReduceAction315*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable316) /*Array::add*/;
+  variable317 = NEW_parser___ReduceAction316___init(); /*new ReduceAction316*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable317) /*Array::add*/;
+  variable318 = NEW_parser___ReduceAction317___init(); /*new ReduceAction317*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable318) /*Array::add*/;
+  variable319 = NEW_parser___ReduceAction318___init(); /*new ReduceAction318*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable319) /*Array::add*/;
+  variable320 = NEW_parser___ReduceAction319___init(); /*new ReduceAction319*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable320) /*Array::add*/;
+  variable321 = NEW_parser___ReduceAction320___init(); /*new ReduceAction320*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable321) /*Array::add*/;
+  variable322 = NEW_parser___ReduceAction321___init(); /*new ReduceAction321*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable322) /*Array::add*/;
+  variable323 = NEW_parser___ReduceAction322___init(); /*new ReduceAction322*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable323) /*Array::add*/;
+  variable324 = NEW_parser___ReduceAction323___init(); /*new ReduceAction323*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable324) /*Array::add*/;
+  variable325 = NEW_parser___ReduceAction324___init(); /*new ReduceAction324*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable325) /*Array::add*/;
+  variable326 = NEW_parser___ReduceAction325___init(); /*new ReduceAction325*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable326) /*Array::add*/;
+  variable327 = NEW_parser___ReduceAction326___init(); /*new ReduceAction326*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable327) /*Array::add*/;
+  variable328 = NEW_parser___ReduceAction327___init(); /*new ReduceAction327*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable328) /*Array::add*/;
+  variable329 = NEW_parser___ReduceAction328___init(); /*new ReduceAction328*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable329) /*Array::add*/;
+  variable330 = NEW_parser___ReduceAction329___init(); /*new ReduceAction329*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable330) /*Array::add*/;
+  variable331 = NEW_parser___ReduceAction330___init(); /*new ReduceAction330*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable331) /*Array::add*/;
+  variable332 = NEW_parser___ReduceAction331___init(); /*new ReduceAction331*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable332) /*Array::add*/;
+  variable333 = NEW_parser___ReduceAction332___init(); /*new ReduceAction332*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable333) /*Array::add*/;
+  variable334 = NEW_parser___ReduceAction333___init(); /*new ReduceAction333*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable334) /*Array::add*/;
+  variable335 = NEW_parser___ReduceAction334___init(); /*new ReduceAction334*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable335) /*Array::add*/;
+  variable336 = NEW_parser___ReduceAction335___init(); /*new ReduceAction335*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable336) /*Array::add*/;
+  variable337 = NEW_parser___ReduceAction336___init(); /*new ReduceAction336*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable337) /*Array::add*/;
+  variable338 = NEW_parser___ReduceAction337___init(); /*new ReduceAction337*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable338) /*Array::add*/;
+  variable339 = NEW_parser___ReduceAction338___init(); /*new ReduceAction338*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable339) /*Array::add*/;
+  variable340 = NEW_parser___ReduceAction339___init(); /*new ReduceAction339*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable340) /*Array::add*/;
+  variable341 = NEW_parser___ReduceAction340___init(); /*new ReduceAction340*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable341) /*Array::add*/;
+  variable342 = NEW_parser___ReduceAction341___init(); /*new ReduceAction341*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable342) /*Array::add*/;
+  variable343 = NEW_parser___ReduceAction342___init(); /*new ReduceAction342*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable343) /*Array::add*/;
+  variable344 = NEW_parser___ReduceAction343___init(); /*new ReduceAction343*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable344) /*Array::add*/;
+  variable345 = NEW_parser___ReduceAction344___init(); /*new ReduceAction344*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable345) /*Array::add*/;
+  variable346 = NEW_parser___ReduceAction345___init(); /*new ReduceAction345*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable346) /*Array::add*/;
+  variable347 = NEW_parser___ReduceAction346___init(); /*new ReduceAction346*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable347) /*Array::add*/;
+  variable348 = NEW_parser___ReduceAction347___init(); /*new ReduceAction347*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable348) /*Array::add*/;
+  variable349 = NEW_parser___ReduceAction348___init(); /*new ReduceAction348*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable349) /*Array::add*/;
+  variable350 = NEW_parser___ReduceAction349___init(); /*new ReduceAction349*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable350) /*Array::add*/;
+  variable351 = NEW_parser___ReduceAction350___init(); /*new ReduceAction350*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable351) /*Array::add*/;
+  variable352 = NEW_parser___ReduceAction351___init(); /*new ReduceAction351*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable352) /*Array::add*/;
+  variable353 = NEW_parser___ReduceAction352___init(); /*new ReduceAction352*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable353) /*Array::add*/;
+  variable354 = NEW_parser___ReduceAction353___init(); /*new ReduceAction353*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable354) /*Array::add*/;
+  variable355 = NEW_parser___ReduceAction354___init(); /*new ReduceAction354*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable355) /*Array::add*/;
+  variable356 = NEW_parser___ReduceAction355___init(); /*new ReduceAction355*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable356) /*Array::add*/;
+  variable357 = NEW_parser___ReduceAction356___init(); /*new ReduceAction356*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable357) /*Array::add*/;
+  variable358 = NEW_parser___ReduceAction357___init(); /*new ReduceAction357*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable358) /*Array::add*/;
+  variable359 = NEW_parser___ReduceAction358___init(); /*new ReduceAction358*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable359) /*Array::add*/;
+  variable360 = NEW_parser___ReduceAction359___init(); /*new ReduceAction359*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable360) /*Array::add*/;
+  variable361 = NEW_parser___ReduceAction360___init(); /*new ReduceAction360*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable361) /*Array::add*/;
+  variable362 = NEW_parser___ReduceAction361___init(); /*new ReduceAction361*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable362) /*Array::add*/;
+  variable363 = NEW_parser___ReduceAction362___init(); /*new ReduceAction362*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable363) /*Array::add*/;
+  variable364 = NEW_parser___ReduceAction363___init(); /*new ReduceAction363*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable364) /*Array::add*/;
+  variable365 = NEW_parser___ReduceAction364___init(); /*new ReduceAction364*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable365) /*Array::add*/;
+  variable366 = NEW_parser___ReduceAction365___init(); /*new ReduceAction365*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable366) /*Array::add*/;
+  variable367 = NEW_parser___ReduceAction366___init(); /*new ReduceAction366*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable367) /*Array::add*/;
+  variable368 = NEW_parser___ReduceAction367___init(); /*new ReduceAction367*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable368) /*Array::add*/;
+  variable369 = NEW_parser___ReduceAction368___init(); /*new ReduceAction368*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable369) /*Array::add*/;
+  variable370 = NEW_parser___ReduceAction369___init(); /*new ReduceAction369*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable370) /*Array::add*/;
+  variable371 = NEW_parser___ReduceAction370___init(); /*new ReduceAction370*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable371) /*Array::add*/;
+  variable372 = NEW_parser___ReduceAction371___init(); /*new ReduceAction371*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable372) /*Array::add*/;
+  variable373 = NEW_parser___ReduceAction372___init(); /*new ReduceAction372*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable373) /*Array::add*/;
+  variable374 = NEW_parser___ReduceAction373___init(); /*new ReduceAction373*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable374) /*Array::add*/;
+  variable375 = NEW_parser___ReduceAction374___init(); /*new ReduceAction374*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable375) /*Array::add*/;
+  variable376 = NEW_parser___ReduceAction375___init(); /*new ReduceAction375*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable376) /*Array::add*/;
+  variable377 = NEW_parser___ReduceAction376___init(); /*new ReduceAction376*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable377) /*Array::add*/;
+  variable378 = NEW_parser___ReduceAction377___init(); /*new ReduceAction377*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable378) /*Array::add*/;
+  variable379 = NEW_parser___ReduceAction378___init(); /*new ReduceAction378*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable379) /*Array::add*/;
+  variable380 = NEW_parser___ReduceAction379___init(); /*new ReduceAction379*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable380) /*Array::add*/;
+  variable381 = NEW_parser___ReduceAction380___init(); /*new ReduceAction380*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable381) /*Array::add*/;
+  variable382 = NEW_parser___ReduceAction381___init(); /*new ReduceAction381*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable382) /*Array::add*/;
+  variable383 = NEW_parser___ReduceAction382___init(); /*new ReduceAction382*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable383) /*Array::add*/;
+  variable384 = NEW_parser___ReduceAction383___init(); /*new ReduceAction383*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable384) /*Array::add*/;
+  variable385 = NEW_parser___ReduceAction384___init(); /*new ReduceAction384*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable385) /*Array::add*/;
+  variable386 = NEW_parser___ReduceAction385___init(); /*new ReduceAction385*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable386) /*Array::add*/;
+  variable387 = NEW_parser___ReduceAction386___init(); /*new ReduceAction386*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable387) /*Array::add*/;
+  variable388 = NEW_parser___ReduceAction387___init(); /*new ReduceAction387*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable388) /*Array::add*/;
+  variable389 = NEW_parser___ReduceAction388___init(); /*new ReduceAction388*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable389) /*Array::add*/;
+  variable390 = NEW_parser___ReduceAction389___init(); /*new ReduceAction389*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable390) /*Array::add*/;
+  variable391 = NEW_parser___ReduceAction390___init(); /*new ReduceAction390*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable391) /*Array::add*/;
+  variable392 = NEW_parser___ReduceAction391___init(); /*new ReduceAction391*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable392) /*Array::add*/;
+  variable393 = NEW_parser___ReduceAction392___init(); /*new ReduceAction392*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable393) /*Array::add*/;
+  variable394 = NEW_parser___ReduceAction393___init(); /*new ReduceAction393*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable394) /*Array::add*/;
+  variable395 = NEW_parser___ReduceAction394___init(); /*new ReduceAction394*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable395) /*Array::add*/;
+  variable396 = NEW_parser___ReduceAction395___init(); /*new ReduceAction395*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable396) /*Array::add*/;
+  variable397 = NEW_parser___ReduceAction396___init(); /*new ReduceAction396*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable397) /*Array::add*/;
+  variable398 = NEW_parser___ReduceAction397___init(); /*new ReduceAction397*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable398) /*Array::add*/;
+  variable399 = NEW_parser___ReduceAction398___init(); /*new ReduceAction398*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable399) /*Array::add*/;
+  variable400 = NEW_parser___ReduceAction399___init(); /*new ReduceAction399*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable400) /*Array::add*/;
+  variable401 = NEW_parser___ReduceAction400___init(); /*new ReduceAction400*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable401) /*Array::add*/;
+  variable402 = NEW_parser___ReduceAction401___init(); /*new ReduceAction401*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable402) /*Array::add*/;
+  variable403 = NEW_parser___ReduceAction402___init(); /*new ReduceAction402*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable403) /*Array::add*/;
+  variable404 = NEW_parser___ReduceAction403___init(); /*new ReduceAction403*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable404) /*Array::add*/;
+  variable405 = NEW_parser___ReduceAction404___init(); /*new ReduceAction404*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable405) /*Array::add*/;
+  variable406 = NEW_parser___ReduceAction405___init(); /*new ReduceAction405*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable406) /*Array::add*/;
+  variable407 = NEW_parser___ReduceAction406___init(); /*new ReduceAction406*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable407) /*Array::add*/;
+  variable408 = NEW_parser___ReduceAction407___init(); /*new ReduceAction407*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable408) /*Array::add*/;
+  variable409 = NEW_parser___ReduceAction408___init(); /*new ReduceAction408*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable409) /*Array::add*/;
+  variable410 = NEW_parser___ReduceAction409___init(); /*new ReduceAction409*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable410) /*Array::add*/;
+  variable411 = NEW_parser___ReduceAction410___init(); /*new ReduceAction410*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable411) /*Array::add*/;
+  variable412 = NEW_parser___ReduceAction411___init(); /*new ReduceAction411*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable412) /*Array::add*/;
+  variable413 = NEW_parser___ReduceAction412___init(); /*new ReduceAction412*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable413) /*Array::add*/;
+  variable414 = NEW_parser___ReduceAction413___init(); /*new ReduceAction413*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable414) /*Array::add*/;
+  variable415 = NEW_parser___ReduceAction414___init(); /*new ReduceAction414*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable415) /*Array::add*/;
+  variable416 = NEW_parser___ReduceAction415___init(); /*new ReduceAction415*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable416) /*Array::add*/;
+  variable417 = NEW_parser___ReduceAction416___init(); /*new ReduceAction416*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable417) /*Array::add*/;
+  variable418 = NEW_parser___ReduceAction417___init(); /*new ReduceAction417*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable418) /*Array::add*/;
+  variable419 = NEW_parser___ReduceAction418___init(); /*new ReduceAction418*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable419) /*Array::add*/;
+  variable420 = NEW_parser___ReduceAction419___init(); /*new ReduceAction419*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable420) /*Array::add*/;
+  variable421 = NEW_parser___ReduceAction420___init(); /*new ReduceAction420*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable421) /*Array::add*/;
+  variable422 = NEW_parser___ReduceAction421___init(); /*new ReduceAction421*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable422) /*Array::add*/;
+  variable423 = NEW_parser___ReduceAction422___init(); /*new ReduceAction422*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable423) /*Array::add*/;
+  variable424 = NEW_parser___ReduceAction423___init(); /*new ReduceAction423*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable424) /*Array::add*/;
+  variable425 = NEW_parser___ReduceAction424___init(); /*new ReduceAction424*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable425) /*Array::add*/;
+  variable426 = NEW_parser___ReduceAction425___init(); /*new ReduceAction425*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable426) /*Array::add*/;
+  variable427 = NEW_parser___ReduceAction426___init(); /*new ReduceAction426*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable427) /*Array::add*/;
+  variable428 = NEW_parser___ReduceAction427___init(); /*new ReduceAction427*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable428) /*Array::add*/;
+  variable429 = NEW_parser___ReduceAction428___init(); /*new ReduceAction428*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable429) /*Array::add*/;
+  variable430 = NEW_parser___ReduceAction429___init(); /*new ReduceAction429*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable430) /*Array::add*/;
+  variable431 = NEW_parser___ReduceAction430___init(); /*new ReduceAction430*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable431) /*Array::add*/;
+  variable432 = NEW_parser___ReduceAction431___init(); /*new ReduceAction431*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable432) /*Array::add*/;
+  variable433 = NEW_parser___ReduceAction432___init(); /*new ReduceAction432*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable433) /*Array::add*/;
+  variable434 = NEW_parser___ReduceAction433___init(); /*new ReduceAction433*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable434) /*Array::add*/;
+  variable435 = NEW_parser___ReduceAction434___init(); /*new ReduceAction434*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable435) /*Array::add*/;
+  variable436 = NEW_parser___ReduceAction435___init(); /*new ReduceAction435*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable436) /*Array::add*/;
+  variable437 = NEW_parser___ReduceAction436___init(); /*new ReduceAction436*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable437) /*Array::add*/;
+  variable438 = NEW_parser___ReduceAction437___init(); /*new ReduceAction437*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable438) /*Array::add*/;
+  variable439 = NEW_parser___ReduceAction438___init(); /*new ReduceAction438*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable439) /*Array::add*/;
+  variable440 = NEW_parser___ReduceAction439___init(); /*new ReduceAction439*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable440) /*Array::add*/;
+  variable441 = NEW_parser___ReduceAction440___init(); /*new ReduceAction440*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable441) /*Array::add*/;
+  variable442 = NEW_parser___ReduceAction441___init(); /*new ReduceAction441*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable442) /*Array::add*/;
+  variable443 = NEW_parser___ReduceAction442___init(); /*new ReduceAction442*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable443) /*Array::add*/;
+  variable444 = NEW_parser___ReduceAction443___init(); /*new ReduceAction443*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable444) /*Array::add*/;
+  variable445 = NEW_parser___ReduceAction444___init(); /*new ReduceAction444*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable445) /*Array::add*/;
+  variable446 = NEW_parser___ReduceAction445___init(); /*new ReduceAction445*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable446) /*Array::add*/;
+  variable447 = NEW_parser___ReduceAction446___init(); /*new ReduceAction446*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable447) /*Array::add*/;
+  variable448 = NEW_parser___ReduceAction447___init(); /*new ReduceAction447*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable448) /*Array::add*/;
+  variable449 = NEW_parser___ReduceAction448___init(); /*new ReduceAction448*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable449) /*Array::add*/;
+  variable450 = NEW_parser___ReduceAction449___init(); /*new ReduceAction449*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable450) /*Array::add*/;
+  variable451 = NEW_parser___ReduceAction450___init(); /*new ReduceAction450*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable451) /*Array::add*/;
+  variable452 = NEW_parser___ReduceAction451___init(); /*new ReduceAction451*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable452) /*Array::add*/;
+  variable453 = NEW_parser___ReduceAction452___init(); /*new ReduceAction452*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable453) /*Array::add*/;
+  variable454 = NEW_parser___ReduceAction453___init(); /*new ReduceAction453*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable454) /*Array::add*/;
+  variable455 = NEW_parser___ReduceAction454___init(); /*new ReduceAction454*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable455) /*Array::add*/;
+  variable456 = NEW_parser___ReduceAction455___init(); /*new ReduceAction455*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable456) /*Array::add*/;
+  variable457 = NEW_parser___ReduceAction456___init(); /*new ReduceAction456*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable457) /*Array::add*/;
+  variable458 = NEW_parser___ReduceAction457___init(); /*new ReduceAction457*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable458) /*Array::add*/;
+  variable459 = NEW_parser___ReduceAction458___init(); /*new ReduceAction458*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable459) /*Array::add*/;
+  variable460 = NEW_parser___ReduceAction459___init(); /*new ReduceAction459*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable460) /*Array::add*/;
+  variable461 = NEW_parser___ReduceAction460___init(); /*new ReduceAction460*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable461) /*Array::add*/;
+  variable462 = NEW_parser___ReduceAction461___init(); /*new ReduceAction461*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable462) /*Array::add*/;
+  variable463 = NEW_parser___ReduceAction462___init(); /*new ReduceAction462*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable463) /*Array::add*/;
+  variable464 = NEW_parser___ReduceAction463___init(); /*new ReduceAction463*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable464) /*Array::add*/;
+  variable465 = NEW_parser___ReduceAction464___init(); /*new ReduceAction464*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable465) /*Array::add*/;
+  variable466 = NEW_parser___ReduceAction465___init(); /*new ReduceAction465*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable466) /*Array::add*/;
+  variable467 = NEW_parser___ReduceAction466___init(); /*new ReduceAction466*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable467) /*Array::add*/;
+  variable468 = NEW_parser___ReduceAction467___init(); /*new ReduceAction467*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable468) /*Array::add*/;
+  variable469 = NEW_parser___ReduceAction468___init(); /*new ReduceAction468*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable469) /*Array::add*/;
+  variable470 = NEW_parser___ReduceAction469___init(); /*new ReduceAction469*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable470) /*Array::add*/;
+  variable471 = NEW_parser___ReduceAction470___init(); /*new ReduceAction470*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable471) /*Array::add*/;
+  variable472 = NEW_parser___ReduceAction471___init(); /*new ReduceAction471*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable472) /*Array::add*/;
+  variable473 = NEW_parser___ReduceAction472___init(); /*new ReduceAction472*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable473) /*Array::add*/;
+  variable474 = NEW_parser___ReduceAction473___init(); /*new ReduceAction473*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable474) /*Array::add*/;
+  variable475 = NEW_parser___ReduceAction474___init(); /*new ReduceAction474*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable475) /*Array::add*/;
+  variable476 = NEW_parser___ReduceAction475___init(); /*new ReduceAction475*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable476) /*Array::add*/;
+  variable477 = NEW_parser___ReduceAction476___init(); /*new ReduceAction476*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable477) /*Array::add*/;
+  variable478 = NEW_parser___ReduceAction477___init(); /*new ReduceAction477*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable478) /*Array::add*/;
+  variable479 = NEW_parser___ReduceAction478___init(); /*new ReduceAction478*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable479) /*Array::add*/;
+  variable480 = NEW_parser___ReduceAction479___init(); /*new ReduceAction479*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable480) /*Array::add*/;
+  variable481 = NEW_parser___ReduceAction480___init(); /*new ReduceAction480*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable481) /*Array::add*/;
+  variable482 = NEW_parser___ReduceAction481___init(); /*new ReduceAction481*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable482) /*Array::add*/;
+  variable483 = NEW_parser___ReduceAction482___init(); /*new ReduceAction482*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable483) /*Array::add*/;
+  variable484 = NEW_parser___ReduceAction483___init(); /*new ReduceAction483*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable484) /*Array::add*/;
+  variable485 = NEW_parser___ReduceAction484___init(); /*new ReduceAction484*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable485) /*Array::add*/;
+  variable486 = NEW_parser___ReduceAction485___init(); /*new ReduceAction485*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable486) /*Array::add*/;
+  variable487 = NEW_parser___ReduceAction486___init(); /*new ReduceAction486*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable487) /*Array::add*/;
+  variable488 = NEW_parser___ReduceAction487___init(); /*new ReduceAction487*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable488) /*Array::add*/;
+  variable489 = NEW_parser___ReduceAction488___init(); /*new ReduceAction488*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable489) /*Array::add*/;
+  variable490 = NEW_parser___ReduceAction489___init(); /*new ReduceAction489*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable490) /*Array::add*/;
+  variable491 = NEW_parser___ReduceAction490___init(); /*new ReduceAction490*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable491) /*Array::add*/;
+  variable492 = NEW_parser___ReduceAction491___init(); /*new ReduceAction491*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable492) /*Array::add*/;
+  variable493 = NEW_parser___ReduceAction492___init(); /*new ReduceAction492*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable493) /*Array::add*/;
+  variable494 = NEW_parser___ReduceAction493___init(); /*new ReduceAction493*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable494) /*Array::add*/;
+  variable495 = NEW_parser___ReduceAction494___init(); /*new ReduceAction494*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable495) /*Array::add*/;
+  variable496 = NEW_parser___ReduceAction495___init(); /*new ReduceAction495*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable496) /*Array::add*/;
+  variable497 = NEW_parser___ReduceAction496___init(); /*new ReduceAction496*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable497) /*Array::add*/;
+  variable498 = NEW_parser___ReduceAction497___init(); /*new ReduceAction497*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable498) /*Array::add*/;
+  variable499 = NEW_parser___ReduceAction498___init(); /*new ReduceAction498*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable499) /*Array::add*/;
+  variable500 = NEW_parser___ReduceAction499___init(); /*new ReduceAction499*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable500) /*Array::add*/;
+  variable501 = NEW_parser___ReduceAction500___init(); /*new ReduceAction500*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable501) /*Array::add*/;
+  variable502 = NEW_parser___ReduceAction501___init(); /*new ReduceAction501*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable502) /*Array::add*/;
+  variable503 = NEW_parser___ReduceAction502___init(); /*new ReduceAction502*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable503) /*Array::add*/;
+  variable504 = NEW_parser___ReduceAction503___init(); /*new ReduceAction503*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable504) /*Array::add*/;
+  variable505 = NEW_parser___ReduceAction504___init(); /*new ReduceAction504*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable505) /*Array::add*/;
+  variable506 = NEW_parser___ReduceAction505___init(); /*new ReduceAction505*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable506) /*Array::add*/;
+  variable507 = NEW_parser___ReduceAction506___init(); /*new ReduceAction506*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable507) /*Array::add*/;
+  variable508 = NEW_parser___ReduceAction507___init(); /*new ReduceAction507*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable508) /*Array::add*/;
+  variable509 = NEW_parser___ReduceAction508___init(); /*new ReduceAction508*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable509) /*Array::add*/;
+  variable510 = NEW_parser___ReduceAction509___init(); /*new ReduceAction509*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable510) /*Array::add*/;
+  variable511 = NEW_parser___ReduceAction510___init(); /*new ReduceAction510*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable511) /*Array::add*/;
+  variable512 = NEW_parser___ReduceAction511___init(); /*new ReduceAction511*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable512) /*Array::add*/;
+  variable513 = NEW_parser___ReduceAction512___init(); /*new ReduceAction512*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable513) /*Array::add*/;
+  variable514 = NEW_parser___ReduceAction513___init(); /*new ReduceAction513*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable514) /*Array::add*/;
+  variable515 = NEW_parser___ReduceAction514___init(); /*new ReduceAction514*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable515) /*Array::add*/;
+  variable516 = NEW_parser___ReduceAction515___init(); /*new ReduceAction515*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable516) /*Array::add*/;
+  variable517 = NEW_parser___ReduceAction516___init(); /*new ReduceAction516*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable517) /*Array::add*/;
+  variable518 = NEW_parser___ReduceAction517___init(); /*new ReduceAction517*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable518) /*Array::add*/;
+  variable519 = NEW_parser___ReduceAction518___init(); /*new ReduceAction518*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable519) /*Array::add*/;
+  variable520 = NEW_parser___ReduceAction519___init(); /*new ReduceAction519*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable520) /*Array::add*/;
+  variable521 = NEW_parser___ReduceAction520___init(); /*new ReduceAction520*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable521) /*Array::add*/;
+  variable522 = NEW_parser___ReduceAction521___init(); /*new ReduceAction521*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable522) /*Array::add*/;
+  variable523 = NEW_parser___ReduceAction522___init(); /*new ReduceAction522*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable523) /*Array::add*/;
+  variable524 = NEW_parser___ReduceAction523___init(); /*new ReduceAction523*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable524) /*Array::add*/;
+  variable525 = NEW_parser___ReduceAction524___init(); /*new ReduceAction524*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable525) /*Array::add*/;
+  variable526 = NEW_parser___ReduceAction525___init(); /*new ReduceAction525*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable526) /*Array::add*/;
+  variable527 = NEW_parser___ReduceAction526___init(); /*new ReduceAction526*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable527) /*Array::add*/;
+  variable528 = NEW_parser___ReduceAction527___init(); /*new ReduceAction527*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable528) /*Array::add*/;
+  variable529 = NEW_parser___ReduceAction528___init(); /*new ReduceAction528*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable529) /*Array::add*/;
+  variable530 = NEW_parser___ReduceAction529___init(); /*new ReduceAction529*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable530) /*Array::add*/;
+  variable531 = NEW_parser___ReduceAction530___init(); /*new ReduceAction530*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable531) /*Array::add*/;
+  variable532 = NEW_parser___ReduceAction531___init(); /*new ReduceAction531*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable532) /*Array::add*/;
+  variable533 = NEW_parser___ReduceAction532___init(); /*new ReduceAction532*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable533) /*Array::add*/;
+  variable534 = NEW_parser___ReduceAction533___init(); /*new ReduceAction533*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable534) /*Array::add*/;
+  variable535 = NEW_parser___ReduceAction534___init(); /*new ReduceAction534*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable535) /*Array::add*/;
+  variable536 = NEW_parser___ReduceAction535___init(); /*new ReduceAction535*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable536) /*Array::add*/;
+  variable537 = NEW_parser___ReduceAction536___init(); /*new ReduceAction536*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable537) /*Array::add*/;
+  variable538 = NEW_parser___ReduceAction537___init(); /*new ReduceAction537*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable538) /*Array::add*/;
+  variable539 = NEW_parser___ReduceAction538___init(); /*new ReduceAction538*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable539) /*Array::add*/;
+  variable540 = NEW_parser___ReduceAction539___init(); /*new ReduceAction539*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable540) /*Array::add*/;
+  variable541 = NEW_parser___ReduceAction540___init(); /*new ReduceAction540*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable541) /*Array::add*/;
+  variable542 = NEW_parser___ReduceAction541___init(); /*new ReduceAction541*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable542) /*Array::add*/;
+  variable543 = NEW_parser___ReduceAction542___init(); /*new ReduceAction542*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable543) /*Array::add*/;
+  variable544 = NEW_parser___ReduceAction543___init(); /*new ReduceAction543*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable544) /*Array::add*/;
+  variable545 = NEW_parser___ReduceAction544___init(); /*new ReduceAction544*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable545) /*Array::add*/;
+  variable546 = NEW_parser___ReduceAction545___init(); /*new ReduceAction545*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable546) /*Array::add*/;
+  variable547 = NEW_parser___ReduceAction546___init(); /*new ReduceAction546*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable547) /*Array::add*/;
+  variable548 = NEW_parser___ReduceAction547___init(); /*new ReduceAction547*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable548) /*Array::add*/;
+  variable549 = NEW_parser___ReduceAction548___init(); /*new ReduceAction548*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable549) /*Array::add*/;
+  variable550 = NEW_parser___ReduceAction549___init(); /*new ReduceAction549*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable550) /*Array::add*/;
+  variable551 = NEW_parser___ReduceAction550___init(); /*new ReduceAction550*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable551) /*Array::add*/;
+  variable552 = NEW_parser___ReduceAction551___init(); /*new ReduceAction551*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable552) /*Array::add*/;
+  variable553 = NEW_parser___ReduceAction552___init(); /*new ReduceAction552*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable553) /*Array::add*/;
+  variable554 = NEW_parser___ReduceAction553___init(); /*new ReduceAction553*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable554) /*Array::add*/;
+  variable555 = NEW_parser___ReduceAction554___init(); /*new ReduceAction554*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable555) /*Array::add*/;
+  variable556 = NEW_parser___ReduceAction555___init(); /*new ReduceAction555*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable556) /*Array::add*/;
+  variable557 = NEW_parser___ReduceAction556___init(); /*new ReduceAction556*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable557) /*Array::add*/;
+  variable558 = NEW_parser___ReduceAction557___init(); /*new ReduceAction557*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable558) /*Array::add*/;
+  variable559 = NEW_parser___ReduceAction558___init(); /*new ReduceAction558*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable559) /*Array::add*/;
+  variable560 = NEW_parser___ReduceAction559___init(); /*new ReduceAction559*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable560) /*Array::add*/;
+  variable561 = NEW_parser___ReduceAction560___init(); /*new ReduceAction560*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable561) /*Array::add*/;
+  variable562 = NEW_parser___ReduceAction561___init(); /*new ReduceAction561*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable562) /*Array::add*/;
+  variable563 = NEW_parser___ReduceAction562___init(); /*new ReduceAction562*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable563) /*Array::add*/;
+  variable564 = NEW_parser___ReduceAction563___init(); /*new ReduceAction563*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable564) /*Array::add*/;
+  variable565 = NEW_parser___ReduceAction564___init(); /*new ReduceAction564*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable565) /*Array::add*/;
+  variable566 = NEW_parser___ReduceAction565___init(); /*new ReduceAction565*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable566) /*Array::add*/;
+  variable567 = NEW_parser___ReduceAction566___init(); /*new ReduceAction566*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable567) /*Array::add*/;
+  variable568 = NEW_parser___ReduceAction567___init(); /*new ReduceAction567*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable568) /*Array::add*/;
+  variable569 = NEW_parser___ReduceAction568___init(); /*new ReduceAction568*/
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable569) /*Array::add*/;
+  variable1 = NEW_array___Array___with(variable0); /*new Array[ReduceAction]*/
+  variable0 = variable1;
+  ATTR_parser___Parser____reduce_table( self) /*Parser::_reduce_table*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+void parser___SearchTokensVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::SearchTokensVisitor::visit (src/parser//parser.nit:739,2--752:29)"};
+  val_t variable0;
+  val_t variable1;
+      val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Token, ID_Token)) /*cast Token*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Token, ID_Token)) /*cast Token*/;
+    if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:742,4--21\n"); nit_exit(1);}
+    ATTR_parser___SearchTokensVisitor____last_token( self) /*SearchTokensVisitor::_last_token*/ =  variable0 /*n*/;
+    variable1 = ATTR_parser___SearchTokensVisitor____untokenned_nodes( self) /*SearchTokensVisitor::_untokenned_nodes*/;
+    variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable2)) break; /*for*/
+      variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+      ((parser_prod___Prod___first_token__eq_t)CALL( variable2 /*no*/,COLOR_parser_prod___Prod___first_token__eq))( variable2 /*no*/,  variable0 /*n*/) /*Prod::first_token=*/;
+      continue_30: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+    }
+    break_30: while(0);
+    variable1 = ATTR_parser___SearchTokensVisitor____untokenned_nodes( self) /*SearchTokensVisitor::_untokenned_nodes*/;
+    ((array___AbstractArray___clear_t)CALL(variable1,COLOR_abstract_collection___RemovableCollection___clear))(variable1) /*Array::clear*/;
+  } else { /*if*/
+    variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
+    if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:749,4--20\n"); nit_exit(1);}
+    variable1 = ATTR_parser___SearchTokensVisitor____untokenned_nodes( self) /*SearchTokensVisitor::_untokenned_nodes*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*n*/) /*Array::add*/;
+    ((parser_prod___PNode___visit_all_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___visit_all))( variable0 /*n*/,  self) /*Prod::visit_all*/;
+    variable1 = ATTR_parser___SearchTokensVisitor____last_token( self) /*SearchTokensVisitor::_last_token*/;
+    ((parser_prod___Prod___last_token__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___Prod___last_token__eq))( variable0 /*n*/, variable1) /*Prod::last_token=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser___SearchTokensVisitor___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::SearchTokensVisitor::init (src/parser//parser.nit:755,2--757:36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SearchTokensVisitor].i]) return;
+  variable0 = NEW_array___Array___init(); /*new Array[Prod]*/
+  ATTR_parser___SearchTokensVisitor____untokenned_nodes( self) /*SearchTokensVisitor::_untokenned_nodes*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SearchTokensVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction::action (src/parser//parser.nit:763,2--22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method action called (src/parser//parser.nit:763,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction0___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction0::action (src/parser//parser.nit:768,2--779:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable5 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable2 /*listnode3*/,  variable3 /*listnode4*/); /*new AModule*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmodulenode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction0___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction0::init (src/parser//parser.nit:781,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction0].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction0].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction1___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction1::action (src/parser//parser.nit:785,2--799:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable5 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:792,6--46\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AModule___init_amodule( variable5 /*ppackagedeclnode2*/,  variable3 /*listnode3*/,  variable4 /*listnode4*/); /*new AModule*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmodulenode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction1___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction1::init (src/parser//parser.nit:801,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction1].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction1].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction2___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction2::action (src/parser//parser.nit:805,2--826:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode3*/==NIT_NULL) || VAL_ISA( variable5 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:812,6--38\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable3 =  variable5 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode4*/,  variable5 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable7 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable3 /*listnode4*/,  variable4 /*listnode5*/); /*new AModule*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmodulenode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction2___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction2::init (src/parser//parser.nit:828,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction2].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction2].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction3___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction3::action (src/parser//parser.nit:832,2--856:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable6 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:840,6--46\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode3*/==NIT_NULL) || VAL_ISA( variable7 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:842,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode4*/,  variable7 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( variable6 /*ppackagedeclnode2*/,  variable4 /*listnode4*/,  variable5 /*listnode5*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction3___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction3::init (src/parser//parser.nit:858,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction3].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction3].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction4___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction4::action (src/parser//parser.nit:862,2--883:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode4*/==NIT_NULL) || VAL_ISA( variable5 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:869,6--38\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable4 =  variable5 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable5 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable7 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable3 /*listnode3*/,  variable4 /*listnode5*/); /*new AModule*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmodulenode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction4___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction4::init (src/parser//parser.nit:885,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction4].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction4].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction5___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction5::action (src/parser//parser.nit:889,2--913:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable6 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:897,6--46\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:899,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( variable6 /*ppackagedeclnode2*/,  variable4 /*listnode3*/,  variable5 /*listnode5*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction5___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction5::init (src/parser//parser.nit:915,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction5].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction5].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction6___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction6::action (src/parser//parser.nit:919,2--950:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*listnode3*/==NIT_NULL) || VAL_ISA( variable6 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:927,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode4*/,  variable6 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode5*/==NIT_NULL) || VAL_ISA( variable7 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:936,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  variable7 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode6*/,  variable7 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable4 /*listnode4*/,  variable5 /*listnode6*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction6___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction6::init (src/parser//parser.nit:952,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction6].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction6].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction7___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction7::action (src/parser//parser.nit:956,2--990:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable7 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:965,6--46\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:967,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 =  variable2 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:976,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___AModule___init_amodule( variable7 /*ppackagedeclnode2*/,  variable5 /*listnode4*/,  variable6 /*listnode6*/); /*new AModule*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pmodulenode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction7___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction7::init (src/parser//parser.nit:992,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction7].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction7].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction8___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction8::action (src/parser//parser.nit:996,2--1021:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable3 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable7 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1005,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable7 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable7 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode6*/,  variable7 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable6 /*listnode6*/); /*new ATopClassdef*/
+  variable8 = variable9;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode7*/,  variable8 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable10 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable4 /*listnode3*/,  variable5 /*listnode7*/); /*new AModule*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pmodulenode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction8___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction8::init (src/parser//parser.nit:1023,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction8].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction8].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction9___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction9::action (src/parser//parser.nit:1027,2--1062:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable8 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1037,6--38\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*listnode6*/==NIT_NULL) || VAL_ISA( variable9 /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1039,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable8 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable8 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode7*/,  variable8 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode6*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode6*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode6*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode7*/,  variable9 /*listnode6*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable7 /*listnode7*/); /*new ATopClassdef*/
+  variable10 = variable11;
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode8*/,  variable10 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable5 /*listnode3*/,  variable6 /*listnode8*/); /*new AModule*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pmodulenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction9___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction9::init (src/parser//parser.nit:1064,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction9].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction9].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction10___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction10::action (src/parser//parser.nit:1068,2--1096:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable7 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1077,6--46\n"); nit_exit(1);}
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable3 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1080,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode6*/,  variable9 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable8 /*listnode6*/); /*new ATopClassdef*/
+  variable10 = variable11;
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode7*/,  variable10 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___AModule___init_amodule( variable7 /*ppackagedeclnode2*/,  variable5 /*listnode3*/,  variable6 /*listnode7*/); /*new AModule*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pmodulenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction10___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction10::init (src/parser//parser.nit:1098,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction10].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction10].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction11___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction11::action (src/parser//parser.nit:1102,2--1140:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable8 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1112,6--46\n"); nit_exit(1);}
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1115,6--38\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*listnode6*/==NIT_NULL) || VAL_ISA( variable11 /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1117,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode7*/,  variable10 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode6*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode6*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable9 =  variable11 /*listnode6*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode7*/,  variable11 /*listnode6*/) /*Array::append*/;
+    }
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode7*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode8*/,  variable12 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( variable8 /*ppackagedeclnode2*/,  variable6 /*listnode3*/,  variable7 /*listnode8*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction11___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction11::init (src/parser//parser.nit:1142,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction11].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction11].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction12___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction12::action (src/parser//parser.nit:1146,2--1181:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*listnode3*/==NIT_NULL) || VAL_ISA( variable7 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1155,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  variable7 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode4*/,  variable7 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable3 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable9 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1165,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable9 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable9 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode7*/,  variable9 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable8 /*listnode7*/); /*new ATopClassdef*/
+  variable10 = variable11;
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode8*/,  variable10 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable5 /*listnode4*/,  variable6 /*listnode8*/); /*new AModule*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pmodulenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction12___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction12::init (src/parser//parser.nit:1183,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction12].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction12].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction13___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction13::action (src/parser//parser.nit:1187,2--1232:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1197,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1207,6--38\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*listnode7*/==NIT_NULL) || VAL_ISA( variable11 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1209,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode8*/,  variable10 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable9 =  variable11 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode8*/,  variable11 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode8*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode4*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction13___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction13::init (src/parser//parser.nit:1234,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction13].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction13].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction14___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction14::action (src/parser//parser.nit:1238,2--1276:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable8 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1248,6--46\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1250,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable3 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1260,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode7*/,  variable11 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode7*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode8*/,  variable12 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( variable8 /*ppackagedeclnode2*/,  variable6 /*listnode4*/,  variable7 /*listnode8*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction14___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction14::init (src/parser//parser.nit:1278,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction14].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction14].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction15___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction15::action (src/parser//parser.nit:1282,2--1330:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1293,6--46\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1295,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1305,6--38\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*listnode7*/==NIT_NULL) || VAL_ISA( variable13 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1307,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode8*/,  variable12 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable11 =  variable13 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode8*/,  variable13 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode8*/); /*new ATopClassdef*/
+  variable14 = variable15;
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode4*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction15___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction15::init (src/parser//parser.nit:1332,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction15].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction15].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction16___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction16::action (src/parser//parser.nit:1336,2--1371:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1345,6--38\n"); nit_exit(1);}
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable3 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable9 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1348,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable9 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable9 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode7*/,  variable9 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable8 /*listnode7*/); /*new ATopClassdef*/
+  variable10 = variable11;
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable6 =  variable7 /*listnode4*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode8*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode8*/,  variable10 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable5 /*listnode3*/,  variable6 /*listnode8*/); /*new AModule*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pmodulenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction16___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction16::init (src/parser//parser.nit:1373,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction16].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction16].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction17___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction17::action (src/parser//parser.nit:1377,2--1422:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1387,6--38\n"); nit_exit(1);}
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1390,6--38\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*listnode7*/==NIT_NULL) || VAL_ISA( variable11 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1392,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode8*/,  variable10 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable9 =  variable11 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode8*/,  variable11 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode8*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable7 =  variable8 /*listnode4*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode9*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode3*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction17___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction17::init (src/parser//parser.nit:1424,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction17].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction17].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction18___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction18::action (src/parser//parser.nit:1428,2--1466:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable8 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1438,6--46\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode4*/==NIT_NULL) || VAL_ISA( variable9 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1440,6--38\n"); nit_exit(1);}
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable3 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1443,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode7*/,  variable11 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode7*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable7 =  variable9 /*listnode4*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode8*/,  variable9 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode8*/,  variable12 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( variable8 /*ppackagedeclnode2*/,  variable6 /*listnode3*/,  variable7 /*listnode8*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction18___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction18::init (src/parser//parser.nit:1468,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction18].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction18].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction19___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction19::action (src/parser//parser.nit:1472,2--1520:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1483,6--46\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1485,6--38\n"); nit_exit(1);}
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1488,6--38\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*listnode7*/==NIT_NULL) || VAL_ISA( variable13 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1490,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode8*/,  variable12 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable11 =  variable13 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode8*/,  variable13 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode8*/); /*new ATopClassdef*/
+  variable14 = variable15;
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable10 /*listnode4*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode9*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode3*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction19___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction19::init (src/parser//parser.nit:1522,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction19].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction19].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction20___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction20::action (src/parser//parser.nit:1526,2--1571:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1536,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1545,6--38\n"); nit_exit(1);}
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable3 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1548,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode8*/,  variable11 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable13 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode8*/); /*new ATopClassdef*/
+  variable12 = variable13;
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable7 =  variable9 /*listnode5*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode9*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode4*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction20___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction20::init (src/parser//parser.nit:1573,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction20].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction20].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction21___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction21::action (src/parser//parser.nit:1577,2--1632:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1588,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode5*/==NIT_NULL) || VAL_ISA( variable10 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1597,6--38\n"); nit_exit(1);}
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1600,6--38\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*listnode8*/==NIT_NULL) || VAL_ISA( variable13 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1602,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode9*/,  variable12 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable11 =  variable13 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode9*/,  variable13 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode9*/); /*new ATopClassdef*/
+  variable14 = variable15;
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable10 /*listnode5*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode10*/,  variable10 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable14 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable7 /*listnode4*/,  variable8 /*listnode10*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction21___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction21::init (src/parser//parser.nit:1634,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction21].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction21].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction22___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction22::action (src/parser//parser.nit:1638,2--1686:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1649,6--46\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1651,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 =  variable4 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*listnode5*/==NIT_NULL) || VAL_ISA( variable11 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1660,6--38\n"); nit_exit(1);}
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable3 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1663,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable13 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable13 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable12 /*listnode8*/,  variable13 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable15 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable12 /*listnode8*/); /*new ATopClassdef*/
+  variable14 = variable15;
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable11 /*listnode5*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode9*/,  variable11 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode4*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction22___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction22::init (src/parser//parser.nit:1688,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction22].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction22].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction23___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction23::action (src/parser//parser.nit:1692,2--1750:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable7 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable10 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1704,6--46\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*listnode3*/==NIT_NULL) || VAL_ISA( variable11 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1706,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable8 =  variable11 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable11 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 =  variable5 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*listnode5*/==NIT_NULL) || VAL_ISA( variable12 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1715,6--38\n"); nit_exit(1);}
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable4 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1718,6--38\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*listnode8*/==NIT_NULL) || VAL_ISA( variable15 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1720,6--38\n"); nit_exit(1);}
+  variable16 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable14 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable14 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable16)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable13 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable13 /*listnode9*/,  variable14 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable16 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable15 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable15 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable15 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable16)) { /*if*/
+    variable16 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable16)) { /*if*/
+      variable13 =  variable15 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode9*/,  variable15 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable17 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable13 /*listnode9*/); /*new ATopClassdef*/
+  variable16 = variable17;
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable9 =  variable12 /*listnode5*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode10*/,  variable12 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable16 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable16 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable16 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable16 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable18 = NEW_parser_prod___AModule___init_amodule( variable10 /*ppackagedeclnode2*/,  variable8 /*listnode4*/,  variable9 /*listnode10*/); /*new AModule*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pmodulenode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction23___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction23::init (src/parser//parser.nit:1752,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction23].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction23].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction24___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction24::action (src/parser//parser.nit:1756,2--1773:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*pclassdefnode4*/==NIT_NULL) || VAL_ISA( variable5 /*pclassdefnode4*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1763,6--40\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable5 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable5 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode5*/,  variable5 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable7 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable3 /*listnode3*/,  variable4 /*listnode5*/); /*new AModule*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmodulenode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction24___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction24::init (src/parser//parser.nit:1775,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction24].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction24].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction25___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction25::action (src/parser//parser.nit:1779,2--1799:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable6 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1787,6--46\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pclassdefnode4*/==NIT_NULL) || VAL_ISA( variable7 /*pclassdefnode4*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1789,6--40\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode5*/,  variable7 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( variable6 /*ppackagedeclnode2*/,  variable4 /*listnode3*/,  variable5 /*listnode5*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction25___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction25::init (src/parser//parser.nit:1801,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction25].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction25].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction26___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction26::action (src/parser//parser.nit:1805,2--1832:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*listnode3*/==NIT_NULL) || VAL_ISA( variable6 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1813,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode4*/,  variable6 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable7 /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1822,6--40\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable7 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable7 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode6*/,  variable7 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable4 /*listnode4*/,  variable5 /*listnode6*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction26___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction26::init (src/parser//parser.nit:1834,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction26].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction26].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction27___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction27::action (src/parser//parser.nit:1838,2--1868:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable7 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1847,6--46\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1849,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 =  variable2 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1858,6--40\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode6*/,  variable9 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___AModule___init_amodule( variable7 /*ppackagedeclnode2*/,  variable5 /*listnode4*/,  variable6 /*listnode6*/); /*new AModule*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pmodulenode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction27___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction27::init (src/parser//parser.nit:1870,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction27].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction27].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction28___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction28::action (src/parser//parser.nit:1874,2--1901:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1882,6--38\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable7 /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1884,6--40\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  variable6 /*listnode4*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode6*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable7 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable7 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode6*/,  variable7 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable4 /*listnode3*/,  variable5 /*listnode6*/); /*new AModule*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmodulenode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction28___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction28::init (src/parser//parser.nit:1903,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction28].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction28].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction29___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction29::action (src/parser//parser.nit:1907,2--1937:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable7 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1916,6--46\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1918,6--38\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1920,6--40\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable8 /*listnode4*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode6*/,  variable9 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___AModule___init_amodule( variable7 /*ppackagedeclnode2*/,  variable5 /*listnode3*/,  variable6 /*listnode6*/); /*new AModule*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pmodulenode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction29___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction29::init (src/parser//parser.nit:1939,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction29].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction29].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction30___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction30::action (src/parser//parser.nit:1943,2--1980:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*listnode3*/==NIT_NULL) || VAL_ISA( variable7 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1952,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable5 =  variable7 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode4*/,  variable7 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable8 =  variable3 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode5*/==NIT_NULL) || VAL_ISA( variable8 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1961,6--38\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pclassdefnode6*/==NIT_NULL) || VAL_ISA( variable9 /*pclassdefnode6*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1963,6--40\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable8 /*listnode5*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode7*/,  variable8 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable9 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable9 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode7*/,  variable9 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable11 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable5 /*listnode4*/,  variable6 /*listnode7*/); /*new AModule*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pmodulenode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction30___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction30::init (src/parser//parser.nit:1982,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction30].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction30].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction31___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction31::action (src/parser//parser.nit:1986,2--2026:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable8 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1996,6--46\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:1998,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable10 =  variable3 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*listnode5*/==NIT_NULL) || VAL_ISA( variable10 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2007,6--38\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*pclassdefnode6*/==NIT_NULL) || VAL_ISA( variable11 /*pclassdefnode6*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2009,6--40\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable7 =  variable10 /*listnode5*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode7*/,  variable10 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode7*/,  variable11 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable13 = NEW_parser_prod___AModule___init_amodule( variable8 /*ppackagedeclnode2*/,  variable6 /*listnode4*/,  variable7 /*listnode7*/); /*new AModule*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pmodulenode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction31___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction31::init (src/parser//parser.nit:2028,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction31].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction31].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction32___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction32::action (src/parser//parser.nit:2032,2--2063:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable8 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2042,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable8 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable8 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode6*/,  variable8 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable10 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable7 /*listnode6*/); /*new ATopClassdef*/
+  variable9 = variable10;
+  variable10 =  variable2 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pclassdefnode7*/==NIT_NULL) || VAL_ISA( variable10 /*pclassdefnode7*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2050,6--40\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable9 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable9 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode8*/,  variable9 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable10 /*pclassdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))( variable10 /*pclassdefnode7*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode8*/,  variable10 /*pclassdefnode7*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable5 /*listnode3*/,  variable6 /*listnode8*/); /*new AModule*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pmodulenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction32___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction32::init (src/parser//parser.nit:2065,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction32].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction32].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction33___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction33::action (src/parser//parser.nit:2069,2--2110:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2080,6--38\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*listnode6*/==NIT_NULL) || VAL_ISA( variable10 /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2082,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode7*/,  variable9 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode6*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode6*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode6*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode7*/,  variable10 /*listnode6*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable8 /*listnode7*/); /*new ATopClassdef*/
+  variable11 = variable12;
+  variable12 =  variable2 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable12 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2097,6--40\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable11 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable11 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable11 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode3*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction33___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction33::init (src/parser//parser.nit:2112,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction33].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction33].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction34___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction34::action (src/parser//parser.nit:2116,2--2150:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable8 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2126,6--46\n"); nit_exit(1);}
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2129,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode6*/,  variable10 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode6*/); /*new ATopClassdef*/
+  variable11 = variable12;
+  variable12 =  variable2 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pclassdefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*pclassdefnode7*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2137,6--40\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable11 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable11 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode8*/,  variable11 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode7*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode8*/,  variable12 /*pclassdefnode7*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( variable8 /*ppackagedeclnode2*/,  variable6 /*listnode3*/,  variable7 /*listnode8*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction34___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction34::init (src/parser//parser.nit:2152,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction34].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction34].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction35___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction35::action (src/parser//parser.nit:2156,2--2200:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2167,6--46\n"); nit_exit(1);}
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2170,6--38\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*listnode6*/==NIT_NULL) || VAL_ISA( variable12 /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2172,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode5*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode7*/,  variable11 /*ppropdefnode5*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode6*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode6*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable10 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable10 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable10 =  variable12 /*listnode6*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable10 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable10 /*listnode7*/,  variable12 /*listnode6*/) /*Array::append*/;
+    }
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode7*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2187,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode4*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable13 /*pclassdefnode4*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode3*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction35___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction35::init (src/parser//parser.nit:2202,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction35].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction35].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction36___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction36::action (src/parser//parser.nit:2206,2--2247:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2216,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2226,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode7*/,  variable10 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode7*/); /*new ATopClassdef*/
+  variable11 = variable12;
+  variable12 =  variable2 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable12 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2234,6--40\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable11 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable11 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable11 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode4*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction36___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction36::init (src/parser//parser.nit:2249,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction36].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction36].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction37___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction37::action (src/parser//parser.nit:2253,2--2304:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2264,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2274,6--38\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*listnode7*/==NIT_NULL) || VAL_ISA( variable12 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2276,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode8*/,  variable11 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable10 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable10 =  variable12 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable10 /*listnode8*/,  variable12 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode8*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2291,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable13 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable14 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable7 /*listnode4*/,  variable8 /*listnode10*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction37___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction37::init (src/parser//parser.nit:2306,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction37].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction37].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction38___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction38::action (src/parser//parser.nit:2310,2--2354:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2321,6--46\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2323,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2333,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode7*/,  variable12 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode7*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2341,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable13 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode4*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction38___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction38::init (src/parser//parser.nit:2356,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction38].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction38].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction39___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction39::action (src/parser//parser.nit:2360,2--2414:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable7 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable10 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2372,6--46\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*listnode3*/==NIT_NULL) || VAL_ISA( variable11 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2374,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable8 =  variable11 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable11 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable13 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2384,6--38\n"); nit_exit(1);}
+  variable14 =  variable3 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*listnode7*/==NIT_NULL) || VAL_ISA( variable14 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2386,6--38\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable13 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable13 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable12 /*listnode8*/,  variable13 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable14 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable14 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable14 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable12 =  variable14 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode8*/,  variable14 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable16 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable12 /*listnode8*/); /*new ATopClassdef*/
+  variable15 = variable16;
+  variable16 =  variable2 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable16 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2401,6--40\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable15 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable15 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable15 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable16 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable16 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable16 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable16 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable18 = NEW_parser_prod___AModule___init_amodule( variable10 /*ppackagedeclnode2*/,  variable8 /*listnode4*/,  variable9 /*listnode10*/); /*new AModule*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pmodulenode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction39___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction39::init (src/parser//parser.nit:2416,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction39].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction39].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction40___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction40::action (src/parser//parser.nit:2420,2--2461:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2430,6--38\n"); nit_exit(1);}
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable10 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2433,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable10 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable10 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable10 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable10 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode7*/,  variable10 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable12 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable9 /*listnode7*/); /*new ATopClassdef*/
+  variable11 = variable12;
+  variable12 =  variable2 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable12 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2441,6--40\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable7 =  variable8 /*listnode4*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode9*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable11 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable11 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable11 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable12 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable12 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode9*/,  variable12 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable6 /*listnode3*/,  variable7 /*listnode9*/); /*new AModule*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pmodulenode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction40___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction40::init (src/parser//parser.nit:2463,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction40].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction40].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction41___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction41::action (src/parser//parser.nit:2467,2--2518:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*listnode4*/==NIT_NULL) || VAL_ISA( variable9 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2478,6--38\n"); nit_exit(1);}
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable11 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2481,6--38\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*listnode7*/==NIT_NULL) || VAL_ISA( variable12 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2483,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable11 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable11 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable11 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable11 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode8*/,  variable11 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable10 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable10 =  variable12 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable10 /*listnode8*/,  variable12 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable10 /*listnode8*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2498,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable9 /*listnode4*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode10*/,  variable9 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable13 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable14 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable7 /*listnode3*/,  variable8 /*listnode10*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction41___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction41::init (src/parser//parser.nit:2520,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction41].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction41].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction42___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction42::action (src/parser//parser.nit:2524,2--2568:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable9 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2535,6--46\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2537,6--38\n"); nit_exit(1);}
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2540,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode7*/,  variable12 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode7*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2548,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable10 /*listnode4*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode9*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable13 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode8*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode9*/,  variable14 /*pclassdefnode8*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( variable9 /*ppackagedeclnode2*/,  variable7 /*listnode3*/,  variable8 /*listnode9*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction42___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction42::init (src/parser//parser.nit:2570,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction42].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction42].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction43___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction43::action (src/parser//parser.nit:2574,2--2628:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable7 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable10 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2586,6--46\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*listnode4*/==NIT_NULL) || VAL_ISA( variable11 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2588,6--38\n"); nit_exit(1);}
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable13 /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2591,6--38\n"); nit_exit(1);}
+  variable14 =  variable3 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*listnode7*/==NIT_NULL) || VAL_ISA( variable14 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2593,6--38\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable13 /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable13 /*ppropdefnode6*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable12 /*listnode8*/,  variable13 /*ppropdefnode6*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable14 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable14 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable14 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable12 =  variable14 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode8*/,  variable14 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable16 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable12 /*listnode8*/); /*new ATopClassdef*/
+  variable15 = variable16;
+  variable16 =  variable2 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable16 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2608,6--40\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable9 =  variable11 /*listnode4*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode10*/,  variable11 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable15 /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable15 /*pclassdefnode5*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable15 /*pclassdefnode5*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable16 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable16 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable16 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable16 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable18 = NEW_parser_prod___AModule___init_amodule( variable10 /*ppackagedeclnode2*/,  variable8 /*listnode3*/,  variable9 /*listnode10*/); /*new AModule*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pmodulenode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction43___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction43::init (src/parser//parser.nit:2630,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction43].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction43].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction44___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction44::action (src/parser//parser.nit:2634,2--2685:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable6 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2645,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable10 =  variable5 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*listnode5*/==NIT_NULL) || VAL_ISA( variable10 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2654,6--38\n"); nit_exit(1);}
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2657,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable12 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable12 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable12 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable12 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable11 /*listnode8*/,  variable12 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable14 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable11 /*listnode8*/); /*new ATopClassdef*/
+  variable13 = variable14;
+  variable14 =  variable2 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable14 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2665,6--40\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable8 =  variable10 /*listnode5*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode10*/,  variable10 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable13 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable13 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable13 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable14 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable14 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode10*/,  variable14 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable7 /*listnode4*/,  variable8 /*listnode10*/); /*new AModule*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pmodulenode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction44___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction44::init (src/parser//parser.nit:2687,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction44].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction44].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction45___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction45::action (src/parser//parser.nit:2691,2--2752:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable7 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2703,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 =  variable6 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*listnode5*/==NIT_NULL) || VAL_ISA( variable11 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2712,6--38\n"); nit_exit(1);}
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2715,6--38\n"); nit_exit(1);}
+  variable14 =  variable3 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*listnode8*/==NIT_NULL) || VAL_ISA( variable14 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2717,6--38\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable13 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable13 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable13 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable13 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable12 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable12 /*listnode9*/,  variable13 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable14 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable14 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable14 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    variable15 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable15)) { /*if*/
+      variable12 =  variable14 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode9*/,  variable14 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable16 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable12 /*listnode9*/); /*new ATopClassdef*/
+  variable15 = variable16;
+  variable16 =  variable2 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*pclassdefnode10*/==NIT_NULL) || VAL_ISA( variable16 /*pclassdefnode10*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2732,6--41\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode11*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable9 =  variable11 /*listnode5*/ /*listnode11=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode11*/,  variable11 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable15 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable15 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode11*/,  variable15 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable16 /*pclassdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable16 /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))( variable16 /*pclassdefnode10*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode11*/,  variable16 /*pclassdefnode10*/) /*Array::add*/;
+  }
+  variable18 = NEW_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable8 /*listnode4*/,  variable9 /*listnode11*/); /*new AModule*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pmodulenode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction45___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction45::init (src/parser//parser.nit:2754,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction45].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction45].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction46___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction46::action (src/parser//parser.nit:2758,2--2812:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable7 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable10 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2770,6--46\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*listnode3*/==NIT_NULL) || VAL_ISA( variable11 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2772,6--38\n"); nit_exit(1);}
+  variable12 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable11 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable11 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable11 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable11 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable12)) { /*if*/
+    variable12 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable12)) { /*if*/
+      variable8 =  variable11 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable11 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 =  variable5 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*listnode5*/==NIT_NULL) || VAL_ISA( variable12 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2781,6--38\n"); nit_exit(1);}
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable4 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2784,6--38\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable14 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable14 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable13 /*listnode8*/,  variable14 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable13 /*listnode8*/); /*new ATopClassdef*/
+  variable15 = variable16;
+  variable16 =  variable2 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable16 /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2792,6--40\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable9 =  variable12 /*listnode5*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode10*/,  variable12 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable15 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable15 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable15 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable16 /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable16 /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable16 /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable16 /*pclassdefnode9*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable9 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*listnode10*/,  variable16 /*pclassdefnode9*/) /*Array::add*/;
+  }
+  variable18 = NEW_parser_prod___AModule___init_amodule( variable10 /*ppackagedeclnode2*/,  variable8 /*listnode4*/,  variable9 /*listnode10*/); /*new AModule*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pmodulenode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction46___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction46::init (src/parser//parser.nit:2814,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction46].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction46].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction47___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction47::action (src/parser//parser.nit:2818,2--2882:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable11 =  variable8 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*ppackagedeclnode2*/==NIT_NULL) || VAL_ISA( variable11 /*ppackagedeclnode2*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2831,6--46\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*listnode3*/==NIT_NULL) || VAL_ISA( variable12 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2833,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable9 =  variable12 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode4*/,  variable12 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable13 =  variable6 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*listnode5*/==NIT_NULL) || VAL_ISA( variable13 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2842,6--38\n"); nit_exit(1);}
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable5 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2845,6--38\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*listnode8*/==NIT_NULL) || VAL_ISA( variable16 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2847,6--38\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable15 /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable15 /*ppropdefnode7*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode9*/,  variable15 /*ppropdefnode7*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable16 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable16 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable16 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable14 =  variable16 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode9*/,  variable16 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable18 = NEW_parser_prod___ATopClassdef___init_atopclassdef( variable14 /*listnode9*/); /*new ATopClassdef*/
+  variable17 = variable18;
+  variable18 =  variable2 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*pclassdefnode10*/==NIT_NULL) || VAL_ISA( variable18 /*pclassdefnode10*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2862,6--41\n"); nit_exit(1);}
+  variable19 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable19)) { /*if*/
+    variable19 = ((array___AbstractArray___is_empty_t)CALL( variable10 /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable10 /*listnode11*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable19)) { /*if*/
+      variable10 =  variable13 /*listnode5*/ /*listnode11=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable10 /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable10 /*listnode11*/,  variable13 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable19 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable17 /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable17 /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable17 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable17 /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable17 /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable17 /*pclassdefnode6*/,  NIT_NULL /*null*/) /*ATopClassdef::==*/)))))));
+  if (UNTAG_Bool(variable19)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode11*/,  variable17 /*pclassdefnode6*/) /*Array::add*/;
+  }
+  variable19 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable18 /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable18 /*pclassdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable18 /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable18 /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable18 /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))( variable18 /*pclassdefnode10*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable19)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable10 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*listnode11*/,  variable18 /*pclassdefnode10*/) /*Array::add*/;
+  }
+  variable20 = NEW_parser_prod___AModule___init_amodule( variable11 /*ppackagedeclnode2*/,  variable9 /*listnode4*/,  variable10 /*listnode11*/); /*new AModule*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pmodulenode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction47___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction47::init (src/parser//parser.nit:2884,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction47].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction47].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction48___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction48::action (src/parser//parser.nit:2888,2--2908:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2897,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*tkwpackagenode3*/==NIT_NULL) || VAL_ISA( variable8 /*tkwpackagenode3*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2899,6--42\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2901,6--28\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___APackagedecl___init_apackagedecl( variable7 /*pdocnode2*/,  variable8 /*tkwpackagenode3*/,  variable9 /*tidnode4*/); /*new APackagedecl*/
+  variable10 = variable11;
+  variable1 =  variable10 /*ppackagedeclnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(1)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction48___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction48::init (src/parser//parser.nit:2910,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction48].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction48].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction49___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction49::action (src/parser//parser.nit:2914,2--2935:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pvisibilitynode2*/==NIT_NULL) || VAL_ISA( variable8 /*pvisibilitynode2*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2924,6--44\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tkwimportnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwimportnode3*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2926,6--40\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2928,6--28\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AImport___init_aimport( variable8 /*pvisibilitynode2*/,  variable9 /*tkwimportnode3*/,  variable10 /*tidnode4*/); /*new AImport*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pimportnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction49___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction49::init (src/parser//parser.nit:2937,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction49].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction49].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction50___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction50::action (src/parser//parser.nit:2941,2--2962:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pvisibilitynode2*/==NIT_NULL) || VAL_ISA( variable8 /*pvisibilitynode2*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2951,6--44\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tkwimportnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwimportnode3*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2953,6--40\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*tkwendnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwendnode4*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2955,6--34\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___ANoImport___init_anoimport( variable8 /*pvisibilitynode2*/,  variable9 /*tkwimportnode3*/,  variable10 /*tkwendnode4*/); /*new ANoImport*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pimportnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction50___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction50::init (src/parser//parser.nit:2964,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction50].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction50].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction51___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction51::action (src/parser//parser.nit:2968,2--2982:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable4 /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:2974,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable4 /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable4 /*ppropdefnode2*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode3*/,  variable4 /*ppropdefnode2*/) /*Array::add*/;
+  }
+  variable6 = NEW_parser_prod___AMainClassdef___init_amainclassdef( variable3 /*listnode3*/); /*new AMainClassdef*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pclassdefnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction51___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction51::init (src/parser//parser.nit:2984,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction51].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction51].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction52___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction52::action (src/parser//parser.nit:2988,2--2993:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction52___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction52::init (src/parser//parser.nit:2995,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction52].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction52].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction53___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction53::action (src/parser//parser.nit:2999,2--3019:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3007,6--32\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*pexprnode4*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode5*/,  variable6 /*pexprnode4*/) /*Array::add*/;
+  }
+  variable8 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable5 /*listnode5*/); /*new ABlockExpr*/
+  variable7 = variable8;
+  variable9 = NEW_parser_prod___AMainMethPropdef___init_amainmethpropdef( NIT_NULL /*null*/,  variable7 /*pexprnode3*/); /*new AMainMethPropdef*/
+  variable8 = variable9;
+  variable1 =  variable8 /*ppropdefnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction53___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction53::init (src/parser//parser.nit:3021,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction53].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction53].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction54___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction54::action (src/parser//parser.nit:3025,2--3055:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3034,6--32\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode5*/==NIT_NULL) || VAL_ISA( variable8 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3036,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*pexprnode4*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode6*/,  variable7 /*pexprnode4*/) /*Array::add*/;
+  }
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable8 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable6 /*listnode6*/); /*new ABlockExpr*/
+  variable9 = variable10;
+  variable11 = NEW_parser_prod___AMainMethPropdef___init_amainmethpropdef( NIT_NULL /*null*/,  variable9 /*pexprnode3*/); /*new AMainMethPropdef*/
+  variable10 = variable11;
+  variable1 =  variable10 /*ppropdefnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction54___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction54::init (src/parser//parser.nit:3057,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction54].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction54].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction55___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction55::action (src/parser//parser.nit:3061,2--3093:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable12 =  variable8 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3075,6--30\n"); nit_exit(1);}
+  variable13 =  variable7 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3077,6--44\n"); nit_exit(1);}
+  variable14 =  variable6 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable14 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3079,6--42\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3081,6--38\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AClassdef___init_aclassdef( variable12 /*pdocnode2*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode4*/,  variable14 /*pclasskindnode5*/,  variable15 /*tclassidnode6*/,  variable9 /*listnode7*/,  variable10 /*listnode8*/,  variable11 /*listnode9*/); /*new AClassdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*pclassdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction55___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction55::init (src/parser//parser.nit:3095,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction55].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction55].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction56___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction56::action (src/parser//parser.nit:3099,2--3134:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable9 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3114,6--30\n"); nit_exit(1);}
+  variable14 =  variable8 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3116,6--38\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3118,6--44\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3120,6--42\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable17 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3122,6--38\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AClassdef___init_aclassdef( variable13 /*pdocnode2*/,  variable14 /*tkwredefnode3*/,  variable15 /*pvisibilitynode4*/,  variable16 /*pclasskindnode5*/,  variable17 /*tclassidnode6*/,  variable10 /*listnode7*/,  variable11 /*listnode8*/,  variable12 /*listnode9*/); /*new AClassdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*pclassdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction56___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction56::init (src/parser//parser.nit:3136,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction56].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction56].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction57___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction57::action (src/parser//parser.nit:3140,2--3182:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable9 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3155,6--30\n"); nit_exit(1);}
+  variable14 =  variable8 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3157,6--44\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable15 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3159,6--42\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable16 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3161,6--38\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*listnode7*/==NIT_NULL) || VAL_ISA( variable17 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3163,6--38\n"); nit_exit(1);}
+  variable18 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable17 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable17 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable17 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable17 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable18)) { /*if*/
+    variable18 = ((array___AbstractArray___is_empty_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable10 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable18)) { /*if*/
+      variable10 =  variable17 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable10 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable10 /*listnode8*/,  variable17 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable19 = NEW_parser_prod___AClassdef___init_aclassdef( variable13 /*pdocnode2*/,  NIT_NULL /*null*/,  variable14 /*pvisibilitynode4*/,  variable15 /*pclasskindnode5*/,  variable16 /*tclassidnode6*/,  variable10 /*listnode8*/,  variable11 /*listnode9*/,  variable12 /*listnode10*/); /*new AClassdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*pclassdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction57___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction57::init (src/parser//parser.nit:3184,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction57].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction57].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction58___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction58::action (src/parser//parser.nit:3188,2--3233:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable10 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3204,6--30\n"); nit_exit(1);}
+  variable15 =  variable9 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3206,6--38\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3208,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable17 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3210,6--42\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable18 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3212,6--38\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*listnode7*/==NIT_NULL) || VAL_ISA( variable19 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3214,6--38\n"); nit_exit(1);}
+  variable20 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable19 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable19 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable19 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable20)) { /*if*/
+    variable20 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable20)) { /*if*/
+      variable11 =  variable19 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode8*/,  variable19 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable21 = NEW_parser_prod___AClassdef___init_aclassdef( variable14 /*pdocnode2*/,  variable15 /*tkwredefnode3*/,  variable16 /*pvisibilitynode4*/,  variable17 /*pclasskindnode5*/,  variable18 /*tclassidnode6*/,  variable11 /*listnode8*/,  variable12 /*listnode9*/,  variable13 /*listnode10*/); /*new AClassdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*pclassdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction58___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction58::init (src/parser//parser.nit:3235,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction58].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction58].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction59___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction59::action (src/parser//parser.nit:3239,2--3281:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable13 =  variable9 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3254,6--30\n"); nit_exit(1);}
+  variable14 =  variable8 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3256,6--44\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable15 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3258,6--42\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable16 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3260,6--38\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*listnode8*/==NIT_NULL) || VAL_ISA( variable17 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3262,6--38\n"); nit_exit(1);}
+  variable18 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable17 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable17 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable17 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable17 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable18)) { /*if*/
+    variable18 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable18)) { /*if*/
+      variable11 =  variable17 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode9*/,  variable17 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable19 = NEW_parser_prod___AClassdef___init_aclassdef( variable13 /*pdocnode2*/,  NIT_NULL /*null*/,  variable14 /*pvisibilitynode4*/,  variable15 /*pclasskindnode5*/,  variable16 /*tclassidnode6*/,  variable10 /*listnode7*/,  variable11 /*listnode9*/,  variable12 /*listnode10*/); /*new AClassdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*pclassdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction59___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction59::init (src/parser//parser.nit:3283,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction59].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction59].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction60___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction60::action (src/parser//parser.nit:3287,2--3332:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable10 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3303,6--30\n"); nit_exit(1);}
+  variable15 =  variable9 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3305,6--38\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3307,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable17 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3309,6--42\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable18 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3311,6--38\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*listnode8*/==NIT_NULL) || VAL_ISA( variable19 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3313,6--38\n"); nit_exit(1);}
+  variable20 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable19 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable19 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable19 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable20)) { /*if*/
+    variable20 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable20)) { /*if*/
+      variable12 =  variable19 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode9*/,  variable19 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable21 = NEW_parser_prod___AClassdef___init_aclassdef( variable14 /*pdocnode2*/,  variable15 /*tkwredefnode3*/,  variable16 /*pvisibilitynode4*/,  variable17 /*pclasskindnode5*/,  variable18 /*tclassidnode6*/,  variable11 /*listnode7*/,  variable12 /*listnode9*/,  variable13 /*listnode10*/); /*new AClassdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*pclassdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction60___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction60::init (src/parser//parser.nit:3334,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction60].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction60].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction61___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction61::action (src/parser//parser.nit:3338,2--3390:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable10 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3354,6--30\n"); nit_exit(1);}
+  variable15 =  variable9 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3356,6--44\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3358,6--42\n"); nit_exit(1);}
+  variable17 =  variable6 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable17 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3360,6--38\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*listnode7*/==NIT_NULL) || VAL_ISA( variable18 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3362,6--38\n"); nit_exit(1);}
+  variable19 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable18 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable18 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable18 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable18 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable19)) { /*if*/
+    variable19 = ((array___AbstractArray___is_empty_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable11 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable19)) { /*if*/
+      variable11 =  variable18 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable11 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable11 /*listnode8*/,  variable18 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*listnode9*/==NIT_NULL) || VAL_ISA( variable19 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3371,6--38\n"); nit_exit(1);}
+  variable20 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable19 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable19 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable19 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable20)) { /*if*/
+    variable20 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable20)) { /*if*/
+      variable12 =  variable19 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode10*/,  variable19 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable21 = NEW_parser_prod___AClassdef___init_aclassdef( variable14 /*pdocnode2*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode4*/,  variable16 /*pclasskindnode5*/,  variable17 /*tclassidnode6*/,  variable11 /*listnode8*/,  variable12 /*listnode10*/,  variable13 /*listnode11*/); /*new AClassdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*pclassdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction61___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction61::init (src/parser//parser.nit:3392,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction61].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction61].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction62___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction62::action (src/parser//parser.nit:3396,2--3451:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable11 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3413,6--30\n"); nit_exit(1);}
+  variable16 =  variable10 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3415,6--38\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3417,6--44\n"); nit_exit(1);}
+  variable18 =  variable8 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable18 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3419,6--42\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable19 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3421,6--38\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*listnode7*/==NIT_NULL) || VAL_ISA( variable20 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3423,6--38\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable20 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable20 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable20 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    variable21 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable21)) { /*if*/
+      variable12 =  variable20 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode8*/,  variable20 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable21 =  variable4 /*nodearraylist8*/;
+  variable22 = TAG_Bool(( variable21 /*listnode9*/==NIT_NULL) || VAL_ISA( variable21 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3432,6--38\n"); nit_exit(1);}
+  variable22 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable21 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable21 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable21 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable22)) { /*if*/
+    variable22 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable22)) { /*if*/
+      variable13 =  variable21 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode10*/,  variable21 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable23 = NEW_parser_prod___AClassdef___init_aclassdef( variable15 /*pdocnode2*/,  variable16 /*tkwredefnode3*/,  variable17 /*pvisibilitynode4*/,  variable18 /*pclasskindnode5*/,  variable19 /*tclassidnode6*/,  variable12 /*listnode8*/,  variable13 /*listnode10*/,  variable14 /*listnode11*/); /*new AClassdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*pclassdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction62___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction62::init (src/parser//parser.nit:3453,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction62].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction62].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction63___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction63::action (src/parser//parser.nit:3457,2--3496:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable10 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3473,6--30\n"); nit_exit(1);}
+  variable15 =  variable9 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3475,6--44\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3477,6--42\n"); nit_exit(1);}
+  variable17 =  variable6 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable17 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3479,6--38\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable18 /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3481,6--38\n"); nit_exit(1);}
+  variable19 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable18 /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable18 /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable18 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable18 /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable18 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable18 /*ppropdefnode9*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable19)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable13 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable13 /*listnode10*/,  variable18 /*ppropdefnode9*/) /*Array::add*/;
+  }
+  variable20 = NEW_parser_prod___AClassdef___init_aclassdef( variable14 /*pdocnode2*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode4*/,  variable16 /*pclasskindnode5*/,  variable17 /*tclassidnode6*/,  variable11 /*listnode7*/,  variable12 /*listnode8*/,  variable13 /*listnode10*/); /*new AClassdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pclassdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction63___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction63::init (src/parser//parser.nit:3498,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction63].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction63].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction64___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction64::action (src/parser//parser.nit:3502,2--3551:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable11 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3519,6--30\n"); nit_exit(1);}
+  variable16 =  variable10 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3521,6--44\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable17 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3523,6--42\n"); nit_exit(1);}
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable18 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3525,6--38\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable19 /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3527,6--38\n"); nit_exit(1);}
+  variable20 =  variable4 /*nodearraylist8*/;
+  variable21 = TAG_Bool(( variable20 /*listnode10*/==NIT_NULL) || VAL_ISA( variable20 /*listnode10*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3529,6--39\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable19 /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable19 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable19 /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable19 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable19 /*ppropdefnode9*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode11*/,  variable19 /*ppropdefnode9*/) /*Array::add*/;
+  }
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable20 /*listnode10*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable20 /*listnode10*/,COLOR_kernel___Object_____eqeq))( variable20 /*listnode10*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    variable21 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode11*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable21)) { /*if*/
+      variable14 =  variable20 /*listnode10*/ /*listnode11=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode11*/,  variable20 /*listnode10*/) /*Array::append*/;
+    }
+  }
+  variable22 = NEW_parser_prod___AClassdef___init_aclassdef( variable15 /*pdocnode2*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode4*/,  variable17 /*pclasskindnode5*/,  variable18 /*tclassidnode6*/,  variable12 /*listnode7*/,  variable13 /*listnode8*/,  variable14 /*listnode11*/); /*new AClassdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*pclassdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction64___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction64::init (src/parser//parser.nit:3553,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction64].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction64].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction65___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction65::action (src/parser//parser.nit:3557,2--3599:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable11 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3574,6--30\n"); nit_exit(1);}
+  variable16 =  variable10 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3576,6--38\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3578,6--44\n"); nit_exit(1);}
+  variable18 =  variable8 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable18 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3580,6--42\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable19 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3582,6--38\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable20 /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3584,6--38\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable20 /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable20 /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable20 /*ppropdefnode9*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode10*/,  variable20 /*ppropdefnode9*/) /*Array::add*/;
+  }
+  variable22 = NEW_parser_prod___AClassdef___init_aclassdef( variable15 /*pdocnode2*/,  variable16 /*tkwredefnode3*/,  variable17 /*pvisibilitynode4*/,  variable18 /*pclasskindnode5*/,  variable19 /*tclassidnode6*/,  variable12 /*listnode7*/,  variable13 /*listnode8*/,  variable14 /*listnode10*/); /*new AClassdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*pclassdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction65___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction65::init (src/parser//parser.nit:3601,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction65].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction65].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction66___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction66::action (src/parser//parser.nit:3605,2--3657:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3623,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3625,6--38\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3627,6--44\n"); nit_exit(1);}
+  variable19 =  variable9 /*nodearraylist4*/;
+  variable20 = TAG_Bool(( variable19 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable19 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3629,6--42\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable20 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3631,6--38\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable21 /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3633,6--38\n"); nit_exit(1);}
+  variable22 =  variable4 /*nodearraylist9*/;
+  variable23 = TAG_Bool(( variable22 /*listnode10*/==NIT_NULL) || VAL_ISA( variable22 /*listnode10*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3635,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable21 /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable21 /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable21 /*ppropdefnode9*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode11*/,  variable21 /*ppropdefnode9*/) /*Array::add*/;
+  }
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode10*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode10*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode10*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode11*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable15 =  variable22 /*listnode10*/ /*listnode11=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode11*/,  variable22 /*listnode10*/) /*Array::append*/;
+    }
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  variable17 /*tkwredefnode3*/,  variable18 /*pvisibilitynode4*/,  variable19 /*pclasskindnode5*/,  variable20 /*tclassidnode6*/,  variable13 /*listnode7*/,  variable14 /*listnode8*/,  variable15 /*listnode11*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction66___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction66::init (src/parser//parser.nit:3659,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction66].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction66].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction67___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction67::action (src/parser//parser.nit:3663,2--3712:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable11 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3680,6--30\n"); nit_exit(1);}
+  variable16 =  variable10 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3682,6--44\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable17 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3684,6--42\n"); nit_exit(1);}
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable18 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3686,6--38\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*listnode7*/==NIT_NULL) || VAL_ISA( variable19 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3688,6--38\n"); nit_exit(1);}
+  variable20 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable19 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable19 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable19 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable20)) { /*if*/
+    variable20 = ((array___AbstractArray___is_empty_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable12 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable20)) { /*if*/
+      variable12 =  variable19 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable12 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable12 /*listnode8*/,  variable19 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable20 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3697,6--39\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable20 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable20 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable20 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode11*/,  variable20 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable22 = NEW_parser_prod___AClassdef___init_aclassdef( variable15 /*pdocnode2*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode4*/,  variable17 /*pclasskindnode5*/,  variable18 /*tclassidnode6*/,  variable12 /*listnode8*/,  variable13 /*listnode9*/,  variable14 /*listnode11*/); /*new AClassdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*pclassdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction67___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction67::init (src/parser//parser.nit:3714,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction67].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction67].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction68___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction68::action (src/parser//parser.nit:3718,2--3777:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3736,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3738,6--44\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable18 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3740,6--42\n"); nit_exit(1);}
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable19 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3742,6--38\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*listnode7*/==NIT_NULL) || VAL_ISA( variable20 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3744,6--38\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable20 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable20 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable20 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    variable21 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable21)) { /*if*/
+      variable13 =  variable20 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode8*/,  variable20 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable21 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3753,6--39\n"); nit_exit(1);}
+  variable22 =  variable4 /*nodearraylist9*/;
+  variable23 = TAG_Bool(( variable22 /*listnode11*/==NIT_NULL) || VAL_ISA( variable22 /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3755,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable21 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable21 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable21 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode12*/,  variable21 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode11*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode11*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode12*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable15 =  variable22 /*listnode11*/ /*listnode12=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode12*/,  variable22 /*listnode11*/) /*Array::append*/;
+    }
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  NIT_NULL /*null*/,  variable17 /*pvisibilitynode4*/,  variable18 /*pclasskindnode5*/,  variable19 /*tclassidnode6*/,  variable13 /*listnode8*/,  variable14 /*listnode9*/,  variable15 /*listnode12*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction68___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction68::init (src/parser//parser.nit:3779,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction68].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction68].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction69___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction69::action (src/parser//parser.nit:3783,2--3835:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3801,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3803,6--38\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3805,6--44\n"); nit_exit(1);}
+  variable19 =  variable9 /*nodearraylist4*/;
+  variable20 = TAG_Bool(( variable19 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable19 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3807,6--42\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable20 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3809,6--38\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*listnode7*/==NIT_NULL) || VAL_ISA( variable21 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3811,6--38\n"); nit_exit(1);}
+  variable22 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable21 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable21 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable21 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable22)) { /*if*/
+    variable22 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable22)) { /*if*/
+      variable13 =  variable21 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode8*/,  variable21 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable22 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3820,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable22 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable22 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable22 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode11*/,  variable22 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  variable17 /*tkwredefnode3*/,  variable18 /*pvisibilitynode4*/,  variable19 /*pclasskindnode5*/,  variable20 /*tclassidnode6*/,  variable13 /*listnode8*/,  variable14 /*listnode9*/,  variable15 /*listnode11*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction69___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction69::init (src/parser//parser.nit:3837,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction69].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction69].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction70___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction70::action (src/parser//parser.nit:3841,2--3903:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable17 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable16 = variable17;
+  variable17 =  variable13 /*nodearraylist1*/;
+  variable18 = TAG_Bool(( variable17 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable17 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3860,6--30\n"); nit_exit(1);}
+  variable18 =  variable12 /*nodearraylist2*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3862,6--38\n"); nit_exit(1);}
+  variable19 =  variable11 /*nodearraylist3*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3864,6--44\n"); nit_exit(1);}
+  variable20 =  variable10 /*nodearraylist4*/;
+  variable21 = TAG_Bool(( variable20 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable20 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3866,6--42\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable21 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3868,6--38\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*listnode7*/==NIT_NULL) || VAL_ISA( variable22 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3870,6--38\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable14 =  variable22 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode8*/,  variable22 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable23 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3879,6--39\n"); nit_exit(1);}
+  variable24 =  variable4 /*nodearraylist10*/;
+  variable25 = TAG_Bool(( variable24 /*listnode11*/==NIT_NULL) || VAL_ISA( variable24 /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3881,6--39\n"); nit_exit(1);}
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable23 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable23 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable23 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable23 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable16 /*listnode12*/,  variable23 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable24 /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable24 /*listnode11*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable24 /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable24 /*listnode11*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    variable25 = ((array___AbstractArray___is_empty_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable16 /*listnode12*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable25)) { /*if*/
+      variable16 =  variable24 /*listnode11*/ /*listnode12=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable16 /*listnode12*/,  variable24 /*listnode11*/) /*Array::append*/;
+    }
+  }
+  variable26 = NEW_parser_prod___AClassdef___init_aclassdef( variable17 /*pdocnode2*/,  variable18 /*tkwredefnode3*/,  variable19 /*pvisibilitynode4*/,  variable20 /*pclasskindnode5*/,  variable21 /*tclassidnode6*/,  variable14 /*listnode8*/,  variable15 /*listnode9*/,  variable16 /*listnode12*/); /*new AClassdef*/
+  variable25 = variable26;
+  variable1 =  variable25 /*pclassdefnode1*/ /*node_list=*/;
+  variable26 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable26,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction70___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction70::init (src/parser//parser.nit:3905,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction70].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction70].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction71___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction71::action (src/parser//parser.nit:3909,2--3958:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable11 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3926,6--30\n"); nit_exit(1);}
+  variable16 =  variable10 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3928,6--44\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable17 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3930,6--42\n"); nit_exit(1);}
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable18 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3932,6--38\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*listnode8*/==NIT_NULL) || VAL_ISA( variable19 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3934,6--38\n"); nit_exit(1);}
+  variable20 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable19 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable19 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable19 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable19 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable20)) { /*if*/
+    variable20 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable20)) { /*if*/
+      variable13 =  variable19 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode9*/,  variable19 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable20 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3943,6--39\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable20 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable20 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable20 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable20 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode11*/,  variable20 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable22 = NEW_parser_prod___AClassdef___init_aclassdef( variable15 /*pdocnode2*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode4*/,  variable17 /*pclasskindnode5*/,  variable18 /*tclassidnode6*/,  variable12 /*listnode7*/,  variable13 /*listnode9*/,  variable14 /*listnode11*/); /*new AClassdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*pclassdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction71___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction71::init (src/parser//parser.nit:3960,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction71].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction71].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction72___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction72::action (src/parser//parser.nit:3964,2--4023:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3982,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3984,6--44\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable18 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3986,6--42\n"); nit_exit(1);}
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable19 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3988,6--38\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*listnode8*/==NIT_NULL) || VAL_ISA( variable20 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3990,6--38\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable20 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable20 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable20 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    variable21 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable21)) { /*if*/
+      variable14 =  variable20 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode9*/,  variable20 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable21 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:3999,6--39\n"); nit_exit(1);}
+  variable22 =  variable4 /*nodearraylist9*/;
+  variable23 = TAG_Bool(( variable22 /*listnode11*/==NIT_NULL) || VAL_ISA( variable22 /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4001,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable21 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable21 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable21 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable21 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode12*/,  variable21 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode11*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode11*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode12*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable15 =  variable22 /*listnode11*/ /*listnode12=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode12*/,  variable22 /*listnode11*/) /*Array::append*/;
+    }
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  NIT_NULL /*null*/,  variable17 /*pvisibilitynode4*/,  variable18 /*pclasskindnode5*/,  variable19 /*tclassidnode6*/,  variable13 /*listnode7*/,  variable14 /*listnode9*/,  variable15 /*listnode12*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction72___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction72::init (src/parser//parser.nit:4025,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction72].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction72].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction73___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction73::action (src/parser//parser.nit:4029,2--4081:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4047,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4049,6--38\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4051,6--44\n"); nit_exit(1);}
+  variable19 =  variable9 /*nodearraylist4*/;
+  variable20 = TAG_Bool(( variable19 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable19 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4053,6--42\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable20 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4055,6--38\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*listnode8*/==NIT_NULL) || VAL_ISA( variable21 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4057,6--38\n"); nit_exit(1);}
+  variable22 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable21 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable21 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable21 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable22)) { /*if*/
+    variable22 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable22)) { /*if*/
+      variable14 =  variable21 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode9*/,  variable21 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable22 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4066,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable22 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable22 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable22 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode11*/,  variable22 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  variable17 /*tkwredefnode3*/,  variable18 /*pvisibilitynode4*/,  variable19 /*pclasskindnode5*/,  variable20 /*tclassidnode6*/,  variable13 /*listnode7*/,  variable14 /*listnode9*/,  variable15 /*listnode11*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction73___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction73::init (src/parser//parser.nit:4083,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction73].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction73].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction74___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction74::action (src/parser//parser.nit:4087,2--4149:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable17 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable16 = variable17;
+  variable17 =  variable13 /*nodearraylist1*/;
+  variable18 = TAG_Bool(( variable17 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable17 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4106,6--30\n"); nit_exit(1);}
+  variable18 =  variable12 /*nodearraylist2*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4108,6--38\n"); nit_exit(1);}
+  variable19 =  variable11 /*nodearraylist3*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4110,6--44\n"); nit_exit(1);}
+  variable20 =  variable10 /*nodearraylist4*/;
+  variable21 = TAG_Bool(( variable20 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable20 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4112,6--42\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable21 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4114,6--38\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*listnode8*/==NIT_NULL) || VAL_ISA( variable22 /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4116,6--38\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode8*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode8*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode9*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable15 =  variable22 /*listnode8*/ /*listnode9=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode9*/,  variable22 /*listnode8*/) /*Array::append*/;
+    }
+  }
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable23 /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4125,6--39\n"); nit_exit(1);}
+  variable24 =  variable4 /*nodearraylist10*/;
+  variable25 = TAG_Bool(( variable24 /*listnode11*/==NIT_NULL) || VAL_ISA( variable24 /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4127,6--39\n"); nit_exit(1);}
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable23 /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable23 /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable23 /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable23 /*ppropdefnode10*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable16 /*listnode12*/,  variable23 /*ppropdefnode10*/) /*Array::add*/;
+  }
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable24 /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable24 /*listnode11*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable24 /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable24 /*listnode11*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    variable25 = ((array___AbstractArray___is_empty_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable16 /*listnode12*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable25)) { /*if*/
+      variable16 =  variable24 /*listnode11*/ /*listnode12=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable16 /*listnode12*/,  variable24 /*listnode11*/) /*Array::append*/;
+    }
+  }
+  variable26 = NEW_parser_prod___AClassdef___init_aclassdef( variable17 /*pdocnode2*/,  variable18 /*tkwredefnode3*/,  variable19 /*pvisibilitynode4*/,  variable20 /*pclasskindnode5*/,  variable21 /*tclassidnode6*/,  variable14 /*listnode7*/,  variable15 /*listnode9*/,  variable16 /*listnode12*/); /*new AClassdef*/
+  variable25 = variable26;
+  variable1 =  variable25 /*pclassdefnode1*/ /*node_list=*/;
+  variable26 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable26,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction74___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction74::init (src/parser//parser.nit:4151,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction74].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction74].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction75___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction75::action (src/parser//parser.nit:4155,2--4214:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable16 =  variable12 /*nodearraylist1*/;
+  variable17 = TAG_Bool(( variable16 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable16 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4173,6--30\n"); nit_exit(1);}
+  variable17 =  variable11 /*nodearraylist2*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4175,6--44\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist3*/;
+  variable19 = TAG_Bool(( variable18 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable18 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4177,6--42\n"); nit_exit(1);}
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable19 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4179,6--38\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*listnode7*/==NIT_NULL) || VAL_ISA( variable20 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4181,6--38\n"); nit_exit(1);}
+  variable21 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable20 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable20 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable20 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable20 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable21)) { /*if*/
+    variable21 = ((array___AbstractArray___is_empty_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable13 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable21)) { /*if*/
+      variable13 =  variable20 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable13 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable13 /*listnode8*/,  variable20 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*listnode9*/==NIT_NULL) || VAL_ISA( variable21 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4190,6--38\n"); nit_exit(1);}
+  variable22 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable21 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable21 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable21 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable22)) { /*if*/
+    variable22 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable22)) { /*if*/
+      variable14 =  variable21 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode10*/,  variable21 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable22 /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4199,6--39\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable22 /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable22 /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable22 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable22 /*ppropdefnode11*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable15 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*listnode12*/,  variable22 /*ppropdefnode11*/) /*Array::add*/;
+  }
+  variable24 = NEW_parser_prod___AClassdef___init_aclassdef( variable16 /*pdocnode2*/,  NIT_NULL /*null*/,  variable17 /*pvisibilitynode4*/,  variable18 /*pclasskindnode5*/,  variable19 /*tclassidnode6*/,  variable13 /*listnode8*/,  variable14 /*listnode10*/,  variable15 /*listnode12*/); /*new AClassdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*pclassdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction75___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction75::init (src/parser//parser.nit:4216,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction75].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction75].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction76___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction76::action (src/parser//parser.nit:4220,2--4289:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable17 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable16 = variable17;
+  variable17 =  variable13 /*nodearraylist1*/;
+  variable18 = TAG_Bool(( variable17 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable17 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4239,6--30\n"); nit_exit(1);}
+  variable18 =  variable12 /*nodearraylist2*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4241,6--44\n"); nit_exit(1);}
+  variable19 =  variable11 /*nodearraylist3*/;
+  variable20 = TAG_Bool(( variable19 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable19 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4243,6--42\n"); nit_exit(1);}
+  variable20 =  variable9 /*nodearraylist5*/;
+  variable21 = TAG_Bool(( variable20 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable20 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4245,6--38\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*listnode7*/==NIT_NULL) || VAL_ISA( variable21 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4247,6--38\n"); nit_exit(1);}
+  variable22 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable21 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable21 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable21 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable21 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable22)) { /*if*/
+    variable22 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable22)) { /*if*/
+      variable14 =  variable21 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode8*/,  variable21 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*listnode9*/==NIT_NULL) || VAL_ISA( variable22 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4256,6--38\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable15 =  variable22 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode10*/,  variable22 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable23 /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4265,6--39\n"); nit_exit(1);}
+  variable24 =  variable4 /*nodearraylist10*/;
+  variable25 = TAG_Bool(( variable24 /*listnode12*/==NIT_NULL) || VAL_ISA( variable24 /*listnode12*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4267,6--39\n"); nit_exit(1);}
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable23 /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable23 /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable23 /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable23 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable23 /*ppropdefnode11*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable16 /*listnode13*/,COLOR_abstract_collection___SimpleCollection___add))( variable16 /*listnode13*/,  variable23 /*ppropdefnode11*/) /*Array::add*/;
+  }
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable24 /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable24 /*listnode12*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable24 /*listnode12*/,COLOR_kernel___Object_____eqeq))( variable24 /*listnode12*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    variable25 = ((array___AbstractArray___is_empty_t)CALL( variable16 /*listnode13*/,COLOR_abstract_collection___Collection___is_empty))( variable16 /*listnode13*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable25)) { /*if*/
+      variable16 =  variable24 /*listnode12*/ /*listnode13=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable16 /*listnode13*/,COLOR_abstract_collection___IndexedCollection___append))( variable16 /*listnode13*/,  variable24 /*listnode12*/) /*Array::append*/;
+    }
+  }
+  variable26 = NEW_parser_prod___AClassdef___init_aclassdef( variable17 /*pdocnode2*/,  NIT_NULL /*null*/,  variable18 /*pvisibilitynode4*/,  variable19 /*pclasskindnode5*/,  variable20 /*tclassidnode6*/,  variable14 /*listnode8*/,  variable15 /*listnode10*/,  variable16 /*listnode13*/); /*new AClassdef*/
+  variable25 = variable26;
+  variable1 =  variable25 /*pclassdefnode1*/ /*node_list=*/;
+  variable26 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable26,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction76___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction76::init (src/parser//parser.nit:4291,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction76].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction76].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction77___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction77::action (src/parser//parser.nit:4295,2--4357:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable17 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable16 = variable17;
+  variable17 =  variable13 /*nodearraylist1*/;
+  variable18 = TAG_Bool(( variable17 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable17 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4314,6--30\n"); nit_exit(1);}
+  variable18 =  variable12 /*nodearraylist2*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4316,6--38\n"); nit_exit(1);}
+  variable19 =  variable11 /*nodearraylist3*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4318,6--44\n"); nit_exit(1);}
+  variable20 =  variable10 /*nodearraylist4*/;
+  variable21 = TAG_Bool(( variable20 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable20 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4320,6--42\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable21 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4322,6--38\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*listnode7*/==NIT_NULL) || VAL_ISA( variable22 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4324,6--38\n"); nit_exit(1);}
+  variable23 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable22 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable22 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable22 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable22 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable23)) { /*if*/
+    variable23 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable23)) { /*if*/
+      variable14 =  variable22 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode8*/,  variable22 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*listnode9*/==NIT_NULL) || VAL_ISA( variable23 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4333,6--38\n"); nit_exit(1);}
+  variable24 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable23 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable23 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable23 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable23 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable24)) { /*if*/
+    variable24 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable24)) { /*if*/
+      variable15 =  variable23 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode10*/,  variable23 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable24 =  variable5 /*nodearraylist9*/;
+  variable25 = TAG_Bool(( variable24 /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable24 /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4342,6--39\n"); nit_exit(1);}
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable24 /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable24 /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable24 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable24 /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable24 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable24 /*ppropdefnode11*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable16 /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable16 /*listnode12*/,  variable24 /*ppropdefnode11*/) /*Array::add*/;
+  }
+  variable26 = NEW_parser_prod___AClassdef___init_aclassdef( variable17 /*pdocnode2*/,  variable18 /*tkwredefnode3*/,  variable19 /*pvisibilitynode4*/,  variable20 /*pclasskindnode5*/,  variable21 /*tclassidnode6*/,  variable14 /*listnode8*/,  variable15 /*listnode10*/,  variable16 /*listnode12*/); /*new AClassdef*/
+  variable25 = variable26;
+  variable1 =  variable25 /*pclassdefnode1*/ /*node_list=*/;
+  variable26 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable26,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction77___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction77::init (src/parser//parser.nit:4359,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction77].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction77].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction78___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction78::action (src/parser//parser.nit:4363,2--4435:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  val_t variable28;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable14 = variable15;
+  variable16 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable15 = variable16;
+  variable17 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable16 = variable17;
+  variable18 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable17 = variable18;
+  variable18 =  variable14 /*nodearraylist1*/;
+  variable19 = TAG_Bool(( variable18 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable18 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4383,6--30\n"); nit_exit(1);}
+  variable19 =  variable13 /*nodearraylist2*/;
+  variable20 = TAG_Bool(( variable19 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable19 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4385,6--38\n"); nit_exit(1);}
+  variable20 =  variable12 /*nodearraylist3*/;
+  variable21 = TAG_Bool(( variable20 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable20 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4387,6--44\n"); nit_exit(1);}
+  variable21 =  variable11 /*nodearraylist4*/;
+  variable22 = TAG_Bool(( variable21 /*pclasskindnode5*/==NIT_NULL) || VAL_ISA( variable21 /*pclasskindnode5*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4389,6--42\n"); nit_exit(1);}
+  variable22 =  variable9 /*nodearraylist6*/;
+  variable23 = TAG_Bool(( variable22 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable22 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4391,6--38\n"); nit_exit(1);}
+  variable23 =  variable8 /*nodearraylist7*/;
+  variable24 = TAG_Bool(( variable23 /*listnode7*/==NIT_NULL) || VAL_ISA( variable23 /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4393,6--38\n"); nit_exit(1);}
+  variable24 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable23 /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable23 /*listnode7*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable23 /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable23 /*listnode7*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable24)) { /*if*/
+    variable24 = ((array___AbstractArray___is_empty_t)CALL( variable15 /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable15 /*listnode8*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable24)) { /*if*/
+      variable15 =  variable23 /*listnode7*/ /*listnode8=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable15 /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable15 /*listnode8*/,  variable23 /*listnode7*/) /*Array::append*/;
+    }
+  }
+  variable24 =  variable7 /*nodearraylist8*/;
+  variable25 = TAG_Bool(( variable24 /*listnode9*/==NIT_NULL) || VAL_ISA( variable24 /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4402,6--38\n"); nit_exit(1);}
+  variable25 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable24 /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable24 /*listnode9*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable24 /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable24 /*listnode9*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable25)) { /*if*/
+    variable25 = ((array___AbstractArray___is_empty_t)CALL( variable16 /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable16 /*listnode10*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable25)) { /*if*/
+      variable16 =  variable24 /*listnode9*/ /*listnode10=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable16 /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable16 /*listnode10*/,  variable24 /*listnode9*/) /*Array::append*/;
+    }
+  }
+  variable25 =  variable6 /*nodearraylist9*/;
+  variable26 = TAG_Bool(( variable25 /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable25 /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4411,6--39\n"); nit_exit(1);}
+  variable26 =  variable4 /*nodearraylist11*/;
+  variable27 = TAG_Bool(( variable26 /*listnode12*/==NIT_NULL) || VAL_ISA( variable26 /*listnode12*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable27)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4413,6--39\n"); nit_exit(1);}
+  variable27 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable25 /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable25 /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable25 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable25 /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable25 /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable25 /*ppropdefnode11*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable27)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable17 /*listnode13*/,COLOR_abstract_collection___SimpleCollection___add))( variable17 /*listnode13*/,  variable25 /*ppropdefnode11*/) /*Array::add*/;
+  }
+  variable27 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable26 /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable26 /*listnode12*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable26 /*listnode12*/,COLOR_kernel___Object_____eqeq))( variable26 /*listnode12*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable27)) { /*if*/
+    variable27 = ((array___AbstractArray___is_empty_t)CALL( variable17 /*listnode13*/,COLOR_abstract_collection___Collection___is_empty))( variable17 /*listnode13*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable27)) { /*if*/
+      variable17 =  variable26 /*listnode12*/ /*listnode13=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable17 /*listnode13*/,COLOR_abstract_collection___IndexedCollection___append))( variable17 /*listnode13*/,  variable26 /*listnode12*/) /*Array::append*/;
+    }
+  }
+  variable28 = NEW_parser_prod___AClassdef___init_aclassdef( variable18 /*pdocnode2*/,  variable19 /*tkwredefnode3*/,  variable20 /*pvisibilitynode4*/,  variable21 /*pclasskindnode5*/,  variable22 /*tclassidnode6*/,  variable15 /*listnode8*/,  variable16 /*listnode10*/,  variable17 /*listnode13*/); /*new AClassdef*/
+  variable27 = variable28;
+  variable1 =  variable27 /*pclassdefnode1*/ /*node_list=*/;
+  variable28 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable28,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction78___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction78::init (src/parser//parser.nit:4437,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction78].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction78].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction79___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction79::action (src/parser//parser.nit:4441,2--4451:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwclassnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwclassnode2*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4446,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AConcreteClasskind___init_aconcreteclasskind( variable3 /*tkwclassnode2*/); /*new AConcreteClasskind*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pclasskindnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction79___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction79::init (src/parser//parser.nit:4453,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction79].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction79].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction80___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction80::action (src/parser//parser.nit:4457,2--4471:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwabstractnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwabstractnode2*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4463,6--44\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*tkwclassnode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwclassnode3*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4465,6--38\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AAbstractClasskind___init_aabstractclasskind( variable4 /*tkwabstractnode2*/,  variable5 /*tkwclassnode3*/); /*new AAbstractClasskind*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pclasskindnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction80___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction80::init (src/parser//parser.nit:4473,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction80].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction80].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction81___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction81::action (src/parser//parser.nit:4477,2--4487:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwinterfacenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwinterfacenode2*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4482,6--46\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind( variable3 /*tkwinterfacenode2*/); /*new AInterfaceClasskind*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pclasskindnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction81___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction81::init (src/parser//parser.nit:4489,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction81].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction81].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction82___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction82::action (src/parser//parser.nit:4493,2--4503:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwuniversalnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwuniversalnode2*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4498,6--46\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AUniversalClasskind___init_auniversalclasskind( variable3 /*tkwuniversalnode2*/); /*new AUniversalClasskind*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pclasskindnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction82___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction82::init (src/parser//parser.nit:4505,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction82].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction82].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction83___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction83::action (src/parser//parser.nit:4509,2--4524:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable8 /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4519,6--42\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable8 /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable8 /*pformaldefnode1*/,  NIT_NULL /*null*/) /*PFormaldef::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode2*/,  variable8 /*pformaldefnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable7 /*listnode2*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction83___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction83::init (src/parser//parser.nit:4526,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction83].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction83].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction84___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction84::action (src/parser//parser.nit:4530,2--4555:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable9 /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4541,6--42\n"); nit_exit(1);}
+  variable10 =  variable4 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*listnode2*/==NIT_NULL) || VAL_ISA( variable10 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4543,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable9 /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable9 /*pformaldefnode1*/,  NIT_NULL /*null*/) /*PFormaldef::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode3*/,  variable9 /*pformaldefnode1*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode3*/,  variable10 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable8 /*listnode3*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction84___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction84::init (src/parser//parser.nit:4557,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction84].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction84].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction85___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction85::action (src/parser//parser.nit:4561,2--4570:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist3*/;
+  variable6 = TAG_Bool(( variable5 /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable5 /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4568,6--42\n"); nit_exit(1);}
+  variable1 =  variable5 /*pformaldefnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(8)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction85___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction85::init (src/parser//parser.nit:4572,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction85].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction85].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction86___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction86::action (src/parser//parser.nit:4576,2--4587:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4581,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFormaldef___init_aformaldef( variable3 /*tclassidnode2*/,  NIT_NULL /*null*/); /*new AFormaldef*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pformaldefnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction86___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction86::init (src/parser//parser.nit:4589,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction86].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction86].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction87___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction87::action (src/parser//parser.nit:4593,2--4607:33)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4599,6--38\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable5 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4601,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AFormaldef___init_aformaldef( variable4 /*tclassidnode2*/,  variable5 /*ptypenode3*/); /*new AFormaldef*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pformaldefnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction87___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction87::init (src/parser//parser.nit:4609,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction87].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction87].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction88___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction88::action (src/parser//parser.nit:4613,2--4629:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tkwspecialnode2*/==NIT_NULL) || VAL_ISA( variable6 /*tkwspecialnode2*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4621,6--42\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4623,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ASuperclass___init_asuperclass( variable6 /*tkwspecialnode2*/,  variable7 /*ptypenode3*/); /*new ASuperclass*/
+  variable8 = variable9;
+  variable1 =  variable8 /*psuperclassnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(10)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction88___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction88::init (src/parser//parser.nit:4631,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction88].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction88].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction89___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction89::action (src/parser//parser.nit:4635,2--4643:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4641,6--38\n"); nit_exit(1);}
+  variable1 =  variable4 /*ppropdefnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(11)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction89___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction89::init (src/parser//parser.nit:4645,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction89].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction89].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction90___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction90::action (src/parser//parser.nit:4649,2--4690:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4659,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4661,6--44\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable9 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable11 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4667,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable11 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable12 = variable13;
+  variable13 =  variable4 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4673,6--45\n"); nit_exit(1);}
+  variable14 =  variable3 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4675,6--37\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4677,6--37\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  variable10 /*pablenode3*/,  variable12 /*pablenode6*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode10*/,  variable14 /*tkwattrnode11*/,  variable15 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction90___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction90::init (src/parser//parser.nit:4692,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction90].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction90].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction91___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction91::action (src/parser//parser.nit:4696,2--4740:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4707,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4709,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable10 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable11 = variable12;
+  variable12 =  variable6 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4715,6--38\n"); nit_exit(1);}
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable13 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4717,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AWriteAble___init_awriteable( variable12 /*tkwredefnode7*/,  variable13 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable14 = variable15;
+  variable15 =  variable4 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4723,6--45\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4725,6--37\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4727,6--37\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable11 /*pablenode3*/,  variable14 /*pablenode6*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode10*/,  variable16 /*tkwattrnode11*/,  variable17 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction91___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction91::init (src/parser//parser.nit:4742,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction91].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction91].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction92___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction92::action (src/parser//parser.nit:4746,2--4780:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4755,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable8 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4757,6--44\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable8 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4763,6--44\n"); nit_exit(1);}
+  variable11 =  variable3 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable11 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4765,6--36\n"); nit_exit(1);}
+  variable12 =  variable2 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable12 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4767,6--37\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable7 /*pdocnode2*/,  variable9 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode8*/,  variable11 /*tkwattrnode9*/,  variable12 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable13 = variable14;
+  variable1 =  variable13 /*ppropdefnode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction92___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction92::init (src/parser//parser.nit:4782,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction92].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction92].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction93___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction93::action (src/parser//parser.nit:4786,2--4830:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4797,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4799,6--38\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4801,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( variable10 /*tkwredefnode4*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable13 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4807,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable13 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable14 = variable15;
+  variable15 =  variable4 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4813,6--45\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4815,6--37\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4817,6--37\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable12 /*pablenode3*/,  variable14 /*pablenode6*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode10*/,  variable16 /*tkwattrnode11*/,  variable17 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction93___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction93::init (src/parser//parser.nit:4832,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction93].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction93].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction94___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction94::action (src/parser//parser.nit:4836,2--4883:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4848,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4850,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4852,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( variable11 /*tkwredefnode4*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4858,6--38\n"); nit_exit(1);}
+  variable15 =  variable5 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4860,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( variable14 /*tkwredefnode7*/,  variable15 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4866,6--45\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4868,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4870,6--37\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable13 /*pablenode3*/,  variable16 /*pablenode6*/,  NIT_NULL /*null*/,  variable17 /*pvisibilitynode10*/,  variable18 /*tkwattrnode11*/,  variable19 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction94___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction94::init (src/parser//parser.nit:4885,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction94].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction94].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction95___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction95::action (src/parser//parser.nit:4889,2--4926:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4899,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable9 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4901,6--38\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4903,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AReadAble___init_areadable( variable9 /*tkwredefnode4*/,  variable10 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4909,6--44\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable13 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4911,6--36\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable14 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4913,6--37\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  variable11 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable12 /*pvisibilitynode8*/,  variable13 /*tkwattrnode9*/,  variable14 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction95___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction95::init (src/parser//parser.nit:4928,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction95].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction95].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction96___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction96::action (src/parser//parser.nit:4932,2--4966:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4941,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable8 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4943,6--44\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable8 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable9 = variable10;
+  variable10 =  variable4 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4949,6--44\n"); nit_exit(1);}
+  variable11 =  variable3 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable11 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4951,6--36\n"); nit_exit(1);}
+  variable12 =  variable2 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable12 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4953,6--37\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable7 /*pdocnode2*/,  NIT_NULL /*null*/,  variable9 /*pablenode4*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode8*/,  variable11 /*tkwattrnode9*/,  variable12 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable13 = variable14;
+  variable1 =  variable13 /*ppropdefnode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction96___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction96::init (src/parser//parser.nit:4968,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction96].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction96].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction97___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction97::action (src/parser//parser.nit:4972,2--5009:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4982,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4984,6--38\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable10 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4986,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AWriteAble___init_awriteable( variable9 /*tkwredefnode5*/,  variable10 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable11 = variable12;
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4992,6--44\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable13 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4994,6--36\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable14 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:4996,6--37\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pablenode4*/,  NIT_NULL /*null*/,  variable12 /*pvisibilitynode8*/,  variable13 /*tkwattrnode9*/,  variable14 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction97___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction97::init (src/parser//parser.nit:5011,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction97].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction97].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction98___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction98::action (src/parser//parser.nit:5015,2--5042:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5023,6--30\n"); nit_exit(1);}
+  variable7 =  variable4 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable7 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5025,6--44\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable8 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5027,6--36\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable9 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5029,6--36\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable6 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable7 /*pvisibilitynode6*/,  variable8 /*tkwattrnode7*/,  variable9 /*tattridnode8*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable10 = variable11;
+  variable1 =  variable10 /*ppropdefnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction98___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction98::init (src/parser//parser.nit:5044,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction98].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction98].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction99___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction99::action (src/parser//parser.nit:5048,2--5092:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5059,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5061,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable10 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable11 = variable12;
+  variable12 =  variable6 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable12 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5067,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable12 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable13 = variable14;
+  variable14 =  variable5 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5073,6--38\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5075,6--45\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5077,6--37\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5079,6--37\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable11 /*pablenode3*/,  variable13 /*pablenode6*/,  variable14 /*tkwredefnode9*/,  variable15 /*pvisibilitynode10*/,  variable16 /*tkwattrnode11*/,  variable17 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction99___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction99::init (src/parser//parser.nit:5094,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction99].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction99].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction100___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction100::action (src/parser//parser.nit:5098,2--5145:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5110,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5112,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable7 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5118,6--38\n"); nit_exit(1);}
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5120,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( variable13 /*tkwredefnode7*/,  variable14 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5126,6--38\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5128,6--45\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5130,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5132,6--37\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable12 /*pablenode3*/,  variable15 /*pablenode6*/,  variable16 /*tkwredefnode9*/,  variable17 /*pvisibilitynode10*/,  variable18 /*tkwattrnode11*/,  variable19 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction100___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction100::init (src/parser//parser.nit:5147,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction100].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction100].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction101___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction101::action (src/parser//parser.nit:5151,2--5188:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5161,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5163,6--44\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable9 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5169,6--38\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5171,6--44\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable13 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5173,6--36\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable14 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5175,6--37\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  variable10 /*pablenode3*/,  NIT_NULL /*null*/,  variable11 /*tkwredefnode7*/,  variable12 /*pvisibilitynode8*/,  variable13 /*tkwattrnode9*/,  variable14 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction101___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction101::init (src/parser//parser.nit:5190,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction101].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction101].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction102___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction102::action (src/parser//parser.nit:5194,2--5241:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5206,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5208,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5210,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( variable11 /*tkwredefnode4*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5216,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable14 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5222,6--38\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5224,6--45\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5226,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5228,6--37\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable13 /*pablenode3*/,  variable15 /*pablenode6*/,  variable16 /*tkwredefnode9*/,  variable17 /*pvisibilitynode10*/,  variable18 /*tkwattrnode11*/,  variable19 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction102___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction102::init (src/parser//parser.nit:5243,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction102].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction102].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction103___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction103::action (src/parser//parser.nit:5247,2--5297:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5260,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5262,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5264,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( variable12 /*tkwredefnode4*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5270,6--38\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable16 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5272,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AWriteAble___init_awriteable( variable15 /*tkwredefnode7*/,  variable16 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable17 = variable18;
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5278,6--38\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5280,6--45\n"); nit_exit(1);}
+  variable20 =  variable3 /*nodearraylist8*/;
+  variable21 = TAG_Bool(( variable20 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable20 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5282,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist9*/;
+  variable22 = TAG_Bool(( variable21 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable21 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5284,6--37\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable17 /*pablenode6*/,  variable18 /*tkwredefnode9*/,  variable19 /*pvisibilitynode10*/,  variable20 /*tkwattrnode11*/,  variable21 /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction103___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction103::init (src/parser//parser.nit:5299,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction103].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction103].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction104___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction104::action (src/parser//parser.nit:5303,2--5343:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5314,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5316,6--38\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5318,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( variable10 /*tkwredefnode4*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5324,6--38\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5326,6--44\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable15 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5328,6--36\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable16 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5330,6--37\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable12 /*pablenode3*/,  NIT_NULL /*null*/,  variable13 /*tkwredefnode7*/,  variable14 /*pvisibilitynode8*/,  variable15 /*tkwattrnode9*/,  variable16 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction104___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction104::init (src/parser//parser.nit:5345,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction104].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction104].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction105___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction105::action (src/parser//parser.nit:5349,2--5386:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5359,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable9 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5361,6--44\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable9 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5367,6--38\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5369,6--44\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable13 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5371,6--36\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable14 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5373,6--37\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pablenode4*/,  variable11 /*tkwredefnode7*/,  variable12 /*pvisibilitynode8*/,  variable13 /*tkwattrnode9*/,  variable14 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction105___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction105::init (src/parser//parser.nit:5388,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction105].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction105].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction106___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction106::action (src/parser//parser.nit:5392,2--5432:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5403,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5405,6--38\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable11 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5407,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWriteAble___init_awriteable( variable10 /*tkwredefnode5*/,  variable11 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5413,6--38\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5415,6--44\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable15 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5417,6--36\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable16 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5419,6--37\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable12 /*pablenode4*/,  variable13 /*tkwredefnode7*/,  variable14 /*pvisibilitynode8*/,  variable15 /*tkwattrnode9*/,  variable16 /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction106___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction106::init (src/parser//parser.nit:5434,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction106].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction106].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction107___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction107::action (src/parser//parser.nit:5438,2--5468:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5447,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable8 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5449,6--38\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable9 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5451,6--44\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable10 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5453,6--36\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist5*/;
+  variable12 = TAG_Bool(( variable11 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable11 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5455,6--36\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable7 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable8 /*tkwredefnode5*/,  variable9 /*pvisibilitynode6*/,  variable10 /*tkwattrnode7*/,  variable11 /*tattridnode8*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable12 = variable13;
+  variable1 =  variable12 /*ppropdefnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction107___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction107::init (src/parser//parser.nit:5470,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction107].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction107].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction108___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction108::action (src/parser//parser.nit:5474,2--5518:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5485,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5487,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable10 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable11 = variable12;
+  variable12 =  variable6 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable12 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5493,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable12 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable13 = variable14;
+  variable14 =  variable5 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5499,6--45\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable15 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5501,6--37\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable16 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5503,6--37\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable17 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5505,6--33\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable11 /*pablenode3*/,  variable13 /*pablenode6*/,  NIT_NULL /*null*/,  variable14 /*pvisibilitynode10*/,  variable15 /*tkwattrnode11*/,  variable16 /*tattridnode12*/,  variable17 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction108___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction108::init (src/parser//parser.nit:5520,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction108].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction108].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction109___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction109::action (src/parser//parser.nit:5524,2--5571:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5536,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5538,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable7 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5544,6--38\n"); nit_exit(1);}
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5546,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( variable13 /*tkwredefnode7*/,  variable14 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5552,6--45\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5554,6--37\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5556,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5558,6--33\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable12 /*pablenode3*/,  variable15 /*pablenode6*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode10*/,  variable17 /*tkwattrnode11*/,  variable18 /*tattridnode12*/,  variable19 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction109___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction109::init (src/parser//parser.nit:5573,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction109].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction109].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction110___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction110::action (src/parser//parser.nit:5577,2--5614:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5587,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5589,6--44\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable9 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5595,6--44\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable12 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5597,6--36\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable13 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5599,6--37\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable14 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5601,6--33\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  variable10 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode8*/,  variable12 /*tkwattrnode9*/,  variable13 /*tattridnode10*/,  variable14 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction110___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction110::init (src/parser//parser.nit:5616,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction110].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction110].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction111___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction111::action (src/parser//parser.nit:5620,2--5667:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5632,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5634,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5636,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( variable11 /*tkwredefnode4*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5642,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable14 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5648,6--45\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5650,6--37\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5652,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5654,6--33\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable13 /*pablenode3*/,  variable15 /*pablenode6*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode10*/,  variable17 /*tkwattrnode11*/,  variable18 /*tattridnode12*/,  variable19 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction111___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction111::init (src/parser//parser.nit:5669,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction111].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction111].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction112___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction112::action (src/parser//parser.nit:5673,2--5723:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5686,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5688,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5690,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( variable12 /*tkwredefnode4*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5696,6--38\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable16 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5698,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AWriteAble___init_awriteable( variable15 /*tkwredefnode7*/,  variable16 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable17 = variable18;
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5704,6--45\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5706,6--37\n"); nit_exit(1);}
+  variable20 =  variable3 /*nodearraylist8*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5708,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist9*/;
+  variable22 = TAG_Bool(( variable21 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable21 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5710,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable17 /*pablenode6*/,  NIT_NULL /*null*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  variable21 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction112___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction112::init (src/parser//parser.nit:5725,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction112].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction112].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction113___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction113::action (src/parser//parser.nit:5729,2--5769:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5740,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5742,6--38\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5744,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( variable10 /*tkwredefnode4*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5750,6--44\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5752,6--36\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5754,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable16 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5756,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable12 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  variable16 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction113___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction113::init (src/parser//parser.nit:5771,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction113].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction113].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction114___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction114::action (src/parser//parser.nit:5775,2--5812:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5785,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable9 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5787,6--44\n"); nit_exit(1);}
+  variable11 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable9 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable10 = variable11;
+  variable11 =  variable5 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5793,6--44\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable12 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5795,6--36\n"); nit_exit(1);}
+  variable13 =  variable3 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable13 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5797,6--37\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist6*/;
+  variable15 = TAG_Bool(( variable14 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable14 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5799,6--33\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pablenode4*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode8*/,  variable12 /*tkwattrnode9*/,  variable13 /*tattridnode10*/,  variable14 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction114___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction114::init (src/parser//parser.nit:5814,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction114].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction114].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction115___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction115::action (src/parser//parser.nit:5818,2--5858:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5829,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5831,6--38\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable11 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5833,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWriteAble___init_awriteable( variable10 /*tkwredefnode5*/,  variable11 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable12 = variable13;
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5839,6--44\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5841,6--36\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5843,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable16 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5845,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable12 /*pablenode4*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  variable16 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction115___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction115::init (src/parser//parser.nit:5860,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction115].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction115].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction116___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction116::action (src/parser//parser.nit:5864,2--5894:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5873,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable8 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5875,6--44\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable9 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5877,6--36\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable10 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5879,6--36\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist5*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode9*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode9*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5881,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable7 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable8 /*pvisibilitynode6*/,  variable9 /*tkwattrnode7*/,  variable10 /*tattridnode8*/,  variable11 /*ptypenode9*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable12 = variable13;
+  variable1 =  variable12 /*ppropdefnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction116___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction116::init (src/parser//parser.nit:5896,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction116].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction116].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction117___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction117::action (src/parser//parser.nit:5900,2--5947:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5912,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5914,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable7 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable13 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5920,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable13 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable14 = variable15;
+  variable15 =  variable6 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5926,6--38\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5928,6--45\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5930,6--37\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist7*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5932,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist8*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5934,6--33\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable12 /*pablenode3*/,  variable14 /*pablenode6*/,  variable15 /*tkwredefnode9*/,  variable16 /*pvisibilitynode10*/,  variable17 /*tkwattrnode11*/,  variable18 /*tattridnode12*/,  variable19 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction117___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction117::init (src/parser//parser.nit:5949,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction117].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction117].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction118___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction118::action (src/parser//parser.nit:5953,2--6003:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5966,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5968,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5974,6--38\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5976,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( variable14 /*tkwredefnode7*/,  variable15 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable6 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5982,6--38\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5984,6--45\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5986,6--37\n"); nit_exit(1);}
+  variable20 =  variable3 /*nodearraylist8*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5988,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist9*/;
+  variable22 = TAG_Bool(( variable21 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable21 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:5990,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable13 /*pablenode3*/,  variable16 /*pablenode6*/,  variable17 /*tkwredefnode9*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  variable21 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction118___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction118::init (src/parser//parser.nit:6005,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction118].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction118].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction119___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction119::action (src/parser//parser.nit:6009,2--6049:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6020,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable10 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6022,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable10 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable11 = variable12;
+  variable12 =  variable6 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6028,6--38\n"); nit_exit(1);}
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6030,6--44\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6032,6--36\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6034,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable16 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6036,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  variable11 /*pablenode3*/,  NIT_NULL /*null*/,  variable12 /*tkwredefnode7*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  variable16 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction119___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction119::init (src/parser//parser.nit:6051,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction119].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction119].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction120___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction120::action (src/parser//parser.nit:6055,2--6105:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6068,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6070,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6072,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( variable12 /*tkwredefnode4*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6078,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable15 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable6 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6084,6--38\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6086,6--45\n"); nit_exit(1);}
+  variable19 =  variable4 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6088,6--37\n"); nit_exit(1);}
+  variable20 =  variable3 /*nodearraylist8*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6090,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist9*/;
+  variable22 = TAG_Bool(( variable21 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable21 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6092,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable16 /*pablenode6*/,  variable17 /*tkwredefnode9*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  variable21 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction120___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction120::init (src/parser//parser.nit:6107,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction120].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction120].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction121___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction121::action (src/parser//parser.nit:6111,2--6164:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6125,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6127,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6129,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( variable13 /*tkwredefnode4*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6135,6--38\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable17 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6137,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AWriteAble___init_awriteable( variable16 /*tkwredefnode7*/,  variable17 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable18 = variable19;
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable19 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6143,6--38\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable20 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6145,6--45\n"); nit_exit(1);}
+  variable21 =  variable4 /*nodearraylist8*/;
+  variable22 = TAG_Bool(( variable21 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable21 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6147,6--37\n"); nit_exit(1);}
+  variable22 =  variable3 /*nodearraylist9*/;
+  variable23 = TAG_Bool(( variable22 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable22 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6149,6--37\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist10*/;
+  variable24 = TAG_Bool(( variable23 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable23 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6151,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable15 /*pablenode3*/,  variable18 /*pablenode6*/,  variable19 /*tkwredefnode9*/,  variable20 /*pvisibilitynode10*/,  variable21 /*tkwattrnode11*/,  variable22 /*tattridnode12*/,  variable23 /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction121___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction121::init (src/parser//parser.nit:6166,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction121].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction121].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction122___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction122::action (src/parser//parser.nit:6170,2--6213:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6182,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6184,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6186,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( variable11 /*tkwredefnode4*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6192,6--38\n"); nit_exit(1);}
+  variable15 =  variable5 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6194,6--44\n"); nit_exit(1);}
+  variable16 =  variable4 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6196,6--36\n"); nit_exit(1);}
+  variable17 =  variable3 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6198,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist8*/;
+  variable19 = TAG_Bool(( variable18 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable18 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6200,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable13 /*pablenode3*/,  NIT_NULL /*null*/,  variable14 /*tkwredefnode7*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  variable18 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction122___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction122::init (src/parser//parser.nit:6215,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction122].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction122].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction123___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction123::action (src/parser//parser.nit:6219,2--6259:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6230,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable10 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6232,6--44\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable10 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable11 = variable12;
+  variable12 =  variable6 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6238,6--38\n"); nit_exit(1);}
+  variable13 =  variable5 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6240,6--44\n"); nit_exit(1);}
+  variable14 =  variable4 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6242,6--36\n"); nit_exit(1);}
+  variable15 =  variable3 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6244,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable16 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6246,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pablenode4*/,  variable12 /*tkwredefnode7*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  variable16 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction123___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction123::init (src/parser//parser.nit:6261,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction123].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction123].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction124___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction124::action (src/parser//parser.nit:6265,2--6308:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6277,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6279,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable12 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6281,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AWriteAble___init_awriteable( variable11 /*tkwredefnode5*/,  variable12 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable13 = variable14;
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6287,6--38\n"); nit_exit(1);}
+  variable15 =  variable5 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6289,6--44\n"); nit_exit(1);}
+  variable16 =  variable4 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6291,6--36\n"); nit_exit(1);}
+  variable17 =  variable3 /*nodearraylist7*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6293,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist8*/;
+  variable19 = TAG_Bool(( variable18 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable18 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6295,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable13 /*pablenode4*/,  variable14 /*tkwredefnode7*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  variable18 /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction124___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction124::init (src/parser//parser.nit:6310,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction124].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction124].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction125___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction125::action (src/parser//parser.nit:6314,2--6347:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6324,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6326,6--38\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6328,6--44\n"); nit_exit(1);}
+  variable11 =  variable4 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable11 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6330,6--36\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable12 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6332,6--36\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist6*/;
+  variable14 = TAG_Bool(( variable13 /*ptypenode9*/==NIT_NULL) || VAL_ISA( variable13 /*ptypenode9*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6334,6--32\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable8 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable9 /*tkwredefnode5*/,  variable10 /*pvisibilitynode6*/,  variable11 /*tkwattrnode7*/,  variable12 /*tattridnode8*/,  variable13 /*ptypenode9*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction125___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction125::init (src/parser//parser.nit:6349,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction125].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction125].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction126___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction126::action (src/parser//parser.nit:6353,2--6399:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6366,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6368,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6374,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable14 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable7 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6380,6--45\n"); nit_exit(1);}
+  variable17 =  variable6 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6382,6--37\n"); nit_exit(1);}
+  variable18 =  variable5 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6384,6--37\n"); nit_exit(1);}
+  variable19 =  variable2 /*nodearraylist9*/;
+  variable20 = TAG_Bool(( variable19 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable19 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6386,6--33\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable13 /*pablenode3*/,  variable15 /*pablenode6*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode10*/,  variable17 /*tkwattrnode11*/,  variable18 /*tattridnode12*/,  NIT_NULL /*null*/,  variable19 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable20 = variable21;
+  variable1 =  variable20 /*ppropdefnode1*/ /*node_list=*/;
+  variable21 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable21,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction126___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction126::init (src/parser//parser.nit:6401,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction126].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction126].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction127___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction127::action (src/parser//parser.nit:6405,2--6454:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6419,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6421,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable9 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6427,6--38\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable16 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6429,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AWriteAble___init_awriteable( variable15 /*tkwredefnode7*/,  variable16 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable17 = variable18;
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6435,6--45\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6437,6--37\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6439,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist10*/;
+  variable22 = TAG_Bool(( variable21 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable21 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6441,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable17 /*pablenode6*/,  NIT_NULL /*null*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  NIT_NULL /*null*/,  variable21 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction127___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction127::init (src/parser//parser.nit:6456,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction127].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction127].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction128___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction128::action (src/parser//parser.nit:6460,2--6499:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6472,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6474,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable11 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable12 = variable13;
+  variable13 =  variable7 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6480,6--44\n"); nit_exit(1);}
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6482,6--36\n"); nit_exit(1);}
+  variable15 =  variable5 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6484,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6486,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  variable12 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  NIT_NULL /*null*/,  variable16 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction128___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction128::init (src/parser//parser.nit:6501,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction128].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction128].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction129___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction129::action (src/parser//parser.nit:6505,2--6554:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6519,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6521,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6523,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( variable13 /*tkwredefnode4*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable16 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6529,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable16 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable17 = variable18;
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6535,6--45\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6537,6--37\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6539,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist10*/;
+  variable22 = TAG_Bool(( variable21 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable21 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6541,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable15 /*pablenode3*/,  variable17 /*pablenode6*/,  NIT_NULL /*null*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  NIT_NULL /*null*/,  variable21 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction129___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction129::init (src/parser//parser.nit:6556,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction129].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction129].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction130___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction130::action (src/parser//parser.nit:6560,2--6612:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6575,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6577,6--38\n"); nit_exit(1);}
+  variable15 =  variable10 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6579,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AReadAble___init_areadable( variable14 /*tkwredefnode4*/,  variable15 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable16 = variable17;
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6585,6--38\n"); nit_exit(1);}
+  variable18 =  variable8 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable18 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6587,6--44\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AWriteAble___init_awriteable( variable17 /*tkwredefnode7*/,  variable18 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable19 = variable20;
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable20 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6593,6--45\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable21 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6595,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable22 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6597,6--37\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6599,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable16 /*pablenode3*/,  variable19 /*pablenode6*/,  NIT_NULL /*null*/,  variable20 /*pvisibilitynode10*/,  variable21 /*tkwattrnode11*/,  variable22 /*tattridnode12*/,  NIT_NULL /*null*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction130___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction130::init (src/parser//parser.nit:6614,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction130].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction130].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction131___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction131::action (src/parser//parser.nit:6618,2--6660:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6631,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6633,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6635,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( variable12 /*tkwredefnode4*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6641,6--44\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6643,6--36\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6645,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6647,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable14 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  NIT_NULL /*null*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction131___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction131::init (src/parser//parser.nit:6662,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction131].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction131].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction132___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction132::action (src/parser//parser.nit:6666,2--6705:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6678,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable11 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6680,6--44\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable11 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable12 = variable13;
+  variable13 =  variable7 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6686,6--44\n"); nit_exit(1);}
+  variable14 =  variable6 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6688,6--36\n"); nit_exit(1);}
+  variable15 =  variable5 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6690,6--37\n"); nit_exit(1);}
+  variable16 =  variable2 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6692,6--33\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable12 /*pablenode4*/,  NIT_NULL /*null*/,  variable13 /*pvisibilitynode8*/,  variable14 /*tkwattrnode9*/,  variable15 /*tattridnode10*/,  NIT_NULL /*null*/,  variable16 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction132___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction132::init (src/parser//parser.nit:6707,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction132].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction132].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction133___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction133::action (src/parser//parser.nit:6711,2--6753:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6724,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6726,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable13 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6728,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AWriteAble___init_awriteable( variable12 /*tkwredefnode5*/,  variable13 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable14 = variable15;
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6734,6--44\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6736,6--36\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6738,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6740,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  variable14 /*pablenode4*/,  NIT_NULL /*null*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  NIT_NULL /*null*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction133___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction133::init (src/parser//parser.nit:6755,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction133].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction133].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction134___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction134::action (src/parser//parser.nit:6759,2--6791:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6770,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6772,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable11 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6774,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable12 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6776,6--36\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*pexprnode10*/==NIT_NULL) || VAL_ISA( variable13 /*pexprnode10*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6778,6--33\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode6*/,  variable11 /*tkwattrnode7*/,  variable12 /*tattridnode8*/,  NIT_NULL /*null*/,  variable13 /*pexprnode10*/); /*new AAttrPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction134___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction134::init (src/parser//parser.nit:6793,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction134].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction134].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction135___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction135::action (src/parser//parser.nit:6797,2--6846:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6811,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6813,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable9 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6819,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable15 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable8 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6825,6--38\n"); nit_exit(1);}
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6827,6--45\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6829,6--37\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6831,6--37\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist10*/;
+  variable22 = TAG_Bool(( variable21 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable21 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6833,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable16 /*pablenode6*/,  variable17 /*tkwredefnode9*/,  variable18 /*pvisibilitynode10*/,  variable19 /*tkwattrnode11*/,  variable20 /*tattridnode12*/,  NIT_NULL /*null*/,  variable21 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction135___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction135::init (src/parser//parser.nit:6848,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction135].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction135].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction136___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction136::action (src/parser//parser.nit:6852,2--6904:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6867,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6869,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable10 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6875,6--38\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable17 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6877,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AWriteAble___init_awriteable( variable16 /*tkwredefnode7*/,  variable17 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable18 = variable19;
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable19 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6883,6--38\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable20 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6885,6--45\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable21 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6887,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable22 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6889,6--37\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6891,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable15 /*pablenode3*/,  variable18 /*pablenode6*/,  variable19 /*tkwredefnode9*/,  variable20 /*pvisibilitynode10*/,  variable21 /*tkwattrnode11*/,  variable22 /*tattridnode12*/,  NIT_NULL /*null*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction136___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction136::init (src/parser//parser.nit:6906,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction136].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction136].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction137___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction137::action (src/parser//parser.nit:6910,2--6952:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6923,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6925,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6931,6--38\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6933,6--44\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6935,6--36\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6937,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6939,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable13 /*pablenode3*/,  NIT_NULL /*null*/,  variable14 /*tkwredefnode7*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  NIT_NULL /*null*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction137___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction137::init (src/parser//parser.nit:6954,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction137].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction137].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction138___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction138::action (src/parser//parser.nit:6958,2--7010:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6973,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6975,6--38\n"); nit_exit(1);}
+  variable15 =  variable10 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6977,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AReadAble___init_areadable( variable14 /*tkwredefnode4*/,  variable15 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable16 = variable17;
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable17 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6983,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable17 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable18 = variable19;
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable19 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6989,6--38\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable20 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6991,6--45\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable21 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6993,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable22 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6995,6--37\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:6997,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable16 /*pablenode3*/,  variable18 /*pablenode6*/,  variable19 /*tkwredefnode9*/,  variable20 /*pvisibilitynode10*/,  variable21 /*tkwattrnode11*/,  variable22 /*tattridnode12*/,  NIT_NULL /*null*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction138___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction138::init (src/parser//parser.nit:7012,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction138].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction138].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction139___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction139::action (src/parser//parser.nit:7016,2--7071:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable14 =  variable13 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7032,6--30\n"); nit_exit(1);}
+  variable15 =  variable12 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7034,6--38\n"); nit_exit(1);}
+  variable16 =  variable11 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable16 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7036,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AReadAble___init_areadable( variable15 /*tkwredefnode4*/,  variable16 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable17 = variable18;
+  variable18 =  variable10 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7042,6--38\n"); nit_exit(1);}
+  variable19 =  variable9 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable19 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7044,6--44\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AWriteAble___init_awriteable( variable18 /*tkwredefnode7*/,  variable19 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable20 = variable21;
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable21 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7050,6--38\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable22 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7052,6--45\n"); nit_exit(1);}
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable23 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7054,6--37\n"); nit_exit(1);}
+  variable24 =  variable5 /*nodearraylist9*/;
+  variable25 = TAG_Bool(( variable24 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable24 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7056,6--37\n"); nit_exit(1);}
+  variable25 =  variable2 /*nodearraylist12*/;
+  variable26 = TAG_Bool(( variable25 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable25 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7058,6--33\n"); nit_exit(1);}
+  variable27 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable14 /*pdocnode2*/,  variable17 /*pablenode3*/,  variable20 /*pablenode6*/,  variable21 /*tkwredefnode9*/,  variable22 /*pvisibilitynode10*/,  variable23 /*tkwattrnode11*/,  variable24 /*tattridnode12*/,  NIT_NULL /*null*/,  variable25 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable26 = variable27;
+  variable1 =  variable26 /*ppropdefnode1*/ /*node_list=*/;
+  variable27 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable27,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction139___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction139::init (src/parser//parser.nit:7073,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction139].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction139].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction140___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction140::action (src/parser//parser.nit:7077,2--7122:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7091,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7093,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7095,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( variable13 /*tkwredefnode4*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7101,6--38\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7103,6--44\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7105,6--36\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7107,6--37\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7109,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable15 /*pablenode3*/,  NIT_NULL /*null*/,  variable16 /*tkwredefnode7*/,  variable17 /*pvisibilitynode8*/,  variable18 /*tkwattrnode9*/,  variable19 /*tattridnode10*/,  NIT_NULL /*null*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction140___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction140::init (src/parser//parser.nit:7124,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction140].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction140].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction141___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction141::action (src/parser//parser.nit:7128,2--7170:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7141,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable12 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7143,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable12 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7149,6--38\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable15 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7151,6--44\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable16 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7153,6--36\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable17 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7155,6--37\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7157,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  variable13 /*pablenode4*/,  variable14 /*tkwredefnode7*/,  variable15 /*pvisibilitynode8*/,  variable16 /*tkwattrnode9*/,  variable17 /*tattridnode10*/,  NIT_NULL /*null*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction141___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction141::init (src/parser//parser.nit:7172,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction141].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction141].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction142___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction142::action (src/parser//parser.nit:7176,2--7221:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7190,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7192,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7194,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( variable13 /*tkwredefnode5*/,  variable14 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7200,6--38\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7202,6--44\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7204,6--36\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7206,6--37\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7208,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  NIT_NULL /*null*/,  variable15 /*pablenode4*/,  variable16 /*tkwredefnode7*/,  variable17 /*pvisibilitynode8*/,  variable18 /*tkwattrnode9*/,  variable19 /*tattridnode10*/,  NIT_NULL /*null*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction142___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction142::init (src/parser//parser.nit:7223,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction142].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction142].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction143___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction143::action (src/parser//parser.nit:7227,2--7262:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7239,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7241,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7243,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable13 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7245,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable14 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7247,6--36\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode10*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode10*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7249,6--33\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable11 /*tkwredefnode5*/,  variable12 /*pvisibilitynode6*/,  variable13 /*tkwattrnode7*/,  variable14 /*tattridnode8*/,  NIT_NULL /*null*/,  variable15 /*pexprnode10*/); /*new AAttrPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction143___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction143::init (src/parser//parser.nit:7264,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction143].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction143].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction144___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction144::action (src/parser//parser.nit:7268,2--7317:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7282,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7284,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable9 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7290,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable15 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable8 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable17 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7296,6--45\n"); nit_exit(1);}
+  variable18 =  variable7 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable18 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7298,6--37\n"); nit_exit(1);}
+  variable19 =  variable6 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable19 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7300,6--37\n"); nit_exit(1);}
+  variable20 =  variable5 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable20 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7302,6--33\n"); nit_exit(1);}
+  variable21 =  variable2 /*nodearraylist10*/;
+  variable22 = TAG_Bool(( variable21 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable21 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7304,6--33\n"); nit_exit(1);}
+  variable23 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable14 /*pablenode3*/,  variable16 /*pablenode6*/,  NIT_NULL /*null*/,  variable17 /*pvisibilitynode10*/,  variable18 /*tkwattrnode11*/,  variable19 /*tattridnode12*/,  variable20 /*ptypenode13*/,  variable21 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable22 = variable23;
+  variable1 =  variable22 /*ppropdefnode1*/ /*node_list=*/;
+  variable23 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable23,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction144___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction144::init (src/parser//parser.nit:7319,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction144].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction144].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction145___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction145::action (src/parser//parser.nit:7323,2--7375:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7338,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7340,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable10 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7346,6--38\n"); nit_exit(1);}
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable17 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7348,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AWriteAble___init_awriteable( variable16 /*tkwredefnode7*/,  variable17 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable18 = variable19;
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7354,6--45\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable20 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7356,6--37\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable21 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7358,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable22 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7360,6--33\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7362,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable15 /*pablenode3*/,  variable18 /*pablenode6*/,  NIT_NULL /*null*/,  variable19 /*pvisibilitynode10*/,  variable20 /*tkwattrnode11*/,  variable21 /*tattridnode12*/,  variable22 /*ptypenode13*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction145___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction145::init (src/parser//parser.nit:7377,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction145].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction145].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction146___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction146::action (src/parser//parser.nit:7381,2--7423:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7394,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7396,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable12 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7402,6--44\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable15 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7404,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable16 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7406,6--37\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable17 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7408,6--33\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7410,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  variable13 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable14 /*pvisibilitynode8*/,  variable15 /*tkwattrnode9*/,  variable16 /*tattridnode10*/,  variable17 /*ptypenode11*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction146___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction146::init (src/parser//parser.nit:7425,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction146].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction146].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction147___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction147::action (src/parser//parser.nit:7429,2--7481:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7444,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7446,6--38\n"); nit_exit(1);}
+  variable15 =  variable10 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7448,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AReadAble___init_areadable( variable14 /*tkwredefnode4*/,  variable15 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable16 = variable17;
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable17 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7454,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable17 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable18 = variable19;
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7460,6--45\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable20 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7462,6--37\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable21 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7464,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable22 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7466,6--33\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7468,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable16 /*pablenode3*/,  variable18 /*pablenode6*/,  NIT_NULL /*null*/,  variable19 /*pvisibilitynode10*/,  variable20 /*tkwattrnode11*/,  variable21 /*tattridnode12*/,  variable22 /*ptypenode13*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction147___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction147::init (src/parser//parser.nit:7483,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction147].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction147].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction148___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction148::action (src/parser//parser.nit:7487,2--7542:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable14 =  variable13 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7503,6--30\n"); nit_exit(1);}
+  variable15 =  variable12 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7505,6--38\n"); nit_exit(1);}
+  variable16 =  variable11 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable16 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7507,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AReadAble___init_areadable( variable15 /*tkwredefnode4*/,  variable16 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable17 = variable18;
+  variable18 =  variable10 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7513,6--38\n"); nit_exit(1);}
+  variable19 =  variable9 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable19 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7515,6--44\n"); nit_exit(1);}
+  variable21 = NEW_parser_prod___AWriteAble___init_awriteable( variable18 /*tkwredefnode7*/,  variable19 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable20 = variable21;
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable21 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7521,6--45\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable22 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7523,6--37\n"); nit_exit(1);}
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable23 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7525,6--37\n"); nit_exit(1);}
+  variable24 =  variable5 /*nodearraylist9*/;
+  variable25 = TAG_Bool(( variable24 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable24 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7527,6--33\n"); nit_exit(1);}
+  variable25 =  variable2 /*nodearraylist12*/;
+  variable26 = TAG_Bool(( variable25 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable25 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7529,6--33\n"); nit_exit(1);}
+  variable27 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable14 /*pdocnode2*/,  variable17 /*pablenode3*/,  variable20 /*pablenode6*/,  NIT_NULL /*null*/,  variable21 /*pvisibilitynode10*/,  variable22 /*tkwattrnode11*/,  variable23 /*tattridnode12*/,  variable24 /*ptypenode13*/,  variable25 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable26 = variable27;
+  variable1 =  variable26 /*ppropdefnode1*/ /*node_list=*/;
+  variable27 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable27,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction148___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction148::init (src/parser//parser.nit:7544,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction148].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction148].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction149___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction149::action (src/parser//parser.nit:7548,2--7593:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7562,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7564,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7566,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( variable13 /*tkwredefnode4*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7572,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7574,6--36\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7576,6--37\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7578,6--33\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7580,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable15 /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode8*/,  variable17 /*tkwattrnode9*/,  variable18 /*tattridnode10*/,  variable19 /*ptypenode11*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction149___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction149::init (src/parser//parser.nit:7595,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction149].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction149].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction150___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction150::action (src/parser//parser.nit:7599,2--7641:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7612,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable12 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7614,6--44\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable12 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable13 = variable14;
+  variable14 =  variable8 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7620,6--44\n"); nit_exit(1);}
+  variable15 =  variable7 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable15 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7622,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable16 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7624,6--37\n"); nit_exit(1);}
+  variable17 =  variable5 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable17 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7626,6--33\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7628,6--33\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  variable13 /*pablenode4*/,  NIT_NULL /*null*/,  variable14 /*pvisibilitynode8*/,  variable15 /*tkwattrnode9*/,  variable16 /*tattridnode10*/,  variable17 /*ptypenode11*/,  variable18 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction150___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction150::init (src/parser//parser.nit:7643,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction150].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction150].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction151___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction151::action (src/parser//parser.nit:7647,2--7692:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7661,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7663,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable14 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7665,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AWriteAble___init_awriteable( variable13 /*tkwredefnode5*/,  variable14 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable15 = variable16;
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7671,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7673,6--36\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7675,6--37\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7677,6--33\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7679,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  NIT_NULL /*null*/,  variable15 /*pablenode4*/,  NIT_NULL /*null*/,  variable16 /*pvisibilitynode8*/,  variable17 /*tkwattrnode9*/,  variable18 /*tattridnode10*/,  variable19 /*ptypenode11*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction151___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction151::init (src/parser//parser.nit:7694,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction151].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction151].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction152___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction152::action (src/parser//parser.nit:7698,2--7733:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7710,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7712,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable12 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7714,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable13 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7716,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*ptypenode9*/==NIT_NULL) || VAL_ISA( variable14 /*ptypenode9*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7718,6--32\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode10*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode10*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7720,6--33\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode6*/,  variable12 /*tkwattrnode7*/,  variable13 /*tattridnode8*/,  variable14 /*ptypenode9*/,  variable15 /*pexprnode10*/); /*new AAttrPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction152___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction152::init (src/parser//parser.nit:7735,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction152].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction152].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction153___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction153::action (src/parser//parser.nit:7739,2--7791:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7754,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7756,6--44\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable14 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable15 = variable16;
+  variable16 =  variable10 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable16 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7762,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable16 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable17 = variable18;
+  variable18 =  variable9 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable18 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7768,6--38\n"); nit_exit(1);}
+  variable19 =  variable8 /*nodearraylist5*/;
+  variable20 = TAG_Bool(( variable19 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable19 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7770,6--45\n"); nit_exit(1);}
+  variable20 =  variable7 /*nodearraylist6*/;
+  variable21 = TAG_Bool(( variable20 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable20 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7772,6--37\n"); nit_exit(1);}
+  variable21 =  variable6 /*nodearraylist7*/;
+  variable22 = TAG_Bool(( variable21 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable21 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7774,6--37\n"); nit_exit(1);}
+  variable22 =  variable5 /*nodearraylist8*/;
+  variable23 = TAG_Bool(( variable22 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable22 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7776,6--33\n"); nit_exit(1);}
+  variable23 =  variable2 /*nodearraylist11*/;
+  variable24 = TAG_Bool(( variable23 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable23 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7778,6--33\n"); nit_exit(1);}
+  variable25 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable15 /*pablenode3*/,  variable17 /*pablenode6*/,  variable18 /*tkwredefnode9*/,  variable19 /*pvisibilitynode10*/,  variable20 /*tkwattrnode11*/,  variable21 /*tattridnode12*/,  variable22 /*ptypenode13*/,  variable23 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable24 = variable25;
+  variable1 =  variable24 /*ppropdefnode1*/ /*node_list=*/;
+  variable25 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable25,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction153___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction153::init (src/parser//parser.nit:7793,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction153].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction153].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction154___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction154::action (src/parser//parser.nit:7797,2--7852:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable14 =  variable13 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7813,6--30\n"); nit_exit(1);}
+  variable15 =  variable12 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7815,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable15 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable16 = variable17;
+  variable17 =  variable11 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7821,6--38\n"); nit_exit(1);}
+  variable18 =  variable10 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable18 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7823,6--44\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AWriteAble___init_awriteable( variable17 /*tkwredefnode7*/,  variable18 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable19 = variable20;
+  variable20 =  variable9 /*nodearraylist5*/;
+  variable21 = TAG_Bool(( variable20 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable20 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7829,6--38\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable21 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7831,6--45\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable22 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7833,6--37\n"); nit_exit(1);}
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable23 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7835,6--37\n"); nit_exit(1);}
+  variable24 =  variable5 /*nodearraylist9*/;
+  variable25 = TAG_Bool(( variable24 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable24 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7837,6--33\n"); nit_exit(1);}
+  variable25 =  variable2 /*nodearraylist12*/;
+  variable26 = TAG_Bool(( variable25 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable25 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7839,6--33\n"); nit_exit(1);}
+  variable27 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable14 /*pdocnode2*/,  variable16 /*pablenode3*/,  variable19 /*pablenode6*/,  variable20 /*tkwredefnode9*/,  variable21 /*pvisibilitynode10*/,  variable22 /*tkwattrnode11*/,  variable23 /*tattridnode12*/,  variable24 /*ptypenode13*/,  variable25 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable26 = variable27;
+  variable1 =  variable26 /*ppropdefnode1*/ /*node_list=*/;
+  variable27 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable27,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction154___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction154::init (src/parser//parser.nit:7854,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction154].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction154].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction155___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction155::action (src/parser//parser.nit:7858,2--7903:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7872,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7874,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AReadAble___init_areadable( NIT_NULL /*null*/,  variable13 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable14 = variable15;
+  variable15 =  variable9 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7880,6--38\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7882,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7884,6--36\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7886,6--37\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7888,6--33\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7890,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  variable14 /*pablenode3*/,  NIT_NULL /*null*/,  variable15 /*tkwredefnode7*/,  variable16 /*pvisibilitynode8*/,  variable17 /*tkwattrnode9*/,  variable18 /*tattridnode10*/,  variable19 /*ptypenode11*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction155___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction155::init (src/parser//parser.nit:7905,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction155].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction155].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction156___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction156::action (src/parser//parser.nit:7909,2--7964:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable14 =  variable13 /*nodearraylist1*/;
+  variable15 = TAG_Bool(( variable14 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable14 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7925,6--30\n"); nit_exit(1);}
+  variable15 =  variable12 /*nodearraylist2*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7927,6--38\n"); nit_exit(1);}
+  variable16 =  variable11 /*nodearraylist3*/;
+  variable17 = TAG_Bool(( variable16 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable16 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7929,6--44\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AReadAble___init_areadable( variable15 /*tkwredefnode4*/,  variable16 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable17 = variable18;
+  variable18 =  variable10 /*nodearraylist4*/;
+  variable19 = TAG_Bool(( variable18 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable18 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7935,6--44\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable18 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable19 = variable20;
+  variable20 =  variable9 /*nodearraylist5*/;
+  variable21 = TAG_Bool(( variable20 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable20 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7941,6--38\n"); nit_exit(1);}
+  variable21 =  variable8 /*nodearraylist6*/;
+  variable22 = TAG_Bool(( variable21 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable21 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7943,6--45\n"); nit_exit(1);}
+  variable22 =  variable7 /*nodearraylist7*/;
+  variable23 = TAG_Bool(( variable22 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable22 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7945,6--37\n"); nit_exit(1);}
+  variable23 =  variable6 /*nodearraylist8*/;
+  variable24 = TAG_Bool(( variable23 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable23 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7947,6--37\n"); nit_exit(1);}
+  variable24 =  variable5 /*nodearraylist9*/;
+  variable25 = TAG_Bool(( variable24 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable24 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7949,6--33\n"); nit_exit(1);}
+  variable25 =  variable2 /*nodearraylist12*/;
+  variable26 = TAG_Bool(( variable25 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable25 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7951,6--33\n"); nit_exit(1);}
+  variable27 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable14 /*pdocnode2*/,  variable17 /*pablenode3*/,  variable19 /*pablenode6*/,  variable20 /*tkwredefnode9*/,  variable21 /*pvisibilitynode10*/,  variable22 /*tkwattrnode11*/,  variable23 /*tattridnode12*/,  variable24 /*ptypenode13*/,  variable25 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable26 = variable27;
+  variable1 =  variable26 /*ppropdefnode1*/ /*node_list=*/;
+  variable27 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable27,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction156___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction156::init (src/parser//parser.nit:7966,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction156].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction156].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction157___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction157::action (src/parser//parser.nit:7970,2--8028:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  val_t variable25;
+  val_t variable26;
+  val_t variable27;
+  val_t variable28;
+  val_t variable29;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable14 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable13 = variable14;
+  variable15 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable14 = variable15;
+  variable15 =  variable14 /*nodearraylist1*/;
+  variable16 = TAG_Bool(( variable15 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable15 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7987,6--30\n"); nit_exit(1);}
+  variable16 =  variable13 /*nodearraylist2*/;
+  variable17 = TAG_Bool(( variable16 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable16 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7989,6--38\n"); nit_exit(1);}
+  variable17 =  variable12 /*nodearraylist3*/;
+  variable18 = TAG_Bool(( variable17 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable17 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7991,6--44\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AReadAble___init_areadable( variable16 /*tkwredefnode4*/,  variable17 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable18 = variable19;
+  variable19 =  variable11 /*nodearraylist4*/;
+  variable20 = TAG_Bool(( variable19 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable19 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7997,6--38\n"); nit_exit(1);}
+  variable20 =  variable10 /*nodearraylist5*/;
+  variable21 = TAG_Bool(( variable20 /*tkwwritablenode8*/==NIT_NULL) || VAL_ISA( variable20 /*tkwwritablenode8*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:7999,6--44\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AWriteAble___init_awriteable( variable19 /*tkwredefnode7*/,  variable20 /*tkwwritablenode8*/); /*new AWriteAble*/
+  variable21 = variable22;
+  variable22 =  variable9 /*nodearraylist6*/;
+  variable23 = TAG_Bool(( variable22 /*tkwredefnode9*/==NIT_NULL) || VAL_ISA( variable22 /*tkwredefnode9*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8005,6--38\n"); nit_exit(1);}
+  variable23 =  variable8 /*nodearraylist7*/;
+  variable24 = TAG_Bool(( variable23 /*pvisibilitynode10*/==NIT_NULL) || VAL_ISA( variable23 /*pvisibilitynode10*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable24)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8007,6--45\n"); nit_exit(1);}
+  variable24 =  variable7 /*nodearraylist8*/;
+  variable25 = TAG_Bool(( variable24 /*tkwattrnode11*/==NIT_NULL) || VAL_ISA( variable24 /*tkwattrnode11*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable25)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8009,6--37\n"); nit_exit(1);}
+  variable25 =  variable6 /*nodearraylist9*/;
+  variable26 = TAG_Bool(( variable25 /*tattridnode12*/==NIT_NULL) || VAL_ISA( variable25 /*tattridnode12*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable26)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8011,6--37\n"); nit_exit(1);}
+  variable26 =  variable5 /*nodearraylist10*/;
+  variable27 = TAG_Bool(( variable26 /*ptypenode13*/==NIT_NULL) || VAL_ISA( variable26 /*ptypenode13*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable27)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8013,6--33\n"); nit_exit(1);}
+  variable27 =  variable2 /*nodearraylist13*/;
+  variable28 = TAG_Bool(( variable27 /*pexprnode14*/==NIT_NULL) || VAL_ISA( variable27 /*pexprnode14*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable28)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8015,6--33\n"); nit_exit(1);}
+  variable29 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable15 /*pdocnode2*/,  variable18 /*pablenode3*/,  variable21 /*pablenode6*/,  variable22 /*tkwredefnode9*/,  variable23 /*pvisibilitynode10*/,  variable24 /*tkwattrnode11*/,  variable25 /*tattridnode12*/,  variable26 /*ptypenode13*/,  variable27 /*pexprnode14*/); /*new AAttrPropdef*/
+  variable28 = variable29;
+  variable1 =  variable28 /*ppropdefnode1*/ /*node_list=*/;
+  variable29 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable29,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction157___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction157::init (src/parser//parser.nit:8030,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction157].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction157].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction158___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction158::action (src/parser//parser.nit:8034,2--8082:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8049,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode4*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode4*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8051,6--38\n"); nit_exit(1);}
+  variable15 =  variable10 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwreadablenode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwreadablenode5*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8053,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AReadAble___init_areadable( variable14 /*tkwredefnode4*/,  variable15 /*tkwreadablenode5*/); /*new AReadAble*/
+  variable16 = variable17;
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8059,6--38\n"); nit_exit(1);}
+  variable18 =  variable8 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8061,6--44\n"); nit_exit(1);}
+  variable19 =  variable7 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8063,6--36\n"); nit_exit(1);}
+  variable20 =  variable6 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8065,6--37\n"); nit_exit(1);}
+  variable21 =  variable5 /*nodearraylist8*/;
+  variable22 = TAG_Bool(( variable21 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable21 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8067,6--33\n"); nit_exit(1);}
+  variable22 =  variable2 /*nodearraylist11*/;
+  variable23 = TAG_Bool(( variable22 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable22 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8069,6--33\n"); nit_exit(1);}
+  variable24 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  variable16 /*pablenode3*/,  NIT_NULL /*null*/,  variable17 /*tkwredefnode7*/,  variable18 /*pvisibilitynode8*/,  variable19 /*tkwattrnode9*/,  variable20 /*tattridnode10*/,  variable21 /*ptypenode11*/,  variable22 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*ppropdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction158___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction158::init (src/parser//parser.nit:8084,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction158].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction158].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction159___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction159::action (src/parser//parser.nit:8088,2--8133:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8102,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable13 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8104,6--44\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AWriteAble___init_awriteable( NIT_NULL /*null*/,  variable13 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable14 = variable15;
+  variable15 =  variable9 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable15 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8110,6--38\n"); nit_exit(1);}
+  variable16 =  variable8 /*nodearraylist4*/;
+  variable17 = TAG_Bool(( variable16 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable16 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8112,6--44\n"); nit_exit(1);}
+  variable17 =  variable7 /*nodearraylist5*/;
+  variable18 = TAG_Bool(( variable17 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable17 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8114,6--36\n"); nit_exit(1);}
+  variable18 =  variable6 /*nodearraylist6*/;
+  variable19 = TAG_Bool(( variable18 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable18 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8116,6--37\n"); nit_exit(1);}
+  variable19 =  variable5 /*nodearraylist7*/;
+  variable20 = TAG_Bool(( variable19 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable19 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8118,6--33\n"); nit_exit(1);}
+  variable20 =  variable2 /*nodearraylist10*/;
+  variable21 = TAG_Bool(( variable20 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable20 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8120,6--33\n"); nit_exit(1);}
+  variable22 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable12 /*pdocnode2*/,  NIT_NULL /*null*/,  variable14 /*pablenode4*/,  variable15 /*tkwredefnode7*/,  variable16 /*pvisibilitynode8*/,  variable17 /*tkwattrnode9*/,  variable18 /*tattridnode10*/,  variable19 /*ptypenode11*/,  variable20 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable21 = variable22;
+  variable1 =  variable21 /*ppropdefnode1*/ /*node_list=*/;
+  variable22 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable22,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction159___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction159::init (src/parser//parser.nit:8135,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction159].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction159].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction160___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction160::action (src/parser//parser.nit:8139,2--8187:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  val_t variable21;
+  val_t variable22;
+  val_t variable23;
+  val_t variable24;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable13 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8154,6--30\n"); nit_exit(1);}
+  variable14 =  variable11 /*nodearraylist2*/;
+  variable15 = TAG_Bool(( variable14 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8156,6--38\n"); nit_exit(1);}
+  variable15 =  variable10 /*nodearraylist3*/;
+  variable16 = TAG_Bool(( variable15 /*tkwwritablenode6*/==NIT_NULL) || VAL_ISA( variable15 /*tkwwritablenode6*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8158,6--44\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AWriteAble___init_awriteable( variable14 /*tkwredefnode5*/,  variable15 /*tkwwritablenode6*/); /*new AWriteAble*/
+  variable16 = variable17;
+  variable17 =  variable9 /*nodearraylist4*/;
+  variable18 = TAG_Bool(( variable17 /*tkwredefnode7*/==NIT_NULL) || VAL_ISA( variable17 /*tkwredefnode7*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8164,6--38\n"); nit_exit(1);}
+  variable18 =  variable8 /*nodearraylist5*/;
+  variable19 = TAG_Bool(( variable18 /*pvisibilitynode8*/==NIT_NULL) || VAL_ISA( variable18 /*pvisibilitynode8*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8166,6--44\n"); nit_exit(1);}
+  variable19 =  variable7 /*nodearraylist6*/;
+  variable20 = TAG_Bool(( variable19 /*tkwattrnode9*/==NIT_NULL) || VAL_ISA( variable19 /*tkwattrnode9*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable20)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8168,6--36\n"); nit_exit(1);}
+  variable20 =  variable6 /*nodearraylist7*/;
+  variable21 = TAG_Bool(( variable20 /*tattridnode10*/==NIT_NULL) || VAL_ISA( variable20 /*tattridnode10*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable21)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8170,6--37\n"); nit_exit(1);}
+  variable21 =  variable5 /*nodearraylist8*/;
+  variable22 = TAG_Bool(( variable21 /*ptypenode11*/==NIT_NULL) || VAL_ISA( variable21 /*ptypenode11*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable22)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8172,6--33\n"); nit_exit(1);}
+  variable22 =  variable2 /*nodearraylist11*/;
+  variable23 = TAG_Bool(( variable22 /*pexprnode12*/==NIT_NULL) || VAL_ISA( variable22 /*pexprnode12*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable23)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8174,6--33\n"); nit_exit(1);}
+  variable24 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable13 /*pdocnode2*/,  NIT_NULL /*null*/,  variable16 /*pablenode4*/,  variable17 /*tkwredefnode7*/,  variable18 /*pvisibilitynode8*/,  variable19 /*tkwattrnode9*/,  variable20 /*tattridnode10*/,  variable21 /*ptypenode11*/,  variable22 /*pexprnode12*/); /*new AAttrPropdef*/
+  variable23 = variable24;
+  variable1 =  variable23 /*ppropdefnode1*/ /*node_list=*/;
+  variable24 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable24,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction160___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction160::init (src/parser//parser.nit:8189,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction160].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction160].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction161___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction161::action (src/parser//parser.nit:8193,2--8231:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8206,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode5*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8208,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode6*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode6*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8210,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwattrnode7*/==NIT_NULL) || VAL_ISA( variable14 /*tkwattrnode7*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8212,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tattridnode8*/==NIT_NULL) || VAL_ISA( variable15 /*tattridnode8*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8214,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*ptypenode9*/==NIT_NULL) || VAL_ISA( variable16 /*ptypenode9*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8216,6--32\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*pexprnode10*/==NIT_NULL) || VAL_ISA( variable17 /*pexprnode10*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8218,6--33\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AAttrPropdef___init_aattrpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable12 /*tkwredefnode5*/,  variable13 /*pvisibilitynode6*/,  variable14 /*tkwattrnode7*/,  variable15 /*tattridnode8*/,  variable16 /*ptypenode9*/,  variable17 /*pexprnode10*/); /*new AAttrPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction161___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction161::init (src/parser//parser.nit:8233,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction161].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction161].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction162___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction162::action (src/parser//parser.nit:8237,2--8266:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8248,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8250,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8252,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable12 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8254,6--36\n"); nit_exit(1);}
+  variable13 =  variable4 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable13 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8256,6--42\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwmethnode5*/,  variable12 /*pmethidnode6*/,  variable13 /*psignaturenode7*/); /*new ADeferredMethPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction162___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction162::init (src/parser//parser.nit:8268,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction162].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction162].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction163___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction163::action (src/parser//parser.nit:8272,2--8304:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8284,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8286,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8288,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8290,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8292,6--36\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8294,6--42\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef( variable10 /*pdocnode2*/,  variable11 /*tkwredefnode3*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwmethnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/); /*new ADeferredMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction163___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction163::init (src/parser//parser.nit:8306,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction163].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction163].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction164___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction164::action (src/parser//parser.nit:8310,2--8339:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8321,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8323,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8325,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable12 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8327,6--36\n"); nit_exit(1);}
+  variable13 =  variable4 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable13 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8329,6--42\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AInternMethPropdef___init_ainternmethpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwmethnode5*/,  variable12 /*pmethidnode6*/,  variable13 /*psignaturenode7*/); /*new AInternMethPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction164___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction164::init (src/parser//parser.nit:8341,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction164].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction164].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction165___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction165::action (src/parser//parser.nit:8345,2--8377:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8357,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8359,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8361,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8363,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8365,6--36\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8367,6--42\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AInternMethPropdef___init_ainternmethpropdef( variable10 /*pdocnode2*/,  variable11 /*tkwredefnode3*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwmethnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/); /*new AInternMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction165___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction165::init (src/parser//parser.nit:8379,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction165].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction165].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction166___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction166::action (src/parser//parser.nit:8383,2--8413:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8394,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8396,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8398,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable12 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8400,6--36\n"); nit_exit(1);}
+  variable13 =  variable4 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable13 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8402,6--42\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwmethnode5*/,  variable12 /*pmethidnode6*/,  variable13 /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction166___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction166::init (src/parser//parser.nit:8415,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction166].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction166].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction167___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction167::action (src/parser//parser.nit:8419,2--8452:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8431,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8433,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8435,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8437,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8439,6--36\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8441,6--42\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable10 /*pdocnode2*/,  variable11 /*tkwredefnode3*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwmethnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction167___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction167::init (src/parser//parser.nit:8454,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction167].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction167].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction168___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction168::action (src/parser//parser.nit:8458,2--8491:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8470,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8472,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8474,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable13 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8476,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8478,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*tstringnode8*/==NIT_NULL) || VAL_ISA( variable15 /*tstringnode8*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8480,6--36\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwmethnode5*/,  variable13 /*pmethidnode6*/,  variable14 /*psignaturenode7*/,  variable15 /*tstringnode8*/); /*new AExternMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction168___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction168::init (src/parser//parser.nit:8493,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction168].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction168].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction169___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction169::action (src/parser//parser.nit:8497,2--8533:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8510,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8512,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8514,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8516,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8518,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable16 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8520,6--42\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tstringnode8*/==NIT_NULL) || VAL_ISA( variable17 /*tstringnode8*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8522,6--36\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwmethnode5*/,  variable15 /*pmethidnode6*/,  variable16 /*psignaturenode7*/,  variable17 /*tstringnode8*/); /*new AExternMethPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction169___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction169::init (src/parser//parser.nit:8535,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction169].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction169].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction170___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction170::action (src/parser//parser.nit:8539,2--8572:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8551,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8553,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8555,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable13 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8557,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8559,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8561,6--32\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwmethnode5*/,  variable13 /*pmethidnode6*/,  variable14 /*psignaturenode7*/,  variable15 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction170___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction170::init (src/parser//parser.nit:8574,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction170].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction170].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction171___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction171::action (src/parser//parser.nit:8578,2--8614:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8591,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8593,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8595,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8597,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8599,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable16 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8601,6--42\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable17 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8603,6--32\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwmethnode5*/,  variable15 /*pmethidnode6*/,  variable16 /*psignaturenode7*/,  variable17 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction171___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction171::init (src/parser//parser.nit:8616,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction171].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction171].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction172___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction172::action (src/parser//parser.nit:8620,2--8654:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8633,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8635,6--44\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8637,6--36\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8639,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8641,6--42\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8643,6--32\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwmethnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/,  variable16 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction172___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction172::init (src/parser//parser.nit:8656,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction172].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction172].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction173___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction173::action (src/parser//parser.nit:8660,2--8697:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8674,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8676,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8678,6--44\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8680,6--36\n"); nit_exit(1);}
+  variable16 =  variable7 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable16 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8682,6--36\n"); nit_exit(1);}
+  variable17 =  variable6 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable17 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8684,6--42\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8686,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable12 /*pdocnode2*/,  variable13 /*tkwredefnode3*/,  variable14 /*pvisibilitynode4*/,  variable15 /*tkwmethnode5*/,  variable16 /*pmethidnode6*/,  variable17 /*psignaturenode7*/,  variable18 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction173___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction173::init (src/parser//parser.nit:8699,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction173].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction173].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction174___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction174::action (src/parser//parser.nit:8703,2--8733:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8714,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8716,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8718,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable12 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8720,6--42\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable13 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8722,6--32\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable12 /*psignaturenode7*/,  variable13 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction174___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction174::init (src/parser//parser.nit:8735,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction174].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction174].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction175___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction175::action (src/parser//parser.nit:8739,2--8772:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8751,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8753,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8755,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8757,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8759,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8761,6--32\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable10 /*pdocnode2*/,  variable11 /*tkwredefnode3*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable14 /*psignaturenode7*/,  variable15 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction175___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction175::init (src/parser//parser.nit:8774,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction175].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction175].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction176___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction176::action (src/parser//parser.nit:8778,2--8811:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8790,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8792,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8794,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable13 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8796,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8798,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8800,6--32\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwinitnode5*/,  variable13 /*pmethidnode6*/,  variable14 /*psignaturenode7*/,  variable15 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction176___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction176::init (src/parser//parser.nit:8813,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction176].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction176].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction177___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction177::action (src/parser//parser.nit:8817,2--8853:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8830,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8832,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8834,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8836,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8838,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable16 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8840,6--42\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable17 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8842,6--32\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwinitnode5*/,  variable15 /*pmethidnode6*/,  variable16 /*psignaturenode7*/,  variable17 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction177___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction177::init (src/parser//parser.nit:8855,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction177].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction177].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction178___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction178::action (src/parser//parser.nit:8859,2--8890:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8871,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8873,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8875,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable13 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8877,6--42\n"); nit_exit(1);}
+  variable14 =  variable3 /*nodearraylist7*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8879,6--32\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable13 /*psignaturenode7*/,  variable14 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable15 = variable16;
+  variable1 =  variable15 /*ppropdefnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction178___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction178::init (src/parser//parser.nit:8892,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction178].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction178].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction179___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction179::action (src/parser//parser.nit:8896,2--8930:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8909,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8911,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8913,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8915,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8917,6--42\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8919,6--32\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable15 /*psignaturenode7*/,  variable16 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction179___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction179::init (src/parser//parser.nit:8932,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction179].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction179].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction180___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction180::action (src/parser//parser.nit:8936,2--8970:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8949,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8951,6--44\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8953,6--36\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8955,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8957,6--42\n"); nit_exit(1);}
+  variable16 =  variable3 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8959,6--32\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable11 /*pdocnode2*/,  NIT_NULL /*null*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwinitnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/,  variable16 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable17 = variable18;
+  variable1 =  variable17 /*ppropdefnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction180___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction180::init (src/parser//parser.nit:8972,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction180].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction180].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction181___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction181::action (src/parser//parser.nit:8976,2--9013:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable12 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8990,6--30\n"); nit_exit(1);}
+  variable13 =  variable10 /*nodearraylist2*/;
+  variable14 = TAG_Bool(( variable13 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable13 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8992,6--38\n"); nit_exit(1);}
+  variable14 =  variable9 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable14 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8994,6--44\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist4*/;
+  variable16 = TAG_Bool(( variable15 /*tkwinitnode5*/==NIT_NULL) || VAL_ISA( variable15 /*tkwinitnode5*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8996,6--36\n"); nit_exit(1);}
+  variable16 =  variable7 /*nodearraylist5*/;
+  variable17 = TAG_Bool(( variable16 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable16 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:8998,6--36\n"); nit_exit(1);}
+  variable17 =  variable6 /*nodearraylist6*/;
+  variable18 = TAG_Bool(( variable17 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable17 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9000,6--42\n"); nit_exit(1);}
+  variable18 =  variable3 /*nodearraylist9*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9002,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable12 /*pdocnode2*/,  variable13 /*tkwredefnode3*/,  variable14 /*pvisibilitynode4*/,  variable15 /*tkwinitnode5*/,  variable16 /*pmethidnode6*/,  variable17 /*psignaturenode7*/,  variable18 /*pexprnode8*/); /*new AConcreteInitPropdef*/
+  variable19 = variable20;
+  variable1 =  variable19 /*ppropdefnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction181___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction181::init (src/parser//parser.nit:9015,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction181].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction181].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction182___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction182::action (src/parser//parser.nit:9019,2--9046:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9028,6--30\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable8 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9030,6--44\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tkwtypenode5*/==NIT_NULL) || VAL_ISA( variable9 /*tkwtypenode5*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9032,6--36\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable10 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9034,6--38\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist5*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode7*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode7*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9036,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___ATypePropdef___init_atypepropdef( variable7 /*pdocnode2*/,  NIT_NULL /*null*/,  variable8 /*pvisibilitynode4*/,  variable9 /*tkwtypenode5*/,  variable10 /*tclassidnode6*/,  variable11 /*ptypenode7*/); /*new ATypePropdef*/
+  variable12 = variable13;
+  variable1 =  variable12 /*ppropdefnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction182___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction182::init (src/parser//parser.nit:9048,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction182].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction182].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction183___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction183::action (src/parser//parser.nit:9052,2--9082:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9062,6--30\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9064,6--38\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9066,6--44\n"); nit_exit(1);}
+  variable11 =  variable4 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tkwtypenode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwtypenode5*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9068,6--36\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*tclassidnode6*/==NIT_NULL) || VAL_ISA( variable12 /*tclassidnode6*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9070,6--38\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist6*/;
+  variable14 = TAG_Bool(( variable13 /*ptypenode7*/==NIT_NULL) || VAL_ISA( variable13 /*ptypenode7*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9072,6--32\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___ATypePropdef___init_atypepropdef( variable8 /*pdocnode2*/,  variable9 /*tkwredefnode3*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwtypenode5*/,  variable12 /*tclassidnode6*/,  variable13 /*ptypenode7*/); /*new ATypePropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction183___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction183::init (src/parser//parser.nit:9084,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction183].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction183].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction184___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction184::action (src/parser//parser.nit:9088,2--9096:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9094,6--38\n"); nit_exit(1);}
+  variable1 =  variable4 /*ppropdefnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(13)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction184___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction184::init (src/parser//parser.nit:9098,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction184].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction184].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction185___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction185::action (src/parser//parser.nit:9102,2--9132:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable9 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9113,6--30\n"); nit_exit(1);}
+  variable10 =  variable7 /*nodearraylist2*/;
+  variable11 = TAG_Bool(( variable10 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable10 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9115,6--44\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9117,6--36\n"); nit_exit(1);}
+  variable12 =  variable5 /*nodearraylist4*/;
+  variable13 = TAG_Bool(( variable12 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable12 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9119,6--36\n"); nit_exit(1);}
+  variable13 =  variable4 /*nodearraylist5*/;
+  variable14 = TAG_Bool(( variable13 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable13 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9121,6--42\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable9 /*pdocnode2*/,  NIT_NULL /*null*/,  variable10 /*pvisibilitynode4*/,  variable11 /*tkwmethnode5*/,  variable12 /*pmethidnode6*/,  variable13 /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
+  variable14 = variable15;
+  variable1 =  variable14 /*ppropdefnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction185___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction185::init (src/parser//parser.nit:9134,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction185].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction185].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction186___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction186::action (src/parser//parser.nit:9138,2--9171:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9150,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9152,6--38\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable12 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9154,6--44\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable13 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9156,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable14 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9158,6--36\n"); nit_exit(1);}
+  variable15 =  variable4 /*nodearraylist6*/;
+  variable16 = TAG_Bool(( variable15 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable15 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9160,6--42\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable10 /*pdocnode2*/,  variable11 /*tkwredefnode3*/,  variable12 /*pvisibilitynode4*/,  variable13 /*tkwmethnode5*/,  variable14 /*pmethidnode6*/,  variable15 /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction186___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction186::init (src/parser//parser.nit:9173,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction186].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction186].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction187___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction187::action (src/parser//parser.nit:9177,2--9210:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9189,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9191,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9193,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable13 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9195,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9197,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*tstringnode8*/==NIT_NULL) || VAL_ISA( variable15 /*tstringnode8*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9199,6--36\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwmethnode5*/,  variable13 /*pmethidnode6*/,  variable14 /*psignaturenode7*/,  variable15 /*tstringnode8*/); /*new AExternMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction187___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction187::init (src/parser//parser.nit:9212,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction187].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction187].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction188___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction188::action (src/parser//parser.nit:9216,2--9252:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9229,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9231,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9233,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9235,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9237,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable16 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9239,6--42\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tstringnode8*/==NIT_NULL) || VAL_ISA( variable17 /*tstringnode8*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9241,6--36\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwmethnode5*/,  variable15 /*pmethidnode6*/,  variable16 /*psignaturenode7*/,  variable17 /*tstringnode8*/); /*new AExternMethPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction188___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction188::init (src/parser//parser.nit:9254,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction188].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction188].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction189___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction189::action (src/parser//parser.nit:9258,2--9291:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9270,6--30\n"); nit_exit(1);}
+  variable11 =  variable8 /*nodearraylist2*/;
+  variable12 = TAG_Bool(( variable11 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable11 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9272,6--44\n"); nit_exit(1);}
+  variable12 =  variable7 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable12 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9274,6--36\n"); nit_exit(1);}
+  variable13 =  variable6 /*nodearraylist4*/;
+  variable14 = TAG_Bool(( variable13 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable13 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9276,6--36\n"); nit_exit(1);}
+  variable14 =  variable5 /*nodearraylist5*/;
+  variable15 = TAG_Bool(( variable14 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable14 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9278,6--42\n"); nit_exit(1);}
+  variable15 =  variable2 /*nodearraylist8*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9280,6--32\n"); nit_exit(1);}
+  variable17 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable10 /*pdocnode2*/,  NIT_NULL /*null*/,  variable11 /*pvisibilitynode4*/,  variable12 /*tkwmethnode5*/,  variable13 /*pmethidnode6*/,  variable14 /*psignaturenode7*/,  variable15 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable16 = variable17;
+  variable1 =  variable16 /*ppropdefnode1*/ /*node_list=*/;
+  variable17 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable17,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction189___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction189::init (src/parser//parser.nit:9293,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction189].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction189].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction190___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction190::action (src/parser//parser.nit:9297,2--9333:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9310,6--30\n"); nit_exit(1);}
+  variable12 =  variable9 /*nodearraylist2*/;
+  variable13 = TAG_Bool(( variable12 /*tkwredefnode3*/==NIT_NULL) || VAL_ISA( variable12 /*tkwredefnode3*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9312,6--38\n"); nit_exit(1);}
+  variable13 =  variable8 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pvisibilitynode4*/==NIT_NULL) || VAL_ISA( variable13 /*pvisibilitynode4*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9314,6--44\n"); nit_exit(1);}
+  variable14 =  variable7 /*nodearraylist4*/;
+  variable15 = TAG_Bool(( variable14 /*tkwmethnode5*/==NIT_NULL) || VAL_ISA( variable14 /*tkwmethnode5*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9316,6--36\n"); nit_exit(1);}
+  variable15 =  variable6 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*pmethidnode6*/==NIT_NULL) || VAL_ISA( variable15 /*pmethidnode6*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9318,6--36\n"); nit_exit(1);}
+  variable16 =  variable5 /*nodearraylist6*/;
+  variable17 = TAG_Bool(( variable16 /*psignaturenode7*/==NIT_NULL) || VAL_ISA( variable16 /*psignaturenode7*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9320,6--42\n"); nit_exit(1);}
+  variable17 =  variable2 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable17 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9322,6--32\n"); nit_exit(1);}
+  variable19 = NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable11 /*pdocnode2*/,  variable12 /*tkwredefnode3*/,  variable13 /*pvisibilitynode4*/,  variable14 /*tkwmethnode5*/,  variable15 /*pmethidnode6*/,  variable16 /*psignaturenode7*/,  variable17 /*pexprnode8*/); /*new AConcreteMethPropdef*/
+  variable18 = variable19;
+  variable1 =  variable18 /*ppropdefnode1*/ /*node_list=*/;
+  variable19 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable19,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction190___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction190::init (src/parser//parser.nit:9335,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction190].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction190].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction191___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction191::action (src/parser//parser.nit:9339,2--9345:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_parser_prod___APublicVisibility___init_apublicvisibility(); /*new APublicVisibility*/
+  variable2 = variable3;
+  variable1 =  variable2 /*pvisibilitynode1*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction191___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction191::init (src/parser//parser.nit:9347,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction191].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction191].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction192___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction192::action (src/parser//parser.nit:9351,2--9362:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwprivatenode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwprivatenode2*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9357,6--42\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___APrivateVisibility___init_aprivatevisibility( variable4 /*tkwprivatenode2*/); /*new APrivateVisibility*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pvisibilitynode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction192___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction192::init (src/parser//parser.nit:9364,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction192].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction192].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction193___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction193::action (src/parser//parser.nit:9368,2--9379:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwprotectednode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwprotectednode2*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9374,6--46\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AProtectedVisibility___init_aprotectedvisibility( variable4 /*tkwprotectednode2*/); /*new AProtectedVisibility*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pvisibilitynode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction193___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction193::init (src/parser//parser.nit:9381,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction193].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction193].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction194___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction194::action (src/parser//parser.nit:9385,2--9396:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwintrudenode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwintrudenode2*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9391,6--42\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AIntrudeVisibility___init_aintrudevisibility( variable4 /*tkwintrudenode2*/); /*new AIntrudeVisibility*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pvisibilitynode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction194___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction194::init (src/parser//parser.nit:9398,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction194].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction194].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction195___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction195::action (src/parser//parser.nit:9402,2--9412:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9407,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AIdMethid___init_aidmethid( variable3 /*tidnode2*/); /*new AIdMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction195___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction195::init (src/parser//parser.nit:9414,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction195].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction195].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction196___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction196::action (src/parser//parser.nit:9418,2--9428:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tplusnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tplusnode2*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9423,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___APlusMethid___init_aplusmethid( variable3 /*tplusnode2*/); /*new APlusMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction196___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction196::init (src/parser//parser.nit:9430,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction196].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction196].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction197___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction197::action (src/parser//parser.nit:9434,2--9444:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9439,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AMinusMethid___init_aminusmethid( variable3 /*tminusnode2*/); /*new AMinusMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction197___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction197::init (src/parser//parser.nit:9446,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction197].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction197].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction198___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction198::action (src/parser//parser.nit:9450,2--9460:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstarnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstarnode2*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9455,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStarMethid___init_astarmethid( variable3 /*tstarnode2*/); /*new AStarMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction198___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction198::init (src/parser//parser.nit:9462,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction198].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction198].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction199___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction199::action (src/parser//parser.nit:9466,2--9476:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tslashnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tslashnode2*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9471,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ASlashMethid___init_aslashmethid( variable3 /*tslashnode2*/); /*new ASlashMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction199___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction199::init (src/parser//parser.nit:9478,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction199].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction199].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction200___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction200::action (src/parser//parser.nit:9482,2--9492:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tpercentnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tpercentnode2*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9487,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___APercentMethid___init_apercentmethid( variable3 /*tpercentnode2*/); /*new APercentMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction200___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction200::init (src/parser//parser.nit:9494,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction200].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction200].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction201___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction201::action (src/parser//parser.nit:9498,2--9508:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*teqnode2*/==NIT_NULL) || VAL_ISA( variable3 /*teqnode2*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9503,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AEqMethid___init_aeqmethid( variable3 /*teqnode2*/); /*new AEqMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction201___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction201::init (src/parser//parser.nit:9510,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction201].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction201].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction202___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction202::action (src/parser//parser.nit:9514,2--9524:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tnenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tnenode2*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9519,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ANeMethid___init_anemethid( variable3 /*tnenode2*/); /*new ANeMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction202___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction202::init (src/parser//parser.nit:9526,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction202].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction202].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction203___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction203::action (src/parser//parser.nit:9530,2--9540:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tlenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tlenode2*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9535,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ALeMethid___init_alemethid( variable3 /*tlenode2*/); /*new ALeMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction203___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction203::init (src/parser//parser.nit:9542,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction203].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction203].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction204___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction204::action (src/parser//parser.nit:9546,2--9556:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tgenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tgenode2*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9551,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AGeMethid___init_agemethid( variable3 /*tgenode2*/); /*new AGeMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction204___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction204::init (src/parser//parser.nit:9558,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction204].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction204].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction205___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction205::action (src/parser//parser.nit:9562,2--9572:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tltnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tltnode2*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9567,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ALtMethid___init_altmethid( variable3 /*tltnode2*/); /*new ALtMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction205___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction205::init (src/parser//parser.nit:9574,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction205].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction205].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction206___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction206::action (src/parser//parser.nit:9578,2--9588:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tgtnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tgtnode2*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9583,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AGtMethid___init_agtmethid( variable3 /*tgtnode2*/); /*new AGtMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction206___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction206::init (src/parser//parser.nit:9590,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction206].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction206].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction207___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction207::action (src/parser//parser.nit:9594,2--9608:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tobranode2*/==NIT_NULL) || VAL_ISA( variable4 /*tobranode2*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9600,6--32\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*tcbranode3*/==NIT_NULL) || VAL_ISA( variable5 /*tcbranode3*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9602,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___ABraMethid___init_abramethid( variable4 /*tobranode2*/,  variable5 /*tcbranode3*/); /*new ABraMethid*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmethidnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction207___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction207::init (src/parser//parser.nit:9610,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction207].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction207].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction208___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction208::action (src/parser//parser.nit:9614,2--9624:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstarshipnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstarshipnode2*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9619,6--40\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStarshipMethid___init_astarshipmethid( variable3 /*tstarshipnode2*/); /*new AStarshipMethid*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pmethidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction208___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction208::init (src/parser//parser.nit:9626,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction208].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction208].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction209___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction209::action (src/parser//parser.nit:9630,2--9644:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9636,6--28\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*tassignnode3*/==NIT_NULL) || VAL_ISA( variable5 /*tassignnode3*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9638,6--36\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AAssignMethid___init_aassignmethid( variable4 /*tidnode2*/,  variable5 /*tassignnode3*/); /*new AAssignMethid*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pmethidnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction209___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction209::init (src/parser//parser.nit:9646,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction209].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction209].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction210___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction210::action (src/parser//parser.nit:9650,2--9668:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tobranode2*/==NIT_NULL) || VAL_ISA( variable5 /*tobranode2*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9657,6--32\n"); nit_exit(1);}
+  variable6 =  variable3 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tcbranode3*/==NIT_NULL) || VAL_ISA( variable6 /*tcbranode3*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9659,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*tassignnode4*/==NIT_NULL) || VAL_ISA( variable7 /*tassignnode4*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9661,6--36\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ABraassignMethid___init_abraassignmethid( variable5 /*tobranode2*/,  variable6 /*tcbranode3*/,  variable7 /*tassignnode4*/); /*new ABraassignMethid*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pmethidnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction210___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction210::init (src/parser//parser.nit:9670,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction210].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction210].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction211___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction211::action (src/parser//parser.nit:9674,2--9683:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable2 = variable3;
+  variable4 = NEW_parser_prod___ASignature___init_asignature( variable2 /*listnode2*/,  NIT_NULL /*null*/); /*new ASignature*/
+  variable3 = variable4;
+  variable1 =  variable3 /*psignaturenode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction211___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction211::init (src/parser//parser.nit:9685,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction211].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction211].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction212___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction212::action (src/parser//parser.nit:9689,2--9708:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*listnode2*/==NIT_NULL) || VAL_ISA( variable4 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9695,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable4 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable4 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable3 =  variable4 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode3*/,  variable4 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 = NEW_parser_prod___ASignature___init_asignature( variable3 /*listnode3*/,  NIT_NULL /*null*/); /*new ASignature*/
+  variable5 = variable6;
+  variable1 =  variable5 /*psignaturenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction212___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction212::init (src/parser//parser.nit:9710,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction212].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction212].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction213___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction213::action (src/parser//parser.nit:9714,2--9726:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable4 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9720,6--32\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___ASignature___init_asignature( variable3 /*listnode2*/,  variable4 /*ptypenode3*/); /*new ASignature*/
+  variable5 = variable6;
+  variable1 =  variable5 /*psignaturenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction213___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction213::init (src/parser//parser.nit:9728,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction213].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction213].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction214___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction214::action (src/parser//parser.nit:9732,2--9754:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode2*/==NIT_NULL) || VAL_ISA( variable5 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9739,6--38\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable4 =  variable5 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*ptypenode4*/==NIT_NULL) || VAL_ISA( variable6 /*ptypenode4*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9748,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___ASignature___init_asignature( variable4 /*listnode3*/,  variable6 /*ptypenode4*/); /*new ASignature*/
+  variable7 = variable8;
+  variable1 =  variable7 /*psignaturenode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction214___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction214::init (src/parser//parser.nit:9756,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction214].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction214].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction215___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction215::action (src/parser//parser.nit:9760,2--9775:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable8 /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9770,6--34\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable8 /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable8 /*pparamnode1*/,  NIT_NULL /*null*/) /*PParam::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode2*/,  variable8 /*pparamnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable7 /*listnode2*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction215___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction215::init (src/parser//parser.nit:9777,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction215].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction215].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction216___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction216::action (src/parser//parser.nit:9781,2--9806:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable9 /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9792,6--34\n"); nit_exit(1);}
+  variable10 =  variable4 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*listnode2*/==NIT_NULL) || VAL_ISA( variable10 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9794,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable9 /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable9 /*pparamnode1*/,  NIT_NULL /*null*/) /*PParam::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode3*/,  variable9 /*pparamnode1*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode3*/,  variable10 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable8 /*listnode3*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction216___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction216::init (src/parser//parser.nit:9808,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction216].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction216].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction217___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction217::action (src/parser//parser.nit:9812,2--9820:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable1 =  variable5 /*listnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction217___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction217::init (src/parser//parser.nit:9822,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction217].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction217].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction218___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction218::action (src/parser//parser.nit:9826,2--9835:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist3*/;
+  variable6 = TAG_Bool(( variable5 /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable5 /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9833,6--34\n"); nit_exit(1);}
+  variable1 =  variable5 /*pparamnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction218___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction218::init (src/parser//parser.nit:9837,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction218].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction218].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction219___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction219::action (src/parser//parser.nit:9841,2--9853:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9846,6--28\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AParam___init_aparam( variable3 /*tidnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AParam*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pparamnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(20)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction219___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction219::init (src/parser//parser.nit:9855,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction219].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction219].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction220___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction220::action (src/parser//parser.nit:9859,2--9874:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9865,6--28\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable5 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9867,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AParam___init_aparam( variable4 /*tidnode2*/,  variable5 /*ptypenode3*/,  NIT_NULL /*null*/); /*new AParam*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pparamnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(20)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction220___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction220::init (src/parser//parser.nit:9876,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction220].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction220].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction221___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction221::action (src/parser//parser.nit:9880,2--9898:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9887,6--28\n"); nit_exit(1);}
+  variable6 =  variable3 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable6 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9889,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*tdotdotdotnode4*/==NIT_NULL) || VAL_ISA( variable7 /*tdotdotdotnode4*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9891,6--42\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AParam___init_aparam( variable5 /*tidnode2*/,  variable6 /*ptypenode3*/,  variable7 /*tdotdotdotnode4*/); /*new AParam*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pparamnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(20)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction221___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction221::init (src/parser//parser.nit:9900,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction221].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction221].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction222___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction222::action (src/parser//parser.nit:9904,2--9916:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9910,6--38\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AType___init_atype( variable4 /*tclassidnode2*/,  variable3 /*listnode3*/); /*new AType*/
+  variable5 = variable6;
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction222___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction222::init (src/parser//parser.nit:9918,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction222].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction222].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction223___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction223::action (src/parser//parser.nit:9922,2--9948:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable7 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable9 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9933,6--38\n"); nit_exit(1);}
+  variable10 =  variable4 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9935,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AType___init_atype( variable9 /*tclassidnode2*/,  variable8 /*listnode4*/); /*new AType*/
+  variable11 = variable12;
+  variable1 =  variable11 /*ptypenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction223___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction223::init (src/parser//parser.nit:9950,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction223].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction223].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction224___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction224::action (src/parser//parser.nit:9954,2--9965:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable4 /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9960,6--32\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*ptypenode1*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*ptypenode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(22)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction224___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction224::init (src/parser//parser.nit:9967,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction224].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction224].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction225___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction225::action (src/parser//parser.nit:9971,2--9992:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable5 /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9978,6--32\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode2*/==NIT_NULL) || VAL_ISA( variable6 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:9980,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*ptypenode1*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable5 /*ptypenode1*/) /*Array::add*/;
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable6 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(22)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction225___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction225::init (src/parser//parser.nit:9994,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction225].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction225].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction226___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction226::action (src/parser//parser.nit:9998,2--10007:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist3*/;
+  variable6 = TAG_Bool(( variable5 /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable5 /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10005,6--32\n"); nit_exit(1);}
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction226___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction226::init (src/parser//parser.nit:10009,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction226].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction226].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction227___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction227::action (src/parser//parser.nit:10013,2--10022:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist3*/;
+  variable6 = TAG_Bool(( variable5 /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable5 /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10020,6--32\n"); nit_exit(1);}
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(24)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction227___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction227::init (src/parser//parser.nit:10024,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction227].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction227].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction228___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction228::action (src/parser//parser.nit:10028,2--10035:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10033,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction228___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction228::init (src/parser//parser.nit:10037,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction228].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction228].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction229___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction229::action (src/parser//parser.nit:10041,2--10058:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10050,6--32\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable7 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable7 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable7 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable6 /*listnode3*/); /*new ABlockExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction229___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction229::init (src/parser//parser.nit:10060,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction229].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction229].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction230___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction230::action (src/parser//parser.nit:10064,2--10091:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10074,6--32\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10076,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode4*/,  variable8 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable7 /*listnode4*/); /*new ABlockExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction230___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction230::init (src/parser//parser.nit:10093,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction230].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction230].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction231___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction231::action (src/parser//parser.nit:10097,2--10103:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction231___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction231::init (src/parser//parser.nit:10105,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction231].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction231].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction232___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction232::action (src/parser//parser.nit:10109,2--10114:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction232___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction232::init (src/parser//parser.nit:10116,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction232].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction232].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction233___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction233::action (src/parser//parser.nit:10120,2--10128:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist2*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10126,6--32\n"); nit_exit(1);}
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(26)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction233___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction233::init (src/parser//parser.nit:10130,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction233].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction233].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction234___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction234::action (src/parser//parser.nit:10134,2--10141:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10139,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction234___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction234::init (src/parser//parser.nit:10143,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction234].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction234].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction235___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction235::action (src/parser//parser.nit:10147,2--10154:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10152,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction235___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction235::init (src/parser//parser.nit:10156,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction235].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction235].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction236___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction236::action (src/parser//parser.nit:10160,2--10171:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10165,6--40\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AReturnExpr___init_areturnexpr( variable3 /*tkwreturnnode2*/,  NIT_NULL /*null*/); /*new AReturnExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction236___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction236::init (src/parser//parser.nit:10173,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction236].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction236].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction237___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction237::action (src/parser//parser.nit:10177,2--10191:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10183,6--40\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10185,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AReturnExpr___init_areturnexpr( variable4 /*tkwreturnnode2*/,  variable5 /*pexprnode3*/); /*new AReturnExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction237___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction237::init (src/parser//parser.nit:10193,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction237].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction237].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction238___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction238::action (src/parser//parser.nit:10197,2--10207:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10202,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ABreakExpr___init_abreakexpr( variable3 /*tkwbreaknode2*/); /*new ABreakExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction238___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction238::init (src/parser//parser.nit:10209,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction238].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction238].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction239___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction239::action (src/parser//parser.nit:10213,2--10223:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwabortnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwabortnode2*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10218,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AAbortExpr___init_aabortexpr( variable3 /*tkwabortnode2*/); /*new AAbortExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction239___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction239::init (src/parser//parser.nit:10225,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction239].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction239].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction240___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction240::action (src/parser//parser.nit:10229,2--10239:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10234,6--44\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AContinueExpr___init_acontinueexpr( variable3 /*tkwcontinuenode2*/); /*new AContinueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction240___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction240::init (src/parser//parser.nit:10241,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction240].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction240].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction241___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction241::action (src/parser//parser.nit:10245,2--10252:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10250,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction241___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction241::init (src/parser//parser.nit:10254,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction241].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction241].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction242___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction242::action (src/parser//parser.nit:10258,2--10265:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10263,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction242___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction242::init (src/parser//parser.nit:10267,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction242].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction242].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction243___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction243::action (src/parser//parser.nit:10271,2--10278:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10276,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction243___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction243::init (src/parser//parser.nit:10280,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction243].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction243].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction244___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction244::action (src/parser//parser.nit:10284,2--10291:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10289,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction244___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction244::init (src/parser//parser.nit:10293,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction244].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction244].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction245___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction245::action (src/parser//parser.nit:10297,2--10304:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10302,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction245___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction245::init (src/parser//parser.nit:10306,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction245].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction245].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction246___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction246::action (src/parser//parser.nit:10310,2--10338:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10320,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10322,6--28\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10324,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ACallExpr___init_acallexpr( variable8 /*pexprnode2*/,  variable9 /*tidnode3*/,  variable7 /*listnode5*/); /*new ACallExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction246___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction246::init (src/parser//parser.nit:10340,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction246].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction246].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction247___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction247::action (src/parser//parser.nit:10344,2--10369:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10353,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10355,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___ACallExpr___init_acallexpr( variable5 /*pexprnode2*/,  variable6 /*tidnode3*/,  variable4 /*listnode5*/); /*new ACallExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction247___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction247::init (src/parser//parser.nit:10371,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction247].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction247].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction248___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction248::action (src/parser//parser.nit:10375,2--10398:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10382,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10384,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction248___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction248::init (src/parser//parser.nit:10400,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction248].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction248].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction249___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction249::action (src/parser//parser.nit:10404,2--10430:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10412,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10414,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10416,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction249___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction249::init (src/parser//parser.nit:10432,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction249].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction249].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction250___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction250::action (src/parser//parser.nit:10436,2--10464:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10446,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10448,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10450,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable8 /*pexprnode2*/,  variable9 /*tkwinitnode3*/,  variable7 /*listnode5*/); /*new AInitExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction250___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction250::init (src/parser//parser.nit:10466,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction250].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction250].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction251___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction251::action (src/parser//parser.nit:10470,2--10495:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10479,6--36\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10481,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable5 /*pexprnode2*/,  variable6 /*tkwinitnode3*/,  variable4 /*listnode5*/); /*new AInitExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction251___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction251::init (src/parser//parser.nit:10497,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction251].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction251].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction252___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction252::action (src/parser//parser.nit:10501,2--10518:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10507,6--34\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable5 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10509,6--28\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AVardeclExpr___init_avardeclexpr( variable4 /*tkwvarnode2*/,  variable5 /*tidnode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction252___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction252::init (src/parser//parser.nit:10520,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction252].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction252].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction253___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction253::action (src/parser//parser.nit:10524,2--10544:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10531,6--34\n"); nit_exit(1);}
+  variable6 =  variable3 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10533,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode4*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode4*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10535,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AVardeclExpr___init_avardeclexpr( variable5 /*tkwvarnode2*/,  variable6 /*tidnode3*/,  variable7 /*ptypenode4*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction253___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction253::init (src/parser//parser.nit:10546,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction253].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction253].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction254___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction254::action (src/parser//parser.nit:10550,2--10574:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable7 =  variable6 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable7 /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10559,6--34\n"); nit_exit(1);}
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable8 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10561,6--28\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tassignnode5*/==NIT_NULL) || VAL_ISA( variable9 /*tassignnode5*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10563,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode6*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode6*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10565,6--32\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AVardeclExpr___init_avardeclexpr( variable7 /*tkwvarnode2*/,  variable8 /*tidnode3*/,  NIT_NULL /*null*/,  variable9 /*tassignnode5*/,  variable10 /*pexprnode6*/); /*new AVardeclExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction254___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction254::init (src/parser//parser.nit:10576,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction254].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction254].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction255___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction255::action (src/parser//parser.nit:10580,2--10607:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable8 /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10590,6--34\n"); nit_exit(1);}
+  variable9 =  variable6 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10592,6--28\n"); nit_exit(1);}
+  variable10 =  variable5 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*ptypenode4*/==NIT_NULL) || VAL_ISA( variable10 /*ptypenode4*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10594,6--32\n"); nit_exit(1);}
+  variable11 =  variable4 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tassignnode5*/==NIT_NULL) || VAL_ISA( variable11 /*tassignnode5*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10596,6--36\n"); nit_exit(1);}
+  variable12 =  variable2 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode6*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode6*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10598,6--32\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AVardeclExpr___init_avardeclexpr( variable8 /*tkwvarnode2*/,  variable9 /*tidnode3*/,  variable10 /*ptypenode4*/,  variable11 /*tassignnode5*/,  variable12 /*pexprnode6*/); /*new AVardeclExpr*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pexprnode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction255___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction255::init (src/parser//parser.nit:10609,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction255].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction255].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction256___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction256::action (src/parser//parser.nit:10613,2--10637:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10623,6--32\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10625,6--36\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*tassignnode4*/==NIT_NULL) || VAL_ISA( variable10 /*tassignnode4*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10627,6--36\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist6*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10629,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable8 /*pexprnode2*/,  variable9 /*tattridnode3*/,  variable10 /*tassignnode4*/,  variable11 /*pexprnode5*/); /*new AAttrAssignExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction256___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction256::init (src/parser//parser.nit:10639,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction256].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction256].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction257___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction257::action (src/parser//parser.nit:10643,2--10664:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10652,6--36\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tassignnode4*/==NIT_NULL) || VAL_ISA( variable7 /*tassignnode4*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10654,6--36\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10656,6--32\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable5 /*pexprnode2*/,  variable6 /*tattridnode3*/,  variable7 /*tassignnode4*/,  variable8 /*pexprnode5*/); /*new AAttrAssignExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction257___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction257::init (src/parser//parser.nit:10666,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction257].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction257].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction258___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction258::action (src/parser//parser.nit:10670,2--10706:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10682,6--32\n"); nit_exit(1);}
+  variable11 =  variable5 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10684,6--28\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*listnode4*/==NIT_NULL) || VAL_ISA( variable12 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10686,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable9 =  variable12 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode5*/,  variable12 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable13 =  variable3 /*nodearraylist6*/;
+  variable14 = TAG_Bool(( variable13 /*tassignnode6*/==NIT_NULL) || VAL_ISA( variable13 /*tassignnode6*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10695,6--36\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist7*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10697,6--32\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___ACallAssignExpr___init_acallassignexpr( variable10 /*pexprnode2*/,  variable11 /*tidnode3*/,  variable9 /*listnode5*/,  variable13 /*tassignnode6*/,  variable14 /*pexprnode7*/); /*new ACallAssignExpr*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pexprnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction258___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction258::init (src/parser//parser.nit:10708,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction258].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction258].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction259___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction259::action (src/parser//parser.nit:10712,2--10745:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable8 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10723,6--28\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode4*/==NIT_NULL) || VAL_ISA( variable9 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10725,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode5*/,  variable9 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 =  variable3 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*tassignnode6*/==NIT_NULL) || VAL_ISA( variable10 /*tassignnode6*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10734,6--36\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10736,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___ACallAssignExpr___init_acallassignexpr( variable7 /*pexprnode2*/,  variable8 /*tidnode3*/,  variable6 /*listnode5*/,  variable10 /*tassignnode6*/,  variable11 /*pexprnode7*/); /*new ACallAssignExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction259___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction259::init (src/parser//parser.nit:10747,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction259].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction259].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction260___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction260::action (src/parser//parser.nit:10751,2--10781:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10760,6--32\n"); nit_exit(1);}
+  variable8 =  variable4 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10762,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 =  variable3 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*tassignnode5*/==NIT_NULL) || VAL_ISA( variable9 /*tassignnode5*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10771,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode6*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode6*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10773,6--32\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___ABraAssignExpr___init_abraassignexpr( variable7 /*pexprnode2*/,  variable6 /*listnode4*/,  variable9 /*tassignnode5*/,  variable10 /*pexprnode6*/); /*new ABraAssignExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction260___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction260::init (src/parser//parser.nit:10783,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction260].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction260].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction261___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction261::action (src/parser//parser.nit:10787,2--10811:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10797,6--32\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10799,6--36\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*passignopnode4*/==NIT_NULL) || VAL_ISA( variable10 /*passignopnode4*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10801,6--40\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist6*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10803,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable8 /*pexprnode2*/,  variable9 /*tattridnode3*/,  variable10 /*passignopnode4*/,  variable11 /*pexprnode5*/); /*new AAttrReassignExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction261___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction261::init (src/parser//parser.nit:10813,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction261].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction261].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction262___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction262::action (src/parser//parser.nit:10817,2--10838:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10826,6--36\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*passignopnode4*/==NIT_NULL) || VAL_ISA( variable7 /*passignopnode4*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10828,6--40\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10830,6--32\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable5 /*pexprnode2*/,  variable6 /*tattridnode3*/,  variable7 /*passignopnode4*/,  variable8 /*pexprnode5*/); /*new AAttrReassignExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction262___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction262::init (src/parser//parser.nit:10840,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction262].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction262].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction263___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction263::action (src/parser//parser.nit:10844,2--10880:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10856,6--32\n"); nit_exit(1);}
+  variable11 =  variable5 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable11 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10858,6--28\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist5*/;
+  variable13 = TAG_Bool(( variable12 /*listnode4*/==NIT_NULL) || VAL_ISA( variable12 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10860,6--38\n"); nit_exit(1);}
+  variable13 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable12 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable12 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable12 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable12 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable13)) { /*if*/
+    variable13 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable13)) { /*if*/
+      variable9 =  variable12 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode5*/,  variable12 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable13 =  variable3 /*nodearraylist6*/;
+  variable14 = TAG_Bool(( variable13 /*passignopnode6*/==NIT_NULL) || VAL_ISA( variable13 /*passignopnode6*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10869,6--40\n"); nit_exit(1);}
+  variable14 =  variable2 /*nodearraylist7*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10871,6--32\n"); nit_exit(1);}
+  variable16 = NEW_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable10 /*pexprnode2*/,  variable11 /*tidnode3*/,  variable9 /*listnode5*/,  variable13 /*passignopnode6*/,  variable14 /*pexprnode7*/); /*new ACallReassignExpr*/
+  variable15 = variable16;
+  variable1 =  variable15 /*pexprnode1*/ /*node_list=*/;
+  variable16 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable16,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction263___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction263::init (src/parser//parser.nit:10882,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction263].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction263].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction264___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction264::action (src/parser//parser.nit:10886,2--10919:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable8 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable8 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10897,6--28\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist2*/;
+  variable10 = TAG_Bool(( variable9 /*listnode4*/==NIT_NULL) || VAL_ISA( variable9 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10899,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode5*/,  variable9 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 =  variable3 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*passignopnode6*/==NIT_NULL) || VAL_ISA( variable10 /*passignopnode6*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10908,6--40\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist4*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10910,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable7 /*pexprnode2*/,  variable8 /*tidnode3*/,  variable6 /*listnode5*/,  variable10 /*passignopnode6*/,  variable11 /*pexprnode7*/); /*new ACallReassignExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction264___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction264::init (src/parser//parser.nit:10921,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction264].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction264].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction265___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction265::action (src/parser//parser.nit:10925,2--10955:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10934,6--32\n"); nit_exit(1);}
+  variable8 =  variable4 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*listnode3*/==NIT_NULL) || VAL_ISA( variable8 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10936,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable6 =  variable8 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode4*/,  variable8 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 =  variable3 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*passignopnode5*/==NIT_NULL) || VAL_ISA( variable9 /*passignopnode5*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10945,6--40\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode6*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode6*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10947,6--32\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___ABraReassignExpr___init_abrareassignexpr( variable7 /*pexprnode2*/,  variable6 /*listnode4*/,  variable9 /*passignopnode5*/,  variable10 /*pexprnode6*/); /*new ABraReassignExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction265___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction265::init (src/parser//parser.nit:10957,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction265].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction265].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction266___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction266::action (src/parser//parser.nit:10961,2--10971:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tpluseqnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tpluseqnode2*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10966,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___APlusAssignOp___init_aplusassignop( variable3 /*tpluseqnode2*/); /*new APlusAssignOp*/
+  variable4 = variable5;
+  variable1 =  variable4 /*passignopnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction266___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction266::init (src/parser//parser.nit:10973,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction266].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction266].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction267___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction267::action (src/parser//parser.nit:10977,2--10987:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tminuseqnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tminuseqnode2*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10982,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AMinusAssignOp___init_aminusassignop( variable3 /*tminuseqnode2*/); /*new AMinusAssignOp*/
+  variable4 = variable5;
+  variable1 =  variable4 /*passignopnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction267___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction267::init (src/parser//parser.nit:10989,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction267].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction267].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction268___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction268::action (src/parser//parser.nit:10993,2--11007:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwdonode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwdonode2*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:10999,6--32\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11001,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___ADoExpr___init_adoexpr( variable4 /*tkwdonode2*/,  variable5 /*pexprnode3*/); /*new ADoExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(31)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction268___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction268::init (src/parser//parser.nit:11009,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction268].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction268].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction269___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction269::action (src/parser//parser.nit:11013,2--11039:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11025,6--32\n"); nit_exit(1);}
+  variable11 =  variable7 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11027,6--32\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11029,6--32\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist8*/;
+  variable14 = TAG_Bool(( variable13 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable13 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11031,6--32\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AIfExpr___init_aifexpr( variable10 /*tkwifnode2*/,  variable11 /*pexprnode3*/,  variable12 /*pexprnode4*/,  variable13 /*pexprnode5*/); /*new AIfExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction269___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction269::init (src/parser//parser.nit:11041,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction269].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction269].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction270___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction270::action (src/parser//parser.nit:11045,2--11067:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable8 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11055,6--32\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11057,6--32\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist6*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11059,6--32\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AIfExpr___init_aifexpr( variable8 /*tkwifnode2*/,  variable9 /*pexprnode3*/,  variable10 /*pexprnode4*/,  NIT_NULL /*null*/); /*new AIfExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction270___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction270::init (src/parser//parser.nit:11069,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction270].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction270].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction271___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction271::action (src/parser//parser.nit:11073,2--11107:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable10 /*nodearraylist1*/;
+  variable12 = TAG_Bool(( variable11 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable11 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11086,6--32\n"); nit_exit(1);}
+  variable12 =  variable8 /*nodearraylist3*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11088,6--32\n"); nit_exit(1);}
+  variable14 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable13 = variable14;
+  variable14 =  variable4 /*nodearraylist7*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11091,6--32\n"); nit_exit(1);}
+  variable15 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable14 /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable14 /*pexprnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable14 /*pexprnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable14 /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable14 /*pexprnode5*/,COLOR_kernel___Object_____eqeq))( variable14 /*pexprnode5*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable15)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable13 /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable13 /*listnode6*/,  variable14 /*pexprnode5*/) /*Array::add*/;
+  }
+  variable16 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable13 /*listnode6*/); /*new ABlockExpr*/
+  variable15 = variable16;
+  variable16 =  variable2 /*nodearraylist9*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11099,6--32\n"); nit_exit(1);}
+  variable18 = NEW_parser_prod___AIfExpr___init_aifexpr( variable11 /*tkwifnode2*/,  variable12 /*pexprnode3*/,  variable15 /*pexprnode4*/,  variable16 /*pexprnode7*/); /*new AIfExpr*/
+  variable17 = variable18;
+  variable1 =  variable17 /*pexprnode1*/ /*node_list=*/;
+  variable18 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable18,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction271___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction271::init (src/parser//parser.nit:11109,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction271].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction271].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction272___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction272::action (src/parser//parser.nit:11113,2--11157:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable12 =  variable11 /*nodearraylist1*/;
+  variable13 = TAG_Bool(( variable12 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable12 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11127,6--32\n"); nit_exit(1);}
+  variable13 =  variable9 /*nodearraylist3*/;
+  variable14 = TAG_Bool(( variable13 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable13 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11129,6--32\n"); nit_exit(1);}
+  variable15 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable14 = variable15;
+  variable15 =  variable5 /*nodearraylist7*/;
+  variable16 = TAG_Bool(( variable15 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable15 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11132,6--32\n"); nit_exit(1);}
+  variable16 =  variable4 /*nodearraylist8*/;
+  variable17 = TAG_Bool(( variable16 /*listnode6*/==NIT_NULL) || VAL_ISA( variable16 /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11134,6--38\n"); nit_exit(1);}
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable15 /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable15 /*pexprnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable15 /*pexprnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable15 /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable15 /*pexprnode5*/,COLOR_kernel___Object_____eqeq))( variable15 /*pexprnode5*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable14 /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*listnode7*/,  variable15 /*pexprnode5*/) /*Array::add*/;
+  }
+  variable17 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable16 /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable16 /*listnode6*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable16 /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable16 /*listnode6*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable17)) { /*if*/
+    variable17 = ((array___AbstractArray___is_empty_t)CALL( variable14 /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable14 /*listnode7*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable17)) { /*if*/
+      variable14 =  variable16 /*listnode6*/ /*listnode7=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable14 /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable14 /*listnode7*/,  variable16 /*listnode6*/) /*Array::append*/;
+    }
+  }
+  variable18 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable14 /*listnode7*/); /*new ABlockExpr*/
+  variable17 = variable18;
+  variable18 =  variable2 /*nodearraylist10*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode8*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode8*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11149,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AIfExpr___init_aifexpr( variable12 /*tkwifnode2*/,  variable13 /*pexprnode3*/,  variable17 /*pexprnode4*/,  variable18 /*pexprnode8*/); /*new AIfExpr*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pexprnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction272___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction272::init (src/parser//parser.nit:11159,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction272].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction272].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction273___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction273::action (src/parser//parser.nit:11163,2--11185:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable8 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11173,6--32\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11175,6--32\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist6*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11177,6--32\n"); nit_exit(1);}
+  variable12 = NEW_parser_prod___AIfExpr___init_aifexpr( variable8 /*tkwifnode2*/,  variable9 /*pexprnode3*/,  NIT_NULL /*null*/,  variable10 /*pexprnode5*/); /*new AIfExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction273___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction273::init (src/parser//parser.nit:11187,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction273].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction273].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction274___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction274::action (src/parser//parser.nit:11191,2--11214:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable9 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11202,6--32\n"); nit_exit(1);}
+  variable10 =  variable6 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable10 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11204,6--32\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist7*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11206,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AIfExpr___init_aifexpr( variable9 /*tkwifnode2*/,  variable10 /*pexprnode3*/,  NIT_NULL /*null*/,  variable11 /*pexprnode5*/); /*new AIfExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction274___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction274::init (src/parser//parser.nit:11216,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction274].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction274].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction275___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction275::action (src/parser//parser.nit:11220,2--11228:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist2*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11226,6--32\n"); nit_exit(1);}
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction275___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction275::init (src/parser//parser.nit:11230,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction275].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction275].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction276___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction276::action (src/parser//parser.nit:11234,2--11239:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction276___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction276::init (src/parser//parser.nit:11241,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction276].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction276].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction277___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction277::action (src/parser//parser.nit:11245,2--11269:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tkwwhilenode2*/==NIT_NULL) || VAL_ISA( variable8 /*tkwwhilenode2*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11255,6--38\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11257,6--32\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*tkwdonode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwdonode4*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11259,6--32\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist6*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11261,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWhileExpr___init_awhileexpr( variable8 /*tkwwhilenode2*/,  variable9 /*pexprnode3*/,  variable10 /*tkwdonode4*/,  variable11 /*pexprnode5*/); /*new AWhileExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction277___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction277::init (src/parser//parser.nit:11271,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction277].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction277].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction278___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction278::action (src/parser//parser.nit:11275,2--11294:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11283,6--32\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*tkwdonode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwdonode3*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11285,6--32\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist4*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11287,6--32\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AForExpr___init_aforexpr( variable6 /*pexprnode2*/,  variable7 /*tkwdonode3*/,  variable8 /*pexprnode4*/); /*new AForExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction278___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction278::init (src/parser//parser.nit:11296,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction278].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction278].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction279___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction279::action (src/parser//parser.nit:11300,2--11322:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable9 =  variable8 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*tkwfornode2*/==NIT_NULL) || VAL_ISA( variable9 /*tkwfornode2*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11311,6--34\n"); nit_exit(1);}
+  variable10 =  variable6 /*nodearraylist3*/;
+  variable11 = TAG_Bool(( variable10 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable10 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11313,6--28\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist7*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11315,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AForVardeclExpr___init_aforvardeclexpr( variable9 /*tkwfornode2*/,  variable10 /*tidnode3*/,  variable11 /*pexprnode4*/); /*new AForVardeclExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(36)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction279___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction279::init (src/parser//parser.nit:11324,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction279].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction279].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction280___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction280::action (src/parser//parser.nit:11328,2--11343:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11334,6--40\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11336,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AAssertExpr___init_aassertexpr( variable4 /*tkwassertnode2*/,  NIT_NULL /*null*/,  variable5 /*pexprnode4*/); /*new AAssertExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(37)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction280___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction280::init (src/parser//parser.nit:11345,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction280].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction280].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction281___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction281::action (src/parser//parser.nit:11349,2--11367:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11356,6--40\n"); nit_exit(1);}
+  variable6 =  variable3 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11358,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11360,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAssertExpr___init_aassertexpr( variable5 /*tkwassertnode2*/,  variable6 /*tidnode3*/,  variable7 /*pexprnode4*/); /*new AAssertExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(37)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction281___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction281::init (src/parser//parser.nit:11369,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction281].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction281].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction282___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction282::action (src/parser//parser.nit:11373,2--11381:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tidnode1*/==NIT_NULL) || VAL_ISA( variable4 /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11379,6--28\n"); nit_exit(1);}
+  variable1 =  variable4 /*tidnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction282___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction282::init (src/parser//parser.nit:11383,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction282].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction282].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction283___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction283::action (src/parser//parser.nit:11387,2--11394:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11392,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction283___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction283::init (src/parser//parser.nit:11396,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction283].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction283].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction284___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction284::action (src/parser//parser.nit:11400,2--11435:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable13 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11415,6--32\n"); nit_exit(1);}
+  variable14 =  variable10 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11417,6--32\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwthennode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwthennode4*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11419,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11421,6--32\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tkwelsenode6*/==NIT_NULL) || VAL_ISA( variable17 /*tkwelsenode6*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11423,6--36\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist11*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11425,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AIfexprExpr___init_aifexprexpr( variable13 /*tkwifnode2*/,  variable14 /*pexprnode3*/,  variable15 /*tkwthennode4*/,  variable16 /*pexprnode5*/,  variable17 /*tkwelsenode6*/,  variable18 /*pexprnode7*/); /*new AIfexprExpr*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pexprnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction284___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction284::init (src/parser//parser.nit:11437,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction284].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction284].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction285___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction285::action (src/parser//parser.nit:11441,2--11448:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11446,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(40)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction285___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction285::init (src/parser//parser.nit:11450,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction285].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction285].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction286___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction286::action (src/parser//parser.nit:11454,2--11470:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11462,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11464,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AOrExpr___init_aorexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AOrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(40)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction286___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction286::init (src/parser//parser.nit:11472,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction286].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction286].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction287___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction287::action (src/parser//parser.nit:11476,2--11492:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11484,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11486,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAndExpr___init_aandexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AAndExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(40)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction287___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction287::init (src/parser//parser.nit:11494,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction287].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction287].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction288___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction288::action (src/parser//parser.nit:11498,2--11505:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11503,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(41)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction288___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction288::init (src/parser//parser.nit:11507,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction288].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction288].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction289___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction289::action (src/parser//parser.nit:11511,2--11526:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11518,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11520,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___ANotExpr___init_anotexpr( variable5 /*tkwnotnode2*/,  variable6 /*pexprnode3*/); /*new ANotExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(41)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction289___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction289::init (src/parser//parser.nit:11528,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction289].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction289].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction290___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction290::action (src/parser//parser.nit:11532,2--11539:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11537,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction290___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction290::init (src/parser//parser.nit:11541,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction290].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction290].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction291___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction291::action (src/parser//parser.nit:11545,2--11561:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11553,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11555,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEqExpr___init_aeqexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEqExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction291___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction291::init (src/parser//parser.nit:11563,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction291].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction291].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction292___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction292::action (src/parser//parser.nit:11567,2--11583:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11575,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11577,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEeExpr___init_aeeexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction292___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction292::init (src/parser//parser.nit:11585,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction292].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction292].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction293___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction293::action (src/parser//parser.nit:11589,2--11605:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11597,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11599,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ANeExpr___init_aneexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ANeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction293___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction293::init (src/parser//parser.nit:11607,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction293].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction293].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction294___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction294::action (src/parser//parser.nit:11611,2--11627:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11619,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11621,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALtExpr___init_altexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction294___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction294::init (src/parser//parser.nit:11629,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction294].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction294].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction295___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction295::action (src/parser//parser.nit:11633,2--11649:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11641,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11643,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALeExpr___init_aleexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction295___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction295::init (src/parser//parser.nit:11651,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction295].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction295].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction296___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction296::action (src/parser//parser.nit:11655,2--11671:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11663,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11665,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGtExpr___init_agtexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction296___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction296::init (src/parser//parser.nit:11673,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction296].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction296].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction297___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction297::action (src/parser//parser.nit:11677,2--11693:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11685,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11687,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGeExpr___init_ageexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction297___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction297::init (src/parser//parser.nit:11695,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction297].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction297].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction298___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction298::action (src/parser//parser.nit:11699,2--11715:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11707,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11709,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarshipExpr___init_astarshipexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarshipExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction298___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction298::init (src/parser//parser.nit:11717,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction298].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction298].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction299___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction299::action (src/parser//parser.nit:11721,2--11737:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11729,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11731,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AIsaExpr___init_aisaexpr( variable6 /*pexprnode2*/,  variable7 /*ptypenode3*/); /*new AIsaExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction299___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction299::init (src/parser//parser.nit:11739,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction299].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction299].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction300___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction300::action (src/parser//parser.nit:11743,2--11750:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11748,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction300___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction300::init (src/parser//parser.nit:11752,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction300].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction300].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction301___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction301::action (src/parser//parser.nit:11756,2--11772:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11764,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11766,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APlusExpr___init_aplusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APlusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction301___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction301::init (src/parser//parser.nit:11774,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction301].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction301].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction302___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction302::action (src/parser//parser.nit:11778,2--11794:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11786,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11788,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AMinusExpr___init_aminusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AMinusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction302___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction302::init (src/parser//parser.nit:11796,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction302].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction302].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction303___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction303::action (src/parser//parser.nit:11800,2--11807:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11805,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction303___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction303::init (src/parser//parser.nit:11809,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction303].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction303].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction304___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction304::action (src/parser//parser.nit:11813,2--11829:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11821,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11823,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarExpr___init_astarexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction304___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction304::init (src/parser//parser.nit:11831,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction304].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction304].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction305___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction305::action (src/parser//parser.nit:11835,2--11851:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11843,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11845,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ASlashExpr___init_aslashexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ASlashExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction305___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction305::init (src/parser//parser.nit:11853,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction305].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction305].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction306___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction306::action (src/parser//parser.nit:11857,2--11873:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11865,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11867,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APercentExpr___init_apercentexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APercentExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction306___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction306::init (src/parser//parser.nit:11875,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction306].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction306].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction307___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction307::action (src/parser//parser.nit:11879,2--11886:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11884,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction307___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction307::init (src/parser//parser.nit:11888,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction307].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction307].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction308___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction308::action (src/parser//parser.nit:11892,2--11907:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11899,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11901,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AUminusExpr___init_auminusexpr( variable5 /*tminusnode2*/,  variable6 /*pexprnode3*/); /*new AUminusExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction308___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction308::init (src/parser//parser.nit:11909,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction308].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction308].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction309___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction309::action (src/parser//parser.nit:11913,2--11928:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11920,6--36\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11922,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AOnceExpr___init_aonceexpr( variable5 /*tkwoncenode2*/,  variable6 /*pexprnode3*/); /*new AOnceExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction309___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction309::init (src/parser//parser.nit:11930,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction309].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction309].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction310___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction310::action (src/parser//parser.nit:11934,2--11941:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11939,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction310___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction310::init (src/parser//parser.nit:11943,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction310].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction310].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction311___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction311::action (src/parser//parser.nit:11947,2--11975:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable7 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11956,6--34\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable8 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11958,6--32\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11960,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ANewExpr___init_anewexpr( variable7 /*tkwnewnode2*/,  variable8 /*ptypenode3*/,  NIT_NULL /*null*/,  variable6 /*listnode6*/); /*new ANewExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction311___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction311::init (src/parser//parser.nit:11977,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction311].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction311].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction312___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction312::action (src/parser//parser.nit:11981,2--11997:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11989,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable7 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:11991,6--36\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable6 /*pexprnode2*/,  variable7 /*tattridnode3*/); /*new AAttrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction312___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction312::init (src/parser//parser.nit:11999,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction312].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction312].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction313___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction313::action (src/parser//parser.nit:12003,2--12016:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable4 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12010,6--36\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable3 /*pexprnode2*/,  variable4 /*tattridnode3*/); /*new AAttrExpr*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction313___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction313::init (src/parser//parser.nit:12018,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction313].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction313].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction314___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction314::action (src/parser//parser.nit:12022,2--12050:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12032,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12034,6--28\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12036,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ACallExpr___init_acallexpr( variable8 /*pexprnode2*/,  variable9 /*tidnode3*/,  variable7 /*listnode5*/); /*new ACallExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction314___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction314::init (src/parser//parser.nit:12052,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction314].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction314].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction315___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction315::action (src/parser//parser.nit:12056,2--12081:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12065,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12067,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___ACallExpr___init_acallexpr( variable5 /*pexprnode2*/,  variable6 /*tidnode3*/,  variable4 /*listnode5*/); /*new ACallExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction315___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction315::init (src/parser//parser.nit:12083,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction315].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction315].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction316___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction316::action (src/parser//parser.nit:12087,2--12110:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12094,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12096,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction316___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction316::init (src/parser//parser.nit:12112,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction316].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction316].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction317___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction317::action (src/parser//parser.nit:12116,2--12142:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12124,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12126,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12128,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction317___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction317::init (src/parser//parser.nit:12144,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction317].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction317].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction318___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction318::action (src/parser//parser.nit:12148,2--12176:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12158,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12160,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12162,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable8 /*pexprnode2*/,  variable9 /*tkwinitnode3*/,  variable7 /*listnode5*/); /*new AInitExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction318___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction318::init (src/parser//parser.nit:12178,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction318].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction318].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction319___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction319::action (src/parser//parser.nit:12182,2--12207:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12191,6--36\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12193,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable5 /*pexprnode2*/,  variable6 /*tkwinitnode3*/,  variable4 /*listnode5*/); /*new AInitExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction319___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction319::init (src/parser//parser.nit:12209,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction319].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction319].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction320___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction320::action (src/parser//parser.nit:12213,2--12235:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12220,6--32\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode3*/==NIT_NULL) || VAL_ISA( variable6 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12222,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode4*/,  variable6 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ABraExpr___init_abraexpr( variable5 /*pexprnode2*/,  variable4 /*listnode4*/); /*new ABraExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction320___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction320::init (src/parser//parser.nit:12237,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction320].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction320].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction321___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction321::action (src/parser//parser.nit:12241,2--12274:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12253,6--34\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12255,6--32\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12257,6--28\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*listnode5*/==NIT_NULL) || VAL_ISA( variable13 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12259,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable9 =  variable13 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode6*/,  variable13 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ANewExpr___init_anewexpr( variable10 /*tkwnewnode2*/,  variable11 /*ptypenode3*/,  variable12 /*tidnode4*/,  variable9 /*listnode6*/); /*new ANewExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction321___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction321::init (src/parser//parser.nit:12276,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction321].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction321].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction322___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction322::action (src/parser//parser.nit:12280,2--12301:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable8 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12293,6--32\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist7*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12295,6--32\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___ACrangeExpr___init_acrangeexpr( variable11 /*pexprnode2*/,  variable12 /*pexprnode3*/); /*new ACrangeExpr*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pexprnode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction322___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction322::init (src/parser//parser.nit:12303,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction322].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction322].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction323___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction323::action (src/parser//parser.nit:12307,2--12328:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable11 =  variable8 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12320,6--32\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist7*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12322,6--32\n"); nit_exit(1);}
+  variable14 = NEW_parser_prod___AOrangeExpr___init_aorangeexpr( variable11 /*pexprnode2*/,  variable12 /*pexprnode3*/); /*new AOrangeExpr*/
+  variable13 = variable14;
+  variable1 =  variable13 /*pexprnode1*/ /*node_list=*/;
+  variable14 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable14,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction323___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction323::init (src/parser//parser.nit:12330,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction323].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction323].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction324___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction324::action (src/parser//parser.nit:12334,2--12352:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*listnode2*/==NIT_NULL) || VAL_ISA( variable4 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12340,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable4 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable4 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable3 =  variable4 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode3*/,  variable4 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 = NEW_parser_prod___AArrayExpr___init_aarrayexpr( variable3 /*listnode3*/); /*new AArrayExpr*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction324___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction324::init (src/parser//parser.nit:12354,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction324].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction324].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction325___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction325::action (src/parser//parser.nit:12358,2--12368:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12363,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ASelfExpr___init_aselfexpr( variable3 /*tkwselfnode2*/); /*new ASelfExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction325___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction325::init (src/parser//parser.nit:12370,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction325].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction325].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction326___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction326::action (src/parser//parser.nit:12374,2--12384:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12379,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ATrueExpr___init_atrueexpr( variable3 /*tkwtruenode2*/); /*new ATrueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction326___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction326::init (src/parser//parser.nit:12386,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction326].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction326].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction327___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction327::action (src/parser//parser.nit:12390,2--12400:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12395,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFalseExpr___init_afalseexpr( variable3 /*tkwfalsenode2*/); /*new AFalseExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction327___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction327::init (src/parser//parser.nit:12402,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction327].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction327].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction328___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction328::action (src/parser//parser.nit:12406,2--12416:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12411,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ANullExpr___init_anullexpr( variable3 /*tkwnullnode2*/); /*new ANullExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction328___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction328::init (src/parser//parser.nit:12418,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction328].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction328].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction329___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction329::action (src/parser//parser.nit:12422,2--12432:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable3 /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12427,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AIntExpr___init_aintexpr( variable3 /*tnumbernode2*/); /*new AIntExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction329___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction329::init (src/parser//parser.nit:12434,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction329].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction329].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction330___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction330::action (src/parser//parser.nit:12438,2--12448:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12443,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFloatExpr___init_afloatexpr( variable3 /*tfloatnode2*/); /*new AFloatExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction330___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction330::init (src/parser//parser.nit:12450,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction330].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction330].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction331___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction331::action (src/parser//parser.nit:12454,2--12464:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12459,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ACharExpr___init_acharexpr( variable3 /*tcharnode2*/); /*new ACharExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction331___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction331::init (src/parser//parser.nit:12466,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction331].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction331].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction332___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction332::action (src/parser//parser.nit:12470,2--12480:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12475,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStringExpr___init_astringexpr( variable3 /*tstringnode2*/); /*new AStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction332___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction332::init (src/parser//parser.nit:12482,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction332].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction332].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction333___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction333::action (src/parser//parser.nit:12486,2--12493:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12491,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction333___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction333::init (src/parser//parser.nit:12495,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction333].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction333].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction334___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction334::action (src/parser//parser.nit:12499,2--12508:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12506,6--32\n"); nit_exit(1);}
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction334___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction334::init (src/parser//parser.nit:12510,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction334].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction334].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction335___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction335::action (src/parser//parser.nit:12514,2--12538:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode2*/==NIT_NULL) || VAL_ISA( variable5 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12521,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12523,6--32\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode2*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode4*/,  variable5 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pexprnode3*/ ==  NIT_NULL /*null*/) || (( variable6 /*pexprnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pexprnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode3*/,COLOR_kernel___Object_____eqeq))( variable6 /*pexprnode3*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode4*/,  variable6 /*pexprnode3*/) /*Array::add*/;
+  }
+  variable8 = NEW_parser_prod___ASuperstringExpr___init_asuperstringexpr( variable4 /*listnode4*/); /*new ASuperstringExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction335___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction335::init (src/parser//parser.nit:12540,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction335].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction335].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction336___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction336::action (src/parser//parser.nit:12544,2--12578:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*listnode2*/==NIT_NULL) || VAL_ISA( variable6 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12552,6--38\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode3*/==NIT_NULL) || VAL_ISA( variable7 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12554,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12556,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable6 /*listnode2*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable6 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable7 /*listnode3*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable7 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode4*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*listnode5*/,  variable8 /*pexprnode4*/) /*Array::add*/;
+  }
+  variable10 = NEW_parser_prod___ASuperstringExpr___init_asuperstringexpr( variable5 /*listnode5*/); /*new ASuperstringExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction336___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction336::init (src/parser//parser.nit:12580,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction336].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction336].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction337___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction337::action (src/parser//parser.nit:12584,2--12603:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12593,6--32\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12595,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable7 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable7 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable7 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable8 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable6 /*listnode3*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction337___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction337::init (src/parser//parser.nit:12605,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction337].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction337].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction338___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction338::action (src/parser//parser.nit:12609,2--12619:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstartstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstartstringnode2*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12614,6--46\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStartStringExpr___init_astartstringexpr( variable3 /*tstartstringnode2*/); /*new AStartStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction338___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction338::init (src/parser//parser.nit:12621,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction338].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction338].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction339___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction339::action (src/parser//parser.nit:12625,2--12644:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12634,6--32\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12636,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable7 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable7 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable7 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable8 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable6 /*listnode3*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction339___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction339::init (src/parser//parser.nit:12646,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction339].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction339].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction340___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction340::action (src/parser//parser.nit:12650,2--12660:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tmidstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tmidstringnode2*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12655,6--42\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AMidStringExpr___init_amidstringexpr( variable3 /*tmidstringnode2*/); /*new AMidStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction340___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction340::init (src/parser//parser.nit:12662,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction340].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction340].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction341___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction341::action (src/parser//parser.nit:12666,2--12676:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tendstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tendstringnode2*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12671,6--42\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AEndStringExpr___init_aendstringexpr( variable3 /*tendstringnode2*/); /*new AEndStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(53)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction341___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction341::init (src/parser//parser.nit:12678,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction341].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction341].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction342___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction342::action (src/parser//parser.nit:12682,2--12697:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12692,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode2*/,  variable8 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable7 /*listnode2*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction342___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction342::init (src/parser//parser.nit:12699,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction342].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction342].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction343___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction343::action (src/parser//parser.nit:12703,2--12728:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12714,6--32\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode2*/==NIT_NULL) || VAL_ISA( variable10 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12716,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable9 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable9 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode3*/,  variable9 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode3*/,  variable10 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable8 /*listnode3*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction343___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction343::init (src/parser//parser.nit:12730,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction343].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction343].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction344___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction344::action (src/parser//parser.nit:12734,2--12742:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable1 =  variable5 /*listnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction344___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction344::init (src/parser//parser.nit:12744,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction344].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction344].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction345___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction345::action (src/parser//parser.nit:12748,2--12753:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable2 = variable3;
+  variable1 =  variable2 /*listnode1*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction345___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction345::init (src/parser//parser.nit:12755,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction345].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction345].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction346___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction346::action (src/parser//parser.nit:12759,2--12774:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12769,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode2*/,  variable8 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable7 /*listnode2*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction346___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction346::init (src/parser//parser.nit:12776,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction346].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction346].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction347___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction347::action (src/parser//parser.nit:12780,2--12805:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12791,6--32\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode2*/==NIT_NULL) || VAL_ISA( variable10 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12793,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable9 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable9 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode3*/,  variable9 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode3*/,  variable10 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable8 /*listnode3*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction347___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction347::init (src/parser//parser.nit:12807,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction347].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction347].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction348___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction348::action (src/parser//parser.nit:12811,2--12822:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12817,6--32\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction348___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction348::init (src/parser//parser.nit:12824,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction348].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction348].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction349___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction349::action (src/parser//parser.nit:12828,2--12836:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable1 =  variable5 /*listnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction349___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction349::init (src/parser//parser.nit:12838,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction349].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction349].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction350___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction350::action (src/parser//parser.nit:12842,2--12847:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable2 = variable3;
+  variable1 =  variable2 /*listnode1*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction350___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction350::init (src/parser//parser.nit:12849,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction350].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction350].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction351___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction351::action (src/parser//parser.nit:12853,2--12868:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable4 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12863,6--32\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode2*/,  variable8 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable7 /*listnode2*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(56)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction351___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction351::init (src/parser//parser.nit:12870,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction351].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction351].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction352___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction352::action (src/parser//parser.nit:12874,2--12899:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12885,6--32\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode2*/==NIT_NULL) || VAL_ISA( variable10 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12887,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable9 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable9 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable9 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable9 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable8 /*listnode3*/,  variable9 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode3*/,  variable10 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable8 /*listnode3*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(56)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction352___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction352::init (src/parser//parser.nit:12901,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction352].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction352].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction353___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction353::action (src/parser//parser.nit:12905,2--12915:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12913,6--32\n"); nit_exit(1);}
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(57)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction353___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction353::init (src/parser//parser.nit:12917,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction353].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction353].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction354___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction354::action (src/parser//parser.nit:12921,2--12933:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode3*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode3*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12927,6--38\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AQualified___init_aqualified( variable3 /*listnode2*/,  variable4 /*tclassidnode3*/); /*new AQualified*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pqualifiednode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(58)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction354___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction354::init (src/parser//parser.nit:12935,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction354].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction354].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction355___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction355::action (src/parser//parser.nit:12939,2--12961:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode2*/==NIT_NULL) || VAL_ISA( variable5 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12946,6--38\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable4 =  variable5 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tclassidnode4*/==NIT_NULL) || VAL_ISA( variable6 /*tclassidnode4*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12955,6--38\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AQualified___init_aqualified( variable4 /*listnode3*/,  variable6 /*tclassidnode4*/); /*new AQualified*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pqualifiednode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(58)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction355___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction355::init (src/parser//parser.nit:12963,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction355].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction355].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction356___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction356::action (src/parser//parser.nit:12967,2--12986:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*listnode2*/==NIT_NULL) || VAL_ISA( variable4 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12973,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable4 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable4 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable3 =  variable4 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode3*/,  variable4 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 = NEW_parser_prod___AQualified___init_aqualified( variable3 /*listnode3*/,  NIT_NULL /*null*/); /*new AQualified*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pqualifiednode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(58)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction356___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction356::init (src/parser//parser.nit:12988,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction356].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction356].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction357___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction357::action (src/parser//parser.nit:12992,2--13001:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tidnode1*/==NIT_NULL) || VAL_ISA( variable5 /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:12999,6--28\n"); nit_exit(1);}
+  variable1 =  variable5 /*tidnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(59)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction357___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction357::init (src/parser//parser.nit:13003,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction357].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction357].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction358___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction358::action (src/parser//parser.nit:13007,2--13016:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tclassidnode1*/==NIT_NULL) || VAL_ISA( variable5 /*tclassidnode1*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13014,6--38\n"); nit_exit(1);}
+  variable1 =  variable5 /*tclassidnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(60)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction358___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction358::init (src/parser//parser.nit:13018,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction358].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction358].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction359___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction359::action (src/parser//parser.nit:13022,2--13026:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction359___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction359::init (src/parser//parser.nit:13028,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction359].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction359].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction360___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction360::action (src/parser//parser.nit:13032,2--13036:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction360___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction360::init (src/parser//parser.nit:13038,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction360].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction360].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction361___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction361::action (src/parser//parser.nit:13042,2--13060:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*listnode2*/==NIT_NULL) || VAL_ISA( variable4 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13048,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable4 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable4 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable3 =  variable4 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode3*/,  variable4 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable6 = NEW_parser_prod___ADoc___init_adoc( variable3 /*listnode3*/); /*new ADoc*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pdocnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction361___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction361::init (src/parser//parser.nit:13062,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction361].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction361].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction362___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction362::action (src/parser//parser.nit:13066,2--13085:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*listnode2*/==NIT_NULL) || VAL_ISA( variable5 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13073,6--38\n"); nit_exit(1);}
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable4 =  variable5 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable7 = NEW_parser_prod___ADoc___init_adoc( variable4 /*listnode3*/); /*new ADoc*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pdocnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction362___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction362::init (src/parser//parser.nit:13087,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction362].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction362].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction363___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction363::action (src/parser//parser.nit:13091,2--13096:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction363___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction363::init (src/parser//parser.nit:13098,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction363].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction363].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction364___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction364::action (src/parser//parser.nit:13102,2--13106:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable2 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable2,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction364___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction364::init (src/parser//parser.nit:13108,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction364].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction364].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction365___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction365::action (src/parser//parser.nit:13112,2--13119:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pdocnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pdocnode1*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13117,6--30\n"); nit_exit(1);}
+  variable1 =  variable3 /*pdocnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction365___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction365::init (src/parser//parser.nit:13121,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction365].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction365].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction366___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction366::action (src/parser//parser.nit:13125,2--13130:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(64)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction366___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction366::init (src/parser//parser.nit:13132,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction366].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction366].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction367___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction367::action (src/parser//parser.nit:13136,2--13142:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(64)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction367___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction367::init (src/parser//parser.nit:13144,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction367].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction367].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction368___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction368::action (src/parser//parser.nit:13148,2--13152:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(64)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction368___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction368::init (src/parser//parser.nit:13154,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction368].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction368].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction369___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction369::action (src/parser//parser.nit:13158,2--13170:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13164,6--38\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AType___init_atype( variable4 /*tclassidnode2*/,  variable3 /*listnode3*/); /*new AType*/
+  variable5 = variable6;
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(65)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction369___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction369::init (src/parser//parser.nit:13172,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction369].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction369].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction370___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction370::action (src/parser//parser.nit:13176,2--13183:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13181,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction370___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction370::init (src/parser//parser.nit:13185,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction370].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction370].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction371___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction371::action (src/parser//parser.nit:13189,2--13224:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable13 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13204,6--32\n"); nit_exit(1);}
+  variable14 =  variable10 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13206,6--32\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwthennode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwthennode4*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13208,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13210,6--32\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tkwelsenode6*/==NIT_NULL) || VAL_ISA( variable17 /*tkwelsenode6*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13212,6--36\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist11*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13214,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AIfexprExpr___init_aifexprexpr( variable13 /*tkwifnode2*/,  variable14 /*pexprnode3*/,  variable15 /*tkwthennode4*/,  variable16 /*pexprnode5*/,  variable17 /*tkwelsenode6*/,  variable18 /*pexprnode7*/); /*new AIfexprExpr*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pexprnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction371___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction371::init (src/parser//parser.nit:13226,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction371].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction371].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction372___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction372::action (src/parser//parser.nit:13230,2--13237:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13235,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(67)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction372___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction372::init (src/parser//parser.nit:13239,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction372].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction372].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction373___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction373::action (src/parser//parser.nit:13243,2--13259:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13251,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13253,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AOrExpr___init_aorexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AOrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(67)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction373___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction373::init (src/parser//parser.nit:13261,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction373].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction373].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction374___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction374::action (src/parser//parser.nit:13265,2--13281:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13273,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13275,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAndExpr___init_aandexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AAndExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(67)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction374___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction374::init (src/parser//parser.nit:13283,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction374].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction374].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction375___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction375::action (src/parser//parser.nit:13287,2--13294:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13292,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(68)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction375___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction375::init (src/parser//parser.nit:13296,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction375].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction375].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction376___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction376::action (src/parser//parser.nit:13300,2--13315:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13307,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13309,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___ANotExpr___init_anotexpr( variable5 /*tkwnotnode2*/,  variable6 /*pexprnode3*/); /*new ANotExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(68)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction376___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction376::init (src/parser//parser.nit:13317,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction376].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction376].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction377___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction377::action (src/parser//parser.nit:13321,2--13328:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13326,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction377___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction377::init (src/parser//parser.nit:13330,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction377].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction377].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction378___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction378::action (src/parser//parser.nit:13334,2--13350:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13342,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13344,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEqExpr___init_aeqexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEqExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction378___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction378::init (src/parser//parser.nit:13352,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction378].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction378].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction379___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction379::action (src/parser//parser.nit:13356,2--13372:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13364,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13366,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEeExpr___init_aeeexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction379___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction379::init (src/parser//parser.nit:13374,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction379].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction379].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction380___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction380::action (src/parser//parser.nit:13378,2--13394:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13386,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13388,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ANeExpr___init_aneexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ANeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction380___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction380::init (src/parser//parser.nit:13396,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction380].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction380].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction381___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction381::action (src/parser//parser.nit:13400,2--13416:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13408,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13410,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALtExpr___init_altexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction381___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction381::init (src/parser//parser.nit:13418,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction381].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction381].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction382___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction382::action (src/parser//parser.nit:13422,2--13438:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13430,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13432,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALeExpr___init_aleexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction382___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction382::init (src/parser//parser.nit:13440,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction382].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction382].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction383___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction383::action (src/parser//parser.nit:13444,2--13460:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13452,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13454,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGtExpr___init_agtexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction383___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction383::init (src/parser//parser.nit:13462,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction383].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction383].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction384___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction384::action (src/parser//parser.nit:13466,2--13482:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13474,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13476,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGeExpr___init_ageexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction384___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction384::init (src/parser//parser.nit:13484,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction384].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction384].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction385___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction385::action (src/parser//parser.nit:13488,2--13504:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13496,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13498,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarshipExpr___init_astarshipexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarshipExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction385___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction385::init (src/parser//parser.nit:13506,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction385].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction385].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction386___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction386::action (src/parser//parser.nit:13510,2--13526:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13518,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13520,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AIsaExpr___init_aisaexpr( variable6 /*pexprnode2*/,  variable7 /*ptypenode3*/); /*new AIsaExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction386___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction386::init (src/parser//parser.nit:13528,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction386].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction386].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction387___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction387::action (src/parser//parser.nit:13532,2--13539:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13537,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction387___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction387::init (src/parser//parser.nit:13541,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction387].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction387].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction388___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction388::action (src/parser//parser.nit:13545,2--13561:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13553,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13555,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APlusExpr___init_aplusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APlusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction388___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction388::init (src/parser//parser.nit:13563,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction388].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction388].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction389___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction389::action (src/parser//parser.nit:13567,2--13583:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13575,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13577,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AMinusExpr___init_aminusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AMinusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction389___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction389::init (src/parser//parser.nit:13585,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction389].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction389].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction390___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction390::action (src/parser//parser.nit:13589,2--13596:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13594,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction390___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction390::init (src/parser//parser.nit:13598,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction390].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction390].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction391___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction391::action (src/parser//parser.nit:13602,2--13618:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13610,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13612,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarExpr___init_astarexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction391___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction391::init (src/parser//parser.nit:13620,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction391].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction391].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction392___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction392::action (src/parser//parser.nit:13624,2--13640:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13632,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13634,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ASlashExpr___init_aslashexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ASlashExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction392___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction392::init (src/parser//parser.nit:13642,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction392].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction392].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction393___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction393::action (src/parser//parser.nit:13646,2--13662:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13654,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13656,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APercentExpr___init_apercentexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APercentExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction393___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction393::init (src/parser//parser.nit:13664,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction393].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction393].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction394___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction394::action (src/parser//parser.nit:13668,2--13675:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13673,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction394___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction394::init (src/parser//parser.nit:13677,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction394].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction394].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction395___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction395::action (src/parser//parser.nit:13681,2--13696:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13688,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13690,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AUminusExpr___init_auminusexpr( variable5 /*tminusnode2*/,  variable6 /*pexprnode3*/); /*new AUminusExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction395___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction395::init (src/parser//parser.nit:13698,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction395].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction395].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction396___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction396::action (src/parser//parser.nit:13702,2--13717:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13709,6--36\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13711,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AOnceExpr___init_aonceexpr( variable5 /*tkwoncenode2*/,  variable6 /*pexprnode3*/); /*new AOnceExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction396___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction396::init (src/parser//parser.nit:13719,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction396].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction396].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction397___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction397::action (src/parser//parser.nit:13723,2--13730:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13728,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(73)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction397___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction397::init (src/parser//parser.nit:13732,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction397].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction397].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction398___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction398::action (src/parser//parser.nit:13736,2--13764:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable7 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13745,6--34\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable8 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13747,6--32\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13749,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ANewExpr___init_anewexpr( variable7 /*tkwnewnode2*/,  variable8 /*ptypenode3*/,  NIT_NULL /*null*/,  variable6 /*listnode6*/); /*new ANewExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(73)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction398___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction398::init (src/parser//parser.nit:13766,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction398].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction398].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction399___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction399::action (src/parser//parser.nit:13770,2--13786:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13778,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable7 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13780,6--36\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable6 /*pexprnode2*/,  variable7 /*tattridnode3*/); /*new AAttrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction399___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction399::init (src/parser//parser.nit:13788,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction399].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction399].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction400___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction400::action (src/parser//parser.nit:13792,2--13805:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable4 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13799,6--36\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable3 /*pexprnode2*/,  variable4 /*tattridnode3*/); /*new AAttrExpr*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction400___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction400::init (src/parser//parser.nit:13807,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction400].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction400].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction401___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction401::action (src/parser//parser.nit:13811,2--13839:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13821,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13823,6--28\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13825,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ACallExpr___init_acallexpr( variable8 /*pexprnode2*/,  variable9 /*tidnode3*/,  variable7 /*listnode5*/); /*new ACallExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction401___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction401::init (src/parser//parser.nit:13841,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction401].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction401].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction402___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction402::action (src/parser//parser.nit:13845,2--13870:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13854,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13856,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___ACallExpr___init_acallexpr( variable5 /*pexprnode2*/,  variable6 /*tidnode3*/,  variable4 /*listnode5*/); /*new ACallExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction402___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction402::init (src/parser//parser.nit:13872,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction402].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction402].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction403___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction403::action (src/parser//parser.nit:13876,2--13899:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13883,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13885,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction403___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction403::init (src/parser//parser.nit:13901,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction403].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction403].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction404___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction404::action (src/parser//parser.nit:13905,2--13931:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13913,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13915,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13917,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction404___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction404::init (src/parser//parser.nit:13933,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction404].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction404].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction405___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction405::action (src/parser//parser.nit:13937,2--13965:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13947,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13949,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13951,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable8 /*pexprnode2*/,  variable9 /*tkwinitnode3*/,  variable7 /*listnode5*/); /*new AInitExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction405___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction405::init (src/parser//parser.nit:13967,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction405].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction405].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction406___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction406::action (src/parser//parser.nit:13971,2--13996:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13980,6--36\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:13982,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable5 /*pexprnode2*/,  variable6 /*tkwinitnode3*/,  variable4 /*listnode5*/); /*new AInitExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction406___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction406::init (src/parser//parser.nit:13998,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction406].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction406].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction407___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction407::action (src/parser//parser.nit:14002,2--14035:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14014,6--34\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14016,6--32\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14018,6--28\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*listnode5*/==NIT_NULL) || VAL_ISA( variable13 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14020,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable9 =  variable13 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode6*/,  variable13 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ANewExpr___init_anewexpr( variable10 /*tkwnewnode2*/,  variable11 /*ptypenode3*/,  variable12 /*tidnode4*/,  variable9 /*listnode6*/); /*new ANewExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction407___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction407::init (src/parser//parser.nit:14037,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction407].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction407].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction408___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction408::action (src/parser//parser.nit:14041,2--14051:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14046,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ASelfExpr___init_aselfexpr( variable3 /*tkwselfnode2*/); /*new ASelfExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction408___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction408::init (src/parser//parser.nit:14053,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction408].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction408].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction409___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction409::action (src/parser//parser.nit:14057,2--14067:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14062,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ATrueExpr___init_atrueexpr( variable3 /*tkwtruenode2*/); /*new ATrueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction409___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction409::init (src/parser//parser.nit:14069,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction409].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction409].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction410___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction410::action (src/parser//parser.nit:14073,2--14083:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14078,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFalseExpr___init_afalseexpr( variable3 /*tkwfalsenode2*/); /*new AFalseExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction410___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction410::init (src/parser//parser.nit:14085,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction410].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction410].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction411___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction411::action (src/parser//parser.nit:14089,2--14099:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14094,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ANullExpr___init_anullexpr( variable3 /*tkwnullnode2*/); /*new ANullExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction411___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction411::init (src/parser//parser.nit:14101,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction411].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction411].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction412___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction412::action (src/parser//parser.nit:14105,2--14115:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable3 /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14110,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AIntExpr___init_aintexpr( variable3 /*tnumbernode2*/); /*new AIntExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction412___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction412::init (src/parser//parser.nit:14117,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction412].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction412].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction413___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction413::action (src/parser//parser.nit:14121,2--14131:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14126,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFloatExpr___init_afloatexpr( variable3 /*tfloatnode2*/); /*new AFloatExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction413___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction413::init (src/parser//parser.nit:14133,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction413].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction413].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction414___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction414::action (src/parser//parser.nit:14137,2--14147:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14142,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ACharExpr___init_acharexpr( variable3 /*tcharnode2*/); /*new ACharExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction414___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction414::init (src/parser//parser.nit:14149,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction414].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction414].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction415___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction415::action (src/parser//parser.nit:14153,2--14163:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14158,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStringExpr___init_astringexpr( variable3 /*tstringnode2*/); /*new AStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction415___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction415::init (src/parser//parser.nit:14165,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction415].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction415].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction416___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction416::action (src/parser//parser.nit:14169,2--14176:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14174,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction416___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction416::init (src/parser//parser.nit:14178,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction416].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction416].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction417___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction417::action (src/parser//parser.nit:14182,2--14191:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14189,6--32\n"); nit_exit(1);}
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction417___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction417::init (src/parser//parser.nit:14193,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction417].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction417].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction418___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction418::action (src/parser//parser.nit:14197,2--14204:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14202,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction418___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction418::init (src/parser//parser.nit:14206,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction418].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction418].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction419___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction419::action (src/parser//parser.nit:14210,2--14227:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable4 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14219,6--32\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable7 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable7 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable6 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*listnode3*/,  variable7 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable9 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable6 /*listnode3*/); /*new ABlockExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction419___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction419::init (src/parser//parser.nit:14229,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction419].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction419].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction420___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction420::action (src/parser//parser.nit:14233,2--14260:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable5 /*nodearraylist2*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14243,6--32\n"); nit_exit(1);}
+  variable9 =  variable4 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*listnode3*/==NIT_NULL) || VAL_ISA( variable9 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14245,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable8 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable8 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable7 /*listnode4*/,  variable8 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable7 =  variable9 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode4*/,  variable9 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ABlockExpr___init_ablockexpr( variable7 /*listnode4*/); /*new ABlockExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction420___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction420::init (src/parser//parser.nit:14262,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction420].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction420].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction421___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction421::action (src/parser//parser.nit:14266,2--14272:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction421___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction421::init (src/parser//parser.nit:14274,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction421].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction421].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction422___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction422::action (src/parser//parser.nit:14278,2--14283:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable1 =  NIT_NULL /*null*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction422___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction422::init (src/parser//parser.nit:14285,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction422].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction422].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction423___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction423::action (src/parser//parser.nit:14289,2--14296:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14294,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction423___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction423::init (src/parser//parser.nit:14298,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction423].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction423].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction424___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction424::action (src/parser//parser.nit:14302,2--14309:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14307,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction424___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction424::init (src/parser//parser.nit:14311,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction424].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction424].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction425___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction425::action (src/parser//parser.nit:14315,2--14326:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14320,6--40\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AReturnExpr___init_areturnexpr( variable3 /*tkwreturnnode2*/,  NIT_NULL /*null*/); /*new AReturnExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction425___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction425::init (src/parser//parser.nit:14328,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction425].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction425].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction426___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction426::action (src/parser//parser.nit:14332,2--14346:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14338,6--40\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14340,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AReturnExpr___init_areturnexpr( variable4 /*tkwreturnnode2*/,  variable5 /*pexprnode3*/); /*new AReturnExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction426___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction426::init (src/parser//parser.nit:14348,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction426].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction426].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction427___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction427::action (src/parser//parser.nit:14352,2--14362:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14357,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ABreakExpr___init_abreakexpr( variable3 /*tkwbreaknode2*/); /*new ABreakExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction427___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction427::init (src/parser//parser.nit:14364,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction427].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction427].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction428___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction428::action (src/parser//parser.nit:14368,2--14378:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwabortnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwabortnode2*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14373,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AAbortExpr___init_aabortexpr( variable3 /*tkwabortnode2*/); /*new AAbortExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction428___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction428::init (src/parser//parser.nit:14380,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction428].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction428].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction429___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction429::action (src/parser//parser.nit:14384,2--14394:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14389,6--44\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AContinueExpr___init_acontinueexpr( variable3 /*tkwcontinuenode2*/); /*new AContinueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction429___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction429::init (src/parser//parser.nit:14396,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction429].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction429].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction430___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction430::action (src/parser//parser.nit:14400,2--14407:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14405,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction430___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction430::init (src/parser//parser.nit:14409,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction430].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction430].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction431___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction431::action (src/parser//parser.nit:14413,2--14420:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14418,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction431___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction431::init (src/parser//parser.nit:14422,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction431].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction431].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction432___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction432::action (src/parser//parser.nit:14426,2--14433:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14431,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction432___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction432::init (src/parser//parser.nit:14435,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction432].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction432].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction433___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction433::action (src/parser//parser.nit:14439,2--14446:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14444,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction433___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction433::init (src/parser//parser.nit:14448,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction433].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction433].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction434___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction434::action (src/parser//parser.nit:14452,2--14459:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14457,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction434___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction434::init (src/parser//parser.nit:14461,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction434].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction434].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction435___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction435::action (src/parser//parser.nit:14465,2--14493:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14475,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14477,6--28\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14479,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ACallExpr___init_acallexpr( variable8 /*pexprnode2*/,  variable9 /*tidnode3*/,  variable7 /*listnode5*/); /*new ACallExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction435___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction435::init (src/parser//parser.nit:14495,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction435].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction435].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction436___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction436::action (src/parser//parser.nit:14499,2--14524:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14508,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14510,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___ACallExpr___init_acallexpr( variable5 /*pexprnode2*/,  variable6 /*tidnode3*/,  variable4 /*listnode5*/); /*new ACallExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction436___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction436::init (src/parser//parser.nit:14526,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction436].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction436].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction437___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction437::action (src/parser//parser.nit:14530,2--14553:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14537,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14539,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction437___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction437::init (src/parser//parser.nit:14555,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction437].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction437].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction438___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction438::action (src/parser//parser.nit:14559,2--14585:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14567,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14569,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14571,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction438___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction438::init (src/parser//parser.nit:14587,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction438].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction438].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction439___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction439::action (src/parser//parser.nit:14591,2--14619:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14601,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14603,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14605,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable8 /*pexprnode2*/,  variable9 /*tkwinitnode3*/,  variable7 /*listnode5*/); /*new AInitExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction439___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction439::init (src/parser//parser.nit:14621,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction439].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction439].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction440___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction440::action (src/parser//parser.nit:14625,2--14650:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14634,6--36\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14636,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable5 /*pexprnode2*/,  variable6 /*tkwinitnode3*/,  variable4 /*listnode5*/); /*new AInitExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction440___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction440::init (src/parser//parser.nit:14652,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction440].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction440].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction441___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction441::action (src/parser//parser.nit:14656,2--14670:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tkwdonode2*/==NIT_NULL) || VAL_ISA( variable4 /*tkwdonode2*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14662,6--32\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14664,6--32\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___ADoExpr___init_adoexpr( variable4 /*tkwdonode2*/,  variable5 /*pexprnode3*/); /*new ADoExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(77)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction441___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction441::init (src/parser//parser.nit:14672,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction441].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction441].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction442___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction442::action (src/parser//parser.nit:14676,2--14702:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable10 =  variable9 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14688,6--32\n"); nit_exit(1);}
+  variable11 =  variable7 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14690,6--32\n"); nit_exit(1);}
+  variable12 =  variable4 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable12 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14692,6--32\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist8*/;
+  variable14 = TAG_Bool(( variable13 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable13 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14694,6--32\n"); nit_exit(1);}
+  variable15 = NEW_parser_prod___AIfExpr___init_aifexpr( variable10 /*tkwifnode2*/,  variable11 /*pexprnode3*/,  variable12 /*pexprnode4*/,  variable13 /*pexprnode5*/); /*new AIfExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction442___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction442::init (src/parser//parser.nit:14704,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction442].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction442].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction443___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction443::action (src/parser//parser.nit:14708,2--14732:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable8 =  variable7 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*tkwwhilenode2*/==NIT_NULL) || VAL_ISA( variable8 /*tkwwhilenode2*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14718,6--38\n"); nit_exit(1);}
+  variable9 =  variable5 /*nodearraylist3*/;
+  variable10 = TAG_Bool(( variable9 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable9 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14720,6--32\n"); nit_exit(1);}
+  variable10 =  variable3 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*tkwdonode4*/==NIT_NULL) || VAL_ISA( variable10 /*tkwdonode4*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14722,6--32\n"); nit_exit(1);}
+  variable11 =  variable2 /*nodearraylist6*/;
+  variable12 = TAG_Bool(( variable11 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable11 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14724,6--32\n"); nit_exit(1);}
+  variable13 = NEW_parser_prod___AWhileExpr___init_awhileexpr( variable8 /*tkwwhilenode2*/,  variable9 /*pexprnode3*/,  variable10 /*tkwdonode4*/,  variable11 /*pexprnode5*/); /*new AWhileExpr*/
+  variable12 = variable13;
+  variable1 =  variable12 /*pexprnode1*/ /*node_list=*/;
+  variable13 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable13,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction443___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction443::init (src/parser//parser.nit:14734,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction443].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction443].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction444___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction444::action (src/parser//parser.nit:14738,2--14757:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14746,6--32\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist3*/;
+  variable8 = TAG_Bool(( variable7 /*tkwdonode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwdonode3*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14748,6--32\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist4*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14750,6--32\n"); nit_exit(1);}
+  variable10 = NEW_parser_prod___AForExpr___init_aforexpr( variable6 /*pexprnode2*/,  variable7 /*tkwdonode3*/,  variable8 /*pexprnode4*/); /*new AForExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction444___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction444::init (src/parser//parser.nit:14759,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction444].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction444].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction445___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction445::action (src/parser//parser.nit:14763,2--14775:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14769,6--38\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AType___init_atype( variable4 /*tclassidnode2*/,  variable3 /*listnode3*/); /*new AType*/
+  variable5 = variable6;
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction445___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction445::init (src/parser//parser.nit:14777,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction445].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction445].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction446___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction446::action (src/parser//parser.nit:14781,2--14807:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable8 = variable9;
+  variable9 =  variable7 /*nodearraylist1*/;
+  variable10 = TAG_Bool(( variable9 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable9 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14792,6--38\n"); nit_exit(1);}
+  variable10 =  variable4 /*nodearraylist4*/;
+  variable11 = TAG_Bool(( variable10 /*listnode3*/==NIT_NULL) || VAL_ISA( variable10 /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14794,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode3*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode3*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable8 /*listnode4*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable8 =  variable10 /*listnode3*/ /*listnode4=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable8 /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable8 /*listnode4*/,  variable10 /*listnode3*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AType___init_atype( variable9 /*tclassidnode2*/,  variable8 /*listnode4*/); /*new AType*/
+  variable11 = variable12;
+  variable1 =  variable11 /*ptypenode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction446___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction446::init (src/parser//parser.nit:14809,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction446].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction446].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction447___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction447::action (src/parser//parser.nit:14813,2--14820:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14818,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction447___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction447::init (src/parser//parser.nit:14822,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction447].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction447].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction448___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction448::action (src/parser//parser.nit:14826,2--14861:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable13 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14841,6--32\n"); nit_exit(1);}
+  variable14 =  variable10 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14843,6--32\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwthennode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwthennode4*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14845,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14847,6--32\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tkwelsenode6*/==NIT_NULL) || VAL_ISA( variable17 /*tkwelsenode6*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14849,6--36\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist11*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14851,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AIfexprExpr___init_aifexprexpr( variable13 /*tkwifnode2*/,  variable14 /*pexprnode3*/,  variable15 /*tkwthennode4*/,  variable16 /*pexprnode5*/,  variable17 /*tkwelsenode6*/,  variable18 /*pexprnode7*/); /*new AIfexprExpr*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pexprnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction448___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction448::init (src/parser//parser.nit:14863,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction448].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction448].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction449___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction449::action (src/parser//parser.nit:14867,2--14874:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14872,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction449___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction449::init (src/parser//parser.nit:14876,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction449].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction449].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction450___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction450::action (src/parser//parser.nit:14880,2--14896:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14888,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14890,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AOrExpr___init_aorexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AOrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction450___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction450::init (src/parser//parser.nit:14898,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction450].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction450].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction451___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction451::action (src/parser//parser.nit:14902,2--14918:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14910,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14912,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAndExpr___init_aandexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AAndExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction451___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction451::init (src/parser//parser.nit:14920,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction451].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction451].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction452___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction452::action (src/parser//parser.nit:14924,2--14931:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14929,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction452___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction452::init (src/parser//parser.nit:14933,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction452].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction452].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction453___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction453::action (src/parser//parser.nit:14937,2--14952:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14944,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14946,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___ANotExpr___init_anotexpr( variable5 /*tkwnotnode2*/,  variable6 /*pexprnode3*/); /*new ANotExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction453___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction453::init (src/parser//parser.nit:14954,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction453].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction453].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction454___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction454::action (src/parser//parser.nit:14958,2--14965:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14963,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction454___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction454::init (src/parser//parser.nit:14967,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction454].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction454].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction455___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction455::action (src/parser//parser.nit:14971,2--14987:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14979,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:14981,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEqExpr___init_aeqexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEqExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction455___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction455::init (src/parser//parser.nit:14989,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction455].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction455].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction456___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction456::action (src/parser//parser.nit:14993,2--15009:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15001,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15003,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEeExpr___init_aeeexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction456___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction456::init (src/parser//parser.nit:15011,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction456].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction456].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction457___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction457::action (src/parser//parser.nit:15015,2--15031:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15023,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15025,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ANeExpr___init_aneexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ANeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction457___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction457::init (src/parser//parser.nit:15033,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction457].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction457].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction458___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction458::action (src/parser//parser.nit:15037,2--15053:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15045,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15047,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALtExpr___init_altexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction458___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction458::init (src/parser//parser.nit:15055,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction458].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction458].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction459___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction459::action (src/parser//parser.nit:15059,2--15075:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15067,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15069,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALeExpr___init_aleexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction459___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction459::init (src/parser//parser.nit:15077,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction459].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction459].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction460___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction460::action (src/parser//parser.nit:15081,2--15097:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15089,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15091,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGtExpr___init_agtexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction460___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction460::init (src/parser//parser.nit:15099,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction460].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction460].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction461___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction461::action (src/parser//parser.nit:15103,2--15119:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15111,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15113,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGeExpr___init_ageexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction461___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction461::init (src/parser//parser.nit:15121,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction461].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction461].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction462___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction462::action (src/parser//parser.nit:15125,2--15141:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15133,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15135,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarshipExpr___init_astarshipexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarshipExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction462___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction462::init (src/parser//parser.nit:15143,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction462].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction462].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction463___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction463::action (src/parser//parser.nit:15147,2--15163:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15155,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15157,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AIsaExpr___init_aisaexpr( variable6 /*pexprnode2*/,  variable7 /*ptypenode3*/); /*new AIsaExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction463___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction463::init (src/parser//parser.nit:15165,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction463].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction463].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction464___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction464::action (src/parser//parser.nit:15169,2--15176:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15174,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction464___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction464::init (src/parser//parser.nit:15178,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction464].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction464].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction465___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction465::action (src/parser//parser.nit:15182,2--15198:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15190,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15192,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APlusExpr___init_aplusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APlusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction465___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction465::init (src/parser//parser.nit:15200,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction465].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction465].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction466___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction466::action (src/parser//parser.nit:15204,2--15220:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15212,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15214,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AMinusExpr___init_aminusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AMinusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction466___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction466::init (src/parser//parser.nit:15222,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction466].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction466].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction467___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction467::action (src/parser//parser.nit:15226,2--15233:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15231,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction467___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction467::init (src/parser//parser.nit:15235,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction467].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction467].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction468___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction468::action (src/parser//parser.nit:15239,2--15255:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15247,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15249,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarExpr___init_astarexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction468___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction468::init (src/parser//parser.nit:15257,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction468].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction468].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction469___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction469::action (src/parser//parser.nit:15261,2--15277:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15269,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15271,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ASlashExpr___init_aslashexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ASlashExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction469___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction469::init (src/parser//parser.nit:15279,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction469].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction469].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction470___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction470::action (src/parser//parser.nit:15283,2--15299:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15291,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15293,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APercentExpr___init_apercentexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APercentExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction470___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction470::init (src/parser//parser.nit:15301,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction470].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction470].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction471___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction471::action (src/parser//parser.nit:15305,2--15312:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15310,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction471___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction471::init (src/parser//parser.nit:15314,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction471].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction471].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction472___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction472::action (src/parser//parser.nit:15318,2--15333:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15325,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15327,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AUminusExpr___init_auminusexpr( variable5 /*tminusnode2*/,  variable6 /*pexprnode3*/); /*new AUminusExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction472___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction472::init (src/parser//parser.nit:15335,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction472].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction472].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction473___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction473::action (src/parser//parser.nit:15339,2--15354:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15346,6--36\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15348,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AOnceExpr___init_aonceexpr( variable5 /*tkwoncenode2*/,  variable6 /*pexprnode3*/); /*new AOnceExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction473___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction473::init (src/parser//parser.nit:15356,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction473].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction473].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction474___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction474::action (src/parser//parser.nit:15360,2--15367:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15365,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction474___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction474::init (src/parser//parser.nit:15369,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction474].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction474].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction475___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction475::action (src/parser//parser.nit:15373,2--15401:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable7 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15382,6--34\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable8 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15384,6--32\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15386,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ANewExpr___init_anewexpr( variable7 /*tkwnewnode2*/,  variable8 /*ptypenode3*/,  NIT_NULL /*null*/,  variable6 /*listnode6*/); /*new ANewExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction475___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction475::init (src/parser//parser.nit:15403,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction475].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction475].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction476___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction476::action (src/parser//parser.nit:15407,2--15423:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15415,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable7 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15417,6--36\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable6 /*pexprnode2*/,  variable7 /*tattridnode3*/); /*new AAttrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction476___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction476::init (src/parser//parser.nit:15425,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction476].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction476].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction477___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction477::action (src/parser//parser.nit:15429,2--15442:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable4 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15436,6--36\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable3 /*pexprnode2*/,  variable4 /*tattridnode3*/); /*new AAttrExpr*/
+  variable5 = variable6;
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction477___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction477::init (src/parser//parser.nit:15444,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction477].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction477].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction478___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction478::action (src/parser//parser.nit:15448,2--15476:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15458,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15460,6--28\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15462,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___ACallExpr___init_acallexpr( variable8 /*pexprnode2*/,  variable9 /*tidnode3*/,  variable7 /*listnode5*/); /*new ACallExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction478___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction478::init (src/parser//parser.nit:15478,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction478].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction478].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction479___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction479::action (src/parser//parser.nit:15482,2--15507:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15491,6--28\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15493,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___ACallExpr___init_acallexpr( variable5 /*pexprnode2*/,  variable6 /*tidnode3*/,  variable4 /*listnode5*/); /*new ACallExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction479___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction479::init (src/parser//parser.nit:15509,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction479].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction479].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction480___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction480::action (src/parser//parser.nit:15513,2--15536:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15520,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15522,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction480___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction480::init (src/parser//parser.nit:15538,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction480].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction480].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction481___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction481::action (src/parser//parser.nit:15542,2--15568:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15550,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15552,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15554,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction481___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction481::init (src/parser//parser.nit:15570,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction481].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction481].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction482___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction482::action (src/parser//parser.nit:15574,2--15602:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable7 = variable8;
+  variable8 =  variable6 /*nodearraylist1*/;
+  variable9 = TAG_Bool(( variable8 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable8 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15584,6--32\n"); nit_exit(1);}
+  variable9 =  variable3 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable9 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15586,6--36\n"); nit_exit(1);}
+  variable10 =  variable2 /*nodearraylist5*/;
+  variable11 = TAG_Bool(( variable10 /*listnode4*/==NIT_NULL) || VAL_ISA( variable10 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15588,6--38\n"); nit_exit(1);}
+  variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable10 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable10 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable10 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable10 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable11)) { /*if*/
+    variable11 = ((array___AbstractArray___is_empty_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable7 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable7 =  variable10 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable7 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable7 /*listnode5*/,  variable10 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable12 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable8 /*pexprnode2*/,  variable9 /*tkwinitnode3*/,  variable7 /*listnode5*/); /*new AInitExpr*/
+  variable11 = variable12;
+  variable1 =  variable11 /*pexprnode1*/ /*node_list=*/;
+  variable12 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable12,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction482___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction482::init (src/parser//parser.nit:15604,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction482].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction482].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction483___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction483::action (src/parser//parser.nit:15608,2--15633:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable6 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable5 = variable6;
+  variable6 =  variable3 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable6 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15617,6--36\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*listnode4*/==NIT_NULL) || VAL_ISA( variable7 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15619,6--38\n"); nit_exit(1);}
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable7 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable7 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable4 =  variable7 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable7 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable9 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable5 /*pexprnode2*/,  variable6 /*tkwinitnode3*/,  variable4 /*listnode5*/); /*new AInitExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction483___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction483::init (src/parser//parser.nit:15635,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction483].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction483].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction484___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction484::action (src/parser//parser.nit:15639,2--15672:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15651,6--34\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15653,6--32\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15655,6--28\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*listnode5*/==NIT_NULL) || VAL_ISA( variable13 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15657,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable9 =  variable13 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode6*/,  variable13 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ANewExpr___init_anewexpr( variable10 /*tkwnewnode2*/,  variable11 /*ptypenode3*/,  variable12 /*tidnode4*/,  variable9 /*listnode6*/); /*new ANewExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction484___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction484::init (src/parser//parser.nit:15674,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction484].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction484].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction485___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction485::action (src/parser//parser.nit:15678,2--15688:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15683,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ASelfExpr___init_aselfexpr( variable3 /*tkwselfnode2*/); /*new ASelfExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction485___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction485::init (src/parser//parser.nit:15690,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction485].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction485].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction486___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction486::action (src/parser//parser.nit:15694,2--15704:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15699,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ATrueExpr___init_atrueexpr( variable3 /*tkwtruenode2*/); /*new ATrueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction486___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction486::init (src/parser//parser.nit:15706,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction486].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction486].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction487___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction487::action (src/parser//parser.nit:15710,2--15720:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15715,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFalseExpr___init_afalseexpr( variable3 /*tkwfalsenode2*/); /*new AFalseExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction487___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction487::init (src/parser//parser.nit:15722,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction487].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction487].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction488___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction488::action (src/parser//parser.nit:15726,2--15736:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15731,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ANullExpr___init_anullexpr( variable3 /*tkwnullnode2*/); /*new ANullExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction488___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction488::init (src/parser//parser.nit:15738,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction488].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction488].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction489___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction489::action (src/parser//parser.nit:15742,2--15752:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable3 /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15747,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AIntExpr___init_aintexpr( variable3 /*tnumbernode2*/); /*new AIntExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction489___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction489::init (src/parser//parser.nit:15754,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction489].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction489].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction490___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction490::action (src/parser//parser.nit:15758,2--15768:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15763,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFloatExpr___init_afloatexpr( variable3 /*tfloatnode2*/); /*new AFloatExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction490___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction490::init (src/parser//parser.nit:15770,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction490].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction490].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction491___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction491::action (src/parser//parser.nit:15774,2--15784:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15779,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ACharExpr___init_acharexpr( variable3 /*tcharnode2*/); /*new ACharExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction491___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction491::init (src/parser//parser.nit:15786,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction491].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction491].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction492___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction492::action (src/parser//parser.nit:15790,2--15800:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15795,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStringExpr___init_astringexpr( variable3 /*tstringnode2*/); /*new AStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction492___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction492::init (src/parser//parser.nit:15802,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction492].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction492].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction493___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction493::action (src/parser//parser.nit:15806,2--15813:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15811,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction493___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction493::init (src/parser//parser.nit:15815,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction493].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction493].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction494___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction494::action (src/parser//parser.nit:15819,2--15831:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable4 /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15825,6--38\n"); nit_exit(1);}
+  variable6 = NEW_parser_prod___AType___init_atype( variable4 /*tclassidnode2*/,  variable3 /*listnode3*/); /*new AType*/
+  variable5 = variable6;
+  variable1 =  variable5 /*ptypenode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(91)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction494___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction494::init (src/parser//parser.nit:15833,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction494].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction494].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction495___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction495::action (src/parser//parser.nit:15837,2--15844:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15842,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(92)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction495___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction495::init (src/parser//parser.nit:15846,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction495].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction495].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction496___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction496::action (src/parser//parser.nit:15850,2--15885:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  val_t variable16;
+  val_t variable17;
+  val_t variable18;
+  val_t variable19;
+  val_t variable20;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable9 = variable10;
+  variable11 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable10 = variable11;
+  variable12 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable11 = variable12;
+  variable13 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable12 = variable13;
+  variable13 =  variable12 /*nodearraylist1*/;
+  variable14 = TAG_Bool(( variable13 /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable13 /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15865,6--32\n"); nit_exit(1);}
+  variable14 =  variable10 /*nodearraylist3*/;
+  variable15 = TAG_Bool(( variable14 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable14 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15867,6--32\n"); nit_exit(1);}
+  variable15 =  variable8 /*nodearraylist5*/;
+  variable16 = TAG_Bool(( variable15 /*tkwthennode4*/==NIT_NULL) || VAL_ISA( variable15 /*tkwthennode4*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+  if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15869,6--36\n"); nit_exit(1);}
+  variable16 =  variable6 /*nodearraylist7*/;
+  variable17 = TAG_Bool(( variable16 /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable16 /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable17)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15871,6--32\n"); nit_exit(1);}
+  variable17 =  variable4 /*nodearraylist9*/;
+  variable18 = TAG_Bool(( variable17 /*tkwelsenode6*/==NIT_NULL) || VAL_ISA( variable17 /*tkwelsenode6*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+  if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15873,6--36\n"); nit_exit(1);}
+  variable18 =  variable2 /*nodearraylist11*/;
+  variable19 = TAG_Bool(( variable18 /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable18 /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15875,6--32\n"); nit_exit(1);}
+  variable20 = NEW_parser_prod___AIfexprExpr___init_aifexprexpr( variable13 /*tkwifnode2*/,  variable14 /*pexprnode3*/,  variable15 /*tkwthennode4*/,  variable16 /*pexprnode5*/,  variable17 /*tkwelsenode6*/,  variable18 /*pexprnode7*/); /*new AIfexprExpr*/
+  variable19 = variable20;
+  variable1 =  variable19 /*pexprnode1*/ /*node_list=*/;
+  variable20 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(92)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable20,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction496___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction496::init (src/parser//parser.nit:15887,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction496].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction496].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction497___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction497::action (src/parser//parser.nit:15891,2--15898:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15896,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(93)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction497___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction497::init (src/parser//parser.nit:15900,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction497].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction497].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction498___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction498::action (src/parser//parser.nit:15904,2--15920:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15912,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15914,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AOrExpr___init_aorexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AOrExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(93)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction498___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction498::init (src/parser//parser.nit:15922,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction498].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction498].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction499___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction499::action (src/parser//parser.nit:15926,2--15942:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15934,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15936,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AAndExpr___init_aandexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AAndExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(93)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction499___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction499::init (src/parser//parser.nit:15944,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction499].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction499].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction500___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction500::action (src/parser//parser.nit:15948,2--15955:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15953,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction500___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction500::init (src/parser//parser.nit:15957,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction500].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction500].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction501___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction501::action (src/parser//parser.nit:15961,2--15976:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15968,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15970,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___ANotExpr___init_anotexpr( variable5 /*tkwnotnode2*/,  variable6 /*pexprnode3*/); /*new ANotExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction501___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction501::init (src/parser//parser.nit:15978,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction501].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction501].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction502___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction502::action (src/parser//parser.nit:15982,2--15989:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:15987,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction502___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction502::init (src/parser//parser.nit:15991,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction502].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction502].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction503___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction503::action (src/parser//parser.nit:15995,2--16011:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16003,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16005,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEqExpr___init_aeqexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEqExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction503___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction503::init (src/parser//parser.nit:16013,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction503].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction503].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction504___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction504::action (src/parser//parser.nit:16017,2--16033:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16025,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16027,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AEeExpr___init_aeeexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AEeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction504___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction504::init (src/parser//parser.nit:16035,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction504].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction504].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction505___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction505::action (src/parser//parser.nit:16039,2--16055:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16047,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16049,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ANeExpr___init_aneexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ANeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction505___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction505::init (src/parser//parser.nit:16057,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction505].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction505].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction506___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction506::action (src/parser//parser.nit:16061,2--16077:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16069,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16071,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALtExpr___init_altexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction506___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction506::init (src/parser//parser.nit:16079,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction506].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction506].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction507___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction507::action (src/parser//parser.nit:16083,2--16099:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16091,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16093,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ALeExpr___init_aleexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ALeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction507___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction507::init (src/parser//parser.nit:16101,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction507].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction507].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction508___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction508::action (src/parser//parser.nit:16105,2--16121:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16113,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16115,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGtExpr___init_agtexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGtExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction508___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction508::init (src/parser//parser.nit:16123,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction508].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction508].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction509___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction509::action (src/parser//parser.nit:16127,2--16143:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16135,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16137,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AGeExpr___init_ageexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AGeExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction509___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction509::init (src/parser//parser.nit:16145,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction509].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction509].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction510___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction510::action (src/parser//parser.nit:16149,2--16165:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16157,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16159,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarshipExpr___init_astarshipexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarshipExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction510___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction510::init (src/parser//parser.nit:16167,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction510].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction510].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction511___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction511::action (src/parser//parser.nit:16171,2--16187:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16179,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable7 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16181,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AIsaExpr___init_aisaexpr( variable6 /*pexprnode2*/,  variable7 /*ptypenode3*/); /*new AIsaExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction511___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction511::init (src/parser//parser.nit:16189,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction511].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction511].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction512___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction512::action (src/parser//parser.nit:16193,2--16200:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16198,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction512___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction512::init (src/parser//parser.nit:16202,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction512].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction512].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction513___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction513::action (src/parser//parser.nit:16206,2--16222:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16214,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16216,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APlusExpr___init_aplusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APlusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction513___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction513::init (src/parser//parser.nit:16224,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction513].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction513].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction514___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction514::action (src/parser//parser.nit:16228,2--16244:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16236,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16238,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AMinusExpr___init_aminusexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AMinusExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction514___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction514::init (src/parser//parser.nit:16246,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction514].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction514].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction515___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction515::action (src/parser//parser.nit:16250,2--16257:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16255,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction515___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction515::init (src/parser//parser.nit:16259,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction515].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction515].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction516___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction516::action (src/parser//parser.nit:16263,2--16279:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16271,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16273,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___AStarExpr___init_astarexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new AStarExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction516___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction516::init (src/parser//parser.nit:16281,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction516].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction516].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction517___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction517::action (src/parser//parser.nit:16285,2--16301:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16293,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16295,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___ASlashExpr___init_aslashexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new ASlashExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction517___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction517::init (src/parser//parser.nit:16303,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction517].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction517].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction518___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction518::action (src/parser//parser.nit:16307,2--16323:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable6 =  variable5 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16315,6--32\n"); nit_exit(1);}
+  variable7 =  variable2 /*nodearraylist4*/;
+  variable8 = TAG_Bool(( variable7 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable7 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16317,6--32\n"); nit_exit(1);}
+  variable9 = NEW_parser_prod___APercentExpr___init_apercentexpr( variable6 /*pexprnode2*/,  variable7 /*pexprnode3*/); /*new APercentExpr*/
+  variable8 = variable9;
+  variable1 =  variable8 /*pexprnode1*/ /*node_list=*/;
+  variable9 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable9,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction518___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction518::init (src/parser//parser.nit:16325,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction518].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction518].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction519___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction519::action (src/parser//parser.nit:16329,2--16336:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16334,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction519___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction519::init (src/parser//parser.nit:16338,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction519].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction519].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction520___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction520::action (src/parser//parser.nit:16342,2--16357:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable5 /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16349,6--34\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16351,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AUminusExpr___init_auminusexpr( variable5 /*tminusnode2*/,  variable6 /*pexprnode3*/); /*new AUminusExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction520___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction520::init (src/parser//parser.nit:16359,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction520].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction520].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction521___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction521::action (src/parser//parser.nit:16363,2--16378:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable5 /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16370,6--36\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist3*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16372,6--32\n"); nit_exit(1);}
+  variable8 = NEW_parser_prod___AOnceExpr___init_aonceexpr( variable5 /*tkwoncenode2*/,  variable6 /*pexprnode3*/); /*new AOnceExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction521___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction521::init (src/parser//parser.nit:16380,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction521].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction521].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction522___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction522::action (src/parser//parser.nit:16384,2--16391:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16389,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction522___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction522::init (src/parser//parser.nit:16393,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction522].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction522].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction523___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction523::action (src/parser//parser.nit:16397,2--16425:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable6 = variable7;
+  variable7 =  variable5 /*nodearraylist1*/;
+  variable8 = TAG_Bool(( variable7 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable7 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16406,6--34\n"); nit_exit(1);}
+  variable8 =  variable3 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable8 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16408,6--32\n"); nit_exit(1);}
+  variable9 =  variable2 /*nodearraylist4*/;
+  variable10 = TAG_Bool(( variable9 /*listnode5*/==NIT_NULL) || VAL_ISA( variable9 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16410,6--38\n"); nit_exit(1);}
+  variable10 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable9 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable9 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable9 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable9 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable10)) { /*if*/
+    variable10 = ((array___AbstractArray___is_empty_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable6 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable10)) { /*if*/
+      variable6 =  variable9 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable6 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable6 /*listnode6*/,  variable9 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable11 = NEW_parser_prod___ANewExpr___init_anewexpr( variable7 /*tkwnewnode2*/,  variable8 /*ptypenode3*/,  NIT_NULL /*null*/,  variable6 /*listnode6*/); /*new ANewExpr*/
+  variable10 = variable11;
+  variable1 =  variable10 /*pexprnode1*/ /*node_list=*/;
+  variable11 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable11,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction523___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction523::init (src/parser//parser.nit:16427,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction523].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction523].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction524___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction524::action (src/parser//parser.nit:16431,2--16445:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable4 =  variable3 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16437,6--32\n"); nit_exit(1);}
+  variable5 =  variable2 /*nodearraylist2*/;
+  variable6 = TAG_Bool(( variable5 /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable5 /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16439,6--36\n"); nit_exit(1);}
+  variable7 = NEW_parser_prod___AAttrExpr___init_aattrexpr( variable4 /*pexprnode2*/,  variable5 /*tattridnode3*/); /*new AAttrExpr*/
+  variable6 = variable7;
+  variable1 =  variable6 /*pexprnode1*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction524___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction524::init (src/parser//parser.nit:16447,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction524].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction524].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction525___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction525::action (src/parser//parser.nit:16451,2--16477:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16459,6--32\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tidnode3*/==NIT_NULL) || VAL_ISA( variable7 /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16461,6--28\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16463,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ACallExpr___init_acallexpr( variable6 /*pexprnode2*/,  variable7 /*tidnode3*/,  variable5 /*listnode5*/); /*new ACallExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction525___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction525::init (src/parser//parser.nit:16479,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction525].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction525].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction526___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction526::action (src/parser//parser.nit:16483,2--16506:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable5 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16490,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode4*/==NIT_NULL) || VAL_ISA( variable6 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16492,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode5*/,  variable6 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable8 = NEW_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable5 /*tkwsupernode3*/,  variable4 /*listnode5*/); /*new ASuperExpr*/
+  variable7 = variable8;
+  variable1 =  variable7 /*pexprnode1*/ /*node_list=*/;
+  variable8 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable8,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction526___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction526::init (src/parser//parser.nit:16508,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction526].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction526].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction527___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction527::action (src/parser//parser.nit:16512,2--16538:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable6 /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16520,6--42\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16522,6--38\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16524,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___ASuperExpr___init_asuperexpr( variable6 /*pqualifiednode2*/,  variable7 /*tkwsupernode3*/,  variable5 /*listnode5*/); /*new ASuperExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction527___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction527::init (src/parser//parser.nit:16540,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction527].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction527].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction528___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction528::action (src/parser//parser.nit:16544,2--16570:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable5 = variable6;
+  variable6 =  variable4 /*nodearraylist1*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16552,6--32\n"); nit_exit(1);}
+  variable7 =  variable3 /*nodearraylist2*/;
+  variable8 = TAG_Bool(( variable7 /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable7 /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16554,6--36\n"); nit_exit(1);}
+  variable8 =  variable2 /*nodearraylist3*/;
+  variable9 = TAG_Bool(( variable8 /*listnode4*/==NIT_NULL) || VAL_ISA( variable8 /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16556,6--38\n"); nit_exit(1);}
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable8 /*listnode4*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable8 /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable8 /*listnode4*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    variable9 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*listnode5*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable9)) { /*if*/
+      variable5 =  variable8 /*listnode4*/ /*listnode5=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable5 /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable5 /*listnode5*/,  variable8 /*listnode4*/) /*Array::append*/;
+    }
+  }
+  variable10 = NEW_parser_prod___AInitExpr___init_ainitexpr( variable6 /*pexprnode2*/,  variable7 /*tkwinitnode3*/,  variable5 /*listnode5*/); /*new AInitExpr*/
+  variable9 = variable10;
+  variable1 =  variable9 /*pexprnode1*/ /*node_list=*/;
+  variable10 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable10,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction528___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction528::init (src/parser//parser.nit:16572,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction528].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction528].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction529___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction529::action (src/parser//parser.nit:16576,2--16609:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable6 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable5 = variable6;
+  variable7 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable6 = variable7;
+  variable8 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable7 = variable8;
+  variable9 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable8 = variable9;
+  variable10 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable9 = variable10;
+  variable10 =  variable8 /*nodearraylist1*/;
+  variable11 = TAG_Bool(( variable10 /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable10 /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+  if (!UNTAG_Bool(variable11)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16588,6--34\n"); nit_exit(1);}
+  variable11 =  variable6 /*nodearraylist3*/;
+  variable12 = TAG_Bool(( variable11 /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable11 /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable12)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16590,6--32\n"); nit_exit(1);}
+  variable12 =  variable3 /*nodearraylist6*/;
+  variable13 = TAG_Bool(( variable12 /*tidnode4*/==NIT_NULL) || VAL_ISA( variable12 /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable13)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16592,6--28\n"); nit_exit(1);}
+  variable13 =  variable2 /*nodearraylist7*/;
+  variable14 = TAG_Bool(( variable13 /*listnode5*/==NIT_NULL) || VAL_ISA( variable13 /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable14)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16594,6--38\n"); nit_exit(1);}
+  variable14 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable13 /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable13 /*listnode5*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable13 /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable13 /*listnode5*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable14)) { /*if*/
+    variable14 = ((array___AbstractArray___is_empty_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable9 /*listnode6*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable9 =  variable13 /*listnode5*/ /*listnode6=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable9 /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable9 /*listnode6*/,  variable13 /*listnode5*/) /*Array::append*/;
+    }
+  }
+  variable15 = NEW_parser_prod___ANewExpr___init_anewexpr( variable10 /*tkwnewnode2*/,  variable11 /*ptypenode3*/,  variable12 /*tidnode4*/,  variable9 /*listnode6*/); /*new ANewExpr*/
+  variable14 = variable15;
+  variable1 =  variable14 /*pexprnode1*/ /*node_list=*/;
+  variable15 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable15,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction529___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction529::init (src/parser//parser.nit:16611,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction529].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction529].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction530___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction530::action (src/parser//parser.nit:16615,2--16625:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16620,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ASelfExpr___init_aselfexpr( variable3 /*tkwselfnode2*/); /*new ASelfExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction530___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction530::init (src/parser//parser.nit:16627,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction530].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction530].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction531___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction531::action (src/parser//parser.nit:16631,2--16641:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16636,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ATrueExpr___init_atrueexpr( variable3 /*tkwtruenode2*/); /*new ATrueExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction531___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction531::init (src/parser//parser.nit:16643,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction531].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction531].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction532___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction532::action (src/parser//parser.nit:16647,2--16657:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16652,6--38\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFalseExpr___init_afalseexpr( variable3 /*tkwfalsenode2*/); /*new AFalseExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction532___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction532::init (src/parser//parser.nit:16659,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction532].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction532].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction533___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction533::action (src/parser//parser.nit:16663,2--16673:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16668,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ANullExpr___init_anullexpr( variable3 /*tkwnullnode2*/); /*new ANullExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction533___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction533::init (src/parser//parser.nit:16675,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction533].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction533].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction534___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction534::action (src/parser//parser.nit:16679,2--16689:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable3 /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16684,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AIntExpr___init_aintexpr( variable3 /*tnumbernode2*/); /*new AIntExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction534___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction534::init (src/parser//parser.nit:16691,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction534].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction534].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction535___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction535::action (src/parser//parser.nit:16695,2--16705:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16700,6--34\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AFloatExpr___init_afloatexpr( variable3 /*tfloatnode2*/); /*new AFloatExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction535___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction535::init (src/parser//parser.nit:16707,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction535].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction535].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction536___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction536::action (src/parser//parser.nit:16711,2--16721:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16716,6--32\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___ACharExpr___init_acharexpr( variable3 /*tcharnode2*/); /*new ACharExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction536___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction536::init (src/parser//parser.nit:16723,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction536].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction536].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction537___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction537::action (src/parser//parser.nit:16727,2--16737:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable3 /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16732,6--36\n"); nit_exit(1);}
+  variable5 = NEW_parser_prod___AStringExpr___init_astringexpr( variable3 /*tstringnode2*/); /*new AStringExpr*/
+  variable4 = variable5;
+  variable1 =  variable4 /*pexprnode1*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction537___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction537::init (src/parser//parser.nit:16739,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction537].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction537].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction538___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction538::action (src/parser//parser.nit:16743,2--16750:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable3 =  variable2 /*nodearraylist1*/;
+  variable4 = TAG_Bool(( variable3 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable3 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16748,6--32\n"); nit_exit(1);}
+  variable1 =  variable3 /*pexprnode1*/ /*node_list=*/;
+  variable4 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable4,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction538___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction538::init (src/parser//parser.nit:16752,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction538].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction538].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction539___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction539::action (src/parser//parser.nit:16756,2--16765:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable4 = variable5;
+  variable5 =  variable4 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable5 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16763,6--32\n"); nit_exit(1);}
+  variable1 =  variable5 /*pexprnode1*/ /*node_list=*/;
+  variable6 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable6,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction539___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction539::init (src/parser//parser.nit:16767,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction539].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction539].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction540___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction540::action (src/parser//parser.nit:16771,2--16777:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
+  variable2 = variable3;
+  variable1 =  variable2 /*pexprnode1*/ /*node_list=*/;
+  variable3 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable3,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction540___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction540::init (src/parser//parser.nit:16779,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction540].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction540].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction541___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction541::action (src/parser//parser.nit:16783,2--16794:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pimportnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pimportnode1*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16789,6--36\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pimportnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pimportnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pimportnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pimportnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pimportnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pimportnode1*/,  NIT_NULL /*null*/) /*PImport::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pimportnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction541___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction541::init (src/parser//parser.nit:16796,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction541].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction541].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction542___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction542::action (src/parser//parser.nit:16800,2--16821:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16807,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pimportnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pimportnode2*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16809,6--36\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pimportnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pimportnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pimportnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pimportnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pimportnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pimportnode2*/,  NIT_NULL /*null*/) /*PImport::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pimportnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction542___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction542::init (src/parser//parser.nit:16823,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction542].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction542].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction543___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction543::action (src/parser//parser.nit:16827,2--16838:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pclassdefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pclassdefnode1*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16833,6--40\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pclassdefnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pclassdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pclassdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pclassdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pclassdefnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pclassdefnode1*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pclassdefnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction543___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction543::init (src/parser//parser.nit:16840,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction543].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction543].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction544___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction544::action (src/parser//parser.nit:16844,2--16865:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16851,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pclassdefnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pclassdefnode2*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16853,6--40\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pclassdefnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pclassdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pclassdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pclassdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pclassdefnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pclassdefnode2*/,  NIT_NULL /*null*/) /*PClassdef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pclassdefnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction544___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction544::init (src/parser//parser.nit:16867,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction544].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction544].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction545___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction545::action (src/parser//parser.nit:16871,2--16882:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*psuperclassnode1*/==NIT_NULL) || VAL_ISA( variable4 /*psuperclassnode1*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16877,6--44\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*psuperclassnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*psuperclassnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*psuperclassnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*psuperclassnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*psuperclassnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*psuperclassnode1*/,  NIT_NULL /*null*/) /*PSuperclass::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*psuperclassnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction545___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction545::init (src/parser//parser.nit:16884,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction545].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction545].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction546___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction546::action (src/parser//parser.nit:16888,2--16909:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16895,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*psuperclassnode2*/==NIT_NULL) || VAL_ISA( variable6 /*psuperclassnode2*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16897,6--44\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*psuperclassnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*psuperclassnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*psuperclassnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*psuperclassnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*psuperclassnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*psuperclassnode2*/,  NIT_NULL /*null*/) /*PSuperclass::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*psuperclassnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction546___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction546::init (src/parser//parser.nit:16911,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction546].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction546].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction547___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction547::action (src/parser//parser.nit:16915,2--16926:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16921,6--42\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pformaldefnode1*/,  NIT_NULL /*null*/) /*PFormaldef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pformaldefnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction547___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction547::init (src/parser//parser.nit:16928,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction547].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction547].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction548___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction548::action (src/parser//parser.nit:16932,2--16953:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16939,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pformaldefnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pformaldefnode2*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16941,6--42\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pformaldefnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pformaldefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pformaldefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pformaldefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pformaldefnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pformaldefnode2*/,  NIT_NULL /*null*/) /*PFormaldef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pformaldefnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction548___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction548::init (src/parser//parser.nit:16955,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction548].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction548].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction549___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction549::action (src/parser//parser.nit:16959,2--16970:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16965,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*ppropdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*ppropdefnode1*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*ppropdefnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction549___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction549::init (src/parser//parser.nit:16972,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction549].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction549].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction550___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction550::action (src/parser//parser.nit:16976,2--16997:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16983,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable6 /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:16985,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*ppropdefnode2*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*ppropdefnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction550___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction550::init (src/parser//parser.nit:16999,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction550].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction550].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction551___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction551::action (src/parser//parser.nit:17003,2--17014:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable4 /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17009,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*ppropdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*ppropdefnode1*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*ppropdefnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction551___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction551::init (src/parser//parser.nit:17016,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction551].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction551].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction552___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction552::action (src/parser//parser.nit:17020,2--17041:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17027,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable6 /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17029,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*ppropdefnode2*/,  NIT_NULL /*null*/) /*PPropdef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*ppropdefnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction552___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction552::init (src/parser//parser.nit:17043,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction552].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction552].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction553___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction553::action (src/parser//parser.nit:17047,2--17058:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17053,6--34\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pparamnode1*/,  NIT_NULL /*null*/) /*PParam::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pparamnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(108)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction553___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction553::init (src/parser//parser.nit:17060,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction553].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction553].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction554___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction554::action (src/parser//parser.nit:17064,2--17085:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17071,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pparamnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pparamnode2*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17073,6--34\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pparamnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pparamnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pparamnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pparamnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pparamnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pparamnode2*/,  NIT_NULL /*null*/) /*PParam::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pparamnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(108)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction554___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction554::init (src/parser//parser.nit:17087,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction554].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction554].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction555___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction555::action (src/parser//parser.nit:17091,2--17102:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable4 /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17097,6--32\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*ptypenode1*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*ptypenode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction555___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction555::init (src/parser//parser.nit:17104,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction555].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction555].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction556___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction556::action (src/parser//parser.nit:17108,2--17129:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17115,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*ptypenode2*/==NIT_NULL) || VAL_ISA( variable6 /*ptypenode2*/, COLOR_PType, ID_PType)) /*cast PType*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17117,6--32\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*ptypenode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*ptypenode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*ptypenode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*ptypenode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*ptypenode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*ptypenode2*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*ptypenode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction556___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction556::init (src/parser//parser.nit:17131,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction556].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction556].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction557___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction557::action (src/parser//parser.nit:17135,2--17146:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17141,6--32\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction557___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction557::init (src/parser//parser.nit:17148,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction557].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction557].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction558___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction558::action (src/parser//parser.nit:17152,2--17173:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17159,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17161,6--32\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction558___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction558::init (src/parser//parser.nit:17175,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction558].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction558].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction559___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction559::action (src/parser//parser.nit:17179,2--17194:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*listnode1*/==NIT_NULL) || VAL_ISA( variable4 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17185,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*listnode2*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable3 =  variable4 /*listnode1*/ /*listnode2=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___IndexedCollection___append))( variable3 /*listnode2*/,  variable4 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction559___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction559::init (src/parser//parser.nit:17196,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction559].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction559].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction560___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction560::action (src/parser//parser.nit:17200,2--17225:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17207,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*listnode2*/==NIT_NULL) || VAL_ISA( variable6 /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17209,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*listnode2*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable6 /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*listnode2*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable6 /*listnode2*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable6 /*listnode2*/) /*Array::append*/;
+    }
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction560___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction560::init (src/parser//parser.nit:17227,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction560].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction560].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction561___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction561::action (src/parser//parser.nit:17231,2--17242:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable4 /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17237,6--32\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*pexprnode1*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*pexprnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction561___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction561::init (src/parser//parser.nit:17244,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction561].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction561].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction562___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction562::action (src/parser//parser.nit:17248,2--17269:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17255,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable6 /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17257,6--32\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*pexprnode2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*pexprnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction562___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction562::init (src/parser//parser.nit:17271,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction562].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction562].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction563___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction563::action (src/parser//parser.nit:17275,2--17286:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tidnode1*/==NIT_NULL) || VAL_ISA( variable4 /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17281,6--28\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*tidnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*tidnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*tidnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*tidnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*tidnode1*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*tidnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction563___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction563::init (src/parser//parser.nit:17288,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction563].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction563].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction564___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction564::action (src/parser//parser.nit:17292,2--17313:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17299,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tidnode2*/==NIT_NULL) || VAL_ISA( variable6 /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17301,6--28\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*tidnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*tidnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*tidnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*tidnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*tidnode2*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*tidnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction564___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction564::init (src/parser//parser.nit:17315,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction564].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction564].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction565___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction565::action (src/parser//parser.nit:17319,2--17330:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*tcommentnode1*/==NIT_NULL) || VAL_ISA( variable4 /*tcommentnode1*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17325,6--38\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*tcommentnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*tcommentnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*tcommentnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*tcommentnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*tcommentnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*tcommentnode1*/,  NIT_NULL /*null*/) /*TComment::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*tcommentnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction565___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction565::init (src/parser//parser.nit:17332,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction565].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction565].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction566___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction566::action (src/parser//parser.nit:17336,2--17357:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17343,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*tcommentnode2*/==NIT_NULL) || VAL_ISA( variable6 /*tcommentnode2*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17345,6--38\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*tcommentnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*tcommentnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*tcommentnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*tcommentnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*tcommentnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*tcommentnode2*/,  NIT_NULL /*null*/) /*TComment::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*tcommentnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction566___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction566::init (src/parser//parser.nit:17359,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction566].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction566].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction567___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction567::action (src/parser//parser.nit:17363,2--17374:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable3 = variable4;
+  variable4 =  variable2 /*nodearraylist1*/;
+  variable5 = TAG_Bool(( variable4 /*teolnode1*/==NIT_NULL) || VAL_ISA( variable4 /*teolnode1*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17369,6--30\n"); nit_exit(1);}
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*teolnode1*/ ==  NIT_NULL /*null*/) || (( variable4 /*teolnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*teolnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*teolnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*teolnode1*/,COLOR_kernel___Object_____eqeq))( variable4 /*teolnode1*/,  NIT_NULL /*null*/) /*TEol::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable3 /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*listnode2*/,  variable4 /*teolnode1*/) /*Array::add*/;
+  }
+  variable1 =  variable3 /*listnode2*/ /*node_list=*/;
+  variable5 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable5,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction567___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction567::init (src/parser//parser.nit:17376,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction567].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction567].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction568___action(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser::ReduceAction568::action (src/parser//parser.nit:17380,2--17401:35)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  NIT_NULL /*null*/;
+  variable3 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable2 = variable3;
+  variable4 = ((parser___Parser___pop_t)CALL( variable0 /*p*/,COLOR_parser___Parser___pop))( variable0 /*p*/) /*Parser::pop*/;
+  variable3 = variable4;
+  variable5 = NEW_array___Array___init(); /*new Array[Object]*/
+  variable4 = variable5;
+  variable5 =  variable3 /*nodearraylist1*/;
+  variable6 = TAG_Bool(( variable5 /*listnode1*/==NIT_NULL) || VAL_ISA( variable5 /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+  if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17387,6--38\n"); nit_exit(1);}
+  variable6 =  variable2 /*nodearraylist2*/;
+  variable7 = TAG_Bool(( variable6 /*teolnode2*/==NIT_NULL) || VAL_ISA( variable6 /*teolnode2*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
+  if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser.nit:17389,6--30\n"); nit_exit(1);}
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable5 /*listnode1*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable5 /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable5 /*listnode1*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable4 /*listnode3*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable4 =  variable5 /*listnode1*/ /*listnode3=*/;
+    } else { /*if*/
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable4 /*listnode3*/,  variable5 /*listnode1*/) /*Array::append*/;
+    }
+  }
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*teolnode2*/ ==  NIT_NULL /*null*/) || (( variable6 /*teolnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*teolnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*teolnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*teolnode2*/,COLOR_kernel___Object_____eqeq))( variable6 /*teolnode2*/,  NIT_NULL /*null*/) /*TEol::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((array___AbstractArray___add_t)CALL( variable4 /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*listnode3*/,  variable6 /*teolnode2*/) /*Array::add*/;
+  }
+  variable1 =  variable4 /*listnode3*/ /*node_list=*/;
+  variable7 = ((parser___Parser___go_to_t)CALL( variable0 /*p*/,COLOR_parser___Parser___go_to))( variable0 /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  ((parser___Parser___push_t)CALL( variable0 /*p*/,COLOR_parser___Parser___push))( variable0 /*p*/, variable7,  variable1 /*node_list*/) /*Parser::push*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser___ReduceAction568___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser::ReduceAction568::init (src/parser//parser.nit:17403,1--4)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction568].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ReduceAction568].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/parser._sep.h b/c_src/parser._sep.h
new file mode 100644 (file)
index 0000000..f96fdd8
--- /dev/null
@@ -0,0 +1,6344 @@
+#ifndef parser__sep
+#define parser__sep
+#include "parser_prod._sep.h"
+#include "parser_tables._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_State[];
+
+extern const classtable_elt_t VFT_SearchTokensVisitor[];
+
+extern const classtable_elt_t VFT_ReduceAction[];
+
+extern const classtable_elt_t VFT_ReduceAction0[];
+
+extern const classtable_elt_t VFT_ReduceAction1[];
+
+extern const classtable_elt_t VFT_ReduceAction2[];
+
+extern const classtable_elt_t VFT_ReduceAction3[];
+
+extern const classtable_elt_t VFT_ReduceAction4[];
+
+extern const classtable_elt_t VFT_ReduceAction5[];
+
+extern const classtable_elt_t VFT_ReduceAction6[];
+
+extern const classtable_elt_t VFT_ReduceAction7[];
+
+extern const classtable_elt_t VFT_ReduceAction8[];
+
+extern const classtable_elt_t VFT_ReduceAction9[];
+
+extern const classtable_elt_t VFT_ReduceAction10[];
+
+extern const classtable_elt_t VFT_ReduceAction11[];
+
+extern const classtable_elt_t VFT_ReduceAction12[];
+
+extern const classtable_elt_t VFT_ReduceAction13[];
+
+extern const classtable_elt_t VFT_ReduceAction14[];
+
+extern const classtable_elt_t VFT_ReduceAction15[];
+
+extern const classtable_elt_t VFT_ReduceAction16[];
+
+extern const classtable_elt_t VFT_ReduceAction17[];
+
+extern const classtable_elt_t VFT_ReduceAction18[];
+
+extern const classtable_elt_t VFT_ReduceAction19[];
+
+extern const classtable_elt_t VFT_ReduceAction20[];
+
+extern const classtable_elt_t VFT_ReduceAction21[];
+
+extern const classtable_elt_t VFT_ReduceAction22[];
+
+extern const classtable_elt_t VFT_ReduceAction23[];
+
+extern const classtable_elt_t VFT_ReduceAction24[];
+
+extern const classtable_elt_t VFT_ReduceAction25[];
+
+extern const classtable_elt_t VFT_ReduceAction26[];
+
+extern const classtable_elt_t VFT_ReduceAction27[];
+
+extern const classtable_elt_t VFT_ReduceAction28[];
+
+extern const classtable_elt_t VFT_ReduceAction29[];
+
+extern const classtable_elt_t VFT_ReduceAction30[];
+
+extern const classtable_elt_t VFT_ReduceAction31[];
+
+extern const classtable_elt_t VFT_ReduceAction32[];
+
+extern const classtable_elt_t VFT_ReduceAction33[];
+
+extern const classtable_elt_t VFT_ReduceAction34[];
+
+extern const classtable_elt_t VFT_ReduceAction35[];
+
+extern const classtable_elt_t VFT_ReduceAction36[];
+
+extern const classtable_elt_t VFT_ReduceAction37[];
+
+extern const classtable_elt_t VFT_ReduceAction38[];
+
+extern const classtable_elt_t VFT_ReduceAction39[];
+
+extern const classtable_elt_t VFT_ReduceAction40[];
+
+extern const classtable_elt_t VFT_ReduceAction41[];
+
+extern const classtable_elt_t VFT_ReduceAction42[];
+
+extern const classtable_elt_t VFT_ReduceAction43[];
+
+extern const classtable_elt_t VFT_ReduceAction44[];
+
+extern const classtable_elt_t VFT_ReduceAction45[];
+
+extern const classtable_elt_t VFT_ReduceAction46[];
+
+extern const classtable_elt_t VFT_ReduceAction47[];
+
+extern const classtable_elt_t VFT_ReduceAction48[];
+
+extern const classtable_elt_t VFT_ReduceAction49[];
+
+extern const classtable_elt_t VFT_ReduceAction50[];
+
+extern const classtable_elt_t VFT_ReduceAction51[];
+
+extern const classtable_elt_t VFT_ReduceAction52[];
+
+extern const classtable_elt_t VFT_ReduceAction53[];
+
+extern const classtable_elt_t VFT_ReduceAction54[];
+
+extern const classtable_elt_t VFT_ReduceAction55[];
+
+extern const classtable_elt_t VFT_ReduceAction56[];
+
+extern const classtable_elt_t VFT_ReduceAction57[];
+
+extern const classtable_elt_t VFT_ReduceAction58[];
+
+extern const classtable_elt_t VFT_ReduceAction59[];
+
+extern const classtable_elt_t VFT_ReduceAction60[];
+
+extern const classtable_elt_t VFT_ReduceAction61[];
+
+extern const classtable_elt_t VFT_ReduceAction62[];
+
+extern const classtable_elt_t VFT_ReduceAction63[];
+
+extern const classtable_elt_t VFT_ReduceAction64[];
+
+extern const classtable_elt_t VFT_ReduceAction65[];
+
+extern const classtable_elt_t VFT_ReduceAction66[];
+
+extern const classtable_elt_t VFT_ReduceAction67[];
+
+extern const classtable_elt_t VFT_ReduceAction68[];
+
+extern const classtable_elt_t VFT_ReduceAction69[];
+
+extern const classtable_elt_t VFT_ReduceAction70[];
+
+extern const classtable_elt_t VFT_ReduceAction71[];
+
+extern const classtable_elt_t VFT_ReduceAction72[];
+
+extern const classtable_elt_t VFT_ReduceAction73[];
+
+extern const classtable_elt_t VFT_ReduceAction74[];
+
+extern const classtable_elt_t VFT_ReduceAction75[];
+
+extern const classtable_elt_t VFT_ReduceAction76[];
+
+extern const classtable_elt_t VFT_ReduceAction77[];
+
+extern const classtable_elt_t VFT_ReduceAction78[];
+
+extern const classtable_elt_t VFT_ReduceAction79[];
+
+extern const classtable_elt_t VFT_ReduceAction80[];
+
+extern const classtable_elt_t VFT_ReduceAction81[];
+
+extern const classtable_elt_t VFT_ReduceAction82[];
+
+extern const classtable_elt_t VFT_ReduceAction83[];
+
+extern const classtable_elt_t VFT_ReduceAction84[];
+
+extern const classtable_elt_t VFT_ReduceAction85[];
+
+extern const classtable_elt_t VFT_ReduceAction86[];
+
+extern const classtable_elt_t VFT_ReduceAction87[];
+
+extern const classtable_elt_t VFT_ReduceAction88[];
+
+extern const classtable_elt_t VFT_ReduceAction89[];
+
+extern const classtable_elt_t VFT_ReduceAction90[];
+
+extern const classtable_elt_t VFT_ReduceAction91[];
+
+extern const classtable_elt_t VFT_ReduceAction92[];
+
+extern const classtable_elt_t VFT_ReduceAction93[];
+
+extern const classtable_elt_t VFT_ReduceAction94[];
+
+extern const classtable_elt_t VFT_ReduceAction95[];
+
+extern const classtable_elt_t VFT_ReduceAction96[];
+
+extern const classtable_elt_t VFT_ReduceAction97[];
+
+extern const classtable_elt_t VFT_ReduceAction98[];
+
+extern const classtable_elt_t VFT_ReduceAction99[];
+
+extern const classtable_elt_t VFT_ReduceAction100[];
+
+extern const classtable_elt_t VFT_ReduceAction101[];
+
+extern const classtable_elt_t VFT_ReduceAction102[];
+
+extern const classtable_elt_t VFT_ReduceAction103[];
+
+extern const classtable_elt_t VFT_ReduceAction104[];
+
+extern const classtable_elt_t VFT_ReduceAction105[];
+
+extern const classtable_elt_t VFT_ReduceAction106[];
+
+extern const classtable_elt_t VFT_ReduceAction107[];
+
+extern const classtable_elt_t VFT_ReduceAction108[];
+
+extern const classtable_elt_t VFT_ReduceAction109[];
+
+extern const classtable_elt_t VFT_ReduceAction110[];
+
+extern const classtable_elt_t VFT_ReduceAction111[];
+
+extern const classtable_elt_t VFT_ReduceAction112[];
+
+extern const classtable_elt_t VFT_ReduceAction113[];
+
+extern const classtable_elt_t VFT_ReduceAction114[];
+
+extern const classtable_elt_t VFT_ReduceAction115[];
+
+extern const classtable_elt_t VFT_ReduceAction116[];
+
+extern const classtable_elt_t VFT_ReduceAction117[];
+
+extern const classtable_elt_t VFT_ReduceAction118[];
+
+extern const classtable_elt_t VFT_ReduceAction119[];
+
+extern const classtable_elt_t VFT_ReduceAction120[];
+
+extern const classtable_elt_t VFT_ReduceAction121[];
+
+extern const classtable_elt_t VFT_ReduceAction122[];
+
+extern const classtable_elt_t VFT_ReduceAction123[];
+
+extern const classtable_elt_t VFT_ReduceAction124[];
+
+extern const classtable_elt_t VFT_ReduceAction125[];
+
+extern const classtable_elt_t VFT_ReduceAction126[];
+
+extern const classtable_elt_t VFT_ReduceAction127[];
+
+extern const classtable_elt_t VFT_ReduceAction128[];
+
+extern const classtable_elt_t VFT_ReduceAction129[];
+
+extern const classtable_elt_t VFT_ReduceAction130[];
+
+extern const classtable_elt_t VFT_ReduceAction131[];
+
+extern const classtable_elt_t VFT_ReduceAction132[];
+
+extern const classtable_elt_t VFT_ReduceAction133[];
+
+extern const classtable_elt_t VFT_ReduceAction134[];
+
+extern const classtable_elt_t VFT_ReduceAction135[];
+
+extern const classtable_elt_t VFT_ReduceAction136[];
+
+extern const classtable_elt_t VFT_ReduceAction137[];
+
+extern const classtable_elt_t VFT_ReduceAction138[];
+
+extern const classtable_elt_t VFT_ReduceAction139[];
+
+extern const classtable_elt_t VFT_ReduceAction140[];
+
+extern const classtable_elt_t VFT_ReduceAction141[];
+
+extern const classtable_elt_t VFT_ReduceAction142[];
+
+extern const classtable_elt_t VFT_ReduceAction143[];
+
+extern const classtable_elt_t VFT_ReduceAction144[];
+
+extern const classtable_elt_t VFT_ReduceAction145[];
+
+extern const classtable_elt_t VFT_ReduceAction146[];
+
+extern const classtable_elt_t VFT_ReduceAction147[];
+
+extern const classtable_elt_t VFT_ReduceAction148[];
+
+extern const classtable_elt_t VFT_ReduceAction149[];
+
+extern const classtable_elt_t VFT_ReduceAction150[];
+
+extern const classtable_elt_t VFT_ReduceAction151[];
+
+extern const classtable_elt_t VFT_ReduceAction152[];
+
+extern const classtable_elt_t VFT_ReduceAction153[];
+
+extern const classtable_elt_t VFT_ReduceAction154[];
+
+extern const classtable_elt_t VFT_ReduceAction155[];
+
+extern const classtable_elt_t VFT_ReduceAction156[];
+
+extern const classtable_elt_t VFT_ReduceAction157[];
+
+extern const classtable_elt_t VFT_ReduceAction158[];
+
+extern const classtable_elt_t VFT_ReduceAction159[];
+
+extern const classtable_elt_t VFT_ReduceAction160[];
+
+extern const classtable_elt_t VFT_ReduceAction161[];
+
+extern const classtable_elt_t VFT_ReduceAction162[];
+
+extern const classtable_elt_t VFT_ReduceAction163[];
+
+extern const classtable_elt_t VFT_ReduceAction164[];
+
+extern const classtable_elt_t VFT_ReduceAction165[];
+
+extern const classtable_elt_t VFT_ReduceAction166[];
+
+extern const classtable_elt_t VFT_ReduceAction167[];
+
+extern const classtable_elt_t VFT_ReduceAction168[];
+
+extern const classtable_elt_t VFT_ReduceAction169[];
+
+extern const classtable_elt_t VFT_ReduceAction170[];
+
+extern const classtable_elt_t VFT_ReduceAction171[];
+
+extern const classtable_elt_t VFT_ReduceAction172[];
+
+extern const classtable_elt_t VFT_ReduceAction173[];
+
+extern const classtable_elt_t VFT_ReduceAction174[];
+
+extern const classtable_elt_t VFT_ReduceAction175[];
+
+extern const classtable_elt_t VFT_ReduceAction176[];
+
+extern const classtable_elt_t VFT_ReduceAction177[];
+
+extern const classtable_elt_t VFT_ReduceAction178[];
+
+extern const classtable_elt_t VFT_ReduceAction179[];
+
+extern const classtable_elt_t VFT_ReduceAction180[];
+
+extern const classtable_elt_t VFT_ReduceAction181[];
+
+extern const classtable_elt_t VFT_ReduceAction182[];
+
+extern const classtable_elt_t VFT_ReduceAction183[];
+
+extern const classtable_elt_t VFT_ReduceAction184[];
+
+extern const classtable_elt_t VFT_ReduceAction185[];
+
+extern const classtable_elt_t VFT_ReduceAction186[];
+
+extern const classtable_elt_t VFT_ReduceAction187[];
+
+extern const classtable_elt_t VFT_ReduceAction188[];
+
+extern const classtable_elt_t VFT_ReduceAction189[];
+
+extern const classtable_elt_t VFT_ReduceAction190[];
+
+extern const classtable_elt_t VFT_ReduceAction191[];
+
+extern const classtable_elt_t VFT_ReduceAction192[];
+
+extern const classtable_elt_t VFT_ReduceAction193[];
+
+extern const classtable_elt_t VFT_ReduceAction194[];
+
+extern const classtable_elt_t VFT_ReduceAction195[];
+
+extern const classtable_elt_t VFT_ReduceAction196[];
+
+extern const classtable_elt_t VFT_ReduceAction197[];
+
+extern const classtable_elt_t VFT_ReduceAction198[];
+
+extern const classtable_elt_t VFT_ReduceAction199[];
+
+extern const classtable_elt_t VFT_ReduceAction200[];
+
+extern const classtable_elt_t VFT_ReduceAction201[];
+
+extern const classtable_elt_t VFT_ReduceAction202[];
+
+extern const classtable_elt_t VFT_ReduceAction203[];
+
+extern const classtable_elt_t VFT_ReduceAction204[];
+
+extern const classtable_elt_t VFT_ReduceAction205[];
+
+extern const classtable_elt_t VFT_ReduceAction206[];
+
+extern const classtable_elt_t VFT_ReduceAction207[];
+
+extern const classtable_elt_t VFT_ReduceAction208[];
+
+extern const classtable_elt_t VFT_ReduceAction209[];
+
+extern const classtable_elt_t VFT_ReduceAction210[];
+
+extern const classtable_elt_t VFT_ReduceAction211[];
+
+extern const classtable_elt_t VFT_ReduceAction212[];
+
+extern const classtable_elt_t VFT_ReduceAction213[];
+
+extern const classtable_elt_t VFT_ReduceAction214[];
+
+extern const classtable_elt_t VFT_ReduceAction215[];
+
+extern const classtable_elt_t VFT_ReduceAction216[];
+
+extern const classtable_elt_t VFT_ReduceAction217[];
+
+extern const classtable_elt_t VFT_ReduceAction218[];
+
+extern const classtable_elt_t VFT_ReduceAction219[];
+
+extern const classtable_elt_t VFT_ReduceAction220[];
+
+extern const classtable_elt_t VFT_ReduceAction221[];
+
+extern const classtable_elt_t VFT_ReduceAction222[];
+
+extern const classtable_elt_t VFT_ReduceAction223[];
+
+extern const classtable_elt_t VFT_ReduceAction224[];
+
+extern const classtable_elt_t VFT_ReduceAction225[];
+
+extern const classtable_elt_t VFT_ReduceAction226[];
+
+extern const classtable_elt_t VFT_ReduceAction227[];
+
+extern const classtable_elt_t VFT_ReduceAction228[];
+
+extern const classtable_elt_t VFT_ReduceAction229[];
+
+extern const classtable_elt_t VFT_ReduceAction230[];
+
+extern const classtable_elt_t VFT_ReduceAction231[];
+
+extern const classtable_elt_t VFT_ReduceAction232[];
+
+extern const classtable_elt_t VFT_ReduceAction233[];
+
+extern const classtable_elt_t VFT_ReduceAction234[];
+
+extern const classtable_elt_t VFT_ReduceAction235[];
+
+extern const classtable_elt_t VFT_ReduceAction236[];
+
+extern const classtable_elt_t VFT_ReduceAction237[];
+
+extern const classtable_elt_t VFT_ReduceAction238[];
+
+extern const classtable_elt_t VFT_ReduceAction239[];
+
+extern const classtable_elt_t VFT_ReduceAction240[];
+
+extern const classtable_elt_t VFT_ReduceAction241[];
+
+extern const classtable_elt_t VFT_ReduceAction242[];
+
+extern const classtable_elt_t VFT_ReduceAction243[];
+
+extern const classtable_elt_t VFT_ReduceAction244[];
+
+extern const classtable_elt_t VFT_ReduceAction245[];
+
+extern const classtable_elt_t VFT_ReduceAction246[];
+
+extern const classtable_elt_t VFT_ReduceAction247[];
+
+extern const classtable_elt_t VFT_ReduceAction248[];
+
+extern const classtable_elt_t VFT_ReduceAction249[];
+
+extern const classtable_elt_t VFT_ReduceAction250[];
+
+extern const classtable_elt_t VFT_ReduceAction251[];
+
+extern const classtable_elt_t VFT_ReduceAction252[];
+
+extern const classtable_elt_t VFT_ReduceAction253[];
+
+extern const classtable_elt_t VFT_ReduceAction254[];
+
+extern const classtable_elt_t VFT_ReduceAction255[];
+
+extern const classtable_elt_t VFT_ReduceAction256[];
+
+extern const classtable_elt_t VFT_ReduceAction257[];
+
+extern const classtable_elt_t VFT_ReduceAction258[];
+
+extern const classtable_elt_t VFT_ReduceAction259[];
+
+extern const classtable_elt_t VFT_ReduceAction260[];
+
+extern const classtable_elt_t VFT_ReduceAction261[];
+
+extern const classtable_elt_t VFT_ReduceAction262[];
+
+extern const classtable_elt_t VFT_ReduceAction263[];
+
+extern const classtable_elt_t VFT_ReduceAction264[];
+
+extern const classtable_elt_t VFT_ReduceAction265[];
+
+extern const classtable_elt_t VFT_ReduceAction266[];
+
+extern const classtable_elt_t VFT_ReduceAction267[];
+
+extern const classtable_elt_t VFT_ReduceAction268[];
+
+extern const classtable_elt_t VFT_ReduceAction269[];
+
+extern const classtable_elt_t VFT_ReduceAction270[];
+
+extern const classtable_elt_t VFT_ReduceAction271[];
+
+extern const classtable_elt_t VFT_ReduceAction272[];
+
+extern const classtable_elt_t VFT_ReduceAction273[];
+
+extern const classtable_elt_t VFT_ReduceAction274[];
+
+extern const classtable_elt_t VFT_ReduceAction275[];
+
+extern const classtable_elt_t VFT_ReduceAction276[];
+
+extern const classtable_elt_t VFT_ReduceAction277[];
+
+extern const classtable_elt_t VFT_ReduceAction278[];
+
+extern const classtable_elt_t VFT_ReduceAction279[];
+
+extern const classtable_elt_t VFT_ReduceAction280[];
+
+extern const classtable_elt_t VFT_ReduceAction281[];
+
+extern const classtable_elt_t VFT_ReduceAction282[];
+
+extern const classtable_elt_t VFT_ReduceAction283[];
+
+extern const classtable_elt_t VFT_ReduceAction284[];
+
+extern const classtable_elt_t VFT_ReduceAction285[];
+
+extern const classtable_elt_t VFT_ReduceAction286[];
+
+extern const classtable_elt_t VFT_ReduceAction287[];
+
+extern const classtable_elt_t VFT_ReduceAction288[];
+
+extern const classtable_elt_t VFT_ReduceAction289[];
+
+extern const classtable_elt_t VFT_ReduceAction290[];
+
+extern const classtable_elt_t VFT_ReduceAction291[];
+
+extern const classtable_elt_t VFT_ReduceAction292[];
+
+extern const classtable_elt_t VFT_ReduceAction293[];
+
+extern const classtable_elt_t VFT_ReduceAction294[];
+
+extern const classtable_elt_t VFT_ReduceAction295[];
+
+extern const classtable_elt_t VFT_ReduceAction296[];
+
+extern const classtable_elt_t VFT_ReduceAction297[];
+
+extern const classtable_elt_t VFT_ReduceAction298[];
+
+extern const classtable_elt_t VFT_ReduceAction299[];
+
+extern const classtable_elt_t VFT_ReduceAction300[];
+
+extern const classtable_elt_t VFT_ReduceAction301[];
+
+extern const classtable_elt_t VFT_ReduceAction302[];
+
+extern const classtable_elt_t VFT_ReduceAction303[];
+
+extern const classtable_elt_t VFT_ReduceAction304[];
+
+extern const classtable_elt_t VFT_ReduceAction305[];
+
+extern const classtable_elt_t VFT_ReduceAction306[];
+
+extern const classtable_elt_t VFT_ReduceAction307[];
+
+extern const classtable_elt_t VFT_ReduceAction308[];
+
+extern const classtable_elt_t VFT_ReduceAction309[];
+
+extern const classtable_elt_t VFT_ReduceAction310[];
+
+extern const classtable_elt_t VFT_ReduceAction311[];
+
+extern const classtable_elt_t VFT_ReduceAction312[];
+
+extern const classtable_elt_t VFT_ReduceAction313[];
+
+extern const classtable_elt_t VFT_ReduceAction314[];
+
+extern const classtable_elt_t VFT_ReduceAction315[];
+
+extern const classtable_elt_t VFT_ReduceAction316[];
+
+extern const classtable_elt_t VFT_ReduceAction317[];
+
+extern const classtable_elt_t VFT_ReduceAction318[];
+
+extern const classtable_elt_t VFT_ReduceAction319[];
+
+extern const classtable_elt_t VFT_ReduceAction320[];
+
+extern const classtable_elt_t VFT_ReduceAction321[];
+
+extern const classtable_elt_t VFT_ReduceAction322[];
+
+extern const classtable_elt_t VFT_ReduceAction323[];
+
+extern const classtable_elt_t VFT_ReduceAction324[];
+
+extern const classtable_elt_t VFT_ReduceAction325[];
+
+extern const classtable_elt_t VFT_ReduceAction326[];
+
+extern const classtable_elt_t VFT_ReduceAction327[];
+
+extern const classtable_elt_t VFT_ReduceAction328[];
+
+extern const classtable_elt_t VFT_ReduceAction329[];
+
+extern const classtable_elt_t VFT_ReduceAction330[];
+
+extern const classtable_elt_t VFT_ReduceAction331[];
+
+extern const classtable_elt_t VFT_ReduceAction332[];
+
+extern const classtable_elt_t VFT_ReduceAction333[];
+
+extern const classtable_elt_t VFT_ReduceAction334[];
+
+extern const classtable_elt_t VFT_ReduceAction335[];
+
+extern const classtable_elt_t VFT_ReduceAction336[];
+
+extern const classtable_elt_t VFT_ReduceAction337[];
+
+extern const classtable_elt_t VFT_ReduceAction338[];
+
+extern const classtable_elt_t VFT_ReduceAction339[];
+
+extern const classtable_elt_t VFT_ReduceAction340[];
+
+extern const classtable_elt_t VFT_ReduceAction341[];
+
+extern const classtable_elt_t VFT_ReduceAction342[];
+
+extern const classtable_elt_t VFT_ReduceAction343[];
+
+extern const classtable_elt_t VFT_ReduceAction344[];
+
+extern const classtable_elt_t VFT_ReduceAction345[];
+
+extern const classtable_elt_t VFT_ReduceAction346[];
+
+extern const classtable_elt_t VFT_ReduceAction347[];
+
+extern const classtable_elt_t VFT_ReduceAction348[];
+
+extern const classtable_elt_t VFT_ReduceAction349[];
+
+extern const classtable_elt_t VFT_ReduceAction350[];
+
+extern const classtable_elt_t VFT_ReduceAction351[];
+
+extern const classtable_elt_t VFT_ReduceAction352[];
+
+extern const classtable_elt_t VFT_ReduceAction353[];
+
+extern const classtable_elt_t VFT_ReduceAction354[];
+
+extern const classtable_elt_t VFT_ReduceAction355[];
+
+extern const classtable_elt_t VFT_ReduceAction356[];
+
+extern const classtable_elt_t VFT_ReduceAction357[];
+
+extern const classtable_elt_t VFT_ReduceAction358[];
+
+extern const classtable_elt_t VFT_ReduceAction359[];
+
+extern const classtable_elt_t VFT_ReduceAction360[];
+
+extern const classtable_elt_t VFT_ReduceAction361[];
+
+extern const classtable_elt_t VFT_ReduceAction362[];
+
+extern const classtable_elt_t VFT_ReduceAction363[];
+
+extern const classtable_elt_t VFT_ReduceAction364[];
+
+extern const classtable_elt_t VFT_ReduceAction365[];
+
+extern const classtable_elt_t VFT_ReduceAction366[];
+
+extern const classtable_elt_t VFT_ReduceAction367[];
+
+extern const classtable_elt_t VFT_ReduceAction368[];
+
+extern const classtable_elt_t VFT_ReduceAction369[];
+
+extern const classtable_elt_t VFT_ReduceAction370[];
+
+extern const classtable_elt_t VFT_ReduceAction371[];
+
+extern const classtable_elt_t VFT_ReduceAction372[];
+
+extern const classtable_elt_t VFT_ReduceAction373[];
+
+extern const classtable_elt_t VFT_ReduceAction374[];
+
+extern const classtable_elt_t VFT_ReduceAction375[];
+
+extern const classtable_elt_t VFT_ReduceAction376[];
+
+extern const classtable_elt_t VFT_ReduceAction377[];
+
+extern const classtable_elt_t VFT_ReduceAction378[];
+
+extern const classtable_elt_t VFT_ReduceAction379[];
+
+extern const classtable_elt_t VFT_ReduceAction380[];
+
+extern const classtable_elt_t VFT_ReduceAction381[];
+
+extern const classtable_elt_t VFT_ReduceAction382[];
+
+extern const classtable_elt_t VFT_ReduceAction383[];
+
+extern const classtable_elt_t VFT_ReduceAction384[];
+
+extern const classtable_elt_t VFT_ReduceAction385[];
+
+extern const classtable_elt_t VFT_ReduceAction386[];
+
+extern const classtable_elt_t VFT_ReduceAction387[];
+
+extern const classtable_elt_t VFT_ReduceAction388[];
+
+extern const classtable_elt_t VFT_ReduceAction389[];
+
+extern const classtable_elt_t VFT_ReduceAction390[];
+
+extern const classtable_elt_t VFT_ReduceAction391[];
+
+extern const classtable_elt_t VFT_ReduceAction392[];
+
+extern const classtable_elt_t VFT_ReduceAction393[];
+
+extern const classtable_elt_t VFT_ReduceAction394[];
+
+extern const classtable_elt_t VFT_ReduceAction395[];
+
+extern const classtable_elt_t VFT_ReduceAction396[];
+
+extern const classtable_elt_t VFT_ReduceAction397[];
+
+extern const classtable_elt_t VFT_ReduceAction398[];
+
+extern const classtable_elt_t VFT_ReduceAction399[];
+
+extern const classtable_elt_t VFT_ReduceAction400[];
+
+extern const classtable_elt_t VFT_ReduceAction401[];
+
+extern const classtable_elt_t VFT_ReduceAction402[];
+
+extern const classtable_elt_t VFT_ReduceAction403[];
+
+extern const classtable_elt_t VFT_ReduceAction404[];
+
+extern const classtable_elt_t VFT_ReduceAction405[];
+
+extern const classtable_elt_t VFT_ReduceAction406[];
+
+extern const classtable_elt_t VFT_ReduceAction407[];
+
+extern const classtable_elt_t VFT_ReduceAction408[];
+
+extern const classtable_elt_t VFT_ReduceAction409[];
+
+extern const classtable_elt_t VFT_ReduceAction410[];
+
+extern const classtable_elt_t VFT_ReduceAction411[];
+
+extern const classtable_elt_t VFT_ReduceAction412[];
+
+extern const classtable_elt_t VFT_ReduceAction413[];
+
+extern const classtable_elt_t VFT_ReduceAction414[];
+
+extern const classtable_elt_t VFT_ReduceAction415[];
+
+extern const classtable_elt_t VFT_ReduceAction416[];
+
+extern const classtable_elt_t VFT_ReduceAction417[];
+
+extern const classtable_elt_t VFT_ReduceAction418[];
+
+extern const classtable_elt_t VFT_ReduceAction419[];
+
+extern const classtable_elt_t VFT_ReduceAction420[];
+
+extern const classtable_elt_t VFT_ReduceAction421[];
+
+extern const classtable_elt_t VFT_ReduceAction422[];
+
+extern const classtable_elt_t VFT_ReduceAction423[];
+
+extern const classtable_elt_t VFT_ReduceAction424[];
+
+extern const classtable_elt_t VFT_ReduceAction425[];
+
+extern const classtable_elt_t VFT_ReduceAction426[];
+
+extern const classtable_elt_t VFT_ReduceAction427[];
+
+extern const classtable_elt_t VFT_ReduceAction428[];
+
+extern const classtable_elt_t VFT_ReduceAction429[];
+
+extern const classtable_elt_t VFT_ReduceAction430[];
+
+extern const classtable_elt_t VFT_ReduceAction431[];
+
+extern const classtable_elt_t VFT_ReduceAction432[];
+
+extern const classtable_elt_t VFT_ReduceAction433[];
+
+extern const classtable_elt_t VFT_ReduceAction434[];
+
+extern const classtable_elt_t VFT_ReduceAction435[];
+
+extern const classtable_elt_t VFT_ReduceAction436[];
+
+extern const classtable_elt_t VFT_ReduceAction437[];
+
+extern const classtable_elt_t VFT_ReduceAction438[];
+
+extern const classtable_elt_t VFT_ReduceAction439[];
+
+extern const classtable_elt_t VFT_ReduceAction440[];
+
+extern const classtable_elt_t VFT_ReduceAction441[];
+
+extern const classtable_elt_t VFT_ReduceAction442[];
+
+extern const classtable_elt_t VFT_ReduceAction443[];
+
+extern const classtable_elt_t VFT_ReduceAction444[];
+
+extern const classtable_elt_t VFT_ReduceAction445[];
+
+extern const classtable_elt_t VFT_ReduceAction446[];
+
+extern const classtable_elt_t VFT_ReduceAction447[];
+
+extern const classtable_elt_t VFT_ReduceAction448[];
+
+extern const classtable_elt_t VFT_ReduceAction449[];
+
+extern const classtable_elt_t VFT_ReduceAction450[];
+
+extern const classtable_elt_t VFT_ReduceAction451[];
+
+extern const classtable_elt_t VFT_ReduceAction452[];
+
+extern const classtable_elt_t VFT_ReduceAction453[];
+
+extern const classtable_elt_t VFT_ReduceAction454[];
+
+extern const classtable_elt_t VFT_ReduceAction455[];
+
+extern const classtable_elt_t VFT_ReduceAction456[];
+
+extern const classtable_elt_t VFT_ReduceAction457[];
+
+extern const classtable_elt_t VFT_ReduceAction458[];
+
+extern const classtable_elt_t VFT_ReduceAction459[];
+
+extern const classtable_elt_t VFT_ReduceAction460[];
+
+extern const classtable_elt_t VFT_ReduceAction461[];
+
+extern const classtable_elt_t VFT_ReduceAction462[];
+
+extern const classtable_elt_t VFT_ReduceAction463[];
+
+extern const classtable_elt_t VFT_ReduceAction464[];
+
+extern const classtable_elt_t VFT_ReduceAction465[];
+
+extern const classtable_elt_t VFT_ReduceAction466[];
+
+extern const classtable_elt_t VFT_ReduceAction467[];
+
+extern const classtable_elt_t VFT_ReduceAction468[];
+
+extern const classtable_elt_t VFT_ReduceAction469[];
+
+extern const classtable_elt_t VFT_ReduceAction470[];
+
+extern const classtable_elt_t VFT_ReduceAction471[];
+
+extern const classtable_elt_t VFT_ReduceAction472[];
+
+extern const classtable_elt_t VFT_ReduceAction473[];
+
+extern const classtable_elt_t VFT_ReduceAction474[];
+
+extern const classtable_elt_t VFT_ReduceAction475[];
+
+extern const classtable_elt_t VFT_ReduceAction476[];
+
+extern const classtable_elt_t VFT_ReduceAction477[];
+
+extern const classtable_elt_t VFT_ReduceAction478[];
+
+extern const classtable_elt_t VFT_ReduceAction479[];
+
+extern const classtable_elt_t VFT_ReduceAction480[];
+
+extern const classtable_elt_t VFT_ReduceAction481[];
+
+extern const classtable_elt_t VFT_ReduceAction482[];
+
+extern const classtable_elt_t VFT_ReduceAction483[];
+
+extern const classtable_elt_t VFT_ReduceAction484[];
+
+extern const classtable_elt_t VFT_ReduceAction485[];
+
+extern const classtable_elt_t VFT_ReduceAction486[];
+
+extern const classtable_elt_t VFT_ReduceAction487[];
+
+extern const classtable_elt_t VFT_ReduceAction488[];
+
+extern const classtable_elt_t VFT_ReduceAction489[];
+
+extern const classtable_elt_t VFT_ReduceAction490[];
+
+extern const classtable_elt_t VFT_ReduceAction491[];
+
+extern const classtable_elt_t VFT_ReduceAction492[];
+
+extern const classtable_elt_t VFT_ReduceAction493[];
+
+extern const classtable_elt_t VFT_ReduceAction494[];
+
+extern const classtable_elt_t VFT_ReduceAction495[];
+
+extern const classtable_elt_t VFT_ReduceAction496[];
+
+extern const classtable_elt_t VFT_ReduceAction497[];
+
+extern const classtable_elt_t VFT_ReduceAction498[];
+
+extern const classtable_elt_t VFT_ReduceAction499[];
+
+extern const classtable_elt_t VFT_ReduceAction500[];
+
+extern const classtable_elt_t VFT_ReduceAction501[];
+
+extern const classtable_elt_t VFT_ReduceAction502[];
+
+extern const classtable_elt_t VFT_ReduceAction503[];
+
+extern const classtable_elt_t VFT_ReduceAction504[];
+
+extern const classtable_elt_t VFT_ReduceAction505[];
+
+extern const classtable_elt_t VFT_ReduceAction506[];
+
+extern const classtable_elt_t VFT_ReduceAction507[];
+
+extern const classtable_elt_t VFT_ReduceAction508[];
+
+extern const classtable_elt_t VFT_ReduceAction509[];
+
+extern const classtable_elt_t VFT_ReduceAction510[];
+
+extern const classtable_elt_t VFT_ReduceAction511[];
+
+extern const classtable_elt_t VFT_ReduceAction512[];
+
+extern const classtable_elt_t VFT_ReduceAction513[];
+
+extern const classtable_elt_t VFT_ReduceAction514[];
+
+extern const classtable_elt_t VFT_ReduceAction515[];
+
+extern const classtable_elt_t VFT_ReduceAction516[];
+
+extern const classtable_elt_t VFT_ReduceAction517[];
+
+extern const classtable_elt_t VFT_ReduceAction518[];
+
+extern const classtable_elt_t VFT_ReduceAction519[];
+
+extern const classtable_elt_t VFT_ReduceAction520[];
+
+extern const classtable_elt_t VFT_ReduceAction521[];
+
+extern const classtable_elt_t VFT_ReduceAction522[];
+
+extern const classtable_elt_t VFT_ReduceAction523[];
+
+extern const classtable_elt_t VFT_ReduceAction524[];
+
+extern const classtable_elt_t VFT_ReduceAction525[];
+
+extern const classtable_elt_t VFT_ReduceAction526[];
+
+extern const classtable_elt_t VFT_ReduceAction527[];
+
+extern const classtable_elt_t VFT_ReduceAction528[];
+
+extern const classtable_elt_t VFT_ReduceAction529[];
+
+extern const classtable_elt_t VFT_ReduceAction530[];
+
+extern const classtable_elt_t VFT_ReduceAction531[];
+
+extern const classtable_elt_t VFT_ReduceAction532[];
+
+extern const classtable_elt_t VFT_ReduceAction533[];
+
+extern const classtable_elt_t VFT_ReduceAction534[];
+
+extern const classtable_elt_t VFT_ReduceAction535[];
+
+extern const classtable_elt_t VFT_ReduceAction536[];
+
+extern const classtable_elt_t VFT_ReduceAction537[];
+
+extern const classtable_elt_t VFT_ReduceAction538[];
+
+extern const classtable_elt_t VFT_ReduceAction539[];
+
+extern const classtable_elt_t VFT_ReduceAction540[];
+
+extern const classtable_elt_t VFT_ReduceAction541[];
+
+extern const classtable_elt_t VFT_ReduceAction542[];
+
+extern const classtable_elt_t VFT_ReduceAction543[];
+
+extern const classtable_elt_t VFT_ReduceAction544[];
+
+extern const classtable_elt_t VFT_ReduceAction545[];
+
+extern const classtable_elt_t VFT_ReduceAction546[];
+
+extern const classtable_elt_t VFT_ReduceAction547[];
+
+extern const classtable_elt_t VFT_ReduceAction548[];
+
+extern const classtable_elt_t VFT_ReduceAction549[];
+
+extern const classtable_elt_t VFT_ReduceAction550[];
+
+extern const classtable_elt_t VFT_ReduceAction551[];
+
+extern const classtable_elt_t VFT_ReduceAction552[];
+
+extern const classtable_elt_t VFT_ReduceAction553[];
+
+extern const classtable_elt_t VFT_ReduceAction554[];
+
+extern const classtable_elt_t VFT_ReduceAction555[];
+
+extern const classtable_elt_t VFT_ReduceAction556[];
+
+extern const classtable_elt_t VFT_ReduceAction557[];
+
+extern const classtable_elt_t VFT_ReduceAction558[];
+
+extern const classtable_elt_t VFT_ReduceAction559[];
+
+extern const classtable_elt_t VFT_ReduceAction560[];
+
+extern const classtable_elt_t VFT_ReduceAction561[];
+
+extern const classtable_elt_t VFT_ReduceAction562[];
+
+extern const classtable_elt_t VFT_ReduceAction563[];
+
+extern const classtable_elt_t VFT_ReduceAction564[];
+
+extern const classtable_elt_t VFT_ReduceAction565[];
+
+extern const classtable_elt_t VFT_ReduceAction566[];
+
+extern const classtable_elt_t VFT_ReduceAction567[];
+
+extern const classtable_elt_t VFT_ReduceAction568[];
+extern const int SFT_parser[];
+#define ID_State SFT_parser[0]
+#define COLOR_State SFT_parser[1]
+#define COLOR_parser___State____state SFT_parser[2]
+#define COLOR_parser___State____nodes SFT_parser[3]
+#define INIT_TABLE_POS_State SFT_parser[4]
+#define COLOR_parser___State___state SFT_parser[5]
+#define COLOR_parser___State___state__eq SFT_parser[6]
+#define COLOR_parser___State___nodes SFT_parser[7]
+#define COLOR_parser___State___nodes__eq SFT_parser[8]
+#define COLOR_parser___State___init SFT_parser[9]
+#define COLOR_parser___Parser____lexer SFT_parser[10]
+#define COLOR_parser___Parser____stack SFT_parser[11]
+#define COLOR_parser___Parser____stack_pos SFT_parser[12]
+#define COLOR_parser___Parser____reduce_table SFT_parser[13]
+#define COLOR_parser___Parser___init SFT_parser[14]
+#define COLOR_parser___Parser___go_to SFT_parser[15]
+#define COLOR_parser___Parser___push SFT_parser[16]
+#define COLOR_parser___Parser___state SFT_parser[17]
+#define COLOR_parser___Parser___pop SFT_parser[18]
+#define COLOR_parser___Parser___parse SFT_parser[19]
+#define COLOR_parser___Parser___build_reduce_table SFT_parser[20]
+#define ID_SearchTokensVisitor SFT_parser[21]
+#define COLOR_SearchTokensVisitor SFT_parser[22]
+#define COLOR_parser___SearchTokensVisitor____untokenned_nodes SFT_parser[23]
+#define COLOR_parser___SearchTokensVisitor____last_token SFT_parser[24]
+#define INIT_TABLE_POS_SearchTokensVisitor SFT_parser[25]
+#define COLOR_parser___SearchTokensVisitor___init SFT_parser[26]
+#define ID_ReduceAction SFT_parser[27]
+#define COLOR_ReduceAction SFT_parser[28]
+#define INIT_TABLE_POS_ReduceAction SFT_parser[29]
+#define COLOR_parser___ReduceAction___action SFT_parser[30]
+#define ID_ReduceAction0 SFT_parser[31]
+#define COLOR_ReduceAction0 SFT_parser[32]
+#define INIT_TABLE_POS_ReduceAction0 SFT_parser[33]
+#define COLOR_parser___ReduceAction0___init SFT_parser[34]
+#define ID_ReduceAction1 SFT_parser[35]
+#define COLOR_ReduceAction1 SFT_parser[36]
+#define INIT_TABLE_POS_ReduceAction1 SFT_parser[37]
+#define COLOR_parser___ReduceAction1___init SFT_parser[38]
+#define ID_ReduceAction2 SFT_parser[39]
+#define COLOR_ReduceAction2 SFT_parser[40]
+#define INIT_TABLE_POS_ReduceAction2 SFT_parser[41]
+#define COLOR_parser___ReduceAction2___init SFT_parser[42]
+#define ID_ReduceAction3 SFT_parser[43]
+#define COLOR_ReduceAction3 SFT_parser[44]
+#define INIT_TABLE_POS_ReduceAction3 SFT_parser[45]
+#define COLOR_parser___ReduceAction3___init SFT_parser[46]
+#define ID_ReduceAction4 SFT_parser[47]
+#define COLOR_ReduceAction4 SFT_parser[48]
+#define INIT_TABLE_POS_ReduceAction4 SFT_parser[49]
+#define COLOR_parser___ReduceAction4___init SFT_parser[50]
+#define ID_ReduceAction5 SFT_parser[51]
+#define COLOR_ReduceAction5 SFT_parser[52]
+#define INIT_TABLE_POS_ReduceAction5 SFT_parser[53]
+#define COLOR_parser___ReduceAction5___init SFT_parser[54]
+#define ID_ReduceAction6 SFT_parser[55]
+#define COLOR_ReduceAction6 SFT_parser[56]
+#define INIT_TABLE_POS_ReduceAction6 SFT_parser[57]
+#define COLOR_parser___ReduceAction6___init SFT_parser[58]
+#define ID_ReduceAction7 SFT_parser[59]
+#define COLOR_ReduceAction7 SFT_parser[60]
+#define INIT_TABLE_POS_ReduceAction7 SFT_parser[61]
+#define COLOR_parser___ReduceAction7___init SFT_parser[62]
+#define ID_ReduceAction8 SFT_parser[63]
+#define COLOR_ReduceAction8 SFT_parser[64]
+#define INIT_TABLE_POS_ReduceAction8 SFT_parser[65]
+#define COLOR_parser___ReduceAction8___init SFT_parser[66]
+#define ID_ReduceAction9 SFT_parser[67]
+#define COLOR_ReduceAction9 SFT_parser[68]
+#define INIT_TABLE_POS_ReduceAction9 SFT_parser[69]
+#define COLOR_parser___ReduceAction9___init SFT_parser[70]
+#define ID_ReduceAction10 SFT_parser[71]
+#define COLOR_ReduceAction10 SFT_parser[72]
+#define INIT_TABLE_POS_ReduceAction10 SFT_parser[73]
+#define COLOR_parser___ReduceAction10___init SFT_parser[74]
+#define ID_ReduceAction11 SFT_parser[75]
+#define COLOR_ReduceAction11 SFT_parser[76]
+#define INIT_TABLE_POS_ReduceAction11 SFT_parser[77]
+#define COLOR_parser___ReduceAction11___init SFT_parser[78]
+#define ID_ReduceAction12 SFT_parser[79]
+#define COLOR_ReduceAction12 SFT_parser[80]
+#define INIT_TABLE_POS_ReduceAction12 SFT_parser[81]
+#define COLOR_parser___ReduceAction12___init SFT_parser[82]
+#define ID_ReduceAction13 SFT_parser[83]
+#define COLOR_ReduceAction13 SFT_parser[84]
+#define INIT_TABLE_POS_ReduceAction13 SFT_parser[85]
+#define COLOR_parser___ReduceAction13___init SFT_parser[86]
+#define ID_ReduceAction14 SFT_parser[87]
+#define COLOR_ReduceAction14 SFT_parser[88]
+#define INIT_TABLE_POS_ReduceAction14 SFT_parser[89]
+#define COLOR_parser___ReduceAction14___init SFT_parser[90]
+#define ID_ReduceAction15 SFT_parser[91]
+#define COLOR_ReduceAction15 SFT_parser[92]
+#define INIT_TABLE_POS_ReduceAction15 SFT_parser[93]
+#define COLOR_parser___ReduceAction15___init SFT_parser[94]
+#define ID_ReduceAction16 SFT_parser[95]
+#define COLOR_ReduceAction16 SFT_parser[96]
+#define INIT_TABLE_POS_ReduceAction16 SFT_parser[97]
+#define COLOR_parser___ReduceAction16___init SFT_parser[98]
+#define ID_ReduceAction17 SFT_parser[99]
+#define COLOR_ReduceAction17 SFT_parser[100]
+#define INIT_TABLE_POS_ReduceAction17 SFT_parser[101]
+#define COLOR_parser___ReduceAction17___init SFT_parser[102]
+#define ID_ReduceAction18 SFT_parser[103]
+#define COLOR_ReduceAction18 SFT_parser[104]
+#define INIT_TABLE_POS_ReduceAction18 SFT_parser[105]
+#define COLOR_parser___ReduceAction18___init SFT_parser[106]
+#define ID_ReduceAction19 SFT_parser[107]
+#define COLOR_ReduceAction19 SFT_parser[108]
+#define INIT_TABLE_POS_ReduceAction19 SFT_parser[109]
+#define COLOR_parser___ReduceAction19___init SFT_parser[110]
+#define ID_ReduceAction20 SFT_parser[111]
+#define COLOR_ReduceAction20 SFT_parser[112]
+#define INIT_TABLE_POS_ReduceAction20 SFT_parser[113]
+#define COLOR_parser___ReduceAction20___init SFT_parser[114]
+#define ID_ReduceAction21 SFT_parser[115]
+#define COLOR_ReduceAction21 SFT_parser[116]
+#define INIT_TABLE_POS_ReduceAction21 SFT_parser[117]
+#define COLOR_parser___ReduceAction21___init SFT_parser[118]
+#define ID_ReduceAction22 SFT_parser[119]
+#define COLOR_ReduceAction22 SFT_parser[120]
+#define INIT_TABLE_POS_ReduceAction22 SFT_parser[121]
+#define COLOR_parser___ReduceAction22___init SFT_parser[122]
+#define ID_ReduceAction23 SFT_parser[123]
+#define COLOR_ReduceAction23 SFT_parser[124]
+#define INIT_TABLE_POS_ReduceAction23 SFT_parser[125]
+#define COLOR_parser___ReduceAction23___init SFT_parser[126]
+#define ID_ReduceAction24 SFT_parser[127]
+#define COLOR_ReduceAction24 SFT_parser[128]
+#define INIT_TABLE_POS_ReduceAction24 SFT_parser[129]
+#define COLOR_parser___ReduceAction24___init SFT_parser[130]
+#define ID_ReduceAction25 SFT_parser[131]
+#define COLOR_ReduceAction25 SFT_parser[132]
+#define INIT_TABLE_POS_ReduceAction25 SFT_parser[133]
+#define COLOR_parser___ReduceAction25___init SFT_parser[134]
+#define ID_ReduceAction26 SFT_parser[135]
+#define COLOR_ReduceAction26 SFT_parser[136]
+#define INIT_TABLE_POS_ReduceAction26 SFT_parser[137]
+#define COLOR_parser___ReduceAction26___init SFT_parser[138]
+#define ID_ReduceAction27 SFT_parser[139]
+#define COLOR_ReduceAction27 SFT_parser[140]
+#define INIT_TABLE_POS_ReduceAction27 SFT_parser[141]
+#define COLOR_parser___ReduceAction27___init SFT_parser[142]
+#define ID_ReduceAction28 SFT_parser[143]
+#define COLOR_ReduceAction28 SFT_parser[144]
+#define INIT_TABLE_POS_ReduceAction28 SFT_parser[145]
+#define COLOR_parser___ReduceAction28___init SFT_parser[146]
+#define ID_ReduceAction29 SFT_parser[147]
+#define COLOR_ReduceAction29 SFT_parser[148]
+#define INIT_TABLE_POS_ReduceAction29 SFT_parser[149]
+#define COLOR_parser___ReduceAction29___init SFT_parser[150]
+#define ID_ReduceAction30 SFT_parser[151]
+#define COLOR_ReduceAction30 SFT_parser[152]
+#define INIT_TABLE_POS_ReduceAction30 SFT_parser[153]
+#define COLOR_parser___ReduceAction30___init SFT_parser[154]
+#define ID_ReduceAction31 SFT_parser[155]
+#define COLOR_ReduceAction31 SFT_parser[156]
+#define INIT_TABLE_POS_ReduceAction31 SFT_parser[157]
+#define COLOR_parser___ReduceAction31___init SFT_parser[158]
+#define ID_ReduceAction32 SFT_parser[159]
+#define COLOR_ReduceAction32 SFT_parser[160]
+#define INIT_TABLE_POS_ReduceAction32 SFT_parser[161]
+#define COLOR_parser___ReduceAction32___init SFT_parser[162]
+#define ID_ReduceAction33 SFT_parser[163]
+#define COLOR_ReduceAction33 SFT_parser[164]
+#define INIT_TABLE_POS_ReduceAction33 SFT_parser[165]
+#define COLOR_parser___ReduceAction33___init SFT_parser[166]
+#define ID_ReduceAction34 SFT_parser[167]
+#define COLOR_ReduceAction34 SFT_parser[168]
+#define INIT_TABLE_POS_ReduceAction34 SFT_parser[169]
+#define COLOR_parser___ReduceAction34___init SFT_parser[170]
+#define ID_ReduceAction35 SFT_parser[171]
+#define COLOR_ReduceAction35 SFT_parser[172]
+#define INIT_TABLE_POS_ReduceAction35 SFT_parser[173]
+#define COLOR_parser___ReduceAction35___init SFT_parser[174]
+#define ID_ReduceAction36 SFT_parser[175]
+#define COLOR_ReduceAction36 SFT_parser[176]
+#define INIT_TABLE_POS_ReduceAction36 SFT_parser[177]
+#define COLOR_parser___ReduceAction36___init SFT_parser[178]
+#define ID_ReduceAction37 SFT_parser[179]
+#define COLOR_ReduceAction37 SFT_parser[180]
+#define INIT_TABLE_POS_ReduceAction37 SFT_parser[181]
+#define COLOR_parser___ReduceAction37___init SFT_parser[182]
+#define ID_ReduceAction38 SFT_parser[183]
+#define COLOR_ReduceAction38 SFT_parser[184]
+#define INIT_TABLE_POS_ReduceAction38 SFT_parser[185]
+#define COLOR_parser___ReduceAction38___init SFT_parser[186]
+#define ID_ReduceAction39 SFT_parser[187]
+#define COLOR_ReduceAction39 SFT_parser[188]
+#define INIT_TABLE_POS_ReduceAction39 SFT_parser[189]
+#define COLOR_parser___ReduceAction39___init SFT_parser[190]
+#define ID_ReduceAction40 SFT_parser[191]
+#define COLOR_ReduceAction40 SFT_parser[192]
+#define INIT_TABLE_POS_ReduceAction40 SFT_parser[193]
+#define COLOR_parser___ReduceAction40___init SFT_parser[194]
+#define ID_ReduceAction41 SFT_parser[195]
+#define COLOR_ReduceAction41 SFT_parser[196]
+#define INIT_TABLE_POS_ReduceAction41 SFT_parser[197]
+#define COLOR_parser___ReduceAction41___init SFT_parser[198]
+#define ID_ReduceAction42 SFT_parser[199]
+#define COLOR_ReduceAction42 SFT_parser[200]
+#define INIT_TABLE_POS_ReduceAction42 SFT_parser[201]
+#define COLOR_parser___ReduceAction42___init SFT_parser[202]
+#define ID_ReduceAction43 SFT_parser[203]
+#define COLOR_ReduceAction43 SFT_parser[204]
+#define INIT_TABLE_POS_ReduceAction43 SFT_parser[205]
+#define COLOR_parser___ReduceAction43___init SFT_parser[206]
+#define ID_ReduceAction44 SFT_parser[207]
+#define COLOR_ReduceAction44 SFT_parser[208]
+#define INIT_TABLE_POS_ReduceAction44 SFT_parser[209]
+#define COLOR_parser___ReduceAction44___init SFT_parser[210]
+#define ID_ReduceAction45 SFT_parser[211]
+#define COLOR_ReduceAction45 SFT_parser[212]
+#define INIT_TABLE_POS_ReduceAction45 SFT_parser[213]
+#define COLOR_parser___ReduceAction45___init SFT_parser[214]
+#define ID_ReduceAction46 SFT_parser[215]
+#define COLOR_ReduceAction46 SFT_parser[216]
+#define INIT_TABLE_POS_ReduceAction46 SFT_parser[217]
+#define COLOR_parser___ReduceAction46___init SFT_parser[218]
+#define ID_ReduceAction47 SFT_parser[219]
+#define COLOR_ReduceAction47 SFT_parser[220]
+#define INIT_TABLE_POS_ReduceAction47 SFT_parser[221]
+#define COLOR_parser___ReduceAction47___init SFT_parser[222]
+#define ID_ReduceAction48 SFT_parser[223]
+#define COLOR_ReduceAction48 SFT_parser[224]
+#define INIT_TABLE_POS_ReduceAction48 SFT_parser[225]
+#define COLOR_parser___ReduceAction48___init SFT_parser[226]
+#define ID_ReduceAction49 SFT_parser[227]
+#define COLOR_ReduceAction49 SFT_parser[228]
+#define INIT_TABLE_POS_ReduceAction49 SFT_parser[229]
+#define COLOR_parser___ReduceAction49___init SFT_parser[230]
+#define ID_ReduceAction50 SFT_parser[231]
+#define COLOR_ReduceAction50 SFT_parser[232]
+#define INIT_TABLE_POS_ReduceAction50 SFT_parser[233]
+#define COLOR_parser___ReduceAction50___init SFT_parser[234]
+#define ID_ReduceAction51 SFT_parser[235]
+#define COLOR_ReduceAction51 SFT_parser[236]
+#define INIT_TABLE_POS_ReduceAction51 SFT_parser[237]
+#define COLOR_parser___ReduceAction51___init SFT_parser[238]
+#define ID_ReduceAction52 SFT_parser[239]
+#define COLOR_ReduceAction52 SFT_parser[240]
+#define INIT_TABLE_POS_ReduceAction52 SFT_parser[241]
+#define COLOR_parser___ReduceAction52___init SFT_parser[242]
+#define ID_ReduceAction53 SFT_parser[243]
+#define COLOR_ReduceAction53 SFT_parser[244]
+#define INIT_TABLE_POS_ReduceAction53 SFT_parser[245]
+#define COLOR_parser___ReduceAction53___init SFT_parser[246]
+#define ID_ReduceAction54 SFT_parser[247]
+#define COLOR_ReduceAction54 SFT_parser[248]
+#define INIT_TABLE_POS_ReduceAction54 SFT_parser[249]
+#define COLOR_parser___ReduceAction54___init SFT_parser[250]
+#define ID_ReduceAction55 SFT_parser[251]
+#define COLOR_ReduceAction55 SFT_parser[252]
+#define INIT_TABLE_POS_ReduceAction55 SFT_parser[253]
+#define COLOR_parser___ReduceAction55___init SFT_parser[254]
+#define ID_ReduceAction56 SFT_parser[255]
+#define COLOR_ReduceAction56 SFT_parser[256]
+#define INIT_TABLE_POS_ReduceAction56 SFT_parser[257]
+#define COLOR_parser___ReduceAction56___init SFT_parser[258]
+#define ID_ReduceAction57 SFT_parser[259]
+#define COLOR_ReduceAction57 SFT_parser[260]
+#define INIT_TABLE_POS_ReduceAction57 SFT_parser[261]
+#define COLOR_parser___ReduceAction57___init SFT_parser[262]
+#define ID_ReduceAction58 SFT_parser[263]
+#define COLOR_ReduceAction58 SFT_parser[264]
+#define INIT_TABLE_POS_ReduceAction58 SFT_parser[265]
+#define COLOR_parser___ReduceAction58___init SFT_parser[266]
+#define ID_ReduceAction59 SFT_parser[267]
+#define COLOR_ReduceAction59 SFT_parser[268]
+#define INIT_TABLE_POS_ReduceAction59 SFT_parser[269]
+#define COLOR_parser___ReduceAction59___init SFT_parser[270]
+#define ID_ReduceAction60 SFT_parser[271]
+#define COLOR_ReduceAction60 SFT_parser[272]
+#define INIT_TABLE_POS_ReduceAction60 SFT_parser[273]
+#define COLOR_parser___ReduceAction60___init SFT_parser[274]
+#define ID_ReduceAction61 SFT_parser[275]
+#define COLOR_ReduceAction61 SFT_parser[276]
+#define INIT_TABLE_POS_ReduceAction61 SFT_parser[277]
+#define COLOR_parser___ReduceAction61___init SFT_parser[278]
+#define ID_ReduceAction62 SFT_parser[279]
+#define COLOR_ReduceAction62 SFT_parser[280]
+#define INIT_TABLE_POS_ReduceAction62 SFT_parser[281]
+#define COLOR_parser___ReduceAction62___init SFT_parser[282]
+#define ID_ReduceAction63 SFT_parser[283]
+#define COLOR_ReduceAction63 SFT_parser[284]
+#define INIT_TABLE_POS_ReduceAction63 SFT_parser[285]
+#define COLOR_parser___ReduceAction63___init SFT_parser[286]
+#define ID_ReduceAction64 SFT_parser[287]
+#define COLOR_ReduceAction64 SFT_parser[288]
+#define INIT_TABLE_POS_ReduceAction64 SFT_parser[289]
+#define COLOR_parser___ReduceAction64___init SFT_parser[290]
+#define ID_ReduceAction65 SFT_parser[291]
+#define COLOR_ReduceAction65 SFT_parser[292]
+#define INIT_TABLE_POS_ReduceAction65 SFT_parser[293]
+#define COLOR_parser___ReduceAction65___init SFT_parser[294]
+#define ID_ReduceAction66 SFT_parser[295]
+#define COLOR_ReduceAction66 SFT_parser[296]
+#define INIT_TABLE_POS_ReduceAction66 SFT_parser[297]
+#define COLOR_parser___ReduceAction66___init SFT_parser[298]
+#define ID_ReduceAction67 SFT_parser[299]
+#define COLOR_ReduceAction67 SFT_parser[300]
+#define INIT_TABLE_POS_ReduceAction67 SFT_parser[301]
+#define COLOR_parser___ReduceAction67___init SFT_parser[302]
+#define ID_ReduceAction68 SFT_parser[303]
+#define COLOR_ReduceAction68 SFT_parser[304]
+#define INIT_TABLE_POS_ReduceAction68 SFT_parser[305]
+#define COLOR_parser___ReduceAction68___init SFT_parser[306]
+#define ID_ReduceAction69 SFT_parser[307]
+#define COLOR_ReduceAction69 SFT_parser[308]
+#define INIT_TABLE_POS_ReduceAction69 SFT_parser[309]
+#define COLOR_parser___ReduceAction69___init SFT_parser[310]
+#define ID_ReduceAction70 SFT_parser[311]
+#define COLOR_ReduceAction70 SFT_parser[312]
+#define INIT_TABLE_POS_ReduceAction70 SFT_parser[313]
+#define COLOR_parser___ReduceAction70___init SFT_parser[314]
+#define ID_ReduceAction71 SFT_parser[315]
+#define COLOR_ReduceAction71 SFT_parser[316]
+#define INIT_TABLE_POS_ReduceAction71 SFT_parser[317]
+#define COLOR_parser___ReduceAction71___init SFT_parser[318]
+#define ID_ReduceAction72 SFT_parser[319]
+#define COLOR_ReduceAction72 SFT_parser[320]
+#define INIT_TABLE_POS_ReduceAction72 SFT_parser[321]
+#define COLOR_parser___ReduceAction72___init SFT_parser[322]
+#define ID_ReduceAction73 SFT_parser[323]
+#define COLOR_ReduceAction73 SFT_parser[324]
+#define INIT_TABLE_POS_ReduceAction73 SFT_parser[325]
+#define COLOR_parser___ReduceAction73___init SFT_parser[326]
+#define ID_ReduceAction74 SFT_parser[327]
+#define COLOR_ReduceAction74 SFT_parser[328]
+#define INIT_TABLE_POS_ReduceAction74 SFT_parser[329]
+#define COLOR_parser___ReduceAction74___init SFT_parser[330]
+#define ID_ReduceAction75 SFT_parser[331]
+#define COLOR_ReduceAction75 SFT_parser[332]
+#define INIT_TABLE_POS_ReduceAction75 SFT_parser[333]
+#define COLOR_parser___ReduceAction75___init SFT_parser[334]
+#define ID_ReduceAction76 SFT_parser[335]
+#define COLOR_ReduceAction76 SFT_parser[336]
+#define INIT_TABLE_POS_ReduceAction76 SFT_parser[337]
+#define COLOR_parser___ReduceAction76___init SFT_parser[338]
+#define ID_ReduceAction77 SFT_parser[339]
+#define COLOR_ReduceAction77 SFT_parser[340]
+#define INIT_TABLE_POS_ReduceAction77 SFT_parser[341]
+#define COLOR_parser___ReduceAction77___init SFT_parser[342]
+#define ID_ReduceAction78 SFT_parser[343]
+#define COLOR_ReduceAction78 SFT_parser[344]
+#define INIT_TABLE_POS_ReduceAction78 SFT_parser[345]
+#define COLOR_parser___ReduceAction78___init SFT_parser[346]
+#define ID_ReduceAction79 SFT_parser[347]
+#define COLOR_ReduceAction79 SFT_parser[348]
+#define INIT_TABLE_POS_ReduceAction79 SFT_parser[349]
+#define COLOR_parser___ReduceAction79___init SFT_parser[350]
+#define ID_ReduceAction80 SFT_parser[351]
+#define COLOR_ReduceAction80 SFT_parser[352]
+#define INIT_TABLE_POS_ReduceAction80 SFT_parser[353]
+#define COLOR_parser___ReduceAction80___init SFT_parser[354]
+#define ID_ReduceAction81 SFT_parser[355]
+#define COLOR_ReduceAction81 SFT_parser[356]
+#define INIT_TABLE_POS_ReduceAction81 SFT_parser[357]
+#define COLOR_parser___ReduceAction81___init SFT_parser[358]
+#define ID_ReduceAction82 SFT_parser[359]
+#define COLOR_ReduceAction82 SFT_parser[360]
+#define INIT_TABLE_POS_ReduceAction82 SFT_parser[361]
+#define COLOR_parser___ReduceAction82___init SFT_parser[362]
+#define ID_ReduceAction83 SFT_parser[363]
+#define COLOR_ReduceAction83 SFT_parser[364]
+#define INIT_TABLE_POS_ReduceAction83 SFT_parser[365]
+#define COLOR_parser___ReduceAction83___init SFT_parser[366]
+#define ID_ReduceAction84 SFT_parser[367]
+#define COLOR_ReduceAction84 SFT_parser[368]
+#define INIT_TABLE_POS_ReduceAction84 SFT_parser[369]
+#define COLOR_parser___ReduceAction84___init SFT_parser[370]
+#define ID_ReduceAction85 SFT_parser[371]
+#define COLOR_ReduceAction85 SFT_parser[372]
+#define INIT_TABLE_POS_ReduceAction85 SFT_parser[373]
+#define COLOR_parser___ReduceAction85___init SFT_parser[374]
+#define ID_ReduceAction86 SFT_parser[375]
+#define COLOR_ReduceAction86 SFT_parser[376]
+#define INIT_TABLE_POS_ReduceAction86 SFT_parser[377]
+#define COLOR_parser___ReduceAction86___init SFT_parser[378]
+#define ID_ReduceAction87 SFT_parser[379]
+#define COLOR_ReduceAction87 SFT_parser[380]
+#define INIT_TABLE_POS_ReduceAction87 SFT_parser[381]
+#define COLOR_parser___ReduceAction87___init SFT_parser[382]
+#define ID_ReduceAction88 SFT_parser[383]
+#define COLOR_ReduceAction88 SFT_parser[384]
+#define INIT_TABLE_POS_ReduceAction88 SFT_parser[385]
+#define COLOR_parser___ReduceAction88___init SFT_parser[386]
+#define ID_ReduceAction89 SFT_parser[387]
+#define COLOR_ReduceAction89 SFT_parser[388]
+#define INIT_TABLE_POS_ReduceAction89 SFT_parser[389]
+#define COLOR_parser___ReduceAction89___init SFT_parser[390]
+#define ID_ReduceAction90 SFT_parser[391]
+#define COLOR_ReduceAction90 SFT_parser[392]
+#define INIT_TABLE_POS_ReduceAction90 SFT_parser[393]
+#define COLOR_parser___ReduceAction90___init SFT_parser[394]
+#define ID_ReduceAction91 SFT_parser[395]
+#define COLOR_ReduceAction91 SFT_parser[396]
+#define INIT_TABLE_POS_ReduceAction91 SFT_parser[397]
+#define COLOR_parser___ReduceAction91___init SFT_parser[398]
+#define ID_ReduceAction92 SFT_parser[399]
+#define COLOR_ReduceAction92 SFT_parser[400]
+#define INIT_TABLE_POS_ReduceAction92 SFT_parser[401]
+#define COLOR_parser___ReduceAction92___init SFT_parser[402]
+#define ID_ReduceAction93 SFT_parser[403]
+#define COLOR_ReduceAction93 SFT_parser[404]
+#define INIT_TABLE_POS_ReduceAction93 SFT_parser[405]
+#define COLOR_parser___ReduceAction93___init SFT_parser[406]
+#define ID_ReduceAction94 SFT_parser[407]
+#define COLOR_ReduceAction94 SFT_parser[408]
+#define INIT_TABLE_POS_ReduceAction94 SFT_parser[409]
+#define COLOR_parser___ReduceAction94___init SFT_parser[410]
+#define ID_ReduceAction95 SFT_parser[411]
+#define COLOR_ReduceAction95 SFT_parser[412]
+#define INIT_TABLE_POS_ReduceAction95 SFT_parser[413]
+#define COLOR_parser___ReduceAction95___init SFT_parser[414]
+#define ID_ReduceAction96 SFT_parser[415]
+#define COLOR_ReduceAction96 SFT_parser[416]
+#define INIT_TABLE_POS_ReduceAction96 SFT_parser[417]
+#define COLOR_parser___ReduceAction96___init SFT_parser[418]
+#define ID_ReduceAction97 SFT_parser[419]
+#define COLOR_ReduceAction97 SFT_parser[420]
+#define INIT_TABLE_POS_ReduceAction97 SFT_parser[421]
+#define COLOR_parser___ReduceAction97___init SFT_parser[422]
+#define ID_ReduceAction98 SFT_parser[423]
+#define COLOR_ReduceAction98 SFT_parser[424]
+#define INIT_TABLE_POS_ReduceAction98 SFT_parser[425]
+#define COLOR_parser___ReduceAction98___init SFT_parser[426]
+#define ID_ReduceAction99 SFT_parser[427]
+#define COLOR_ReduceAction99 SFT_parser[428]
+#define INIT_TABLE_POS_ReduceAction99 SFT_parser[429]
+#define COLOR_parser___ReduceAction99___init SFT_parser[430]
+#define ID_ReduceAction100 SFT_parser[431]
+#define COLOR_ReduceAction100 SFT_parser[432]
+#define INIT_TABLE_POS_ReduceAction100 SFT_parser[433]
+#define COLOR_parser___ReduceAction100___init SFT_parser[434]
+#define ID_ReduceAction101 SFT_parser[435]
+#define COLOR_ReduceAction101 SFT_parser[436]
+#define INIT_TABLE_POS_ReduceAction101 SFT_parser[437]
+#define COLOR_parser___ReduceAction101___init SFT_parser[438]
+#define ID_ReduceAction102 SFT_parser[439]
+#define COLOR_ReduceAction102 SFT_parser[440]
+#define INIT_TABLE_POS_ReduceAction102 SFT_parser[441]
+#define COLOR_parser___ReduceAction102___init SFT_parser[442]
+#define ID_ReduceAction103 SFT_parser[443]
+#define COLOR_ReduceAction103 SFT_parser[444]
+#define INIT_TABLE_POS_ReduceAction103 SFT_parser[445]
+#define COLOR_parser___ReduceAction103___init SFT_parser[446]
+#define ID_ReduceAction104 SFT_parser[447]
+#define COLOR_ReduceAction104 SFT_parser[448]
+#define INIT_TABLE_POS_ReduceAction104 SFT_parser[449]
+#define COLOR_parser___ReduceAction104___init SFT_parser[450]
+#define ID_ReduceAction105 SFT_parser[451]
+#define COLOR_ReduceAction105 SFT_parser[452]
+#define INIT_TABLE_POS_ReduceAction105 SFT_parser[453]
+#define COLOR_parser___ReduceAction105___init SFT_parser[454]
+#define ID_ReduceAction106 SFT_parser[455]
+#define COLOR_ReduceAction106 SFT_parser[456]
+#define INIT_TABLE_POS_ReduceAction106 SFT_parser[457]
+#define COLOR_parser___ReduceAction106___init SFT_parser[458]
+#define ID_ReduceAction107 SFT_parser[459]
+#define COLOR_ReduceAction107 SFT_parser[460]
+#define INIT_TABLE_POS_ReduceAction107 SFT_parser[461]
+#define COLOR_parser___ReduceAction107___init SFT_parser[462]
+#define ID_ReduceAction108 SFT_parser[463]
+#define COLOR_ReduceAction108 SFT_parser[464]
+#define INIT_TABLE_POS_ReduceAction108 SFT_parser[465]
+#define COLOR_parser___ReduceAction108___init SFT_parser[466]
+#define ID_ReduceAction109 SFT_parser[467]
+#define COLOR_ReduceAction109 SFT_parser[468]
+#define INIT_TABLE_POS_ReduceAction109 SFT_parser[469]
+#define COLOR_parser___ReduceAction109___init SFT_parser[470]
+#define ID_ReduceAction110 SFT_parser[471]
+#define COLOR_ReduceAction110 SFT_parser[472]
+#define INIT_TABLE_POS_ReduceAction110 SFT_parser[473]
+#define COLOR_parser___ReduceAction110___init SFT_parser[474]
+#define ID_ReduceAction111 SFT_parser[475]
+#define COLOR_ReduceAction111 SFT_parser[476]
+#define INIT_TABLE_POS_ReduceAction111 SFT_parser[477]
+#define COLOR_parser___ReduceAction111___init SFT_parser[478]
+#define ID_ReduceAction112 SFT_parser[479]
+#define COLOR_ReduceAction112 SFT_parser[480]
+#define INIT_TABLE_POS_ReduceAction112 SFT_parser[481]
+#define COLOR_parser___ReduceAction112___init SFT_parser[482]
+#define ID_ReduceAction113 SFT_parser[483]
+#define COLOR_ReduceAction113 SFT_parser[484]
+#define INIT_TABLE_POS_ReduceAction113 SFT_parser[485]
+#define COLOR_parser___ReduceAction113___init SFT_parser[486]
+#define ID_ReduceAction114 SFT_parser[487]
+#define COLOR_ReduceAction114 SFT_parser[488]
+#define INIT_TABLE_POS_ReduceAction114 SFT_parser[489]
+#define COLOR_parser___ReduceAction114___init SFT_parser[490]
+#define ID_ReduceAction115 SFT_parser[491]
+#define COLOR_ReduceAction115 SFT_parser[492]
+#define INIT_TABLE_POS_ReduceAction115 SFT_parser[493]
+#define COLOR_parser___ReduceAction115___init SFT_parser[494]
+#define ID_ReduceAction116 SFT_parser[495]
+#define COLOR_ReduceAction116 SFT_parser[496]
+#define INIT_TABLE_POS_ReduceAction116 SFT_parser[497]
+#define COLOR_parser___ReduceAction116___init SFT_parser[498]
+#define ID_ReduceAction117 SFT_parser[499]
+#define COLOR_ReduceAction117 SFT_parser[500]
+#define INIT_TABLE_POS_ReduceAction117 SFT_parser[501]
+#define COLOR_parser___ReduceAction117___init SFT_parser[502]
+#define ID_ReduceAction118 SFT_parser[503]
+#define COLOR_ReduceAction118 SFT_parser[504]
+#define INIT_TABLE_POS_ReduceAction118 SFT_parser[505]
+#define COLOR_parser___ReduceAction118___init SFT_parser[506]
+#define ID_ReduceAction119 SFT_parser[507]
+#define COLOR_ReduceAction119 SFT_parser[508]
+#define INIT_TABLE_POS_ReduceAction119 SFT_parser[509]
+#define COLOR_parser___ReduceAction119___init SFT_parser[510]
+#define ID_ReduceAction120 SFT_parser[511]
+#define COLOR_ReduceAction120 SFT_parser[512]
+#define INIT_TABLE_POS_ReduceAction120 SFT_parser[513]
+#define COLOR_parser___ReduceAction120___init SFT_parser[514]
+#define ID_ReduceAction121 SFT_parser[515]
+#define COLOR_ReduceAction121 SFT_parser[516]
+#define INIT_TABLE_POS_ReduceAction121 SFT_parser[517]
+#define COLOR_parser___ReduceAction121___init SFT_parser[518]
+#define ID_ReduceAction122 SFT_parser[519]
+#define COLOR_ReduceAction122 SFT_parser[520]
+#define INIT_TABLE_POS_ReduceAction122 SFT_parser[521]
+#define COLOR_parser___ReduceAction122___init SFT_parser[522]
+#define ID_ReduceAction123 SFT_parser[523]
+#define COLOR_ReduceAction123 SFT_parser[524]
+#define INIT_TABLE_POS_ReduceAction123 SFT_parser[525]
+#define COLOR_parser___ReduceAction123___init SFT_parser[526]
+#define ID_ReduceAction124 SFT_parser[527]
+#define COLOR_ReduceAction124 SFT_parser[528]
+#define INIT_TABLE_POS_ReduceAction124 SFT_parser[529]
+#define COLOR_parser___ReduceAction124___init SFT_parser[530]
+#define ID_ReduceAction125 SFT_parser[531]
+#define COLOR_ReduceAction125 SFT_parser[532]
+#define INIT_TABLE_POS_ReduceAction125 SFT_parser[533]
+#define COLOR_parser___ReduceAction125___init SFT_parser[534]
+#define ID_ReduceAction126 SFT_parser[535]
+#define COLOR_ReduceAction126 SFT_parser[536]
+#define INIT_TABLE_POS_ReduceAction126 SFT_parser[537]
+#define COLOR_parser___ReduceAction126___init SFT_parser[538]
+#define ID_ReduceAction127 SFT_parser[539]
+#define COLOR_ReduceAction127 SFT_parser[540]
+#define INIT_TABLE_POS_ReduceAction127 SFT_parser[541]
+#define COLOR_parser___ReduceAction127___init SFT_parser[542]
+#define ID_ReduceAction128 SFT_parser[543]
+#define COLOR_ReduceAction128 SFT_parser[544]
+#define INIT_TABLE_POS_ReduceAction128 SFT_parser[545]
+#define COLOR_parser___ReduceAction128___init SFT_parser[546]
+#define ID_ReduceAction129 SFT_parser[547]
+#define COLOR_ReduceAction129 SFT_parser[548]
+#define INIT_TABLE_POS_ReduceAction129 SFT_parser[549]
+#define COLOR_parser___ReduceAction129___init SFT_parser[550]
+#define ID_ReduceAction130 SFT_parser[551]
+#define COLOR_ReduceAction130 SFT_parser[552]
+#define INIT_TABLE_POS_ReduceAction130 SFT_parser[553]
+#define COLOR_parser___ReduceAction130___init SFT_parser[554]
+#define ID_ReduceAction131 SFT_parser[555]
+#define COLOR_ReduceAction131 SFT_parser[556]
+#define INIT_TABLE_POS_ReduceAction131 SFT_parser[557]
+#define COLOR_parser___ReduceAction131___init SFT_parser[558]
+#define ID_ReduceAction132 SFT_parser[559]
+#define COLOR_ReduceAction132 SFT_parser[560]
+#define INIT_TABLE_POS_ReduceAction132 SFT_parser[561]
+#define COLOR_parser___ReduceAction132___init SFT_parser[562]
+#define ID_ReduceAction133 SFT_parser[563]
+#define COLOR_ReduceAction133 SFT_parser[564]
+#define INIT_TABLE_POS_ReduceAction133 SFT_parser[565]
+#define COLOR_parser___ReduceAction133___init SFT_parser[566]
+#define ID_ReduceAction134 SFT_parser[567]
+#define COLOR_ReduceAction134 SFT_parser[568]
+#define INIT_TABLE_POS_ReduceAction134 SFT_parser[569]
+#define COLOR_parser___ReduceAction134___init SFT_parser[570]
+#define ID_ReduceAction135 SFT_parser[571]
+#define COLOR_ReduceAction135 SFT_parser[572]
+#define INIT_TABLE_POS_ReduceAction135 SFT_parser[573]
+#define COLOR_parser___ReduceAction135___init SFT_parser[574]
+#define ID_ReduceAction136 SFT_parser[575]
+#define COLOR_ReduceAction136 SFT_parser[576]
+#define INIT_TABLE_POS_ReduceAction136 SFT_parser[577]
+#define COLOR_parser___ReduceAction136___init SFT_parser[578]
+#define ID_ReduceAction137 SFT_parser[579]
+#define COLOR_ReduceAction137 SFT_parser[580]
+#define INIT_TABLE_POS_ReduceAction137 SFT_parser[581]
+#define COLOR_parser___ReduceAction137___init SFT_parser[582]
+#define ID_ReduceAction138 SFT_parser[583]
+#define COLOR_ReduceAction138 SFT_parser[584]
+#define INIT_TABLE_POS_ReduceAction138 SFT_parser[585]
+#define COLOR_parser___ReduceAction138___init SFT_parser[586]
+#define ID_ReduceAction139 SFT_parser[587]
+#define COLOR_ReduceAction139 SFT_parser[588]
+#define INIT_TABLE_POS_ReduceAction139 SFT_parser[589]
+#define COLOR_parser___ReduceAction139___init SFT_parser[590]
+#define ID_ReduceAction140 SFT_parser[591]
+#define COLOR_ReduceAction140 SFT_parser[592]
+#define INIT_TABLE_POS_ReduceAction140 SFT_parser[593]
+#define COLOR_parser___ReduceAction140___init SFT_parser[594]
+#define ID_ReduceAction141 SFT_parser[595]
+#define COLOR_ReduceAction141 SFT_parser[596]
+#define INIT_TABLE_POS_ReduceAction141 SFT_parser[597]
+#define COLOR_parser___ReduceAction141___init SFT_parser[598]
+#define ID_ReduceAction142 SFT_parser[599]
+#define COLOR_ReduceAction142 SFT_parser[600]
+#define INIT_TABLE_POS_ReduceAction142 SFT_parser[601]
+#define COLOR_parser___ReduceAction142___init SFT_parser[602]
+#define ID_ReduceAction143 SFT_parser[603]
+#define COLOR_ReduceAction143 SFT_parser[604]
+#define INIT_TABLE_POS_ReduceAction143 SFT_parser[605]
+#define COLOR_parser___ReduceAction143___init SFT_parser[606]
+#define ID_ReduceAction144 SFT_parser[607]
+#define COLOR_ReduceAction144 SFT_parser[608]
+#define INIT_TABLE_POS_ReduceAction144 SFT_parser[609]
+#define COLOR_parser___ReduceAction144___init SFT_parser[610]
+#define ID_ReduceAction145 SFT_parser[611]
+#define COLOR_ReduceAction145 SFT_parser[612]
+#define INIT_TABLE_POS_ReduceAction145 SFT_parser[613]
+#define COLOR_parser___ReduceAction145___init SFT_parser[614]
+#define ID_ReduceAction146 SFT_parser[615]
+#define COLOR_ReduceAction146 SFT_parser[616]
+#define INIT_TABLE_POS_ReduceAction146 SFT_parser[617]
+#define COLOR_parser___ReduceAction146___init SFT_parser[618]
+#define ID_ReduceAction147 SFT_parser[619]
+#define COLOR_ReduceAction147 SFT_parser[620]
+#define INIT_TABLE_POS_ReduceAction147 SFT_parser[621]
+#define COLOR_parser___ReduceAction147___init SFT_parser[622]
+#define ID_ReduceAction148 SFT_parser[623]
+#define COLOR_ReduceAction148 SFT_parser[624]
+#define INIT_TABLE_POS_ReduceAction148 SFT_parser[625]
+#define COLOR_parser___ReduceAction148___init SFT_parser[626]
+#define ID_ReduceAction149 SFT_parser[627]
+#define COLOR_ReduceAction149 SFT_parser[628]
+#define INIT_TABLE_POS_ReduceAction149 SFT_parser[629]
+#define COLOR_parser___ReduceAction149___init SFT_parser[630]
+#define ID_ReduceAction150 SFT_parser[631]
+#define COLOR_ReduceAction150 SFT_parser[632]
+#define INIT_TABLE_POS_ReduceAction150 SFT_parser[633]
+#define COLOR_parser___ReduceAction150___init SFT_parser[634]
+#define ID_ReduceAction151 SFT_parser[635]
+#define COLOR_ReduceAction151 SFT_parser[636]
+#define INIT_TABLE_POS_ReduceAction151 SFT_parser[637]
+#define COLOR_parser___ReduceAction151___init SFT_parser[638]
+#define ID_ReduceAction152 SFT_parser[639]
+#define COLOR_ReduceAction152 SFT_parser[640]
+#define INIT_TABLE_POS_ReduceAction152 SFT_parser[641]
+#define COLOR_parser___ReduceAction152___init SFT_parser[642]
+#define ID_ReduceAction153 SFT_parser[643]
+#define COLOR_ReduceAction153 SFT_parser[644]
+#define INIT_TABLE_POS_ReduceAction153 SFT_parser[645]
+#define COLOR_parser___ReduceAction153___init SFT_parser[646]
+#define ID_ReduceAction154 SFT_parser[647]
+#define COLOR_ReduceAction154 SFT_parser[648]
+#define INIT_TABLE_POS_ReduceAction154 SFT_parser[649]
+#define COLOR_parser___ReduceAction154___init SFT_parser[650]
+#define ID_ReduceAction155 SFT_parser[651]
+#define COLOR_ReduceAction155 SFT_parser[652]
+#define INIT_TABLE_POS_ReduceAction155 SFT_parser[653]
+#define COLOR_parser___ReduceAction155___init SFT_parser[654]
+#define ID_ReduceAction156 SFT_parser[655]
+#define COLOR_ReduceAction156 SFT_parser[656]
+#define INIT_TABLE_POS_ReduceAction156 SFT_parser[657]
+#define COLOR_parser___ReduceAction156___init SFT_parser[658]
+#define ID_ReduceAction157 SFT_parser[659]
+#define COLOR_ReduceAction157 SFT_parser[660]
+#define INIT_TABLE_POS_ReduceAction157 SFT_parser[661]
+#define COLOR_parser___ReduceAction157___init SFT_parser[662]
+#define ID_ReduceAction158 SFT_parser[663]
+#define COLOR_ReduceAction158 SFT_parser[664]
+#define INIT_TABLE_POS_ReduceAction158 SFT_parser[665]
+#define COLOR_parser___ReduceAction158___init SFT_parser[666]
+#define ID_ReduceAction159 SFT_parser[667]
+#define COLOR_ReduceAction159 SFT_parser[668]
+#define INIT_TABLE_POS_ReduceAction159 SFT_parser[669]
+#define COLOR_parser___ReduceAction159___init SFT_parser[670]
+#define ID_ReduceAction160 SFT_parser[671]
+#define COLOR_ReduceAction160 SFT_parser[672]
+#define INIT_TABLE_POS_ReduceAction160 SFT_parser[673]
+#define COLOR_parser___ReduceAction160___init SFT_parser[674]
+#define ID_ReduceAction161 SFT_parser[675]
+#define COLOR_ReduceAction161 SFT_parser[676]
+#define INIT_TABLE_POS_ReduceAction161 SFT_parser[677]
+#define COLOR_parser___ReduceAction161___init SFT_parser[678]
+#define ID_ReduceAction162 SFT_parser[679]
+#define COLOR_ReduceAction162 SFT_parser[680]
+#define INIT_TABLE_POS_ReduceAction162 SFT_parser[681]
+#define COLOR_parser___ReduceAction162___init SFT_parser[682]
+#define ID_ReduceAction163 SFT_parser[683]
+#define COLOR_ReduceAction163 SFT_parser[684]
+#define INIT_TABLE_POS_ReduceAction163 SFT_parser[685]
+#define COLOR_parser___ReduceAction163___init SFT_parser[686]
+#define ID_ReduceAction164 SFT_parser[687]
+#define COLOR_ReduceAction164 SFT_parser[688]
+#define INIT_TABLE_POS_ReduceAction164 SFT_parser[689]
+#define COLOR_parser___ReduceAction164___init SFT_parser[690]
+#define ID_ReduceAction165 SFT_parser[691]
+#define COLOR_ReduceAction165 SFT_parser[692]
+#define INIT_TABLE_POS_ReduceAction165 SFT_parser[693]
+#define COLOR_parser___ReduceAction165___init SFT_parser[694]
+#define ID_ReduceAction166 SFT_parser[695]
+#define COLOR_ReduceAction166 SFT_parser[696]
+#define INIT_TABLE_POS_ReduceAction166 SFT_parser[697]
+#define COLOR_parser___ReduceAction166___init SFT_parser[698]
+#define ID_ReduceAction167 SFT_parser[699]
+#define COLOR_ReduceAction167 SFT_parser[700]
+#define INIT_TABLE_POS_ReduceAction167 SFT_parser[701]
+#define COLOR_parser___ReduceAction167___init SFT_parser[702]
+#define ID_ReduceAction168 SFT_parser[703]
+#define COLOR_ReduceAction168 SFT_parser[704]
+#define INIT_TABLE_POS_ReduceAction168 SFT_parser[705]
+#define COLOR_parser___ReduceAction168___init SFT_parser[706]
+#define ID_ReduceAction169 SFT_parser[707]
+#define COLOR_ReduceAction169 SFT_parser[708]
+#define INIT_TABLE_POS_ReduceAction169 SFT_parser[709]
+#define COLOR_parser___ReduceAction169___init SFT_parser[710]
+#define ID_ReduceAction170 SFT_parser[711]
+#define COLOR_ReduceAction170 SFT_parser[712]
+#define INIT_TABLE_POS_ReduceAction170 SFT_parser[713]
+#define COLOR_parser___ReduceAction170___init SFT_parser[714]
+#define ID_ReduceAction171 SFT_parser[715]
+#define COLOR_ReduceAction171 SFT_parser[716]
+#define INIT_TABLE_POS_ReduceAction171 SFT_parser[717]
+#define COLOR_parser___ReduceAction171___init SFT_parser[718]
+#define ID_ReduceAction172 SFT_parser[719]
+#define COLOR_ReduceAction172 SFT_parser[720]
+#define INIT_TABLE_POS_ReduceAction172 SFT_parser[721]
+#define COLOR_parser___ReduceAction172___init SFT_parser[722]
+#define ID_ReduceAction173 SFT_parser[723]
+#define COLOR_ReduceAction173 SFT_parser[724]
+#define INIT_TABLE_POS_ReduceAction173 SFT_parser[725]
+#define COLOR_parser___ReduceAction173___init SFT_parser[726]
+#define ID_ReduceAction174 SFT_parser[727]
+#define COLOR_ReduceAction174 SFT_parser[728]
+#define INIT_TABLE_POS_ReduceAction174 SFT_parser[729]
+#define COLOR_parser___ReduceAction174___init SFT_parser[730]
+#define ID_ReduceAction175 SFT_parser[731]
+#define COLOR_ReduceAction175 SFT_parser[732]
+#define INIT_TABLE_POS_ReduceAction175 SFT_parser[733]
+#define COLOR_parser___ReduceAction175___init SFT_parser[734]
+#define ID_ReduceAction176 SFT_parser[735]
+#define COLOR_ReduceAction176 SFT_parser[736]
+#define INIT_TABLE_POS_ReduceAction176 SFT_parser[737]
+#define COLOR_parser___ReduceAction176___init SFT_parser[738]
+#define ID_ReduceAction177 SFT_parser[739]
+#define COLOR_ReduceAction177 SFT_parser[740]
+#define INIT_TABLE_POS_ReduceAction177 SFT_parser[741]
+#define COLOR_parser___ReduceAction177___init SFT_parser[742]
+#define ID_ReduceAction178 SFT_parser[743]
+#define COLOR_ReduceAction178 SFT_parser[744]
+#define INIT_TABLE_POS_ReduceAction178 SFT_parser[745]
+#define COLOR_parser___ReduceAction178___init SFT_parser[746]
+#define ID_ReduceAction179 SFT_parser[747]
+#define COLOR_ReduceAction179 SFT_parser[748]
+#define INIT_TABLE_POS_ReduceAction179 SFT_parser[749]
+#define COLOR_parser___ReduceAction179___init SFT_parser[750]
+#define ID_ReduceAction180 SFT_parser[751]
+#define COLOR_ReduceAction180 SFT_parser[752]
+#define INIT_TABLE_POS_ReduceAction180 SFT_parser[753]
+#define COLOR_parser___ReduceAction180___init SFT_parser[754]
+#define ID_ReduceAction181 SFT_parser[755]
+#define COLOR_ReduceAction181 SFT_parser[756]
+#define INIT_TABLE_POS_ReduceAction181 SFT_parser[757]
+#define COLOR_parser___ReduceAction181___init SFT_parser[758]
+#define ID_ReduceAction182 SFT_parser[759]
+#define COLOR_ReduceAction182 SFT_parser[760]
+#define INIT_TABLE_POS_ReduceAction182 SFT_parser[761]
+#define COLOR_parser___ReduceAction182___init SFT_parser[762]
+#define ID_ReduceAction183 SFT_parser[763]
+#define COLOR_ReduceAction183 SFT_parser[764]
+#define INIT_TABLE_POS_ReduceAction183 SFT_parser[765]
+#define COLOR_parser___ReduceAction183___init SFT_parser[766]
+#define ID_ReduceAction184 SFT_parser[767]
+#define COLOR_ReduceAction184 SFT_parser[768]
+#define INIT_TABLE_POS_ReduceAction184 SFT_parser[769]
+#define COLOR_parser___ReduceAction184___init SFT_parser[770]
+#define ID_ReduceAction185 SFT_parser[771]
+#define COLOR_ReduceAction185 SFT_parser[772]
+#define INIT_TABLE_POS_ReduceAction185 SFT_parser[773]
+#define COLOR_parser___ReduceAction185___init SFT_parser[774]
+#define ID_ReduceAction186 SFT_parser[775]
+#define COLOR_ReduceAction186 SFT_parser[776]
+#define INIT_TABLE_POS_ReduceAction186 SFT_parser[777]
+#define COLOR_parser___ReduceAction186___init SFT_parser[778]
+#define ID_ReduceAction187 SFT_parser[779]
+#define COLOR_ReduceAction187 SFT_parser[780]
+#define INIT_TABLE_POS_ReduceAction187 SFT_parser[781]
+#define COLOR_parser___ReduceAction187___init SFT_parser[782]
+#define ID_ReduceAction188 SFT_parser[783]
+#define COLOR_ReduceAction188 SFT_parser[784]
+#define INIT_TABLE_POS_ReduceAction188 SFT_parser[785]
+#define COLOR_parser___ReduceAction188___init SFT_parser[786]
+#define ID_ReduceAction189 SFT_parser[787]
+#define COLOR_ReduceAction189 SFT_parser[788]
+#define INIT_TABLE_POS_ReduceAction189 SFT_parser[789]
+#define COLOR_parser___ReduceAction189___init SFT_parser[790]
+#define ID_ReduceAction190 SFT_parser[791]
+#define COLOR_ReduceAction190 SFT_parser[792]
+#define INIT_TABLE_POS_ReduceAction190 SFT_parser[793]
+#define COLOR_parser___ReduceAction190___init SFT_parser[794]
+#define ID_ReduceAction191 SFT_parser[795]
+#define COLOR_ReduceAction191 SFT_parser[796]
+#define INIT_TABLE_POS_ReduceAction191 SFT_parser[797]
+#define COLOR_parser___ReduceAction191___init SFT_parser[798]
+#define ID_ReduceAction192 SFT_parser[799]
+#define COLOR_ReduceAction192 SFT_parser[800]
+#define INIT_TABLE_POS_ReduceAction192 SFT_parser[801]
+#define COLOR_parser___ReduceAction192___init SFT_parser[802]
+#define ID_ReduceAction193 SFT_parser[803]
+#define COLOR_ReduceAction193 SFT_parser[804]
+#define INIT_TABLE_POS_ReduceAction193 SFT_parser[805]
+#define COLOR_parser___ReduceAction193___init SFT_parser[806]
+#define ID_ReduceAction194 SFT_parser[807]
+#define COLOR_ReduceAction194 SFT_parser[808]
+#define INIT_TABLE_POS_ReduceAction194 SFT_parser[809]
+#define COLOR_parser___ReduceAction194___init SFT_parser[810]
+#define ID_ReduceAction195 SFT_parser[811]
+#define COLOR_ReduceAction195 SFT_parser[812]
+#define INIT_TABLE_POS_ReduceAction195 SFT_parser[813]
+#define COLOR_parser___ReduceAction195___init SFT_parser[814]
+#define ID_ReduceAction196 SFT_parser[815]
+#define COLOR_ReduceAction196 SFT_parser[816]
+#define INIT_TABLE_POS_ReduceAction196 SFT_parser[817]
+#define COLOR_parser___ReduceAction196___init SFT_parser[818]
+#define ID_ReduceAction197 SFT_parser[819]
+#define COLOR_ReduceAction197 SFT_parser[820]
+#define INIT_TABLE_POS_ReduceAction197 SFT_parser[821]
+#define COLOR_parser___ReduceAction197___init SFT_parser[822]
+#define ID_ReduceAction198 SFT_parser[823]
+#define COLOR_ReduceAction198 SFT_parser[824]
+#define INIT_TABLE_POS_ReduceAction198 SFT_parser[825]
+#define COLOR_parser___ReduceAction198___init SFT_parser[826]
+#define ID_ReduceAction199 SFT_parser[827]
+#define COLOR_ReduceAction199 SFT_parser[828]
+#define INIT_TABLE_POS_ReduceAction199 SFT_parser[829]
+#define COLOR_parser___ReduceAction199___init SFT_parser[830]
+#define ID_ReduceAction200 SFT_parser[831]
+#define COLOR_ReduceAction200 SFT_parser[832]
+#define INIT_TABLE_POS_ReduceAction200 SFT_parser[833]
+#define COLOR_parser___ReduceAction200___init SFT_parser[834]
+#define ID_ReduceAction201 SFT_parser[835]
+#define COLOR_ReduceAction201 SFT_parser[836]
+#define INIT_TABLE_POS_ReduceAction201 SFT_parser[837]
+#define COLOR_parser___ReduceAction201___init SFT_parser[838]
+#define ID_ReduceAction202 SFT_parser[839]
+#define COLOR_ReduceAction202 SFT_parser[840]
+#define INIT_TABLE_POS_ReduceAction202 SFT_parser[841]
+#define COLOR_parser___ReduceAction202___init SFT_parser[842]
+#define ID_ReduceAction203 SFT_parser[843]
+#define COLOR_ReduceAction203 SFT_parser[844]
+#define INIT_TABLE_POS_ReduceAction203 SFT_parser[845]
+#define COLOR_parser___ReduceAction203___init SFT_parser[846]
+#define ID_ReduceAction204 SFT_parser[847]
+#define COLOR_ReduceAction204 SFT_parser[848]
+#define INIT_TABLE_POS_ReduceAction204 SFT_parser[849]
+#define COLOR_parser___ReduceAction204___init SFT_parser[850]
+#define ID_ReduceAction205 SFT_parser[851]
+#define COLOR_ReduceAction205 SFT_parser[852]
+#define INIT_TABLE_POS_ReduceAction205 SFT_parser[853]
+#define COLOR_parser___ReduceAction205___init SFT_parser[854]
+#define ID_ReduceAction206 SFT_parser[855]
+#define COLOR_ReduceAction206 SFT_parser[856]
+#define INIT_TABLE_POS_ReduceAction206 SFT_parser[857]
+#define COLOR_parser___ReduceAction206___init SFT_parser[858]
+#define ID_ReduceAction207 SFT_parser[859]
+#define COLOR_ReduceAction207 SFT_parser[860]
+#define INIT_TABLE_POS_ReduceAction207 SFT_parser[861]
+#define COLOR_parser___ReduceAction207___init SFT_parser[862]
+#define ID_ReduceAction208 SFT_parser[863]
+#define COLOR_ReduceAction208 SFT_parser[864]
+#define INIT_TABLE_POS_ReduceAction208 SFT_parser[865]
+#define COLOR_parser___ReduceAction208___init SFT_parser[866]
+#define ID_ReduceAction209 SFT_parser[867]
+#define COLOR_ReduceAction209 SFT_parser[868]
+#define INIT_TABLE_POS_ReduceAction209 SFT_parser[869]
+#define COLOR_parser___ReduceAction209___init SFT_parser[870]
+#define ID_ReduceAction210 SFT_parser[871]
+#define COLOR_ReduceAction210 SFT_parser[872]
+#define INIT_TABLE_POS_ReduceAction210 SFT_parser[873]
+#define COLOR_parser___ReduceAction210___init SFT_parser[874]
+#define ID_ReduceAction211 SFT_parser[875]
+#define COLOR_ReduceAction211 SFT_parser[876]
+#define INIT_TABLE_POS_ReduceAction211 SFT_parser[877]
+#define COLOR_parser___ReduceAction211___init SFT_parser[878]
+#define ID_ReduceAction212 SFT_parser[879]
+#define COLOR_ReduceAction212 SFT_parser[880]
+#define INIT_TABLE_POS_ReduceAction212 SFT_parser[881]
+#define COLOR_parser___ReduceAction212___init SFT_parser[882]
+#define ID_ReduceAction213 SFT_parser[883]
+#define COLOR_ReduceAction213 SFT_parser[884]
+#define INIT_TABLE_POS_ReduceAction213 SFT_parser[885]
+#define COLOR_parser___ReduceAction213___init SFT_parser[886]
+#define ID_ReduceAction214 SFT_parser[887]
+#define COLOR_ReduceAction214 SFT_parser[888]
+#define INIT_TABLE_POS_ReduceAction214 SFT_parser[889]
+#define COLOR_parser___ReduceAction214___init SFT_parser[890]
+#define ID_ReduceAction215 SFT_parser[891]
+#define COLOR_ReduceAction215 SFT_parser[892]
+#define INIT_TABLE_POS_ReduceAction215 SFT_parser[893]
+#define COLOR_parser___ReduceAction215___init SFT_parser[894]
+#define ID_ReduceAction216 SFT_parser[895]
+#define COLOR_ReduceAction216 SFT_parser[896]
+#define INIT_TABLE_POS_ReduceAction216 SFT_parser[897]
+#define COLOR_parser___ReduceAction216___init SFT_parser[898]
+#define ID_ReduceAction217 SFT_parser[899]
+#define COLOR_ReduceAction217 SFT_parser[900]
+#define INIT_TABLE_POS_ReduceAction217 SFT_parser[901]
+#define COLOR_parser___ReduceAction217___init SFT_parser[902]
+#define ID_ReduceAction218 SFT_parser[903]
+#define COLOR_ReduceAction218 SFT_parser[904]
+#define INIT_TABLE_POS_ReduceAction218 SFT_parser[905]
+#define COLOR_parser___ReduceAction218___init SFT_parser[906]
+#define ID_ReduceAction219 SFT_parser[907]
+#define COLOR_ReduceAction219 SFT_parser[908]
+#define INIT_TABLE_POS_ReduceAction219 SFT_parser[909]
+#define COLOR_parser___ReduceAction219___init SFT_parser[910]
+#define ID_ReduceAction220 SFT_parser[911]
+#define COLOR_ReduceAction220 SFT_parser[912]
+#define INIT_TABLE_POS_ReduceAction220 SFT_parser[913]
+#define COLOR_parser___ReduceAction220___init SFT_parser[914]
+#define ID_ReduceAction221 SFT_parser[915]
+#define COLOR_ReduceAction221 SFT_parser[916]
+#define INIT_TABLE_POS_ReduceAction221 SFT_parser[917]
+#define COLOR_parser___ReduceAction221___init SFT_parser[918]
+#define ID_ReduceAction222 SFT_parser[919]
+#define COLOR_ReduceAction222 SFT_parser[920]
+#define INIT_TABLE_POS_ReduceAction222 SFT_parser[921]
+#define COLOR_parser___ReduceAction222___init SFT_parser[922]
+#define ID_ReduceAction223 SFT_parser[923]
+#define COLOR_ReduceAction223 SFT_parser[924]
+#define INIT_TABLE_POS_ReduceAction223 SFT_parser[925]
+#define COLOR_parser___ReduceAction223___init SFT_parser[926]
+#define ID_ReduceAction224 SFT_parser[927]
+#define COLOR_ReduceAction224 SFT_parser[928]
+#define INIT_TABLE_POS_ReduceAction224 SFT_parser[929]
+#define COLOR_parser___ReduceAction224___init SFT_parser[930]
+#define ID_ReduceAction225 SFT_parser[931]
+#define COLOR_ReduceAction225 SFT_parser[932]
+#define INIT_TABLE_POS_ReduceAction225 SFT_parser[933]
+#define COLOR_parser___ReduceAction225___init SFT_parser[934]
+#define ID_ReduceAction226 SFT_parser[935]
+#define COLOR_ReduceAction226 SFT_parser[936]
+#define INIT_TABLE_POS_ReduceAction226 SFT_parser[937]
+#define COLOR_parser___ReduceAction226___init SFT_parser[938]
+#define ID_ReduceAction227 SFT_parser[939]
+#define COLOR_ReduceAction227 SFT_parser[940]
+#define INIT_TABLE_POS_ReduceAction227 SFT_parser[941]
+#define COLOR_parser___ReduceAction227___init SFT_parser[942]
+#define ID_ReduceAction228 SFT_parser[943]
+#define COLOR_ReduceAction228 SFT_parser[944]
+#define INIT_TABLE_POS_ReduceAction228 SFT_parser[945]
+#define COLOR_parser___ReduceAction228___init SFT_parser[946]
+#define ID_ReduceAction229 SFT_parser[947]
+#define COLOR_ReduceAction229 SFT_parser[948]
+#define INIT_TABLE_POS_ReduceAction229 SFT_parser[949]
+#define COLOR_parser___ReduceAction229___init SFT_parser[950]
+#define ID_ReduceAction230 SFT_parser[951]
+#define COLOR_ReduceAction230 SFT_parser[952]
+#define INIT_TABLE_POS_ReduceAction230 SFT_parser[953]
+#define COLOR_parser___ReduceAction230___init SFT_parser[954]
+#define ID_ReduceAction231 SFT_parser[955]
+#define COLOR_ReduceAction231 SFT_parser[956]
+#define INIT_TABLE_POS_ReduceAction231 SFT_parser[957]
+#define COLOR_parser___ReduceAction231___init SFT_parser[958]
+#define ID_ReduceAction232 SFT_parser[959]
+#define COLOR_ReduceAction232 SFT_parser[960]
+#define INIT_TABLE_POS_ReduceAction232 SFT_parser[961]
+#define COLOR_parser___ReduceAction232___init SFT_parser[962]
+#define ID_ReduceAction233 SFT_parser[963]
+#define COLOR_ReduceAction233 SFT_parser[964]
+#define INIT_TABLE_POS_ReduceAction233 SFT_parser[965]
+#define COLOR_parser___ReduceAction233___init SFT_parser[966]
+#define ID_ReduceAction234 SFT_parser[967]
+#define COLOR_ReduceAction234 SFT_parser[968]
+#define INIT_TABLE_POS_ReduceAction234 SFT_parser[969]
+#define COLOR_parser___ReduceAction234___init SFT_parser[970]
+#define ID_ReduceAction235 SFT_parser[971]
+#define COLOR_ReduceAction235 SFT_parser[972]
+#define INIT_TABLE_POS_ReduceAction235 SFT_parser[973]
+#define COLOR_parser___ReduceAction235___init SFT_parser[974]
+#define ID_ReduceAction236 SFT_parser[975]
+#define COLOR_ReduceAction236 SFT_parser[976]
+#define INIT_TABLE_POS_ReduceAction236 SFT_parser[977]
+#define COLOR_parser___ReduceAction236___init SFT_parser[978]
+#define ID_ReduceAction237 SFT_parser[979]
+#define COLOR_ReduceAction237 SFT_parser[980]
+#define INIT_TABLE_POS_ReduceAction237 SFT_parser[981]
+#define COLOR_parser___ReduceAction237___init SFT_parser[982]
+#define ID_ReduceAction238 SFT_parser[983]
+#define COLOR_ReduceAction238 SFT_parser[984]
+#define INIT_TABLE_POS_ReduceAction238 SFT_parser[985]
+#define COLOR_parser___ReduceAction238___init SFT_parser[986]
+#define ID_ReduceAction239 SFT_parser[987]
+#define COLOR_ReduceAction239 SFT_parser[988]
+#define INIT_TABLE_POS_ReduceAction239 SFT_parser[989]
+#define COLOR_parser___ReduceAction239___init SFT_parser[990]
+#define ID_ReduceAction240 SFT_parser[991]
+#define COLOR_ReduceAction240 SFT_parser[992]
+#define INIT_TABLE_POS_ReduceAction240 SFT_parser[993]
+#define COLOR_parser___ReduceAction240___init SFT_parser[994]
+#define ID_ReduceAction241 SFT_parser[995]
+#define COLOR_ReduceAction241 SFT_parser[996]
+#define INIT_TABLE_POS_ReduceAction241 SFT_parser[997]
+#define COLOR_parser___ReduceAction241___init SFT_parser[998]
+#define ID_ReduceAction242 SFT_parser[999]
+#define COLOR_ReduceAction242 SFT_parser[1000]
+#define INIT_TABLE_POS_ReduceAction242 SFT_parser[1001]
+#define COLOR_parser___ReduceAction242___init SFT_parser[1002]
+#define ID_ReduceAction243 SFT_parser[1003]
+#define COLOR_ReduceAction243 SFT_parser[1004]
+#define INIT_TABLE_POS_ReduceAction243 SFT_parser[1005]
+#define COLOR_parser___ReduceAction243___init SFT_parser[1006]
+#define ID_ReduceAction244 SFT_parser[1007]
+#define COLOR_ReduceAction244 SFT_parser[1008]
+#define INIT_TABLE_POS_ReduceAction244 SFT_parser[1009]
+#define COLOR_parser___ReduceAction244___init SFT_parser[1010]
+#define ID_ReduceAction245 SFT_parser[1011]
+#define COLOR_ReduceAction245 SFT_parser[1012]
+#define INIT_TABLE_POS_ReduceAction245 SFT_parser[1013]
+#define COLOR_parser___ReduceAction245___init SFT_parser[1014]
+#define ID_ReduceAction246 SFT_parser[1015]
+#define COLOR_ReduceAction246 SFT_parser[1016]
+#define INIT_TABLE_POS_ReduceAction246 SFT_parser[1017]
+#define COLOR_parser___ReduceAction246___init SFT_parser[1018]
+#define ID_ReduceAction247 SFT_parser[1019]
+#define COLOR_ReduceAction247 SFT_parser[1020]
+#define INIT_TABLE_POS_ReduceAction247 SFT_parser[1021]
+#define COLOR_parser___ReduceAction247___init SFT_parser[1022]
+#define ID_ReduceAction248 SFT_parser[1023]
+#define COLOR_ReduceAction248 SFT_parser[1024]
+#define INIT_TABLE_POS_ReduceAction248 SFT_parser[1025]
+#define COLOR_parser___ReduceAction248___init SFT_parser[1026]
+#define ID_ReduceAction249 SFT_parser[1027]
+#define COLOR_ReduceAction249 SFT_parser[1028]
+#define INIT_TABLE_POS_ReduceAction249 SFT_parser[1029]
+#define COLOR_parser___ReduceAction249___init SFT_parser[1030]
+#define ID_ReduceAction250 SFT_parser[1031]
+#define COLOR_ReduceAction250 SFT_parser[1032]
+#define INIT_TABLE_POS_ReduceAction250 SFT_parser[1033]
+#define COLOR_parser___ReduceAction250___init SFT_parser[1034]
+#define ID_ReduceAction251 SFT_parser[1035]
+#define COLOR_ReduceAction251 SFT_parser[1036]
+#define INIT_TABLE_POS_ReduceAction251 SFT_parser[1037]
+#define COLOR_parser___ReduceAction251___init SFT_parser[1038]
+#define ID_ReduceAction252 SFT_parser[1039]
+#define COLOR_ReduceAction252 SFT_parser[1040]
+#define INIT_TABLE_POS_ReduceAction252 SFT_parser[1041]
+#define COLOR_parser___ReduceAction252___init SFT_parser[1042]
+#define ID_ReduceAction253 SFT_parser[1043]
+#define COLOR_ReduceAction253 SFT_parser[1044]
+#define INIT_TABLE_POS_ReduceAction253 SFT_parser[1045]
+#define COLOR_parser___ReduceAction253___init SFT_parser[1046]
+#define ID_ReduceAction254 SFT_parser[1047]
+#define COLOR_ReduceAction254 SFT_parser[1048]
+#define INIT_TABLE_POS_ReduceAction254 SFT_parser[1049]
+#define COLOR_parser___ReduceAction254___init SFT_parser[1050]
+#define ID_ReduceAction255 SFT_parser[1051]
+#define COLOR_ReduceAction255 SFT_parser[1052]
+#define INIT_TABLE_POS_ReduceAction255 SFT_parser[1053]
+#define COLOR_parser___ReduceAction255___init SFT_parser[1054]
+#define ID_ReduceAction256 SFT_parser[1055]
+#define COLOR_ReduceAction256 SFT_parser[1056]
+#define INIT_TABLE_POS_ReduceAction256 SFT_parser[1057]
+#define COLOR_parser___ReduceAction256___init SFT_parser[1058]
+#define ID_ReduceAction257 SFT_parser[1059]
+#define COLOR_ReduceAction257 SFT_parser[1060]
+#define INIT_TABLE_POS_ReduceAction257 SFT_parser[1061]
+#define COLOR_parser___ReduceAction257___init SFT_parser[1062]
+#define ID_ReduceAction258 SFT_parser[1063]
+#define COLOR_ReduceAction258 SFT_parser[1064]
+#define INIT_TABLE_POS_ReduceAction258 SFT_parser[1065]
+#define COLOR_parser___ReduceAction258___init SFT_parser[1066]
+#define ID_ReduceAction259 SFT_parser[1067]
+#define COLOR_ReduceAction259 SFT_parser[1068]
+#define INIT_TABLE_POS_ReduceAction259 SFT_parser[1069]
+#define COLOR_parser___ReduceAction259___init SFT_parser[1070]
+#define ID_ReduceAction260 SFT_parser[1071]
+#define COLOR_ReduceAction260 SFT_parser[1072]
+#define INIT_TABLE_POS_ReduceAction260 SFT_parser[1073]
+#define COLOR_parser___ReduceAction260___init SFT_parser[1074]
+#define ID_ReduceAction261 SFT_parser[1075]
+#define COLOR_ReduceAction261 SFT_parser[1076]
+#define INIT_TABLE_POS_ReduceAction261 SFT_parser[1077]
+#define COLOR_parser___ReduceAction261___init SFT_parser[1078]
+#define ID_ReduceAction262 SFT_parser[1079]
+#define COLOR_ReduceAction262 SFT_parser[1080]
+#define INIT_TABLE_POS_ReduceAction262 SFT_parser[1081]
+#define COLOR_parser___ReduceAction262___init SFT_parser[1082]
+#define ID_ReduceAction263 SFT_parser[1083]
+#define COLOR_ReduceAction263 SFT_parser[1084]
+#define INIT_TABLE_POS_ReduceAction263 SFT_parser[1085]
+#define COLOR_parser___ReduceAction263___init SFT_parser[1086]
+#define ID_ReduceAction264 SFT_parser[1087]
+#define COLOR_ReduceAction264 SFT_parser[1088]
+#define INIT_TABLE_POS_ReduceAction264 SFT_parser[1089]
+#define COLOR_parser___ReduceAction264___init SFT_parser[1090]
+#define ID_ReduceAction265 SFT_parser[1091]
+#define COLOR_ReduceAction265 SFT_parser[1092]
+#define INIT_TABLE_POS_ReduceAction265 SFT_parser[1093]
+#define COLOR_parser___ReduceAction265___init SFT_parser[1094]
+#define ID_ReduceAction266 SFT_parser[1095]
+#define COLOR_ReduceAction266 SFT_parser[1096]
+#define INIT_TABLE_POS_ReduceAction266 SFT_parser[1097]
+#define COLOR_parser___ReduceAction266___init SFT_parser[1098]
+#define ID_ReduceAction267 SFT_parser[1099]
+#define COLOR_ReduceAction267 SFT_parser[1100]
+#define INIT_TABLE_POS_ReduceAction267 SFT_parser[1101]
+#define COLOR_parser___ReduceAction267___init SFT_parser[1102]
+#define ID_ReduceAction268 SFT_parser[1103]
+#define COLOR_ReduceAction268 SFT_parser[1104]
+#define INIT_TABLE_POS_ReduceAction268 SFT_parser[1105]
+#define COLOR_parser___ReduceAction268___init SFT_parser[1106]
+#define ID_ReduceAction269 SFT_parser[1107]
+#define COLOR_ReduceAction269 SFT_parser[1108]
+#define INIT_TABLE_POS_ReduceAction269 SFT_parser[1109]
+#define COLOR_parser___ReduceAction269___init SFT_parser[1110]
+#define ID_ReduceAction270 SFT_parser[1111]
+#define COLOR_ReduceAction270 SFT_parser[1112]
+#define INIT_TABLE_POS_ReduceAction270 SFT_parser[1113]
+#define COLOR_parser___ReduceAction270___init SFT_parser[1114]
+#define ID_ReduceAction271 SFT_parser[1115]
+#define COLOR_ReduceAction271 SFT_parser[1116]
+#define INIT_TABLE_POS_ReduceAction271 SFT_parser[1117]
+#define COLOR_parser___ReduceAction271___init SFT_parser[1118]
+#define ID_ReduceAction272 SFT_parser[1119]
+#define COLOR_ReduceAction272 SFT_parser[1120]
+#define INIT_TABLE_POS_ReduceAction272 SFT_parser[1121]
+#define COLOR_parser___ReduceAction272___init SFT_parser[1122]
+#define ID_ReduceAction273 SFT_parser[1123]
+#define COLOR_ReduceAction273 SFT_parser[1124]
+#define INIT_TABLE_POS_ReduceAction273 SFT_parser[1125]
+#define COLOR_parser___ReduceAction273___init SFT_parser[1126]
+#define ID_ReduceAction274 SFT_parser[1127]
+#define COLOR_ReduceAction274 SFT_parser[1128]
+#define INIT_TABLE_POS_ReduceAction274 SFT_parser[1129]
+#define COLOR_parser___ReduceAction274___init SFT_parser[1130]
+#define ID_ReduceAction275 SFT_parser[1131]
+#define COLOR_ReduceAction275 SFT_parser[1132]
+#define INIT_TABLE_POS_ReduceAction275 SFT_parser[1133]
+#define COLOR_parser___ReduceAction275___init SFT_parser[1134]
+#define ID_ReduceAction276 SFT_parser[1135]
+#define COLOR_ReduceAction276 SFT_parser[1136]
+#define INIT_TABLE_POS_ReduceAction276 SFT_parser[1137]
+#define COLOR_parser___ReduceAction276___init SFT_parser[1138]
+#define ID_ReduceAction277 SFT_parser[1139]
+#define COLOR_ReduceAction277 SFT_parser[1140]
+#define INIT_TABLE_POS_ReduceAction277 SFT_parser[1141]
+#define COLOR_parser___ReduceAction277___init SFT_parser[1142]
+#define ID_ReduceAction278 SFT_parser[1143]
+#define COLOR_ReduceAction278 SFT_parser[1144]
+#define INIT_TABLE_POS_ReduceAction278 SFT_parser[1145]
+#define COLOR_parser___ReduceAction278___init SFT_parser[1146]
+#define ID_ReduceAction279 SFT_parser[1147]
+#define COLOR_ReduceAction279 SFT_parser[1148]
+#define INIT_TABLE_POS_ReduceAction279 SFT_parser[1149]
+#define COLOR_parser___ReduceAction279___init SFT_parser[1150]
+#define ID_ReduceAction280 SFT_parser[1151]
+#define COLOR_ReduceAction280 SFT_parser[1152]
+#define INIT_TABLE_POS_ReduceAction280 SFT_parser[1153]
+#define COLOR_parser___ReduceAction280___init SFT_parser[1154]
+#define ID_ReduceAction281 SFT_parser[1155]
+#define COLOR_ReduceAction281 SFT_parser[1156]
+#define INIT_TABLE_POS_ReduceAction281 SFT_parser[1157]
+#define COLOR_parser___ReduceAction281___init SFT_parser[1158]
+#define ID_ReduceAction282 SFT_parser[1159]
+#define COLOR_ReduceAction282 SFT_parser[1160]
+#define INIT_TABLE_POS_ReduceAction282 SFT_parser[1161]
+#define COLOR_parser___ReduceAction282___init SFT_parser[1162]
+#define ID_ReduceAction283 SFT_parser[1163]
+#define COLOR_ReduceAction283 SFT_parser[1164]
+#define INIT_TABLE_POS_ReduceAction283 SFT_parser[1165]
+#define COLOR_parser___ReduceAction283___init SFT_parser[1166]
+#define ID_ReduceAction284 SFT_parser[1167]
+#define COLOR_ReduceAction284 SFT_parser[1168]
+#define INIT_TABLE_POS_ReduceAction284 SFT_parser[1169]
+#define COLOR_parser___ReduceAction284___init SFT_parser[1170]
+#define ID_ReduceAction285 SFT_parser[1171]
+#define COLOR_ReduceAction285 SFT_parser[1172]
+#define INIT_TABLE_POS_ReduceAction285 SFT_parser[1173]
+#define COLOR_parser___ReduceAction285___init SFT_parser[1174]
+#define ID_ReduceAction286 SFT_parser[1175]
+#define COLOR_ReduceAction286 SFT_parser[1176]
+#define INIT_TABLE_POS_ReduceAction286 SFT_parser[1177]
+#define COLOR_parser___ReduceAction286___init SFT_parser[1178]
+#define ID_ReduceAction287 SFT_parser[1179]
+#define COLOR_ReduceAction287 SFT_parser[1180]
+#define INIT_TABLE_POS_ReduceAction287 SFT_parser[1181]
+#define COLOR_parser___ReduceAction287___init SFT_parser[1182]
+#define ID_ReduceAction288 SFT_parser[1183]
+#define COLOR_ReduceAction288 SFT_parser[1184]
+#define INIT_TABLE_POS_ReduceAction288 SFT_parser[1185]
+#define COLOR_parser___ReduceAction288___init SFT_parser[1186]
+#define ID_ReduceAction289 SFT_parser[1187]
+#define COLOR_ReduceAction289 SFT_parser[1188]
+#define INIT_TABLE_POS_ReduceAction289 SFT_parser[1189]
+#define COLOR_parser___ReduceAction289___init SFT_parser[1190]
+#define ID_ReduceAction290 SFT_parser[1191]
+#define COLOR_ReduceAction290 SFT_parser[1192]
+#define INIT_TABLE_POS_ReduceAction290 SFT_parser[1193]
+#define COLOR_parser___ReduceAction290___init SFT_parser[1194]
+#define ID_ReduceAction291 SFT_parser[1195]
+#define COLOR_ReduceAction291 SFT_parser[1196]
+#define INIT_TABLE_POS_ReduceAction291 SFT_parser[1197]
+#define COLOR_parser___ReduceAction291___init SFT_parser[1198]
+#define ID_ReduceAction292 SFT_parser[1199]
+#define COLOR_ReduceAction292 SFT_parser[1200]
+#define INIT_TABLE_POS_ReduceAction292 SFT_parser[1201]
+#define COLOR_parser___ReduceAction292___init SFT_parser[1202]
+#define ID_ReduceAction293 SFT_parser[1203]
+#define COLOR_ReduceAction293 SFT_parser[1204]
+#define INIT_TABLE_POS_ReduceAction293 SFT_parser[1205]
+#define COLOR_parser___ReduceAction293___init SFT_parser[1206]
+#define ID_ReduceAction294 SFT_parser[1207]
+#define COLOR_ReduceAction294 SFT_parser[1208]
+#define INIT_TABLE_POS_ReduceAction294 SFT_parser[1209]
+#define COLOR_parser___ReduceAction294___init SFT_parser[1210]
+#define ID_ReduceAction295 SFT_parser[1211]
+#define COLOR_ReduceAction295 SFT_parser[1212]
+#define INIT_TABLE_POS_ReduceAction295 SFT_parser[1213]
+#define COLOR_parser___ReduceAction295___init SFT_parser[1214]
+#define ID_ReduceAction296 SFT_parser[1215]
+#define COLOR_ReduceAction296 SFT_parser[1216]
+#define INIT_TABLE_POS_ReduceAction296 SFT_parser[1217]
+#define COLOR_parser___ReduceAction296___init SFT_parser[1218]
+#define ID_ReduceAction297 SFT_parser[1219]
+#define COLOR_ReduceAction297 SFT_parser[1220]
+#define INIT_TABLE_POS_ReduceAction297 SFT_parser[1221]
+#define COLOR_parser___ReduceAction297___init SFT_parser[1222]
+#define ID_ReduceAction298 SFT_parser[1223]
+#define COLOR_ReduceAction298 SFT_parser[1224]
+#define INIT_TABLE_POS_ReduceAction298 SFT_parser[1225]
+#define COLOR_parser___ReduceAction298___init SFT_parser[1226]
+#define ID_ReduceAction299 SFT_parser[1227]
+#define COLOR_ReduceAction299 SFT_parser[1228]
+#define INIT_TABLE_POS_ReduceAction299 SFT_parser[1229]
+#define COLOR_parser___ReduceAction299___init SFT_parser[1230]
+#define ID_ReduceAction300 SFT_parser[1231]
+#define COLOR_ReduceAction300 SFT_parser[1232]
+#define INIT_TABLE_POS_ReduceAction300 SFT_parser[1233]
+#define COLOR_parser___ReduceAction300___init SFT_parser[1234]
+#define ID_ReduceAction301 SFT_parser[1235]
+#define COLOR_ReduceAction301 SFT_parser[1236]
+#define INIT_TABLE_POS_ReduceAction301 SFT_parser[1237]
+#define COLOR_parser___ReduceAction301___init SFT_parser[1238]
+#define ID_ReduceAction302 SFT_parser[1239]
+#define COLOR_ReduceAction302 SFT_parser[1240]
+#define INIT_TABLE_POS_ReduceAction302 SFT_parser[1241]
+#define COLOR_parser___ReduceAction302___init SFT_parser[1242]
+#define ID_ReduceAction303 SFT_parser[1243]
+#define COLOR_ReduceAction303 SFT_parser[1244]
+#define INIT_TABLE_POS_ReduceAction303 SFT_parser[1245]
+#define COLOR_parser___ReduceAction303___init SFT_parser[1246]
+#define ID_ReduceAction304 SFT_parser[1247]
+#define COLOR_ReduceAction304 SFT_parser[1248]
+#define INIT_TABLE_POS_ReduceAction304 SFT_parser[1249]
+#define COLOR_parser___ReduceAction304___init SFT_parser[1250]
+#define ID_ReduceAction305 SFT_parser[1251]
+#define COLOR_ReduceAction305 SFT_parser[1252]
+#define INIT_TABLE_POS_ReduceAction305 SFT_parser[1253]
+#define COLOR_parser___ReduceAction305___init SFT_parser[1254]
+#define ID_ReduceAction306 SFT_parser[1255]
+#define COLOR_ReduceAction306 SFT_parser[1256]
+#define INIT_TABLE_POS_ReduceAction306 SFT_parser[1257]
+#define COLOR_parser___ReduceAction306___init SFT_parser[1258]
+#define ID_ReduceAction307 SFT_parser[1259]
+#define COLOR_ReduceAction307 SFT_parser[1260]
+#define INIT_TABLE_POS_ReduceAction307 SFT_parser[1261]
+#define COLOR_parser___ReduceAction307___init SFT_parser[1262]
+#define ID_ReduceAction308 SFT_parser[1263]
+#define COLOR_ReduceAction308 SFT_parser[1264]
+#define INIT_TABLE_POS_ReduceAction308 SFT_parser[1265]
+#define COLOR_parser___ReduceAction308___init SFT_parser[1266]
+#define ID_ReduceAction309 SFT_parser[1267]
+#define COLOR_ReduceAction309 SFT_parser[1268]
+#define INIT_TABLE_POS_ReduceAction309 SFT_parser[1269]
+#define COLOR_parser___ReduceAction309___init SFT_parser[1270]
+#define ID_ReduceAction310 SFT_parser[1271]
+#define COLOR_ReduceAction310 SFT_parser[1272]
+#define INIT_TABLE_POS_ReduceAction310 SFT_parser[1273]
+#define COLOR_parser___ReduceAction310___init SFT_parser[1274]
+#define ID_ReduceAction311 SFT_parser[1275]
+#define COLOR_ReduceAction311 SFT_parser[1276]
+#define INIT_TABLE_POS_ReduceAction311 SFT_parser[1277]
+#define COLOR_parser___ReduceAction311___init SFT_parser[1278]
+#define ID_ReduceAction312 SFT_parser[1279]
+#define COLOR_ReduceAction312 SFT_parser[1280]
+#define INIT_TABLE_POS_ReduceAction312 SFT_parser[1281]
+#define COLOR_parser___ReduceAction312___init SFT_parser[1282]
+#define ID_ReduceAction313 SFT_parser[1283]
+#define COLOR_ReduceAction313 SFT_parser[1284]
+#define INIT_TABLE_POS_ReduceAction313 SFT_parser[1285]
+#define COLOR_parser___ReduceAction313___init SFT_parser[1286]
+#define ID_ReduceAction314 SFT_parser[1287]
+#define COLOR_ReduceAction314 SFT_parser[1288]
+#define INIT_TABLE_POS_ReduceAction314 SFT_parser[1289]
+#define COLOR_parser___ReduceAction314___init SFT_parser[1290]
+#define ID_ReduceAction315 SFT_parser[1291]
+#define COLOR_ReduceAction315 SFT_parser[1292]
+#define INIT_TABLE_POS_ReduceAction315 SFT_parser[1293]
+#define COLOR_parser___ReduceAction315___init SFT_parser[1294]
+#define ID_ReduceAction316 SFT_parser[1295]
+#define COLOR_ReduceAction316 SFT_parser[1296]
+#define INIT_TABLE_POS_ReduceAction316 SFT_parser[1297]
+#define COLOR_parser___ReduceAction316___init SFT_parser[1298]
+#define ID_ReduceAction317 SFT_parser[1299]
+#define COLOR_ReduceAction317 SFT_parser[1300]
+#define INIT_TABLE_POS_ReduceAction317 SFT_parser[1301]
+#define COLOR_parser___ReduceAction317___init SFT_parser[1302]
+#define ID_ReduceAction318 SFT_parser[1303]
+#define COLOR_ReduceAction318 SFT_parser[1304]
+#define INIT_TABLE_POS_ReduceAction318 SFT_parser[1305]
+#define COLOR_parser___ReduceAction318___init SFT_parser[1306]
+#define ID_ReduceAction319 SFT_parser[1307]
+#define COLOR_ReduceAction319 SFT_parser[1308]
+#define INIT_TABLE_POS_ReduceAction319 SFT_parser[1309]
+#define COLOR_parser___ReduceAction319___init SFT_parser[1310]
+#define ID_ReduceAction320 SFT_parser[1311]
+#define COLOR_ReduceAction320 SFT_parser[1312]
+#define INIT_TABLE_POS_ReduceAction320 SFT_parser[1313]
+#define COLOR_parser___ReduceAction320___init SFT_parser[1314]
+#define ID_ReduceAction321 SFT_parser[1315]
+#define COLOR_ReduceAction321 SFT_parser[1316]
+#define INIT_TABLE_POS_ReduceAction321 SFT_parser[1317]
+#define COLOR_parser___ReduceAction321___init SFT_parser[1318]
+#define ID_ReduceAction322 SFT_parser[1319]
+#define COLOR_ReduceAction322 SFT_parser[1320]
+#define INIT_TABLE_POS_ReduceAction322 SFT_parser[1321]
+#define COLOR_parser___ReduceAction322___init SFT_parser[1322]
+#define ID_ReduceAction323 SFT_parser[1323]
+#define COLOR_ReduceAction323 SFT_parser[1324]
+#define INIT_TABLE_POS_ReduceAction323 SFT_parser[1325]
+#define COLOR_parser___ReduceAction323___init SFT_parser[1326]
+#define ID_ReduceAction324 SFT_parser[1327]
+#define COLOR_ReduceAction324 SFT_parser[1328]
+#define INIT_TABLE_POS_ReduceAction324 SFT_parser[1329]
+#define COLOR_parser___ReduceAction324___init SFT_parser[1330]
+#define ID_ReduceAction325 SFT_parser[1331]
+#define COLOR_ReduceAction325 SFT_parser[1332]
+#define INIT_TABLE_POS_ReduceAction325 SFT_parser[1333]
+#define COLOR_parser___ReduceAction325___init SFT_parser[1334]
+#define ID_ReduceAction326 SFT_parser[1335]
+#define COLOR_ReduceAction326 SFT_parser[1336]
+#define INIT_TABLE_POS_ReduceAction326 SFT_parser[1337]
+#define COLOR_parser___ReduceAction326___init SFT_parser[1338]
+#define ID_ReduceAction327 SFT_parser[1339]
+#define COLOR_ReduceAction327 SFT_parser[1340]
+#define INIT_TABLE_POS_ReduceAction327 SFT_parser[1341]
+#define COLOR_parser___ReduceAction327___init SFT_parser[1342]
+#define ID_ReduceAction328 SFT_parser[1343]
+#define COLOR_ReduceAction328 SFT_parser[1344]
+#define INIT_TABLE_POS_ReduceAction328 SFT_parser[1345]
+#define COLOR_parser___ReduceAction328___init SFT_parser[1346]
+#define ID_ReduceAction329 SFT_parser[1347]
+#define COLOR_ReduceAction329 SFT_parser[1348]
+#define INIT_TABLE_POS_ReduceAction329 SFT_parser[1349]
+#define COLOR_parser___ReduceAction329___init SFT_parser[1350]
+#define ID_ReduceAction330 SFT_parser[1351]
+#define COLOR_ReduceAction330 SFT_parser[1352]
+#define INIT_TABLE_POS_ReduceAction330 SFT_parser[1353]
+#define COLOR_parser___ReduceAction330___init SFT_parser[1354]
+#define ID_ReduceAction331 SFT_parser[1355]
+#define COLOR_ReduceAction331 SFT_parser[1356]
+#define INIT_TABLE_POS_ReduceAction331 SFT_parser[1357]
+#define COLOR_parser___ReduceAction331___init SFT_parser[1358]
+#define ID_ReduceAction332 SFT_parser[1359]
+#define COLOR_ReduceAction332 SFT_parser[1360]
+#define INIT_TABLE_POS_ReduceAction332 SFT_parser[1361]
+#define COLOR_parser___ReduceAction332___init SFT_parser[1362]
+#define ID_ReduceAction333 SFT_parser[1363]
+#define COLOR_ReduceAction333 SFT_parser[1364]
+#define INIT_TABLE_POS_ReduceAction333 SFT_parser[1365]
+#define COLOR_parser___ReduceAction333___init SFT_parser[1366]
+#define ID_ReduceAction334 SFT_parser[1367]
+#define COLOR_ReduceAction334 SFT_parser[1368]
+#define INIT_TABLE_POS_ReduceAction334 SFT_parser[1369]
+#define COLOR_parser___ReduceAction334___init SFT_parser[1370]
+#define ID_ReduceAction335 SFT_parser[1371]
+#define COLOR_ReduceAction335 SFT_parser[1372]
+#define INIT_TABLE_POS_ReduceAction335 SFT_parser[1373]
+#define COLOR_parser___ReduceAction335___init SFT_parser[1374]
+#define ID_ReduceAction336 SFT_parser[1375]
+#define COLOR_ReduceAction336 SFT_parser[1376]
+#define INIT_TABLE_POS_ReduceAction336 SFT_parser[1377]
+#define COLOR_parser___ReduceAction336___init SFT_parser[1378]
+#define ID_ReduceAction337 SFT_parser[1379]
+#define COLOR_ReduceAction337 SFT_parser[1380]
+#define INIT_TABLE_POS_ReduceAction337 SFT_parser[1381]
+#define COLOR_parser___ReduceAction337___init SFT_parser[1382]
+#define ID_ReduceAction338 SFT_parser[1383]
+#define COLOR_ReduceAction338 SFT_parser[1384]
+#define INIT_TABLE_POS_ReduceAction338 SFT_parser[1385]
+#define COLOR_parser___ReduceAction338___init SFT_parser[1386]
+#define ID_ReduceAction339 SFT_parser[1387]
+#define COLOR_ReduceAction339 SFT_parser[1388]
+#define INIT_TABLE_POS_ReduceAction339 SFT_parser[1389]
+#define COLOR_parser___ReduceAction339___init SFT_parser[1390]
+#define ID_ReduceAction340 SFT_parser[1391]
+#define COLOR_ReduceAction340 SFT_parser[1392]
+#define INIT_TABLE_POS_ReduceAction340 SFT_parser[1393]
+#define COLOR_parser___ReduceAction340___init SFT_parser[1394]
+#define ID_ReduceAction341 SFT_parser[1395]
+#define COLOR_ReduceAction341 SFT_parser[1396]
+#define INIT_TABLE_POS_ReduceAction341 SFT_parser[1397]
+#define COLOR_parser___ReduceAction341___init SFT_parser[1398]
+#define ID_ReduceAction342 SFT_parser[1399]
+#define COLOR_ReduceAction342 SFT_parser[1400]
+#define INIT_TABLE_POS_ReduceAction342 SFT_parser[1401]
+#define COLOR_parser___ReduceAction342___init SFT_parser[1402]
+#define ID_ReduceAction343 SFT_parser[1403]
+#define COLOR_ReduceAction343 SFT_parser[1404]
+#define INIT_TABLE_POS_ReduceAction343 SFT_parser[1405]
+#define COLOR_parser___ReduceAction343___init SFT_parser[1406]
+#define ID_ReduceAction344 SFT_parser[1407]
+#define COLOR_ReduceAction344 SFT_parser[1408]
+#define INIT_TABLE_POS_ReduceAction344 SFT_parser[1409]
+#define COLOR_parser___ReduceAction344___init SFT_parser[1410]
+#define ID_ReduceAction345 SFT_parser[1411]
+#define COLOR_ReduceAction345 SFT_parser[1412]
+#define INIT_TABLE_POS_ReduceAction345 SFT_parser[1413]
+#define COLOR_parser___ReduceAction345___init SFT_parser[1414]
+#define ID_ReduceAction346 SFT_parser[1415]
+#define COLOR_ReduceAction346 SFT_parser[1416]
+#define INIT_TABLE_POS_ReduceAction346 SFT_parser[1417]
+#define COLOR_parser___ReduceAction346___init SFT_parser[1418]
+#define ID_ReduceAction347 SFT_parser[1419]
+#define COLOR_ReduceAction347 SFT_parser[1420]
+#define INIT_TABLE_POS_ReduceAction347 SFT_parser[1421]
+#define COLOR_parser___ReduceAction347___init SFT_parser[1422]
+#define ID_ReduceAction348 SFT_parser[1423]
+#define COLOR_ReduceAction348 SFT_parser[1424]
+#define INIT_TABLE_POS_ReduceAction348 SFT_parser[1425]
+#define COLOR_parser___ReduceAction348___init SFT_parser[1426]
+#define ID_ReduceAction349 SFT_parser[1427]
+#define COLOR_ReduceAction349 SFT_parser[1428]
+#define INIT_TABLE_POS_ReduceAction349 SFT_parser[1429]
+#define COLOR_parser___ReduceAction349___init SFT_parser[1430]
+#define ID_ReduceAction350 SFT_parser[1431]
+#define COLOR_ReduceAction350 SFT_parser[1432]
+#define INIT_TABLE_POS_ReduceAction350 SFT_parser[1433]
+#define COLOR_parser___ReduceAction350___init SFT_parser[1434]
+#define ID_ReduceAction351 SFT_parser[1435]
+#define COLOR_ReduceAction351 SFT_parser[1436]
+#define INIT_TABLE_POS_ReduceAction351 SFT_parser[1437]
+#define COLOR_parser___ReduceAction351___init SFT_parser[1438]
+#define ID_ReduceAction352 SFT_parser[1439]
+#define COLOR_ReduceAction352 SFT_parser[1440]
+#define INIT_TABLE_POS_ReduceAction352 SFT_parser[1441]
+#define COLOR_parser___ReduceAction352___init SFT_parser[1442]
+#define ID_ReduceAction353 SFT_parser[1443]
+#define COLOR_ReduceAction353 SFT_parser[1444]
+#define INIT_TABLE_POS_ReduceAction353 SFT_parser[1445]
+#define COLOR_parser___ReduceAction353___init SFT_parser[1446]
+#define ID_ReduceAction354 SFT_parser[1447]
+#define COLOR_ReduceAction354 SFT_parser[1448]
+#define INIT_TABLE_POS_ReduceAction354 SFT_parser[1449]
+#define COLOR_parser___ReduceAction354___init SFT_parser[1450]
+#define ID_ReduceAction355 SFT_parser[1451]
+#define COLOR_ReduceAction355 SFT_parser[1452]
+#define INIT_TABLE_POS_ReduceAction355 SFT_parser[1453]
+#define COLOR_parser___ReduceAction355___init SFT_parser[1454]
+#define ID_ReduceAction356 SFT_parser[1455]
+#define COLOR_ReduceAction356 SFT_parser[1456]
+#define INIT_TABLE_POS_ReduceAction356 SFT_parser[1457]
+#define COLOR_parser___ReduceAction356___init SFT_parser[1458]
+#define ID_ReduceAction357 SFT_parser[1459]
+#define COLOR_ReduceAction357 SFT_parser[1460]
+#define INIT_TABLE_POS_ReduceAction357 SFT_parser[1461]
+#define COLOR_parser___ReduceAction357___init SFT_parser[1462]
+#define ID_ReduceAction358 SFT_parser[1463]
+#define COLOR_ReduceAction358 SFT_parser[1464]
+#define INIT_TABLE_POS_ReduceAction358 SFT_parser[1465]
+#define COLOR_parser___ReduceAction358___init SFT_parser[1466]
+#define ID_ReduceAction359 SFT_parser[1467]
+#define COLOR_ReduceAction359 SFT_parser[1468]
+#define INIT_TABLE_POS_ReduceAction359 SFT_parser[1469]
+#define COLOR_parser___ReduceAction359___init SFT_parser[1470]
+#define ID_ReduceAction360 SFT_parser[1471]
+#define COLOR_ReduceAction360 SFT_parser[1472]
+#define INIT_TABLE_POS_ReduceAction360 SFT_parser[1473]
+#define COLOR_parser___ReduceAction360___init SFT_parser[1474]
+#define ID_ReduceAction361 SFT_parser[1475]
+#define COLOR_ReduceAction361 SFT_parser[1476]
+#define INIT_TABLE_POS_ReduceAction361 SFT_parser[1477]
+#define COLOR_parser___ReduceAction361___init SFT_parser[1478]
+#define ID_ReduceAction362 SFT_parser[1479]
+#define COLOR_ReduceAction362 SFT_parser[1480]
+#define INIT_TABLE_POS_ReduceAction362 SFT_parser[1481]
+#define COLOR_parser___ReduceAction362___init SFT_parser[1482]
+#define ID_ReduceAction363 SFT_parser[1483]
+#define COLOR_ReduceAction363 SFT_parser[1484]
+#define INIT_TABLE_POS_ReduceAction363 SFT_parser[1485]
+#define COLOR_parser___ReduceAction363___init SFT_parser[1486]
+#define ID_ReduceAction364 SFT_parser[1487]
+#define COLOR_ReduceAction364 SFT_parser[1488]
+#define INIT_TABLE_POS_ReduceAction364 SFT_parser[1489]
+#define COLOR_parser___ReduceAction364___init SFT_parser[1490]
+#define ID_ReduceAction365 SFT_parser[1491]
+#define COLOR_ReduceAction365 SFT_parser[1492]
+#define INIT_TABLE_POS_ReduceAction365 SFT_parser[1493]
+#define COLOR_parser___ReduceAction365___init SFT_parser[1494]
+#define ID_ReduceAction366 SFT_parser[1495]
+#define COLOR_ReduceAction366 SFT_parser[1496]
+#define INIT_TABLE_POS_ReduceAction366 SFT_parser[1497]
+#define COLOR_parser___ReduceAction366___init SFT_parser[1498]
+#define ID_ReduceAction367 SFT_parser[1499]
+#define COLOR_ReduceAction367 SFT_parser[1500]
+#define INIT_TABLE_POS_ReduceAction367 SFT_parser[1501]
+#define COLOR_parser___ReduceAction367___init SFT_parser[1502]
+#define ID_ReduceAction368 SFT_parser[1503]
+#define COLOR_ReduceAction368 SFT_parser[1504]
+#define INIT_TABLE_POS_ReduceAction368 SFT_parser[1505]
+#define COLOR_parser___ReduceAction368___init SFT_parser[1506]
+#define ID_ReduceAction369 SFT_parser[1507]
+#define COLOR_ReduceAction369 SFT_parser[1508]
+#define INIT_TABLE_POS_ReduceAction369 SFT_parser[1509]
+#define COLOR_parser___ReduceAction369___init SFT_parser[1510]
+#define ID_ReduceAction370 SFT_parser[1511]
+#define COLOR_ReduceAction370 SFT_parser[1512]
+#define INIT_TABLE_POS_ReduceAction370 SFT_parser[1513]
+#define COLOR_parser___ReduceAction370___init SFT_parser[1514]
+#define ID_ReduceAction371 SFT_parser[1515]
+#define COLOR_ReduceAction371 SFT_parser[1516]
+#define INIT_TABLE_POS_ReduceAction371 SFT_parser[1517]
+#define COLOR_parser___ReduceAction371___init SFT_parser[1518]
+#define ID_ReduceAction372 SFT_parser[1519]
+#define COLOR_ReduceAction372 SFT_parser[1520]
+#define INIT_TABLE_POS_ReduceAction372 SFT_parser[1521]
+#define COLOR_parser___ReduceAction372___init SFT_parser[1522]
+#define ID_ReduceAction373 SFT_parser[1523]
+#define COLOR_ReduceAction373 SFT_parser[1524]
+#define INIT_TABLE_POS_ReduceAction373 SFT_parser[1525]
+#define COLOR_parser___ReduceAction373___init SFT_parser[1526]
+#define ID_ReduceAction374 SFT_parser[1527]
+#define COLOR_ReduceAction374 SFT_parser[1528]
+#define INIT_TABLE_POS_ReduceAction374 SFT_parser[1529]
+#define COLOR_parser___ReduceAction374___init SFT_parser[1530]
+#define ID_ReduceAction375 SFT_parser[1531]
+#define COLOR_ReduceAction375 SFT_parser[1532]
+#define INIT_TABLE_POS_ReduceAction375 SFT_parser[1533]
+#define COLOR_parser___ReduceAction375___init SFT_parser[1534]
+#define ID_ReduceAction376 SFT_parser[1535]
+#define COLOR_ReduceAction376 SFT_parser[1536]
+#define INIT_TABLE_POS_ReduceAction376 SFT_parser[1537]
+#define COLOR_parser___ReduceAction376___init SFT_parser[1538]
+#define ID_ReduceAction377 SFT_parser[1539]
+#define COLOR_ReduceAction377 SFT_parser[1540]
+#define INIT_TABLE_POS_ReduceAction377 SFT_parser[1541]
+#define COLOR_parser___ReduceAction377___init SFT_parser[1542]
+#define ID_ReduceAction378 SFT_parser[1543]
+#define COLOR_ReduceAction378 SFT_parser[1544]
+#define INIT_TABLE_POS_ReduceAction378 SFT_parser[1545]
+#define COLOR_parser___ReduceAction378___init SFT_parser[1546]
+#define ID_ReduceAction379 SFT_parser[1547]
+#define COLOR_ReduceAction379 SFT_parser[1548]
+#define INIT_TABLE_POS_ReduceAction379 SFT_parser[1549]
+#define COLOR_parser___ReduceAction379___init SFT_parser[1550]
+#define ID_ReduceAction380 SFT_parser[1551]
+#define COLOR_ReduceAction380 SFT_parser[1552]
+#define INIT_TABLE_POS_ReduceAction380 SFT_parser[1553]
+#define COLOR_parser___ReduceAction380___init SFT_parser[1554]
+#define ID_ReduceAction381 SFT_parser[1555]
+#define COLOR_ReduceAction381 SFT_parser[1556]
+#define INIT_TABLE_POS_ReduceAction381 SFT_parser[1557]
+#define COLOR_parser___ReduceAction381___init SFT_parser[1558]
+#define ID_ReduceAction382 SFT_parser[1559]
+#define COLOR_ReduceAction382 SFT_parser[1560]
+#define INIT_TABLE_POS_ReduceAction382 SFT_parser[1561]
+#define COLOR_parser___ReduceAction382___init SFT_parser[1562]
+#define ID_ReduceAction383 SFT_parser[1563]
+#define COLOR_ReduceAction383 SFT_parser[1564]
+#define INIT_TABLE_POS_ReduceAction383 SFT_parser[1565]
+#define COLOR_parser___ReduceAction383___init SFT_parser[1566]
+#define ID_ReduceAction384 SFT_parser[1567]
+#define COLOR_ReduceAction384 SFT_parser[1568]
+#define INIT_TABLE_POS_ReduceAction384 SFT_parser[1569]
+#define COLOR_parser___ReduceAction384___init SFT_parser[1570]
+#define ID_ReduceAction385 SFT_parser[1571]
+#define COLOR_ReduceAction385 SFT_parser[1572]
+#define INIT_TABLE_POS_ReduceAction385 SFT_parser[1573]
+#define COLOR_parser___ReduceAction385___init SFT_parser[1574]
+#define ID_ReduceAction386 SFT_parser[1575]
+#define COLOR_ReduceAction386 SFT_parser[1576]
+#define INIT_TABLE_POS_ReduceAction386 SFT_parser[1577]
+#define COLOR_parser___ReduceAction386___init SFT_parser[1578]
+#define ID_ReduceAction387 SFT_parser[1579]
+#define COLOR_ReduceAction387 SFT_parser[1580]
+#define INIT_TABLE_POS_ReduceAction387 SFT_parser[1581]
+#define COLOR_parser___ReduceAction387___init SFT_parser[1582]
+#define ID_ReduceAction388 SFT_parser[1583]
+#define COLOR_ReduceAction388 SFT_parser[1584]
+#define INIT_TABLE_POS_ReduceAction388 SFT_parser[1585]
+#define COLOR_parser___ReduceAction388___init SFT_parser[1586]
+#define ID_ReduceAction389 SFT_parser[1587]
+#define COLOR_ReduceAction389 SFT_parser[1588]
+#define INIT_TABLE_POS_ReduceAction389 SFT_parser[1589]
+#define COLOR_parser___ReduceAction389___init SFT_parser[1590]
+#define ID_ReduceAction390 SFT_parser[1591]
+#define COLOR_ReduceAction390 SFT_parser[1592]
+#define INIT_TABLE_POS_ReduceAction390 SFT_parser[1593]
+#define COLOR_parser___ReduceAction390___init SFT_parser[1594]
+#define ID_ReduceAction391 SFT_parser[1595]
+#define COLOR_ReduceAction391 SFT_parser[1596]
+#define INIT_TABLE_POS_ReduceAction391 SFT_parser[1597]
+#define COLOR_parser___ReduceAction391___init SFT_parser[1598]
+#define ID_ReduceAction392 SFT_parser[1599]
+#define COLOR_ReduceAction392 SFT_parser[1600]
+#define INIT_TABLE_POS_ReduceAction392 SFT_parser[1601]
+#define COLOR_parser___ReduceAction392___init SFT_parser[1602]
+#define ID_ReduceAction393 SFT_parser[1603]
+#define COLOR_ReduceAction393 SFT_parser[1604]
+#define INIT_TABLE_POS_ReduceAction393 SFT_parser[1605]
+#define COLOR_parser___ReduceAction393___init SFT_parser[1606]
+#define ID_ReduceAction394 SFT_parser[1607]
+#define COLOR_ReduceAction394 SFT_parser[1608]
+#define INIT_TABLE_POS_ReduceAction394 SFT_parser[1609]
+#define COLOR_parser___ReduceAction394___init SFT_parser[1610]
+#define ID_ReduceAction395 SFT_parser[1611]
+#define COLOR_ReduceAction395 SFT_parser[1612]
+#define INIT_TABLE_POS_ReduceAction395 SFT_parser[1613]
+#define COLOR_parser___ReduceAction395___init SFT_parser[1614]
+#define ID_ReduceAction396 SFT_parser[1615]
+#define COLOR_ReduceAction396 SFT_parser[1616]
+#define INIT_TABLE_POS_ReduceAction396 SFT_parser[1617]
+#define COLOR_parser___ReduceAction396___init SFT_parser[1618]
+#define ID_ReduceAction397 SFT_parser[1619]
+#define COLOR_ReduceAction397 SFT_parser[1620]
+#define INIT_TABLE_POS_ReduceAction397 SFT_parser[1621]
+#define COLOR_parser___ReduceAction397___init SFT_parser[1622]
+#define ID_ReduceAction398 SFT_parser[1623]
+#define COLOR_ReduceAction398 SFT_parser[1624]
+#define INIT_TABLE_POS_ReduceAction398 SFT_parser[1625]
+#define COLOR_parser___ReduceAction398___init SFT_parser[1626]
+#define ID_ReduceAction399 SFT_parser[1627]
+#define COLOR_ReduceAction399 SFT_parser[1628]
+#define INIT_TABLE_POS_ReduceAction399 SFT_parser[1629]
+#define COLOR_parser___ReduceAction399___init SFT_parser[1630]
+#define ID_ReduceAction400 SFT_parser[1631]
+#define COLOR_ReduceAction400 SFT_parser[1632]
+#define INIT_TABLE_POS_ReduceAction400 SFT_parser[1633]
+#define COLOR_parser___ReduceAction400___init SFT_parser[1634]
+#define ID_ReduceAction401 SFT_parser[1635]
+#define COLOR_ReduceAction401 SFT_parser[1636]
+#define INIT_TABLE_POS_ReduceAction401 SFT_parser[1637]
+#define COLOR_parser___ReduceAction401___init SFT_parser[1638]
+#define ID_ReduceAction402 SFT_parser[1639]
+#define COLOR_ReduceAction402 SFT_parser[1640]
+#define INIT_TABLE_POS_ReduceAction402 SFT_parser[1641]
+#define COLOR_parser___ReduceAction402___init SFT_parser[1642]
+#define ID_ReduceAction403 SFT_parser[1643]
+#define COLOR_ReduceAction403 SFT_parser[1644]
+#define INIT_TABLE_POS_ReduceAction403 SFT_parser[1645]
+#define COLOR_parser___ReduceAction403___init SFT_parser[1646]
+#define ID_ReduceAction404 SFT_parser[1647]
+#define COLOR_ReduceAction404 SFT_parser[1648]
+#define INIT_TABLE_POS_ReduceAction404 SFT_parser[1649]
+#define COLOR_parser___ReduceAction404___init SFT_parser[1650]
+#define ID_ReduceAction405 SFT_parser[1651]
+#define COLOR_ReduceAction405 SFT_parser[1652]
+#define INIT_TABLE_POS_ReduceAction405 SFT_parser[1653]
+#define COLOR_parser___ReduceAction405___init SFT_parser[1654]
+#define ID_ReduceAction406 SFT_parser[1655]
+#define COLOR_ReduceAction406 SFT_parser[1656]
+#define INIT_TABLE_POS_ReduceAction406 SFT_parser[1657]
+#define COLOR_parser___ReduceAction406___init SFT_parser[1658]
+#define ID_ReduceAction407 SFT_parser[1659]
+#define COLOR_ReduceAction407 SFT_parser[1660]
+#define INIT_TABLE_POS_ReduceAction407 SFT_parser[1661]
+#define COLOR_parser___ReduceAction407___init SFT_parser[1662]
+#define ID_ReduceAction408 SFT_parser[1663]
+#define COLOR_ReduceAction408 SFT_parser[1664]
+#define INIT_TABLE_POS_ReduceAction408 SFT_parser[1665]
+#define COLOR_parser___ReduceAction408___init SFT_parser[1666]
+#define ID_ReduceAction409 SFT_parser[1667]
+#define COLOR_ReduceAction409 SFT_parser[1668]
+#define INIT_TABLE_POS_ReduceAction409 SFT_parser[1669]
+#define COLOR_parser___ReduceAction409___init SFT_parser[1670]
+#define ID_ReduceAction410 SFT_parser[1671]
+#define COLOR_ReduceAction410 SFT_parser[1672]
+#define INIT_TABLE_POS_ReduceAction410 SFT_parser[1673]
+#define COLOR_parser___ReduceAction410___init SFT_parser[1674]
+#define ID_ReduceAction411 SFT_parser[1675]
+#define COLOR_ReduceAction411 SFT_parser[1676]
+#define INIT_TABLE_POS_ReduceAction411 SFT_parser[1677]
+#define COLOR_parser___ReduceAction411___init SFT_parser[1678]
+#define ID_ReduceAction412 SFT_parser[1679]
+#define COLOR_ReduceAction412 SFT_parser[1680]
+#define INIT_TABLE_POS_ReduceAction412 SFT_parser[1681]
+#define COLOR_parser___ReduceAction412___init SFT_parser[1682]
+#define ID_ReduceAction413 SFT_parser[1683]
+#define COLOR_ReduceAction413 SFT_parser[1684]
+#define INIT_TABLE_POS_ReduceAction413 SFT_parser[1685]
+#define COLOR_parser___ReduceAction413___init SFT_parser[1686]
+#define ID_ReduceAction414 SFT_parser[1687]
+#define COLOR_ReduceAction414 SFT_parser[1688]
+#define INIT_TABLE_POS_ReduceAction414 SFT_parser[1689]
+#define COLOR_parser___ReduceAction414___init SFT_parser[1690]
+#define ID_ReduceAction415 SFT_parser[1691]
+#define COLOR_ReduceAction415 SFT_parser[1692]
+#define INIT_TABLE_POS_ReduceAction415 SFT_parser[1693]
+#define COLOR_parser___ReduceAction415___init SFT_parser[1694]
+#define ID_ReduceAction416 SFT_parser[1695]
+#define COLOR_ReduceAction416 SFT_parser[1696]
+#define INIT_TABLE_POS_ReduceAction416 SFT_parser[1697]
+#define COLOR_parser___ReduceAction416___init SFT_parser[1698]
+#define ID_ReduceAction417 SFT_parser[1699]
+#define COLOR_ReduceAction417 SFT_parser[1700]
+#define INIT_TABLE_POS_ReduceAction417 SFT_parser[1701]
+#define COLOR_parser___ReduceAction417___init SFT_parser[1702]
+#define ID_ReduceAction418 SFT_parser[1703]
+#define COLOR_ReduceAction418 SFT_parser[1704]
+#define INIT_TABLE_POS_ReduceAction418 SFT_parser[1705]
+#define COLOR_parser___ReduceAction418___init SFT_parser[1706]
+#define ID_ReduceAction419 SFT_parser[1707]
+#define COLOR_ReduceAction419 SFT_parser[1708]
+#define INIT_TABLE_POS_ReduceAction419 SFT_parser[1709]
+#define COLOR_parser___ReduceAction419___init SFT_parser[1710]
+#define ID_ReduceAction420 SFT_parser[1711]
+#define COLOR_ReduceAction420 SFT_parser[1712]
+#define INIT_TABLE_POS_ReduceAction420 SFT_parser[1713]
+#define COLOR_parser___ReduceAction420___init SFT_parser[1714]
+#define ID_ReduceAction421 SFT_parser[1715]
+#define COLOR_ReduceAction421 SFT_parser[1716]
+#define INIT_TABLE_POS_ReduceAction421 SFT_parser[1717]
+#define COLOR_parser___ReduceAction421___init SFT_parser[1718]
+#define ID_ReduceAction422 SFT_parser[1719]
+#define COLOR_ReduceAction422 SFT_parser[1720]
+#define INIT_TABLE_POS_ReduceAction422 SFT_parser[1721]
+#define COLOR_parser___ReduceAction422___init SFT_parser[1722]
+#define ID_ReduceAction423 SFT_parser[1723]
+#define COLOR_ReduceAction423 SFT_parser[1724]
+#define INIT_TABLE_POS_ReduceAction423 SFT_parser[1725]
+#define COLOR_parser___ReduceAction423___init SFT_parser[1726]
+#define ID_ReduceAction424 SFT_parser[1727]
+#define COLOR_ReduceAction424 SFT_parser[1728]
+#define INIT_TABLE_POS_ReduceAction424 SFT_parser[1729]
+#define COLOR_parser___ReduceAction424___init SFT_parser[1730]
+#define ID_ReduceAction425 SFT_parser[1731]
+#define COLOR_ReduceAction425 SFT_parser[1732]
+#define INIT_TABLE_POS_ReduceAction425 SFT_parser[1733]
+#define COLOR_parser___ReduceAction425___init SFT_parser[1734]
+#define ID_ReduceAction426 SFT_parser[1735]
+#define COLOR_ReduceAction426 SFT_parser[1736]
+#define INIT_TABLE_POS_ReduceAction426 SFT_parser[1737]
+#define COLOR_parser___ReduceAction426___init SFT_parser[1738]
+#define ID_ReduceAction427 SFT_parser[1739]
+#define COLOR_ReduceAction427 SFT_parser[1740]
+#define INIT_TABLE_POS_ReduceAction427 SFT_parser[1741]
+#define COLOR_parser___ReduceAction427___init SFT_parser[1742]
+#define ID_ReduceAction428 SFT_parser[1743]
+#define COLOR_ReduceAction428 SFT_parser[1744]
+#define INIT_TABLE_POS_ReduceAction428 SFT_parser[1745]
+#define COLOR_parser___ReduceAction428___init SFT_parser[1746]
+#define ID_ReduceAction429 SFT_parser[1747]
+#define COLOR_ReduceAction429 SFT_parser[1748]
+#define INIT_TABLE_POS_ReduceAction429 SFT_parser[1749]
+#define COLOR_parser___ReduceAction429___init SFT_parser[1750]
+#define ID_ReduceAction430 SFT_parser[1751]
+#define COLOR_ReduceAction430 SFT_parser[1752]
+#define INIT_TABLE_POS_ReduceAction430 SFT_parser[1753]
+#define COLOR_parser___ReduceAction430___init SFT_parser[1754]
+#define ID_ReduceAction431 SFT_parser[1755]
+#define COLOR_ReduceAction431 SFT_parser[1756]
+#define INIT_TABLE_POS_ReduceAction431 SFT_parser[1757]
+#define COLOR_parser___ReduceAction431___init SFT_parser[1758]
+#define ID_ReduceAction432 SFT_parser[1759]
+#define COLOR_ReduceAction432 SFT_parser[1760]
+#define INIT_TABLE_POS_ReduceAction432 SFT_parser[1761]
+#define COLOR_parser___ReduceAction432___init SFT_parser[1762]
+#define ID_ReduceAction433 SFT_parser[1763]
+#define COLOR_ReduceAction433 SFT_parser[1764]
+#define INIT_TABLE_POS_ReduceAction433 SFT_parser[1765]
+#define COLOR_parser___ReduceAction433___init SFT_parser[1766]
+#define ID_ReduceAction434 SFT_parser[1767]
+#define COLOR_ReduceAction434 SFT_parser[1768]
+#define INIT_TABLE_POS_ReduceAction434 SFT_parser[1769]
+#define COLOR_parser___ReduceAction434___init SFT_parser[1770]
+#define ID_ReduceAction435 SFT_parser[1771]
+#define COLOR_ReduceAction435 SFT_parser[1772]
+#define INIT_TABLE_POS_ReduceAction435 SFT_parser[1773]
+#define COLOR_parser___ReduceAction435___init SFT_parser[1774]
+#define ID_ReduceAction436 SFT_parser[1775]
+#define COLOR_ReduceAction436 SFT_parser[1776]
+#define INIT_TABLE_POS_ReduceAction436 SFT_parser[1777]
+#define COLOR_parser___ReduceAction436___init SFT_parser[1778]
+#define ID_ReduceAction437 SFT_parser[1779]
+#define COLOR_ReduceAction437 SFT_parser[1780]
+#define INIT_TABLE_POS_ReduceAction437 SFT_parser[1781]
+#define COLOR_parser___ReduceAction437___init SFT_parser[1782]
+#define ID_ReduceAction438 SFT_parser[1783]
+#define COLOR_ReduceAction438 SFT_parser[1784]
+#define INIT_TABLE_POS_ReduceAction438 SFT_parser[1785]
+#define COLOR_parser___ReduceAction438___init SFT_parser[1786]
+#define ID_ReduceAction439 SFT_parser[1787]
+#define COLOR_ReduceAction439 SFT_parser[1788]
+#define INIT_TABLE_POS_ReduceAction439 SFT_parser[1789]
+#define COLOR_parser___ReduceAction439___init SFT_parser[1790]
+#define ID_ReduceAction440 SFT_parser[1791]
+#define COLOR_ReduceAction440 SFT_parser[1792]
+#define INIT_TABLE_POS_ReduceAction440 SFT_parser[1793]
+#define COLOR_parser___ReduceAction440___init SFT_parser[1794]
+#define ID_ReduceAction441 SFT_parser[1795]
+#define COLOR_ReduceAction441 SFT_parser[1796]
+#define INIT_TABLE_POS_ReduceAction441 SFT_parser[1797]
+#define COLOR_parser___ReduceAction441___init SFT_parser[1798]
+#define ID_ReduceAction442 SFT_parser[1799]
+#define COLOR_ReduceAction442 SFT_parser[1800]
+#define INIT_TABLE_POS_ReduceAction442 SFT_parser[1801]
+#define COLOR_parser___ReduceAction442___init SFT_parser[1802]
+#define ID_ReduceAction443 SFT_parser[1803]
+#define COLOR_ReduceAction443 SFT_parser[1804]
+#define INIT_TABLE_POS_ReduceAction443 SFT_parser[1805]
+#define COLOR_parser___ReduceAction443___init SFT_parser[1806]
+#define ID_ReduceAction444 SFT_parser[1807]
+#define COLOR_ReduceAction444 SFT_parser[1808]
+#define INIT_TABLE_POS_ReduceAction444 SFT_parser[1809]
+#define COLOR_parser___ReduceAction444___init SFT_parser[1810]
+#define ID_ReduceAction445 SFT_parser[1811]
+#define COLOR_ReduceAction445 SFT_parser[1812]
+#define INIT_TABLE_POS_ReduceAction445 SFT_parser[1813]
+#define COLOR_parser___ReduceAction445___init SFT_parser[1814]
+#define ID_ReduceAction446 SFT_parser[1815]
+#define COLOR_ReduceAction446 SFT_parser[1816]
+#define INIT_TABLE_POS_ReduceAction446 SFT_parser[1817]
+#define COLOR_parser___ReduceAction446___init SFT_parser[1818]
+#define ID_ReduceAction447 SFT_parser[1819]
+#define COLOR_ReduceAction447 SFT_parser[1820]
+#define INIT_TABLE_POS_ReduceAction447 SFT_parser[1821]
+#define COLOR_parser___ReduceAction447___init SFT_parser[1822]
+#define ID_ReduceAction448 SFT_parser[1823]
+#define COLOR_ReduceAction448 SFT_parser[1824]
+#define INIT_TABLE_POS_ReduceAction448 SFT_parser[1825]
+#define COLOR_parser___ReduceAction448___init SFT_parser[1826]
+#define ID_ReduceAction449 SFT_parser[1827]
+#define COLOR_ReduceAction449 SFT_parser[1828]
+#define INIT_TABLE_POS_ReduceAction449 SFT_parser[1829]
+#define COLOR_parser___ReduceAction449___init SFT_parser[1830]
+#define ID_ReduceAction450 SFT_parser[1831]
+#define COLOR_ReduceAction450 SFT_parser[1832]
+#define INIT_TABLE_POS_ReduceAction450 SFT_parser[1833]
+#define COLOR_parser___ReduceAction450___init SFT_parser[1834]
+#define ID_ReduceAction451 SFT_parser[1835]
+#define COLOR_ReduceAction451 SFT_parser[1836]
+#define INIT_TABLE_POS_ReduceAction451 SFT_parser[1837]
+#define COLOR_parser___ReduceAction451___init SFT_parser[1838]
+#define ID_ReduceAction452 SFT_parser[1839]
+#define COLOR_ReduceAction452 SFT_parser[1840]
+#define INIT_TABLE_POS_ReduceAction452 SFT_parser[1841]
+#define COLOR_parser___ReduceAction452___init SFT_parser[1842]
+#define ID_ReduceAction453 SFT_parser[1843]
+#define COLOR_ReduceAction453 SFT_parser[1844]
+#define INIT_TABLE_POS_ReduceAction453 SFT_parser[1845]
+#define COLOR_parser___ReduceAction453___init SFT_parser[1846]
+#define ID_ReduceAction454 SFT_parser[1847]
+#define COLOR_ReduceAction454 SFT_parser[1848]
+#define INIT_TABLE_POS_ReduceAction454 SFT_parser[1849]
+#define COLOR_parser___ReduceAction454___init SFT_parser[1850]
+#define ID_ReduceAction455 SFT_parser[1851]
+#define COLOR_ReduceAction455 SFT_parser[1852]
+#define INIT_TABLE_POS_ReduceAction455 SFT_parser[1853]
+#define COLOR_parser___ReduceAction455___init SFT_parser[1854]
+#define ID_ReduceAction456 SFT_parser[1855]
+#define COLOR_ReduceAction456 SFT_parser[1856]
+#define INIT_TABLE_POS_ReduceAction456 SFT_parser[1857]
+#define COLOR_parser___ReduceAction456___init SFT_parser[1858]
+#define ID_ReduceAction457 SFT_parser[1859]
+#define COLOR_ReduceAction457 SFT_parser[1860]
+#define INIT_TABLE_POS_ReduceAction457 SFT_parser[1861]
+#define COLOR_parser___ReduceAction457___init SFT_parser[1862]
+#define ID_ReduceAction458 SFT_parser[1863]
+#define COLOR_ReduceAction458 SFT_parser[1864]
+#define INIT_TABLE_POS_ReduceAction458 SFT_parser[1865]
+#define COLOR_parser___ReduceAction458___init SFT_parser[1866]
+#define ID_ReduceAction459 SFT_parser[1867]
+#define COLOR_ReduceAction459 SFT_parser[1868]
+#define INIT_TABLE_POS_ReduceAction459 SFT_parser[1869]
+#define COLOR_parser___ReduceAction459___init SFT_parser[1870]
+#define ID_ReduceAction460 SFT_parser[1871]
+#define COLOR_ReduceAction460 SFT_parser[1872]
+#define INIT_TABLE_POS_ReduceAction460 SFT_parser[1873]
+#define COLOR_parser___ReduceAction460___init SFT_parser[1874]
+#define ID_ReduceAction461 SFT_parser[1875]
+#define COLOR_ReduceAction461 SFT_parser[1876]
+#define INIT_TABLE_POS_ReduceAction461 SFT_parser[1877]
+#define COLOR_parser___ReduceAction461___init SFT_parser[1878]
+#define ID_ReduceAction462 SFT_parser[1879]
+#define COLOR_ReduceAction462 SFT_parser[1880]
+#define INIT_TABLE_POS_ReduceAction462 SFT_parser[1881]
+#define COLOR_parser___ReduceAction462___init SFT_parser[1882]
+#define ID_ReduceAction463 SFT_parser[1883]
+#define COLOR_ReduceAction463 SFT_parser[1884]
+#define INIT_TABLE_POS_ReduceAction463 SFT_parser[1885]
+#define COLOR_parser___ReduceAction463___init SFT_parser[1886]
+#define ID_ReduceAction464 SFT_parser[1887]
+#define COLOR_ReduceAction464 SFT_parser[1888]
+#define INIT_TABLE_POS_ReduceAction464 SFT_parser[1889]
+#define COLOR_parser___ReduceAction464___init SFT_parser[1890]
+#define ID_ReduceAction465 SFT_parser[1891]
+#define COLOR_ReduceAction465 SFT_parser[1892]
+#define INIT_TABLE_POS_ReduceAction465 SFT_parser[1893]
+#define COLOR_parser___ReduceAction465___init SFT_parser[1894]
+#define ID_ReduceAction466 SFT_parser[1895]
+#define COLOR_ReduceAction466 SFT_parser[1896]
+#define INIT_TABLE_POS_ReduceAction466 SFT_parser[1897]
+#define COLOR_parser___ReduceAction466___init SFT_parser[1898]
+#define ID_ReduceAction467 SFT_parser[1899]
+#define COLOR_ReduceAction467 SFT_parser[1900]
+#define INIT_TABLE_POS_ReduceAction467 SFT_parser[1901]
+#define COLOR_parser___ReduceAction467___init SFT_parser[1902]
+#define ID_ReduceAction468 SFT_parser[1903]
+#define COLOR_ReduceAction468 SFT_parser[1904]
+#define INIT_TABLE_POS_ReduceAction468 SFT_parser[1905]
+#define COLOR_parser___ReduceAction468___init SFT_parser[1906]
+#define ID_ReduceAction469 SFT_parser[1907]
+#define COLOR_ReduceAction469 SFT_parser[1908]
+#define INIT_TABLE_POS_ReduceAction469 SFT_parser[1909]
+#define COLOR_parser___ReduceAction469___init SFT_parser[1910]
+#define ID_ReduceAction470 SFT_parser[1911]
+#define COLOR_ReduceAction470 SFT_parser[1912]
+#define INIT_TABLE_POS_ReduceAction470 SFT_parser[1913]
+#define COLOR_parser___ReduceAction470___init SFT_parser[1914]
+#define ID_ReduceAction471 SFT_parser[1915]
+#define COLOR_ReduceAction471 SFT_parser[1916]
+#define INIT_TABLE_POS_ReduceAction471 SFT_parser[1917]
+#define COLOR_parser___ReduceAction471___init SFT_parser[1918]
+#define ID_ReduceAction472 SFT_parser[1919]
+#define COLOR_ReduceAction472 SFT_parser[1920]
+#define INIT_TABLE_POS_ReduceAction472 SFT_parser[1921]
+#define COLOR_parser___ReduceAction472___init SFT_parser[1922]
+#define ID_ReduceAction473 SFT_parser[1923]
+#define COLOR_ReduceAction473 SFT_parser[1924]
+#define INIT_TABLE_POS_ReduceAction473 SFT_parser[1925]
+#define COLOR_parser___ReduceAction473___init SFT_parser[1926]
+#define ID_ReduceAction474 SFT_parser[1927]
+#define COLOR_ReduceAction474 SFT_parser[1928]
+#define INIT_TABLE_POS_ReduceAction474 SFT_parser[1929]
+#define COLOR_parser___ReduceAction474___init SFT_parser[1930]
+#define ID_ReduceAction475 SFT_parser[1931]
+#define COLOR_ReduceAction475 SFT_parser[1932]
+#define INIT_TABLE_POS_ReduceAction475 SFT_parser[1933]
+#define COLOR_parser___ReduceAction475___init SFT_parser[1934]
+#define ID_ReduceAction476 SFT_parser[1935]
+#define COLOR_ReduceAction476 SFT_parser[1936]
+#define INIT_TABLE_POS_ReduceAction476 SFT_parser[1937]
+#define COLOR_parser___ReduceAction476___init SFT_parser[1938]
+#define ID_ReduceAction477 SFT_parser[1939]
+#define COLOR_ReduceAction477 SFT_parser[1940]
+#define INIT_TABLE_POS_ReduceAction477 SFT_parser[1941]
+#define COLOR_parser___ReduceAction477___init SFT_parser[1942]
+#define ID_ReduceAction478 SFT_parser[1943]
+#define COLOR_ReduceAction478 SFT_parser[1944]
+#define INIT_TABLE_POS_ReduceAction478 SFT_parser[1945]
+#define COLOR_parser___ReduceAction478___init SFT_parser[1946]
+#define ID_ReduceAction479 SFT_parser[1947]
+#define COLOR_ReduceAction479 SFT_parser[1948]
+#define INIT_TABLE_POS_ReduceAction479 SFT_parser[1949]
+#define COLOR_parser___ReduceAction479___init SFT_parser[1950]
+#define ID_ReduceAction480 SFT_parser[1951]
+#define COLOR_ReduceAction480 SFT_parser[1952]
+#define INIT_TABLE_POS_ReduceAction480 SFT_parser[1953]
+#define COLOR_parser___ReduceAction480___init SFT_parser[1954]
+#define ID_ReduceAction481 SFT_parser[1955]
+#define COLOR_ReduceAction481 SFT_parser[1956]
+#define INIT_TABLE_POS_ReduceAction481 SFT_parser[1957]
+#define COLOR_parser___ReduceAction481___init SFT_parser[1958]
+#define ID_ReduceAction482 SFT_parser[1959]
+#define COLOR_ReduceAction482 SFT_parser[1960]
+#define INIT_TABLE_POS_ReduceAction482 SFT_parser[1961]
+#define COLOR_parser___ReduceAction482___init SFT_parser[1962]
+#define ID_ReduceAction483 SFT_parser[1963]
+#define COLOR_ReduceAction483 SFT_parser[1964]
+#define INIT_TABLE_POS_ReduceAction483 SFT_parser[1965]
+#define COLOR_parser___ReduceAction483___init SFT_parser[1966]
+#define ID_ReduceAction484 SFT_parser[1967]
+#define COLOR_ReduceAction484 SFT_parser[1968]
+#define INIT_TABLE_POS_ReduceAction484 SFT_parser[1969]
+#define COLOR_parser___ReduceAction484___init SFT_parser[1970]
+#define ID_ReduceAction485 SFT_parser[1971]
+#define COLOR_ReduceAction485 SFT_parser[1972]
+#define INIT_TABLE_POS_ReduceAction485 SFT_parser[1973]
+#define COLOR_parser___ReduceAction485___init SFT_parser[1974]
+#define ID_ReduceAction486 SFT_parser[1975]
+#define COLOR_ReduceAction486 SFT_parser[1976]
+#define INIT_TABLE_POS_ReduceAction486 SFT_parser[1977]
+#define COLOR_parser___ReduceAction486___init SFT_parser[1978]
+#define ID_ReduceAction487 SFT_parser[1979]
+#define COLOR_ReduceAction487 SFT_parser[1980]
+#define INIT_TABLE_POS_ReduceAction487 SFT_parser[1981]
+#define COLOR_parser___ReduceAction487___init SFT_parser[1982]
+#define ID_ReduceAction488 SFT_parser[1983]
+#define COLOR_ReduceAction488 SFT_parser[1984]
+#define INIT_TABLE_POS_ReduceAction488 SFT_parser[1985]
+#define COLOR_parser___ReduceAction488___init SFT_parser[1986]
+#define ID_ReduceAction489 SFT_parser[1987]
+#define COLOR_ReduceAction489 SFT_parser[1988]
+#define INIT_TABLE_POS_ReduceAction489 SFT_parser[1989]
+#define COLOR_parser___ReduceAction489___init SFT_parser[1990]
+#define ID_ReduceAction490 SFT_parser[1991]
+#define COLOR_ReduceAction490 SFT_parser[1992]
+#define INIT_TABLE_POS_ReduceAction490 SFT_parser[1993]
+#define COLOR_parser___ReduceAction490___init SFT_parser[1994]
+#define ID_ReduceAction491 SFT_parser[1995]
+#define COLOR_ReduceAction491 SFT_parser[1996]
+#define INIT_TABLE_POS_ReduceAction491 SFT_parser[1997]
+#define COLOR_parser___ReduceAction491___init SFT_parser[1998]
+#define ID_ReduceAction492 SFT_parser[1999]
+#define COLOR_ReduceAction492 SFT_parser[2000]
+#define INIT_TABLE_POS_ReduceAction492 SFT_parser[2001]
+#define COLOR_parser___ReduceAction492___init SFT_parser[2002]
+#define ID_ReduceAction493 SFT_parser[2003]
+#define COLOR_ReduceAction493 SFT_parser[2004]
+#define INIT_TABLE_POS_ReduceAction493 SFT_parser[2005]
+#define COLOR_parser___ReduceAction493___init SFT_parser[2006]
+#define ID_ReduceAction494 SFT_parser[2007]
+#define COLOR_ReduceAction494 SFT_parser[2008]
+#define INIT_TABLE_POS_ReduceAction494 SFT_parser[2009]
+#define COLOR_parser___ReduceAction494___init SFT_parser[2010]
+#define ID_ReduceAction495 SFT_parser[2011]
+#define COLOR_ReduceAction495 SFT_parser[2012]
+#define INIT_TABLE_POS_ReduceAction495 SFT_parser[2013]
+#define COLOR_parser___ReduceAction495___init SFT_parser[2014]
+#define ID_ReduceAction496 SFT_parser[2015]
+#define COLOR_ReduceAction496 SFT_parser[2016]
+#define INIT_TABLE_POS_ReduceAction496 SFT_parser[2017]
+#define COLOR_parser___ReduceAction496___init SFT_parser[2018]
+#define ID_ReduceAction497 SFT_parser[2019]
+#define COLOR_ReduceAction497 SFT_parser[2020]
+#define INIT_TABLE_POS_ReduceAction497 SFT_parser[2021]
+#define COLOR_parser___ReduceAction497___init SFT_parser[2022]
+#define ID_ReduceAction498 SFT_parser[2023]
+#define COLOR_ReduceAction498 SFT_parser[2024]
+#define INIT_TABLE_POS_ReduceAction498 SFT_parser[2025]
+#define COLOR_parser___ReduceAction498___init SFT_parser[2026]
+#define ID_ReduceAction499 SFT_parser[2027]
+#define COLOR_ReduceAction499 SFT_parser[2028]
+#define INIT_TABLE_POS_ReduceAction499 SFT_parser[2029]
+#define COLOR_parser___ReduceAction499___init SFT_parser[2030]
+#define ID_ReduceAction500 SFT_parser[2031]
+#define COLOR_ReduceAction500 SFT_parser[2032]
+#define INIT_TABLE_POS_ReduceAction500 SFT_parser[2033]
+#define COLOR_parser___ReduceAction500___init SFT_parser[2034]
+#define ID_ReduceAction501 SFT_parser[2035]
+#define COLOR_ReduceAction501 SFT_parser[2036]
+#define INIT_TABLE_POS_ReduceAction501 SFT_parser[2037]
+#define COLOR_parser___ReduceAction501___init SFT_parser[2038]
+#define ID_ReduceAction502 SFT_parser[2039]
+#define COLOR_ReduceAction502 SFT_parser[2040]
+#define INIT_TABLE_POS_ReduceAction502 SFT_parser[2041]
+#define COLOR_parser___ReduceAction502___init SFT_parser[2042]
+#define ID_ReduceAction503 SFT_parser[2043]
+#define COLOR_ReduceAction503 SFT_parser[2044]
+#define INIT_TABLE_POS_ReduceAction503 SFT_parser[2045]
+#define COLOR_parser___ReduceAction503___init SFT_parser[2046]
+#define ID_ReduceAction504 SFT_parser[2047]
+#define COLOR_ReduceAction504 SFT_parser[2048]
+#define INIT_TABLE_POS_ReduceAction504 SFT_parser[2049]
+#define COLOR_parser___ReduceAction504___init SFT_parser[2050]
+#define ID_ReduceAction505 SFT_parser[2051]
+#define COLOR_ReduceAction505 SFT_parser[2052]
+#define INIT_TABLE_POS_ReduceAction505 SFT_parser[2053]
+#define COLOR_parser___ReduceAction505___init SFT_parser[2054]
+#define ID_ReduceAction506 SFT_parser[2055]
+#define COLOR_ReduceAction506 SFT_parser[2056]
+#define INIT_TABLE_POS_ReduceAction506 SFT_parser[2057]
+#define COLOR_parser___ReduceAction506___init SFT_parser[2058]
+#define ID_ReduceAction507 SFT_parser[2059]
+#define COLOR_ReduceAction507 SFT_parser[2060]
+#define INIT_TABLE_POS_ReduceAction507 SFT_parser[2061]
+#define COLOR_parser___ReduceAction507___init SFT_parser[2062]
+#define ID_ReduceAction508 SFT_parser[2063]
+#define COLOR_ReduceAction508 SFT_parser[2064]
+#define INIT_TABLE_POS_ReduceAction508 SFT_parser[2065]
+#define COLOR_parser___ReduceAction508___init SFT_parser[2066]
+#define ID_ReduceAction509 SFT_parser[2067]
+#define COLOR_ReduceAction509 SFT_parser[2068]
+#define INIT_TABLE_POS_ReduceAction509 SFT_parser[2069]
+#define COLOR_parser___ReduceAction509___init SFT_parser[2070]
+#define ID_ReduceAction510 SFT_parser[2071]
+#define COLOR_ReduceAction510 SFT_parser[2072]
+#define INIT_TABLE_POS_ReduceAction510 SFT_parser[2073]
+#define COLOR_parser___ReduceAction510___init SFT_parser[2074]
+#define ID_ReduceAction511 SFT_parser[2075]
+#define COLOR_ReduceAction511 SFT_parser[2076]
+#define INIT_TABLE_POS_ReduceAction511 SFT_parser[2077]
+#define COLOR_parser___ReduceAction511___init SFT_parser[2078]
+#define ID_ReduceAction512 SFT_parser[2079]
+#define COLOR_ReduceAction512 SFT_parser[2080]
+#define INIT_TABLE_POS_ReduceAction512 SFT_parser[2081]
+#define COLOR_parser___ReduceAction512___init SFT_parser[2082]
+#define ID_ReduceAction513 SFT_parser[2083]
+#define COLOR_ReduceAction513 SFT_parser[2084]
+#define INIT_TABLE_POS_ReduceAction513 SFT_parser[2085]
+#define COLOR_parser___ReduceAction513___init SFT_parser[2086]
+#define ID_ReduceAction514 SFT_parser[2087]
+#define COLOR_ReduceAction514 SFT_parser[2088]
+#define INIT_TABLE_POS_ReduceAction514 SFT_parser[2089]
+#define COLOR_parser___ReduceAction514___init SFT_parser[2090]
+#define ID_ReduceAction515 SFT_parser[2091]
+#define COLOR_ReduceAction515 SFT_parser[2092]
+#define INIT_TABLE_POS_ReduceAction515 SFT_parser[2093]
+#define COLOR_parser___ReduceAction515___init SFT_parser[2094]
+#define ID_ReduceAction516 SFT_parser[2095]
+#define COLOR_ReduceAction516 SFT_parser[2096]
+#define INIT_TABLE_POS_ReduceAction516 SFT_parser[2097]
+#define COLOR_parser___ReduceAction516___init SFT_parser[2098]
+#define ID_ReduceAction517 SFT_parser[2099]
+#define COLOR_ReduceAction517 SFT_parser[2100]
+#define INIT_TABLE_POS_ReduceAction517 SFT_parser[2101]
+#define COLOR_parser___ReduceAction517___init SFT_parser[2102]
+#define ID_ReduceAction518 SFT_parser[2103]
+#define COLOR_ReduceAction518 SFT_parser[2104]
+#define INIT_TABLE_POS_ReduceAction518 SFT_parser[2105]
+#define COLOR_parser___ReduceAction518___init SFT_parser[2106]
+#define ID_ReduceAction519 SFT_parser[2107]
+#define COLOR_ReduceAction519 SFT_parser[2108]
+#define INIT_TABLE_POS_ReduceAction519 SFT_parser[2109]
+#define COLOR_parser___ReduceAction519___init SFT_parser[2110]
+#define ID_ReduceAction520 SFT_parser[2111]
+#define COLOR_ReduceAction520 SFT_parser[2112]
+#define INIT_TABLE_POS_ReduceAction520 SFT_parser[2113]
+#define COLOR_parser___ReduceAction520___init SFT_parser[2114]
+#define ID_ReduceAction521 SFT_parser[2115]
+#define COLOR_ReduceAction521 SFT_parser[2116]
+#define INIT_TABLE_POS_ReduceAction521 SFT_parser[2117]
+#define COLOR_parser___ReduceAction521___init SFT_parser[2118]
+#define ID_ReduceAction522 SFT_parser[2119]
+#define COLOR_ReduceAction522 SFT_parser[2120]
+#define INIT_TABLE_POS_ReduceAction522 SFT_parser[2121]
+#define COLOR_parser___ReduceAction522___init SFT_parser[2122]
+#define ID_ReduceAction523 SFT_parser[2123]
+#define COLOR_ReduceAction523 SFT_parser[2124]
+#define INIT_TABLE_POS_ReduceAction523 SFT_parser[2125]
+#define COLOR_parser___ReduceAction523___init SFT_parser[2126]
+#define ID_ReduceAction524 SFT_parser[2127]
+#define COLOR_ReduceAction524 SFT_parser[2128]
+#define INIT_TABLE_POS_ReduceAction524 SFT_parser[2129]
+#define COLOR_parser___ReduceAction524___init SFT_parser[2130]
+#define ID_ReduceAction525 SFT_parser[2131]
+#define COLOR_ReduceAction525 SFT_parser[2132]
+#define INIT_TABLE_POS_ReduceAction525 SFT_parser[2133]
+#define COLOR_parser___ReduceAction525___init SFT_parser[2134]
+#define ID_ReduceAction526 SFT_parser[2135]
+#define COLOR_ReduceAction526 SFT_parser[2136]
+#define INIT_TABLE_POS_ReduceAction526 SFT_parser[2137]
+#define COLOR_parser___ReduceAction526___init SFT_parser[2138]
+#define ID_ReduceAction527 SFT_parser[2139]
+#define COLOR_ReduceAction527 SFT_parser[2140]
+#define INIT_TABLE_POS_ReduceAction527 SFT_parser[2141]
+#define COLOR_parser___ReduceAction527___init SFT_parser[2142]
+#define ID_ReduceAction528 SFT_parser[2143]
+#define COLOR_ReduceAction528 SFT_parser[2144]
+#define INIT_TABLE_POS_ReduceAction528 SFT_parser[2145]
+#define COLOR_parser___ReduceAction528___init SFT_parser[2146]
+#define ID_ReduceAction529 SFT_parser[2147]
+#define COLOR_ReduceAction529 SFT_parser[2148]
+#define INIT_TABLE_POS_ReduceAction529 SFT_parser[2149]
+#define COLOR_parser___ReduceAction529___init SFT_parser[2150]
+#define ID_ReduceAction530 SFT_parser[2151]
+#define COLOR_ReduceAction530 SFT_parser[2152]
+#define INIT_TABLE_POS_ReduceAction530 SFT_parser[2153]
+#define COLOR_parser___ReduceAction530___init SFT_parser[2154]
+#define ID_ReduceAction531 SFT_parser[2155]
+#define COLOR_ReduceAction531 SFT_parser[2156]
+#define INIT_TABLE_POS_ReduceAction531 SFT_parser[2157]
+#define COLOR_parser___ReduceAction531___init SFT_parser[2158]
+#define ID_ReduceAction532 SFT_parser[2159]
+#define COLOR_ReduceAction532 SFT_parser[2160]
+#define INIT_TABLE_POS_ReduceAction532 SFT_parser[2161]
+#define COLOR_parser___ReduceAction532___init SFT_parser[2162]
+#define ID_ReduceAction533 SFT_parser[2163]
+#define COLOR_ReduceAction533 SFT_parser[2164]
+#define INIT_TABLE_POS_ReduceAction533 SFT_parser[2165]
+#define COLOR_parser___ReduceAction533___init SFT_parser[2166]
+#define ID_ReduceAction534 SFT_parser[2167]
+#define COLOR_ReduceAction534 SFT_parser[2168]
+#define INIT_TABLE_POS_ReduceAction534 SFT_parser[2169]
+#define COLOR_parser___ReduceAction534___init SFT_parser[2170]
+#define ID_ReduceAction535 SFT_parser[2171]
+#define COLOR_ReduceAction535 SFT_parser[2172]
+#define INIT_TABLE_POS_ReduceAction535 SFT_parser[2173]
+#define COLOR_parser___ReduceAction535___init SFT_parser[2174]
+#define ID_ReduceAction536 SFT_parser[2175]
+#define COLOR_ReduceAction536 SFT_parser[2176]
+#define INIT_TABLE_POS_ReduceAction536 SFT_parser[2177]
+#define COLOR_parser___ReduceAction536___init SFT_parser[2178]
+#define ID_ReduceAction537 SFT_parser[2179]
+#define COLOR_ReduceAction537 SFT_parser[2180]
+#define INIT_TABLE_POS_ReduceAction537 SFT_parser[2181]
+#define COLOR_parser___ReduceAction537___init SFT_parser[2182]
+#define ID_ReduceAction538 SFT_parser[2183]
+#define COLOR_ReduceAction538 SFT_parser[2184]
+#define INIT_TABLE_POS_ReduceAction538 SFT_parser[2185]
+#define COLOR_parser___ReduceAction538___init SFT_parser[2186]
+#define ID_ReduceAction539 SFT_parser[2187]
+#define COLOR_ReduceAction539 SFT_parser[2188]
+#define INIT_TABLE_POS_ReduceAction539 SFT_parser[2189]
+#define COLOR_parser___ReduceAction539___init SFT_parser[2190]
+#define ID_ReduceAction540 SFT_parser[2191]
+#define COLOR_ReduceAction540 SFT_parser[2192]
+#define INIT_TABLE_POS_ReduceAction540 SFT_parser[2193]
+#define COLOR_parser___ReduceAction540___init SFT_parser[2194]
+#define ID_ReduceAction541 SFT_parser[2195]
+#define COLOR_ReduceAction541 SFT_parser[2196]
+#define INIT_TABLE_POS_ReduceAction541 SFT_parser[2197]
+#define COLOR_parser___ReduceAction541___init SFT_parser[2198]
+#define ID_ReduceAction542 SFT_parser[2199]
+#define COLOR_ReduceAction542 SFT_parser[2200]
+#define INIT_TABLE_POS_ReduceAction542 SFT_parser[2201]
+#define COLOR_parser___ReduceAction542___init SFT_parser[2202]
+#define ID_ReduceAction543 SFT_parser[2203]
+#define COLOR_ReduceAction543 SFT_parser[2204]
+#define INIT_TABLE_POS_ReduceAction543 SFT_parser[2205]
+#define COLOR_parser___ReduceAction543___init SFT_parser[2206]
+#define ID_ReduceAction544 SFT_parser[2207]
+#define COLOR_ReduceAction544 SFT_parser[2208]
+#define INIT_TABLE_POS_ReduceAction544 SFT_parser[2209]
+#define COLOR_parser___ReduceAction544___init SFT_parser[2210]
+#define ID_ReduceAction545 SFT_parser[2211]
+#define COLOR_ReduceAction545 SFT_parser[2212]
+#define INIT_TABLE_POS_ReduceAction545 SFT_parser[2213]
+#define COLOR_parser___ReduceAction545___init SFT_parser[2214]
+#define ID_ReduceAction546 SFT_parser[2215]
+#define COLOR_ReduceAction546 SFT_parser[2216]
+#define INIT_TABLE_POS_ReduceAction546 SFT_parser[2217]
+#define COLOR_parser___ReduceAction546___init SFT_parser[2218]
+#define ID_ReduceAction547 SFT_parser[2219]
+#define COLOR_ReduceAction547 SFT_parser[2220]
+#define INIT_TABLE_POS_ReduceAction547 SFT_parser[2221]
+#define COLOR_parser___ReduceAction547___init SFT_parser[2222]
+#define ID_ReduceAction548 SFT_parser[2223]
+#define COLOR_ReduceAction548 SFT_parser[2224]
+#define INIT_TABLE_POS_ReduceAction548 SFT_parser[2225]
+#define COLOR_parser___ReduceAction548___init SFT_parser[2226]
+#define ID_ReduceAction549 SFT_parser[2227]
+#define COLOR_ReduceAction549 SFT_parser[2228]
+#define INIT_TABLE_POS_ReduceAction549 SFT_parser[2229]
+#define COLOR_parser___ReduceAction549___init SFT_parser[2230]
+#define ID_ReduceAction550 SFT_parser[2231]
+#define COLOR_ReduceAction550 SFT_parser[2232]
+#define INIT_TABLE_POS_ReduceAction550 SFT_parser[2233]
+#define COLOR_parser___ReduceAction550___init SFT_parser[2234]
+#define ID_ReduceAction551 SFT_parser[2235]
+#define COLOR_ReduceAction551 SFT_parser[2236]
+#define INIT_TABLE_POS_ReduceAction551 SFT_parser[2237]
+#define COLOR_parser___ReduceAction551___init SFT_parser[2238]
+#define ID_ReduceAction552 SFT_parser[2239]
+#define COLOR_ReduceAction552 SFT_parser[2240]
+#define INIT_TABLE_POS_ReduceAction552 SFT_parser[2241]
+#define COLOR_parser___ReduceAction552___init SFT_parser[2242]
+#define ID_ReduceAction553 SFT_parser[2243]
+#define COLOR_ReduceAction553 SFT_parser[2244]
+#define INIT_TABLE_POS_ReduceAction553 SFT_parser[2245]
+#define COLOR_parser___ReduceAction553___init SFT_parser[2246]
+#define ID_ReduceAction554 SFT_parser[2247]
+#define COLOR_ReduceAction554 SFT_parser[2248]
+#define INIT_TABLE_POS_ReduceAction554 SFT_parser[2249]
+#define COLOR_parser___ReduceAction554___init SFT_parser[2250]
+#define ID_ReduceAction555 SFT_parser[2251]
+#define COLOR_ReduceAction555 SFT_parser[2252]
+#define INIT_TABLE_POS_ReduceAction555 SFT_parser[2253]
+#define COLOR_parser___ReduceAction555___init SFT_parser[2254]
+#define ID_ReduceAction556 SFT_parser[2255]
+#define COLOR_ReduceAction556 SFT_parser[2256]
+#define INIT_TABLE_POS_ReduceAction556 SFT_parser[2257]
+#define COLOR_parser___ReduceAction556___init SFT_parser[2258]
+#define ID_ReduceAction557 SFT_parser[2259]
+#define COLOR_ReduceAction557 SFT_parser[2260]
+#define INIT_TABLE_POS_ReduceAction557 SFT_parser[2261]
+#define COLOR_parser___ReduceAction557___init SFT_parser[2262]
+#define ID_ReduceAction558 SFT_parser[2263]
+#define COLOR_ReduceAction558 SFT_parser[2264]
+#define INIT_TABLE_POS_ReduceAction558 SFT_parser[2265]
+#define COLOR_parser___ReduceAction558___init SFT_parser[2266]
+#define ID_ReduceAction559 SFT_parser[2267]
+#define COLOR_ReduceAction559 SFT_parser[2268]
+#define INIT_TABLE_POS_ReduceAction559 SFT_parser[2269]
+#define COLOR_parser___ReduceAction559___init SFT_parser[2270]
+#define ID_ReduceAction560 SFT_parser[2271]
+#define COLOR_ReduceAction560 SFT_parser[2272]
+#define INIT_TABLE_POS_ReduceAction560 SFT_parser[2273]
+#define COLOR_parser___ReduceAction560___init SFT_parser[2274]
+#define ID_ReduceAction561 SFT_parser[2275]
+#define COLOR_ReduceAction561 SFT_parser[2276]
+#define INIT_TABLE_POS_ReduceAction561 SFT_parser[2277]
+#define COLOR_parser___ReduceAction561___init SFT_parser[2278]
+#define ID_ReduceAction562 SFT_parser[2279]
+#define COLOR_ReduceAction562 SFT_parser[2280]
+#define INIT_TABLE_POS_ReduceAction562 SFT_parser[2281]
+#define COLOR_parser___ReduceAction562___init SFT_parser[2282]
+#define ID_ReduceAction563 SFT_parser[2283]
+#define COLOR_ReduceAction563 SFT_parser[2284]
+#define INIT_TABLE_POS_ReduceAction563 SFT_parser[2285]
+#define COLOR_parser___ReduceAction563___init SFT_parser[2286]
+#define ID_ReduceAction564 SFT_parser[2287]
+#define COLOR_ReduceAction564 SFT_parser[2288]
+#define INIT_TABLE_POS_ReduceAction564 SFT_parser[2289]
+#define COLOR_parser___ReduceAction564___init SFT_parser[2290]
+#define ID_ReduceAction565 SFT_parser[2291]
+#define COLOR_ReduceAction565 SFT_parser[2292]
+#define INIT_TABLE_POS_ReduceAction565 SFT_parser[2293]
+#define COLOR_parser___ReduceAction565___init SFT_parser[2294]
+#define ID_ReduceAction566 SFT_parser[2295]
+#define COLOR_ReduceAction566 SFT_parser[2296]
+#define INIT_TABLE_POS_ReduceAction566 SFT_parser[2297]
+#define COLOR_parser___ReduceAction566___init SFT_parser[2298]
+#define ID_ReduceAction567 SFT_parser[2299]
+#define COLOR_ReduceAction567 SFT_parser[2300]
+#define INIT_TABLE_POS_ReduceAction567 SFT_parser[2301]
+#define COLOR_parser___ReduceAction567___init SFT_parser[2302]
+#define ID_ReduceAction568 SFT_parser[2303]
+#define COLOR_ReduceAction568 SFT_parser[2304]
+#define INIT_TABLE_POS_ReduceAction568 SFT_parser[2305]
+#define COLOR_parser___ReduceAction568___init SFT_parser[2306]
+#define ATTR_parser___State____state(recv) ATTR(recv, COLOR_parser___State____state)
+typedef val_t (* parser___State___state_t)(val_t  self);
+val_t parser___State___state(val_t  self);
+typedef void (* parser___State___state__eq_t)(val_t  self, val_t  param0);
+void parser___State___state__eq(val_t  self, val_t  param0);
+#define ATTR_parser___State____nodes(recv) ATTR(recv, COLOR_parser___State____nodes)
+typedef val_t (* parser___State___nodes_t)(val_t  self);
+val_t parser___State___nodes(val_t  self);
+typedef void (* parser___State___nodes__eq_t)(val_t  self, val_t  param0);
+void parser___State___nodes__eq(val_t  self, val_t  param0);
+typedef void (* parser___State___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser___State___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser___State___init(val_t  param0, val_t  param1);
+#define ATTR_parser___Parser____lexer(recv) ATTR(recv, COLOR_parser___Parser____lexer)
+#define ATTR_parser___Parser____stack(recv) ATTR(recv, COLOR_parser___Parser____stack)
+#define ATTR_parser___Parser____stack_pos(recv) ATTR(recv, COLOR_parser___Parser____stack_pos)
+typedef void (* parser___Parser___init_t)(val_t  self, val_t  param0, int* init_table);
+void parser___Parser___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser___Parser___init(val_t  param0);
+typedef val_t (* parser___Parser___go_to_t)(val_t  self, val_t  param0);
+val_t parser___Parser___go_to(val_t  self, val_t  param0);
+typedef void (* parser___Parser___push_t)(val_t  self, val_t  param0, val_t  param1);
+void parser___Parser___push(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* parser___Parser___state_t)(val_t  self);
+val_t parser___Parser___state(val_t  self);
+typedef val_t (* parser___Parser___pop_t)(val_t  self);
+val_t parser___Parser___pop(val_t  self);
+typedef val_t (* parser___Parser___parse_t)(val_t  self);
+val_t parser___Parser___parse(val_t  self);
+#define ATTR_parser___Parser____reduce_table(recv) ATTR(recv, COLOR_parser___Parser____reduce_table)
+typedef void (* parser___Parser___build_reduce_table_t)(val_t  self);
+void parser___Parser___build_reduce_table(val_t  self);
+#define ATTR_parser___SearchTokensVisitor____untokenned_nodes(recv) ATTR(recv, COLOR_parser___SearchTokensVisitor____untokenned_nodes)
+#define ATTR_parser___SearchTokensVisitor____last_token(recv) ATTR(recv, COLOR_parser___SearchTokensVisitor____last_token)
+typedef void (* parser___SearchTokensVisitor___visit_t)(val_t  self, val_t  param0);
+void parser___SearchTokensVisitor___visit(val_t  self, val_t  param0);
+typedef void (* parser___SearchTokensVisitor___init_t)(val_t  self, int* init_table);
+void parser___SearchTokensVisitor___init(val_t  self, int* init_table);
+val_t NEW_parser___SearchTokensVisitor___init();
+typedef void (* parser___ReduceAction___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction0___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction0___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction0___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction0___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction0___init();
+typedef void (* parser___ReduceAction1___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction1___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction1___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction1___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction1___init();
+typedef void (* parser___ReduceAction2___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction2___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction2___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction2___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction2___init();
+typedef void (* parser___ReduceAction3___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction3___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction3___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction3___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction3___init();
+typedef void (* parser___ReduceAction4___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction4___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction4___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction4___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction4___init();
+typedef void (* parser___ReduceAction5___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction5___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction5___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction5___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction5___init();
+typedef void (* parser___ReduceAction6___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction6___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction6___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction6___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction6___init();
+typedef void (* parser___ReduceAction7___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction7___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction7___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction7___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction7___init();
+typedef void (* parser___ReduceAction8___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction8___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction8___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction8___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction8___init();
+typedef void (* parser___ReduceAction9___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction9___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction9___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction9___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction9___init();
+typedef void (* parser___ReduceAction10___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction10___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction10___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction10___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction10___init();
+typedef void (* parser___ReduceAction11___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction11___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction11___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction11___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction11___init();
+typedef void (* parser___ReduceAction12___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction12___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction12___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction12___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction12___init();
+typedef void (* parser___ReduceAction13___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction13___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction13___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction13___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction13___init();
+typedef void (* parser___ReduceAction14___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction14___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction14___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction14___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction14___init();
+typedef void (* parser___ReduceAction15___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction15___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction15___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction15___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction15___init();
+typedef void (* parser___ReduceAction16___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction16___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction16___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction16___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction16___init();
+typedef void (* parser___ReduceAction17___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction17___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction17___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction17___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction17___init();
+typedef void (* parser___ReduceAction18___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction18___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction18___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction18___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction18___init();
+typedef void (* parser___ReduceAction19___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction19___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction19___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction19___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction19___init();
+typedef void (* parser___ReduceAction20___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction20___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction20___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction20___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction20___init();
+typedef void (* parser___ReduceAction21___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction21___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction21___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction21___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction21___init();
+typedef void (* parser___ReduceAction22___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction22___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction22___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction22___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction22___init();
+typedef void (* parser___ReduceAction23___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction23___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction23___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction23___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction23___init();
+typedef void (* parser___ReduceAction24___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction24___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction24___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction24___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction24___init();
+typedef void (* parser___ReduceAction25___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction25___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction25___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction25___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction25___init();
+typedef void (* parser___ReduceAction26___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction26___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction26___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction26___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction26___init();
+typedef void (* parser___ReduceAction27___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction27___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction27___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction27___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction27___init();
+typedef void (* parser___ReduceAction28___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction28___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction28___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction28___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction28___init();
+typedef void (* parser___ReduceAction29___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction29___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction29___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction29___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction29___init();
+typedef void (* parser___ReduceAction30___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction30___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction30___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction30___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction30___init();
+typedef void (* parser___ReduceAction31___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction31___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction31___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction31___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction31___init();
+typedef void (* parser___ReduceAction32___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction32___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction32___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction32___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction32___init();
+typedef void (* parser___ReduceAction33___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction33___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction33___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction33___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction33___init();
+typedef void (* parser___ReduceAction34___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction34___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction34___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction34___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction34___init();
+typedef void (* parser___ReduceAction35___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction35___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction35___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction35___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction35___init();
+typedef void (* parser___ReduceAction36___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction36___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction36___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction36___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction36___init();
+typedef void (* parser___ReduceAction37___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction37___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction37___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction37___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction37___init();
+typedef void (* parser___ReduceAction38___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction38___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction38___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction38___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction38___init();
+typedef void (* parser___ReduceAction39___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction39___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction39___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction39___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction39___init();
+typedef void (* parser___ReduceAction40___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction40___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction40___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction40___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction40___init();
+typedef void (* parser___ReduceAction41___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction41___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction41___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction41___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction41___init();
+typedef void (* parser___ReduceAction42___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction42___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction42___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction42___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction42___init();
+typedef void (* parser___ReduceAction43___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction43___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction43___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction43___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction43___init();
+typedef void (* parser___ReduceAction44___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction44___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction44___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction44___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction44___init();
+typedef void (* parser___ReduceAction45___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction45___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction45___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction45___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction45___init();
+typedef void (* parser___ReduceAction46___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction46___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction46___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction46___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction46___init();
+typedef void (* parser___ReduceAction47___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction47___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction47___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction47___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction47___init();
+typedef void (* parser___ReduceAction48___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction48___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction48___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction48___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction48___init();
+typedef void (* parser___ReduceAction49___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction49___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction49___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction49___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction49___init();
+typedef void (* parser___ReduceAction50___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction50___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction50___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction50___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction50___init();
+typedef void (* parser___ReduceAction51___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction51___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction51___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction51___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction51___init();
+typedef void (* parser___ReduceAction52___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction52___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction52___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction52___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction52___init();
+typedef void (* parser___ReduceAction53___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction53___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction53___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction53___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction53___init();
+typedef void (* parser___ReduceAction54___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction54___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction54___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction54___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction54___init();
+typedef void (* parser___ReduceAction55___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction55___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction55___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction55___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction55___init();
+typedef void (* parser___ReduceAction56___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction56___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction56___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction56___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction56___init();
+typedef void (* parser___ReduceAction57___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction57___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction57___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction57___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction57___init();
+typedef void (* parser___ReduceAction58___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction58___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction58___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction58___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction58___init();
+typedef void (* parser___ReduceAction59___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction59___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction59___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction59___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction59___init();
+typedef void (* parser___ReduceAction60___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction60___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction60___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction60___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction60___init();
+typedef void (* parser___ReduceAction61___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction61___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction61___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction61___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction61___init();
+typedef void (* parser___ReduceAction62___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction62___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction62___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction62___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction62___init();
+typedef void (* parser___ReduceAction63___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction63___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction63___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction63___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction63___init();
+typedef void (* parser___ReduceAction64___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction64___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction64___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction64___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction64___init();
+typedef void (* parser___ReduceAction65___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction65___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction65___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction65___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction65___init();
+typedef void (* parser___ReduceAction66___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction66___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction66___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction66___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction66___init();
+typedef void (* parser___ReduceAction67___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction67___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction67___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction67___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction67___init();
+typedef void (* parser___ReduceAction68___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction68___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction68___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction68___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction68___init();
+typedef void (* parser___ReduceAction69___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction69___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction69___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction69___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction69___init();
+typedef void (* parser___ReduceAction70___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction70___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction70___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction70___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction70___init();
+typedef void (* parser___ReduceAction71___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction71___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction71___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction71___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction71___init();
+typedef void (* parser___ReduceAction72___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction72___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction72___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction72___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction72___init();
+typedef void (* parser___ReduceAction73___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction73___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction73___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction73___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction73___init();
+typedef void (* parser___ReduceAction74___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction74___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction74___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction74___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction74___init();
+typedef void (* parser___ReduceAction75___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction75___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction75___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction75___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction75___init();
+typedef void (* parser___ReduceAction76___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction76___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction76___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction76___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction76___init();
+typedef void (* parser___ReduceAction77___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction77___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction77___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction77___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction77___init();
+typedef void (* parser___ReduceAction78___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction78___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction78___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction78___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction78___init();
+typedef void (* parser___ReduceAction79___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction79___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction79___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction79___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction79___init();
+typedef void (* parser___ReduceAction80___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction80___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction80___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction80___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction80___init();
+typedef void (* parser___ReduceAction81___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction81___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction81___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction81___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction81___init();
+typedef void (* parser___ReduceAction82___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction82___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction82___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction82___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction82___init();
+typedef void (* parser___ReduceAction83___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction83___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction83___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction83___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction83___init();
+typedef void (* parser___ReduceAction84___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction84___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction84___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction84___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction84___init();
+typedef void (* parser___ReduceAction85___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction85___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction85___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction85___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction85___init();
+typedef void (* parser___ReduceAction86___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction86___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction86___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction86___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction86___init();
+typedef void (* parser___ReduceAction87___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction87___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction87___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction87___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction87___init();
+typedef void (* parser___ReduceAction88___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction88___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction88___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction88___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction88___init();
+typedef void (* parser___ReduceAction89___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction89___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction89___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction89___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction89___init();
+typedef void (* parser___ReduceAction90___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction90___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction90___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction90___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction90___init();
+typedef void (* parser___ReduceAction91___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction91___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction91___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction91___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction91___init();
+typedef void (* parser___ReduceAction92___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction92___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction92___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction92___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction92___init();
+typedef void (* parser___ReduceAction93___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction93___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction93___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction93___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction93___init();
+typedef void (* parser___ReduceAction94___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction94___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction94___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction94___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction94___init();
+typedef void (* parser___ReduceAction95___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction95___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction95___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction95___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction95___init();
+typedef void (* parser___ReduceAction96___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction96___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction96___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction96___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction96___init();
+typedef void (* parser___ReduceAction97___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction97___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction97___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction97___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction97___init();
+typedef void (* parser___ReduceAction98___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction98___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction98___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction98___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction98___init();
+typedef void (* parser___ReduceAction99___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction99___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction99___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction99___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction99___init();
+typedef void (* parser___ReduceAction100___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction100___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction100___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction100___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction100___init();
+typedef void (* parser___ReduceAction101___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction101___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction101___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction101___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction101___init();
+typedef void (* parser___ReduceAction102___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction102___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction102___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction102___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction102___init();
+typedef void (* parser___ReduceAction103___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction103___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction103___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction103___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction103___init();
+typedef void (* parser___ReduceAction104___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction104___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction104___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction104___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction104___init();
+typedef void (* parser___ReduceAction105___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction105___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction105___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction105___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction105___init();
+typedef void (* parser___ReduceAction106___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction106___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction106___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction106___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction106___init();
+typedef void (* parser___ReduceAction107___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction107___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction107___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction107___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction107___init();
+typedef void (* parser___ReduceAction108___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction108___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction108___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction108___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction108___init();
+typedef void (* parser___ReduceAction109___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction109___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction109___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction109___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction109___init();
+typedef void (* parser___ReduceAction110___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction110___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction110___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction110___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction110___init();
+typedef void (* parser___ReduceAction111___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction111___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction111___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction111___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction111___init();
+typedef void (* parser___ReduceAction112___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction112___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction112___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction112___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction112___init();
+typedef void (* parser___ReduceAction113___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction113___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction113___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction113___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction113___init();
+typedef void (* parser___ReduceAction114___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction114___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction114___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction114___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction114___init();
+typedef void (* parser___ReduceAction115___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction115___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction115___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction115___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction115___init();
+typedef void (* parser___ReduceAction116___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction116___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction116___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction116___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction116___init();
+typedef void (* parser___ReduceAction117___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction117___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction117___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction117___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction117___init();
+typedef void (* parser___ReduceAction118___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction118___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction118___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction118___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction118___init();
+typedef void (* parser___ReduceAction119___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction119___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction119___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction119___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction119___init();
+typedef void (* parser___ReduceAction120___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction120___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction120___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction120___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction120___init();
+typedef void (* parser___ReduceAction121___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction121___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction121___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction121___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction121___init();
+typedef void (* parser___ReduceAction122___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction122___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction122___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction122___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction122___init();
+typedef void (* parser___ReduceAction123___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction123___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction123___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction123___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction123___init();
+typedef void (* parser___ReduceAction124___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction124___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction124___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction124___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction124___init();
+typedef void (* parser___ReduceAction125___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction125___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction125___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction125___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction125___init();
+typedef void (* parser___ReduceAction126___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction126___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction126___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction126___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction126___init();
+typedef void (* parser___ReduceAction127___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction127___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction127___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction127___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction127___init();
+typedef void (* parser___ReduceAction128___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction128___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction128___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction128___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction128___init();
+typedef void (* parser___ReduceAction129___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction129___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction129___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction129___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction129___init();
+typedef void (* parser___ReduceAction130___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction130___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction130___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction130___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction130___init();
+typedef void (* parser___ReduceAction131___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction131___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction131___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction131___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction131___init();
+typedef void (* parser___ReduceAction132___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction132___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction132___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction132___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction132___init();
+typedef void (* parser___ReduceAction133___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction133___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction133___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction133___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction133___init();
+typedef void (* parser___ReduceAction134___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction134___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction134___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction134___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction134___init();
+typedef void (* parser___ReduceAction135___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction135___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction135___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction135___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction135___init();
+typedef void (* parser___ReduceAction136___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction136___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction136___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction136___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction136___init();
+typedef void (* parser___ReduceAction137___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction137___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction137___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction137___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction137___init();
+typedef void (* parser___ReduceAction138___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction138___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction138___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction138___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction138___init();
+typedef void (* parser___ReduceAction139___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction139___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction139___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction139___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction139___init();
+typedef void (* parser___ReduceAction140___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction140___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction140___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction140___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction140___init();
+typedef void (* parser___ReduceAction141___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction141___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction141___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction141___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction141___init();
+typedef void (* parser___ReduceAction142___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction142___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction142___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction142___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction142___init();
+typedef void (* parser___ReduceAction143___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction143___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction143___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction143___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction143___init();
+typedef void (* parser___ReduceAction144___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction144___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction144___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction144___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction144___init();
+typedef void (* parser___ReduceAction145___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction145___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction145___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction145___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction145___init();
+typedef void (* parser___ReduceAction146___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction146___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction146___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction146___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction146___init();
+typedef void (* parser___ReduceAction147___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction147___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction147___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction147___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction147___init();
+typedef void (* parser___ReduceAction148___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction148___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction148___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction148___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction148___init();
+typedef void (* parser___ReduceAction149___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction149___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction149___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction149___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction149___init();
+typedef void (* parser___ReduceAction150___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction150___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction150___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction150___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction150___init();
+typedef void (* parser___ReduceAction151___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction151___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction151___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction151___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction151___init();
+typedef void (* parser___ReduceAction152___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction152___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction152___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction152___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction152___init();
+typedef void (* parser___ReduceAction153___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction153___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction153___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction153___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction153___init();
+typedef void (* parser___ReduceAction154___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction154___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction154___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction154___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction154___init();
+typedef void (* parser___ReduceAction155___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction155___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction155___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction155___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction155___init();
+typedef void (* parser___ReduceAction156___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction156___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction156___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction156___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction156___init();
+typedef void (* parser___ReduceAction157___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction157___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction157___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction157___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction157___init();
+typedef void (* parser___ReduceAction158___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction158___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction158___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction158___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction158___init();
+typedef void (* parser___ReduceAction159___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction159___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction159___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction159___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction159___init();
+typedef void (* parser___ReduceAction160___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction160___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction160___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction160___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction160___init();
+typedef void (* parser___ReduceAction161___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction161___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction161___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction161___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction161___init();
+typedef void (* parser___ReduceAction162___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction162___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction162___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction162___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction162___init();
+typedef void (* parser___ReduceAction163___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction163___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction163___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction163___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction163___init();
+typedef void (* parser___ReduceAction164___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction164___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction164___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction164___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction164___init();
+typedef void (* parser___ReduceAction165___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction165___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction165___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction165___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction165___init();
+typedef void (* parser___ReduceAction166___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction166___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction166___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction166___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction166___init();
+typedef void (* parser___ReduceAction167___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction167___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction167___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction167___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction167___init();
+typedef void (* parser___ReduceAction168___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction168___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction168___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction168___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction168___init();
+typedef void (* parser___ReduceAction169___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction169___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction169___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction169___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction169___init();
+typedef void (* parser___ReduceAction170___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction170___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction170___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction170___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction170___init();
+typedef void (* parser___ReduceAction171___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction171___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction171___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction171___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction171___init();
+typedef void (* parser___ReduceAction172___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction172___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction172___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction172___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction172___init();
+typedef void (* parser___ReduceAction173___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction173___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction173___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction173___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction173___init();
+typedef void (* parser___ReduceAction174___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction174___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction174___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction174___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction174___init();
+typedef void (* parser___ReduceAction175___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction175___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction175___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction175___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction175___init();
+typedef void (* parser___ReduceAction176___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction176___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction176___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction176___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction176___init();
+typedef void (* parser___ReduceAction177___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction177___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction177___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction177___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction177___init();
+typedef void (* parser___ReduceAction178___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction178___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction178___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction178___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction178___init();
+typedef void (* parser___ReduceAction179___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction179___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction179___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction179___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction179___init();
+typedef void (* parser___ReduceAction180___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction180___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction180___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction180___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction180___init();
+typedef void (* parser___ReduceAction181___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction181___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction181___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction181___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction181___init();
+typedef void (* parser___ReduceAction182___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction182___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction182___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction182___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction182___init();
+typedef void (* parser___ReduceAction183___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction183___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction183___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction183___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction183___init();
+typedef void (* parser___ReduceAction184___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction184___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction184___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction184___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction184___init();
+typedef void (* parser___ReduceAction185___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction185___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction185___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction185___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction185___init();
+typedef void (* parser___ReduceAction186___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction186___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction186___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction186___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction186___init();
+typedef void (* parser___ReduceAction187___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction187___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction187___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction187___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction187___init();
+typedef void (* parser___ReduceAction188___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction188___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction188___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction188___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction188___init();
+typedef void (* parser___ReduceAction189___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction189___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction189___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction189___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction189___init();
+typedef void (* parser___ReduceAction190___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction190___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction190___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction190___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction190___init();
+typedef void (* parser___ReduceAction191___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction191___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction191___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction191___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction191___init();
+typedef void (* parser___ReduceAction192___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction192___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction192___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction192___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction192___init();
+typedef void (* parser___ReduceAction193___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction193___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction193___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction193___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction193___init();
+typedef void (* parser___ReduceAction194___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction194___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction194___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction194___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction194___init();
+typedef void (* parser___ReduceAction195___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction195___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction195___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction195___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction195___init();
+typedef void (* parser___ReduceAction196___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction196___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction196___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction196___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction196___init();
+typedef void (* parser___ReduceAction197___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction197___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction197___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction197___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction197___init();
+typedef void (* parser___ReduceAction198___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction198___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction198___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction198___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction198___init();
+typedef void (* parser___ReduceAction199___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction199___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction199___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction199___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction199___init();
+typedef void (* parser___ReduceAction200___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction200___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction200___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction200___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction200___init();
+typedef void (* parser___ReduceAction201___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction201___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction201___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction201___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction201___init();
+typedef void (* parser___ReduceAction202___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction202___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction202___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction202___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction202___init();
+typedef void (* parser___ReduceAction203___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction203___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction203___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction203___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction203___init();
+typedef void (* parser___ReduceAction204___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction204___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction204___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction204___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction204___init();
+typedef void (* parser___ReduceAction205___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction205___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction205___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction205___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction205___init();
+typedef void (* parser___ReduceAction206___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction206___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction206___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction206___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction206___init();
+typedef void (* parser___ReduceAction207___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction207___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction207___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction207___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction207___init();
+typedef void (* parser___ReduceAction208___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction208___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction208___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction208___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction208___init();
+typedef void (* parser___ReduceAction209___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction209___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction209___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction209___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction209___init();
+typedef void (* parser___ReduceAction210___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction210___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction210___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction210___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction210___init();
+typedef void (* parser___ReduceAction211___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction211___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction211___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction211___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction211___init();
+typedef void (* parser___ReduceAction212___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction212___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction212___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction212___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction212___init();
+typedef void (* parser___ReduceAction213___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction213___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction213___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction213___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction213___init();
+typedef void (* parser___ReduceAction214___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction214___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction214___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction214___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction214___init();
+typedef void (* parser___ReduceAction215___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction215___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction215___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction215___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction215___init();
+typedef void (* parser___ReduceAction216___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction216___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction216___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction216___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction216___init();
+typedef void (* parser___ReduceAction217___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction217___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction217___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction217___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction217___init();
+typedef void (* parser___ReduceAction218___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction218___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction218___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction218___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction218___init();
+typedef void (* parser___ReduceAction219___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction219___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction219___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction219___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction219___init();
+typedef void (* parser___ReduceAction220___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction220___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction220___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction220___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction220___init();
+typedef void (* parser___ReduceAction221___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction221___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction221___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction221___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction221___init();
+typedef void (* parser___ReduceAction222___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction222___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction222___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction222___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction222___init();
+typedef void (* parser___ReduceAction223___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction223___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction223___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction223___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction223___init();
+typedef void (* parser___ReduceAction224___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction224___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction224___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction224___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction224___init();
+typedef void (* parser___ReduceAction225___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction225___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction225___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction225___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction225___init();
+typedef void (* parser___ReduceAction226___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction226___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction226___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction226___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction226___init();
+typedef void (* parser___ReduceAction227___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction227___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction227___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction227___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction227___init();
+typedef void (* parser___ReduceAction228___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction228___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction228___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction228___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction228___init();
+typedef void (* parser___ReduceAction229___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction229___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction229___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction229___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction229___init();
+typedef void (* parser___ReduceAction230___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction230___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction230___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction230___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction230___init();
+typedef void (* parser___ReduceAction231___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction231___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction231___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction231___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction231___init();
+typedef void (* parser___ReduceAction232___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction232___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction232___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction232___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction232___init();
+typedef void (* parser___ReduceAction233___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction233___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction233___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction233___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction233___init();
+typedef void (* parser___ReduceAction234___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction234___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction234___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction234___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction234___init();
+typedef void (* parser___ReduceAction235___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction235___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction235___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction235___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction235___init();
+typedef void (* parser___ReduceAction236___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction236___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction236___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction236___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction236___init();
+typedef void (* parser___ReduceAction237___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction237___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction237___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction237___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction237___init();
+typedef void (* parser___ReduceAction238___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction238___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction238___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction238___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction238___init();
+typedef void (* parser___ReduceAction239___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction239___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction239___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction239___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction239___init();
+typedef void (* parser___ReduceAction240___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction240___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction240___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction240___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction240___init();
+typedef void (* parser___ReduceAction241___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction241___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction241___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction241___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction241___init();
+typedef void (* parser___ReduceAction242___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction242___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction242___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction242___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction242___init();
+typedef void (* parser___ReduceAction243___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction243___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction243___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction243___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction243___init();
+typedef void (* parser___ReduceAction244___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction244___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction244___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction244___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction244___init();
+typedef void (* parser___ReduceAction245___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction245___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction245___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction245___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction245___init();
+typedef void (* parser___ReduceAction246___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction246___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction246___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction246___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction246___init();
+typedef void (* parser___ReduceAction247___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction247___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction247___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction247___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction247___init();
+typedef void (* parser___ReduceAction248___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction248___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction248___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction248___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction248___init();
+typedef void (* parser___ReduceAction249___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction249___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction249___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction249___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction249___init();
+typedef void (* parser___ReduceAction250___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction250___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction250___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction250___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction250___init();
+typedef void (* parser___ReduceAction251___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction251___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction251___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction251___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction251___init();
+typedef void (* parser___ReduceAction252___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction252___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction252___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction252___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction252___init();
+typedef void (* parser___ReduceAction253___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction253___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction253___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction253___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction253___init();
+typedef void (* parser___ReduceAction254___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction254___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction254___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction254___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction254___init();
+typedef void (* parser___ReduceAction255___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction255___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction255___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction255___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction255___init();
+typedef void (* parser___ReduceAction256___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction256___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction256___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction256___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction256___init();
+typedef void (* parser___ReduceAction257___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction257___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction257___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction257___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction257___init();
+typedef void (* parser___ReduceAction258___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction258___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction258___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction258___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction258___init();
+typedef void (* parser___ReduceAction259___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction259___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction259___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction259___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction259___init();
+typedef void (* parser___ReduceAction260___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction260___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction260___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction260___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction260___init();
+typedef void (* parser___ReduceAction261___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction261___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction261___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction261___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction261___init();
+typedef void (* parser___ReduceAction262___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction262___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction262___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction262___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction262___init();
+typedef void (* parser___ReduceAction263___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction263___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction263___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction263___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction263___init();
+typedef void (* parser___ReduceAction264___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction264___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction264___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction264___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction264___init();
+typedef void (* parser___ReduceAction265___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction265___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction265___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction265___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction265___init();
+typedef void (* parser___ReduceAction266___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction266___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction266___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction266___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction266___init();
+typedef void (* parser___ReduceAction267___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction267___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction267___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction267___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction267___init();
+typedef void (* parser___ReduceAction268___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction268___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction268___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction268___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction268___init();
+typedef void (* parser___ReduceAction269___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction269___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction269___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction269___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction269___init();
+typedef void (* parser___ReduceAction270___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction270___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction270___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction270___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction270___init();
+typedef void (* parser___ReduceAction271___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction271___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction271___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction271___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction271___init();
+typedef void (* parser___ReduceAction272___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction272___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction272___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction272___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction272___init();
+typedef void (* parser___ReduceAction273___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction273___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction273___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction273___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction273___init();
+typedef void (* parser___ReduceAction274___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction274___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction274___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction274___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction274___init();
+typedef void (* parser___ReduceAction275___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction275___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction275___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction275___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction275___init();
+typedef void (* parser___ReduceAction276___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction276___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction276___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction276___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction276___init();
+typedef void (* parser___ReduceAction277___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction277___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction277___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction277___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction277___init();
+typedef void (* parser___ReduceAction278___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction278___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction278___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction278___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction278___init();
+typedef void (* parser___ReduceAction279___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction279___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction279___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction279___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction279___init();
+typedef void (* parser___ReduceAction280___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction280___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction280___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction280___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction280___init();
+typedef void (* parser___ReduceAction281___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction281___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction281___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction281___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction281___init();
+typedef void (* parser___ReduceAction282___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction282___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction282___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction282___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction282___init();
+typedef void (* parser___ReduceAction283___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction283___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction283___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction283___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction283___init();
+typedef void (* parser___ReduceAction284___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction284___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction284___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction284___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction284___init();
+typedef void (* parser___ReduceAction285___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction285___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction285___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction285___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction285___init();
+typedef void (* parser___ReduceAction286___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction286___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction286___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction286___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction286___init();
+typedef void (* parser___ReduceAction287___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction287___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction287___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction287___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction287___init();
+typedef void (* parser___ReduceAction288___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction288___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction288___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction288___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction288___init();
+typedef void (* parser___ReduceAction289___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction289___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction289___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction289___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction289___init();
+typedef void (* parser___ReduceAction290___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction290___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction290___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction290___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction290___init();
+typedef void (* parser___ReduceAction291___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction291___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction291___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction291___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction291___init();
+typedef void (* parser___ReduceAction292___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction292___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction292___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction292___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction292___init();
+typedef void (* parser___ReduceAction293___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction293___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction293___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction293___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction293___init();
+typedef void (* parser___ReduceAction294___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction294___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction294___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction294___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction294___init();
+typedef void (* parser___ReduceAction295___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction295___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction295___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction295___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction295___init();
+typedef void (* parser___ReduceAction296___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction296___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction296___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction296___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction296___init();
+typedef void (* parser___ReduceAction297___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction297___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction297___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction297___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction297___init();
+typedef void (* parser___ReduceAction298___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction298___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction298___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction298___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction298___init();
+typedef void (* parser___ReduceAction299___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction299___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction299___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction299___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction299___init();
+typedef void (* parser___ReduceAction300___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction300___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction300___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction300___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction300___init();
+typedef void (* parser___ReduceAction301___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction301___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction301___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction301___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction301___init();
+typedef void (* parser___ReduceAction302___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction302___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction302___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction302___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction302___init();
+typedef void (* parser___ReduceAction303___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction303___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction303___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction303___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction303___init();
+typedef void (* parser___ReduceAction304___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction304___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction304___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction304___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction304___init();
+typedef void (* parser___ReduceAction305___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction305___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction305___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction305___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction305___init();
+typedef void (* parser___ReduceAction306___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction306___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction306___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction306___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction306___init();
+typedef void (* parser___ReduceAction307___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction307___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction307___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction307___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction307___init();
+typedef void (* parser___ReduceAction308___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction308___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction308___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction308___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction308___init();
+typedef void (* parser___ReduceAction309___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction309___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction309___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction309___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction309___init();
+typedef void (* parser___ReduceAction310___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction310___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction310___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction310___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction310___init();
+typedef void (* parser___ReduceAction311___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction311___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction311___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction311___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction311___init();
+typedef void (* parser___ReduceAction312___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction312___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction312___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction312___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction312___init();
+typedef void (* parser___ReduceAction313___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction313___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction313___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction313___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction313___init();
+typedef void (* parser___ReduceAction314___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction314___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction314___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction314___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction314___init();
+typedef void (* parser___ReduceAction315___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction315___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction315___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction315___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction315___init();
+typedef void (* parser___ReduceAction316___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction316___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction316___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction316___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction316___init();
+typedef void (* parser___ReduceAction317___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction317___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction317___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction317___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction317___init();
+typedef void (* parser___ReduceAction318___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction318___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction318___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction318___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction318___init();
+typedef void (* parser___ReduceAction319___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction319___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction319___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction319___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction319___init();
+typedef void (* parser___ReduceAction320___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction320___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction320___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction320___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction320___init();
+typedef void (* parser___ReduceAction321___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction321___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction321___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction321___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction321___init();
+typedef void (* parser___ReduceAction322___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction322___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction322___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction322___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction322___init();
+typedef void (* parser___ReduceAction323___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction323___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction323___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction323___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction323___init();
+typedef void (* parser___ReduceAction324___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction324___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction324___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction324___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction324___init();
+typedef void (* parser___ReduceAction325___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction325___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction325___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction325___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction325___init();
+typedef void (* parser___ReduceAction326___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction326___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction326___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction326___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction326___init();
+typedef void (* parser___ReduceAction327___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction327___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction327___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction327___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction327___init();
+typedef void (* parser___ReduceAction328___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction328___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction328___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction328___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction328___init();
+typedef void (* parser___ReduceAction329___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction329___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction329___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction329___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction329___init();
+typedef void (* parser___ReduceAction330___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction330___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction330___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction330___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction330___init();
+typedef void (* parser___ReduceAction331___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction331___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction331___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction331___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction331___init();
+typedef void (* parser___ReduceAction332___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction332___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction332___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction332___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction332___init();
+typedef void (* parser___ReduceAction333___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction333___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction333___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction333___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction333___init();
+typedef void (* parser___ReduceAction334___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction334___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction334___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction334___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction334___init();
+typedef void (* parser___ReduceAction335___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction335___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction335___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction335___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction335___init();
+typedef void (* parser___ReduceAction336___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction336___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction336___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction336___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction336___init();
+typedef void (* parser___ReduceAction337___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction337___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction337___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction337___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction337___init();
+typedef void (* parser___ReduceAction338___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction338___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction338___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction338___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction338___init();
+typedef void (* parser___ReduceAction339___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction339___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction339___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction339___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction339___init();
+typedef void (* parser___ReduceAction340___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction340___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction340___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction340___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction340___init();
+typedef void (* parser___ReduceAction341___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction341___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction341___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction341___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction341___init();
+typedef void (* parser___ReduceAction342___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction342___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction342___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction342___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction342___init();
+typedef void (* parser___ReduceAction343___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction343___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction343___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction343___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction343___init();
+typedef void (* parser___ReduceAction344___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction344___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction344___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction344___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction344___init();
+typedef void (* parser___ReduceAction345___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction345___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction345___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction345___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction345___init();
+typedef void (* parser___ReduceAction346___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction346___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction346___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction346___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction346___init();
+typedef void (* parser___ReduceAction347___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction347___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction347___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction347___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction347___init();
+typedef void (* parser___ReduceAction348___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction348___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction348___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction348___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction348___init();
+typedef void (* parser___ReduceAction349___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction349___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction349___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction349___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction349___init();
+typedef void (* parser___ReduceAction350___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction350___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction350___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction350___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction350___init();
+typedef void (* parser___ReduceAction351___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction351___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction351___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction351___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction351___init();
+typedef void (* parser___ReduceAction352___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction352___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction352___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction352___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction352___init();
+typedef void (* parser___ReduceAction353___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction353___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction353___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction353___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction353___init();
+typedef void (* parser___ReduceAction354___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction354___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction354___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction354___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction354___init();
+typedef void (* parser___ReduceAction355___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction355___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction355___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction355___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction355___init();
+typedef void (* parser___ReduceAction356___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction356___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction356___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction356___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction356___init();
+typedef void (* parser___ReduceAction357___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction357___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction357___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction357___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction357___init();
+typedef void (* parser___ReduceAction358___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction358___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction358___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction358___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction358___init();
+typedef void (* parser___ReduceAction359___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction359___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction359___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction359___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction359___init();
+typedef void (* parser___ReduceAction360___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction360___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction360___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction360___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction360___init();
+typedef void (* parser___ReduceAction361___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction361___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction361___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction361___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction361___init();
+typedef void (* parser___ReduceAction362___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction362___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction362___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction362___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction362___init();
+typedef void (* parser___ReduceAction363___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction363___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction363___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction363___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction363___init();
+typedef void (* parser___ReduceAction364___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction364___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction364___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction364___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction364___init();
+typedef void (* parser___ReduceAction365___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction365___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction365___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction365___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction365___init();
+typedef void (* parser___ReduceAction366___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction366___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction366___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction366___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction366___init();
+typedef void (* parser___ReduceAction367___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction367___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction367___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction367___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction367___init();
+typedef void (* parser___ReduceAction368___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction368___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction368___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction368___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction368___init();
+typedef void (* parser___ReduceAction369___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction369___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction369___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction369___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction369___init();
+typedef void (* parser___ReduceAction370___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction370___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction370___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction370___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction370___init();
+typedef void (* parser___ReduceAction371___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction371___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction371___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction371___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction371___init();
+typedef void (* parser___ReduceAction372___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction372___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction372___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction372___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction372___init();
+typedef void (* parser___ReduceAction373___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction373___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction373___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction373___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction373___init();
+typedef void (* parser___ReduceAction374___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction374___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction374___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction374___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction374___init();
+typedef void (* parser___ReduceAction375___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction375___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction375___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction375___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction375___init();
+typedef void (* parser___ReduceAction376___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction376___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction376___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction376___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction376___init();
+typedef void (* parser___ReduceAction377___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction377___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction377___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction377___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction377___init();
+typedef void (* parser___ReduceAction378___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction378___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction378___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction378___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction378___init();
+typedef void (* parser___ReduceAction379___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction379___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction379___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction379___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction379___init();
+typedef void (* parser___ReduceAction380___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction380___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction380___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction380___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction380___init();
+typedef void (* parser___ReduceAction381___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction381___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction381___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction381___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction381___init();
+typedef void (* parser___ReduceAction382___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction382___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction382___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction382___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction382___init();
+typedef void (* parser___ReduceAction383___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction383___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction383___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction383___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction383___init();
+typedef void (* parser___ReduceAction384___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction384___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction384___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction384___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction384___init();
+typedef void (* parser___ReduceAction385___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction385___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction385___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction385___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction385___init();
+typedef void (* parser___ReduceAction386___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction386___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction386___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction386___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction386___init();
+typedef void (* parser___ReduceAction387___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction387___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction387___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction387___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction387___init();
+typedef void (* parser___ReduceAction388___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction388___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction388___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction388___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction388___init();
+typedef void (* parser___ReduceAction389___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction389___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction389___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction389___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction389___init();
+typedef void (* parser___ReduceAction390___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction390___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction390___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction390___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction390___init();
+typedef void (* parser___ReduceAction391___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction391___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction391___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction391___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction391___init();
+typedef void (* parser___ReduceAction392___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction392___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction392___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction392___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction392___init();
+typedef void (* parser___ReduceAction393___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction393___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction393___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction393___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction393___init();
+typedef void (* parser___ReduceAction394___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction394___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction394___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction394___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction394___init();
+typedef void (* parser___ReduceAction395___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction395___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction395___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction395___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction395___init();
+typedef void (* parser___ReduceAction396___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction396___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction396___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction396___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction396___init();
+typedef void (* parser___ReduceAction397___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction397___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction397___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction397___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction397___init();
+typedef void (* parser___ReduceAction398___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction398___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction398___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction398___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction398___init();
+typedef void (* parser___ReduceAction399___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction399___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction399___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction399___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction399___init();
+typedef void (* parser___ReduceAction400___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction400___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction400___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction400___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction400___init();
+typedef void (* parser___ReduceAction401___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction401___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction401___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction401___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction401___init();
+typedef void (* parser___ReduceAction402___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction402___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction402___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction402___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction402___init();
+typedef void (* parser___ReduceAction403___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction403___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction403___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction403___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction403___init();
+typedef void (* parser___ReduceAction404___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction404___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction404___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction404___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction404___init();
+typedef void (* parser___ReduceAction405___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction405___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction405___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction405___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction405___init();
+typedef void (* parser___ReduceAction406___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction406___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction406___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction406___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction406___init();
+typedef void (* parser___ReduceAction407___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction407___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction407___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction407___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction407___init();
+typedef void (* parser___ReduceAction408___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction408___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction408___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction408___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction408___init();
+typedef void (* parser___ReduceAction409___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction409___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction409___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction409___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction409___init();
+typedef void (* parser___ReduceAction410___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction410___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction410___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction410___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction410___init();
+typedef void (* parser___ReduceAction411___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction411___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction411___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction411___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction411___init();
+typedef void (* parser___ReduceAction412___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction412___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction412___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction412___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction412___init();
+typedef void (* parser___ReduceAction413___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction413___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction413___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction413___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction413___init();
+typedef void (* parser___ReduceAction414___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction414___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction414___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction414___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction414___init();
+typedef void (* parser___ReduceAction415___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction415___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction415___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction415___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction415___init();
+typedef void (* parser___ReduceAction416___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction416___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction416___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction416___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction416___init();
+typedef void (* parser___ReduceAction417___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction417___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction417___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction417___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction417___init();
+typedef void (* parser___ReduceAction418___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction418___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction418___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction418___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction418___init();
+typedef void (* parser___ReduceAction419___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction419___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction419___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction419___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction419___init();
+typedef void (* parser___ReduceAction420___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction420___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction420___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction420___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction420___init();
+typedef void (* parser___ReduceAction421___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction421___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction421___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction421___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction421___init();
+typedef void (* parser___ReduceAction422___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction422___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction422___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction422___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction422___init();
+typedef void (* parser___ReduceAction423___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction423___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction423___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction423___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction423___init();
+typedef void (* parser___ReduceAction424___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction424___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction424___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction424___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction424___init();
+typedef void (* parser___ReduceAction425___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction425___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction425___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction425___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction425___init();
+typedef void (* parser___ReduceAction426___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction426___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction426___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction426___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction426___init();
+typedef void (* parser___ReduceAction427___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction427___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction427___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction427___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction427___init();
+typedef void (* parser___ReduceAction428___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction428___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction428___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction428___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction428___init();
+typedef void (* parser___ReduceAction429___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction429___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction429___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction429___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction429___init();
+typedef void (* parser___ReduceAction430___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction430___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction430___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction430___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction430___init();
+typedef void (* parser___ReduceAction431___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction431___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction431___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction431___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction431___init();
+typedef void (* parser___ReduceAction432___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction432___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction432___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction432___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction432___init();
+typedef void (* parser___ReduceAction433___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction433___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction433___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction433___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction433___init();
+typedef void (* parser___ReduceAction434___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction434___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction434___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction434___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction434___init();
+typedef void (* parser___ReduceAction435___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction435___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction435___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction435___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction435___init();
+typedef void (* parser___ReduceAction436___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction436___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction436___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction436___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction436___init();
+typedef void (* parser___ReduceAction437___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction437___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction437___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction437___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction437___init();
+typedef void (* parser___ReduceAction438___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction438___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction438___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction438___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction438___init();
+typedef void (* parser___ReduceAction439___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction439___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction439___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction439___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction439___init();
+typedef void (* parser___ReduceAction440___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction440___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction440___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction440___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction440___init();
+typedef void (* parser___ReduceAction441___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction441___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction441___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction441___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction441___init();
+typedef void (* parser___ReduceAction442___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction442___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction442___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction442___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction442___init();
+typedef void (* parser___ReduceAction443___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction443___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction443___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction443___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction443___init();
+typedef void (* parser___ReduceAction444___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction444___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction444___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction444___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction444___init();
+typedef void (* parser___ReduceAction445___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction445___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction445___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction445___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction445___init();
+typedef void (* parser___ReduceAction446___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction446___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction446___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction446___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction446___init();
+typedef void (* parser___ReduceAction447___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction447___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction447___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction447___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction447___init();
+typedef void (* parser___ReduceAction448___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction448___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction448___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction448___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction448___init();
+typedef void (* parser___ReduceAction449___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction449___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction449___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction449___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction449___init();
+typedef void (* parser___ReduceAction450___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction450___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction450___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction450___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction450___init();
+typedef void (* parser___ReduceAction451___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction451___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction451___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction451___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction451___init();
+typedef void (* parser___ReduceAction452___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction452___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction452___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction452___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction452___init();
+typedef void (* parser___ReduceAction453___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction453___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction453___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction453___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction453___init();
+typedef void (* parser___ReduceAction454___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction454___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction454___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction454___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction454___init();
+typedef void (* parser___ReduceAction455___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction455___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction455___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction455___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction455___init();
+typedef void (* parser___ReduceAction456___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction456___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction456___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction456___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction456___init();
+typedef void (* parser___ReduceAction457___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction457___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction457___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction457___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction457___init();
+typedef void (* parser___ReduceAction458___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction458___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction458___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction458___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction458___init();
+typedef void (* parser___ReduceAction459___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction459___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction459___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction459___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction459___init();
+typedef void (* parser___ReduceAction460___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction460___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction460___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction460___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction460___init();
+typedef void (* parser___ReduceAction461___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction461___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction461___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction461___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction461___init();
+typedef void (* parser___ReduceAction462___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction462___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction462___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction462___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction462___init();
+typedef void (* parser___ReduceAction463___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction463___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction463___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction463___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction463___init();
+typedef void (* parser___ReduceAction464___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction464___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction464___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction464___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction464___init();
+typedef void (* parser___ReduceAction465___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction465___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction465___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction465___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction465___init();
+typedef void (* parser___ReduceAction466___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction466___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction466___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction466___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction466___init();
+typedef void (* parser___ReduceAction467___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction467___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction467___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction467___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction467___init();
+typedef void (* parser___ReduceAction468___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction468___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction468___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction468___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction468___init();
+typedef void (* parser___ReduceAction469___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction469___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction469___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction469___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction469___init();
+typedef void (* parser___ReduceAction470___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction470___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction470___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction470___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction470___init();
+typedef void (* parser___ReduceAction471___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction471___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction471___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction471___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction471___init();
+typedef void (* parser___ReduceAction472___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction472___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction472___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction472___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction472___init();
+typedef void (* parser___ReduceAction473___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction473___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction473___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction473___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction473___init();
+typedef void (* parser___ReduceAction474___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction474___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction474___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction474___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction474___init();
+typedef void (* parser___ReduceAction475___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction475___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction475___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction475___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction475___init();
+typedef void (* parser___ReduceAction476___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction476___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction476___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction476___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction476___init();
+typedef void (* parser___ReduceAction477___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction477___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction477___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction477___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction477___init();
+typedef void (* parser___ReduceAction478___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction478___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction478___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction478___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction478___init();
+typedef void (* parser___ReduceAction479___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction479___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction479___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction479___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction479___init();
+typedef void (* parser___ReduceAction480___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction480___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction480___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction480___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction480___init();
+typedef void (* parser___ReduceAction481___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction481___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction481___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction481___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction481___init();
+typedef void (* parser___ReduceAction482___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction482___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction482___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction482___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction482___init();
+typedef void (* parser___ReduceAction483___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction483___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction483___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction483___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction483___init();
+typedef void (* parser___ReduceAction484___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction484___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction484___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction484___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction484___init();
+typedef void (* parser___ReduceAction485___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction485___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction485___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction485___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction485___init();
+typedef void (* parser___ReduceAction486___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction486___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction486___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction486___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction486___init();
+typedef void (* parser___ReduceAction487___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction487___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction487___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction487___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction487___init();
+typedef void (* parser___ReduceAction488___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction488___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction488___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction488___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction488___init();
+typedef void (* parser___ReduceAction489___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction489___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction489___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction489___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction489___init();
+typedef void (* parser___ReduceAction490___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction490___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction490___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction490___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction490___init();
+typedef void (* parser___ReduceAction491___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction491___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction491___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction491___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction491___init();
+typedef void (* parser___ReduceAction492___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction492___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction492___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction492___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction492___init();
+typedef void (* parser___ReduceAction493___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction493___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction493___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction493___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction493___init();
+typedef void (* parser___ReduceAction494___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction494___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction494___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction494___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction494___init();
+typedef void (* parser___ReduceAction495___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction495___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction495___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction495___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction495___init();
+typedef void (* parser___ReduceAction496___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction496___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction496___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction496___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction496___init();
+typedef void (* parser___ReduceAction497___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction497___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction497___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction497___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction497___init();
+typedef void (* parser___ReduceAction498___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction498___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction498___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction498___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction498___init();
+typedef void (* parser___ReduceAction499___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction499___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction499___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction499___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction499___init();
+typedef void (* parser___ReduceAction500___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction500___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction500___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction500___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction500___init();
+typedef void (* parser___ReduceAction501___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction501___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction501___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction501___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction501___init();
+typedef void (* parser___ReduceAction502___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction502___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction502___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction502___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction502___init();
+typedef void (* parser___ReduceAction503___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction503___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction503___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction503___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction503___init();
+typedef void (* parser___ReduceAction504___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction504___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction504___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction504___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction504___init();
+typedef void (* parser___ReduceAction505___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction505___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction505___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction505___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction505___init();
+typedef void (* parser___ReduceAction506___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction506___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction506___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction506___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction506___init();
+typedef void (* parser___ReduceAction507___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction507___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction507___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction507___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction507___init();
+typedef void (* parser___ReduceAction508___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction508___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction508___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction508___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction508___init();
+typedef void (* parser___ReduceAction509___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction509___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction509___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction509___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction509___init();
+typedef void (* parser___ReduceAction510___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction510___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction510___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction510___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction510___init();
+typedef void (* parser___ReduceAction511___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction511___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction511___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction511___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction511___init();
+typedef void (* parser___ReduceAction512___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction512___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction512___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction512___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction512___init();
+typedef void (* parser___ReduceAction513___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction513___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction513___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction513___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction513___init();
+typedef void (* parser___ReduceAction514___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction514___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction514___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction514___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction514___init();
+typedef void (* parser___ReduceAction515___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction515___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction515___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction515___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction515___init();
+typedef void (* parser___ReduceAction516___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction516___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction516___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction516___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction516___init();
+typedef void (* parser___ReduceAction517___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction517___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction517___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction517___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction517___init();
+typedef void (* parser___ReduceAction518___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction518___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction518___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction518___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction518___init();
+typedef void (* parser___ReduceAction519___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction519___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction519___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction519___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction519___init();
+typedef void (* parser___ReduceAction520___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction520___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction520___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction520___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction520___init();
+typedef void (* parser___ReduceAction521___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction521___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction521___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction521___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction521___init();
+typedef void (* parser___ReduceAction522___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction522___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction522___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction522___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction522___init();
+typedef void (* parser___ReduceAction523___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction523___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction523___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction523___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction523___init();
+typedef void (* parser___ReduceAction524___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction524___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction524___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction524___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction524___init();
+typedef void (* parser___ReduceAction525___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction525___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction525___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction525___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction525___init();
+typedef void (* parser___ReduceAction526___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction526___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction526___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction526___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction526___init();
+typedef void (* parser___ReduceAction527___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction527___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction527___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction527___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction527___init();
+typedef void (* parser___ReduceAction528___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction528___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction528___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction528___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction528___init();
+typedef void (* parser___ReduceAction529___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction529___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction529___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction529___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction529___init();
+typedef void (* parser___ReduceAction530___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction530___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction530___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction530___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction530___init();
+typedef void (* parser___ReduceAction531___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction531___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction531___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction531___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction531___init();
+typedef void (* parser___ReduceAction532___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction532___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction532___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction532___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction532___init();
+typedef void (* parser___ReduceAction533___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction533___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction533___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction533___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction533___init();
+typedef void (* parser___ReduceAction534___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction534___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction534___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction534___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction534___init();
+typedef void (* parser___ReduceAction535___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction535___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction535___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction535___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction535___init();
+typedef void (* parser___ReduceAction536___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction536___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction536___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction536___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction536___init();
+typedef void (* parser___ReduceAction537___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction537___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction537___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction537___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction537___init();
+typedef void (* parser___ReduceAction538___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction538___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction538___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction538___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction538___init();
+typedef void (* parser___ReduceAction539___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction539___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction539___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction539___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction539___init();
+typedef void (* parser___ReduceAction540___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction540___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction540___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction540___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction540___init();
+typedef void (* parser___ReduceAction541___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction541___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction541___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction541___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction541___init();
+typedef void (* parser___ReduceAction542___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction542___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction542___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction542___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction542___init();
+typedef void (* parser___ReduceAction543___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction543___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction543___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction543___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction543___init();
+typedef void (* parser___ReduceAction544___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction544___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction544___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction544___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction544___init();
+typedef void (* parser___ReduceAction545___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction545___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction545___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction545___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction545___init();
+typedef void (* parser___ReduceAction546___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction546___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction546___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction546___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction546___init();
+typedef void (* parser___ReduceAction547___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction547___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction547___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction547___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction547___init();
+typedef void (* parser___ReduceAction548___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction548___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction548___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction548___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction548___init();
+typedef void (* parser___ReduceAction549___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction549___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction549___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction549___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction549___init();
+typedef void (* parser___ReduceAction550___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction550___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction550___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction550___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction550___init();
+typedef void (* parser___ReduceAction551___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction551___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction551___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction551___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction551___init();
+typedef void (* parser___ReduceAction552___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction552___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction552___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction552___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction552___init();
+typedef void (* parser___ReduceAction553___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction553___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction553___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction553___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction553___init();
+typedef void (* parser___ReduceAction554___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction554___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction554___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction554___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction554___init();
+typedef void (* parser___ReduceAction555___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction555___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction555___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction555___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction555___init();
+typedef void (* parser___ReduceAction556___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction556___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction556___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction556___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction556___init();
+typedef void (* parser___ReduceAction557___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction557___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction557___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction557___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction557___init();
+typedef void (* parser___ReduceAction558___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction558___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction558___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction558___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction558___init();
+typedef void (* parser___ReduceAction559___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction559___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction559___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction559___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction559___init();
+typedef void (* parser___ReduceAction560___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction560___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction560___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction560___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction560___init();
+typedef void (* parser___ReduceAction561___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction561___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction561___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction561___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction561___init();
+typedef void (* parser___ReduceAction562___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction562___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction562___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction562___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction562___init();
+typedef void (* parser___ReduceAction563___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction563___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction563___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction563___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction563___init();
+typedef void (* parser___ReduceAction564___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction564___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction564___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction564___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction564___init();
+typedef void (* parser___ReduceAction565___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction565___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction565___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction565___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction565___init();
+typedef void (* parser___ReduceAction566___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction566___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction566___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction566___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction566___init();
+typedef void (* parser___ReduceAction567___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction567___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction567___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction567___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction567___init();
+typedef void (* parser___ReduceAction568___action_t)(val_t  self, val_t  param0);
+void parser___ReduceAction568___action(val_t  self, val_t  param0);
+typedef void (* parser___ReduceAction568___init_t)(val_t  self, int* init_table);
+void parser___ReduceAction568___init(val_t  self, int* init_table);
+val_t NEW_parser___ReduceAction568___init();
+#endif
diff --git a/c_src/parser_nodes._sep.c b/c_src/parser_nodes._sep.c
new file mode 100644 (file)
index 0000000..5edf7cc
--- /dev/null
@@ -0,0 +1,2354 @@
+#include "parser_nodes._sep.h"
+val_t parser_nodes___PPropdef___n_doc(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::PPropdef::n_doc (src/parser//parser_nodes.nit:280,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___PPropdef____n_doc( self) /*PPropdef::_n_doc*/;
+}
+void parser_nodes___PPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::PPropdef::n_doc= (src/parser//parser_nodes.nit:280,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*PPropdef::_n_doc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___PAble___n_kwredef(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::PAble::n_kwredef (src/parser//parser_nodes.nit:283,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___PAble____n_kwredef( self) /*PAble::_n_kwredef*/;
+}
+void parser_nodes___PAble___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::PAble::n_kwredef= (src/parser//parser_nodes.nit:283,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___PAble____n_kwredef( self) /*PAble::_n_kwredef*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___PParam___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::PParam::n_id (src/parser//parser_nodes.nit:289,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___PParam____n_id( self) /*PParam::_n_id*/;
+}
+void parser_nodes___PParam___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::PParam::n_id= (src/parser//parser_nodes.nit:289,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___PParam____n_id( self) /*PParam::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___PParam___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::PParam::n_type (src/parser//parser_nodes.nit:290,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___PParam____n_type( self) /*PParam::_n_type*/;
+}
+void parser_nodes___PParam___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::PParam::n_type= (src/parser//parser_nodes.nit:290,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___PParam____n_type( self) /*PParam::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AModule___n_packagedecl(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_packagedecl (src/parser//parser_nodes.nit:300,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+}
+void parser_nodes___AModule___n_packagedecl__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_packagedecl= (src/parser//parser_nodes.nit:300,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AModule___n_imports(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_imports (src/parser//parser_nodes.nit:301,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+}
+void parser_nodes___AModule___n_imports__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_imports= (src/parser//parser_nodes.nit:301,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AModule___n_classdefs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_classdefs (src/parser//parser_nodes.nit:302,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+}
+void parser_nodes___AModule___n_classdefs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AModule::n_classdefs= (src/parser//parser_nodes.nit:302,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APackagedecl___n_doc(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_doc (src/parser//parser_nodes.nit:306,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+}
+void parser_nodes___APackagedecl___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_doc= (src/parser//parser_nodes.nit:306,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APackagedecl___n_kwpackage(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_kwpackage (src/parser//parser_nodes.nit:307,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+}
+void parser_nodes___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_kwpackage= (src/parser//parser_nodes.nit:307,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APackagedecl___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_id (src/parser//parser_nodes.nit:308,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+}
+void parser_nodes___APackagedecl___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APackagedecl::n_id= (src/parser//parser_nodes.nit:308,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AImport___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_visibility (src/parser//parser_nodes.nit:312,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+}
+void parser_nodes___AImport___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_visibility= (src/parser//parser_nodes.nit:312,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AImport___n_kwimport(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_kwimport (src/parser//parser_nodes.nit:313,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+}
+void parser_nodes___AImport___n_kwimport__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_kwimport= (src/parser//parser_nodes.nit:313,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AImport___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_id (src/parser//parser_nodes.nit:314,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+}
+void parser_nodes___AImport___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AImport::n_id= (src/parser//parser_nodes.nit:314,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANoImport___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_visibility (src/parser//parser_nodes.nit:318,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+}
+void parser_nodes___ANoImport___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_visibility= (src/parser//parser_nodes.nit:318,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANoImport___n_kwimport(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_kwimport (src/parser//parser_nodes.nit:319,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+}
+void parser_nodes___ANoImport___n_kwimport__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_kwimport= (src/parser//parser_nodes.nit:319,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANoImport___n_kwend(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_kwend (src/parser//parser_nodes.nit:320,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+}
+void parser_nodes___ANoImport___n_kwend__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANoImport::n_kwend= (src/parser//parser_nodes.nit:320,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APrivateVisibility___n_kwprivate(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APrivateVisibility::n_kwprivate (src/parser//parser_nodes.nit:327,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+}
+void parser_nodes___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APrivateVisibility::n_kwprivate= (src/parser//parser_nodes.nit:327,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AProtectedVisibility___n_kwprotected(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AProtectedVisibility::n_kwprotected (src/parser//parser_nodes.nit:331,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+}
+void parser_nodes___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AProtectedVisibility::n_kwprotected= (src/parser//parser_nodes.nit:331,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIntrudeVisibility___n_kwintrude(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIntrudeVisibility::n_kwintrude (src/parser//parser_nodes.nit:335,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+}
+void parser_nodes___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIntrudeVisibility::n_kwintrude= (src/parser//parser_nodes.nit:335,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_doc(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_doc (src/parser//parser_nodes.nit:339,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+}
+void parser_nodes___AClassdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_doc= (src/parser//parser_nodes.nit:339,5--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_kwredef(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_kwredef (src/parser//parser_nodes.nit:340,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+}
+void parser_nodes___AClassdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_kwredef= (src/parser//parser_nodes.nit:340,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_visibility (src/parser//parser_nodes.nit:341,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+}
+void parser_nodes___AClassdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_visibility= (src/parser//parser_nodes.nit:341,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_classkind(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_classkind (src/parser//parser_nodes.nit:342,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+}
+void parser_nodes___AClassdef___n_classkind__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_classkind= (src/parser//parser_nodes.nit:342,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_id (src/parser//parser_nodes.nit:343,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+}
+void parser_nodes___AClassdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_id= (src/parser//parser_nodes.nit:343,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_formaldefs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_formaldefs (src/parser//parser_nodes.nit:344,5--57)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+}
+void parser_nodes___AClassdef___n_formaldefs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_formaldefs= (src/parser//parser_nodes.nit:344,5--57)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_superclasses(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_superclasses (src/parser//parser_nodes.nit:345,5--60)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+}
+void parser_nodes___AClassdef___n_superclasses__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_superclasses= (src/parser//parser_nodes.nit:345,5--60)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AClassdef___n_propdefs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_propdefs (src/parser//parser_nodes.nit:346,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+}
+void parser_nodes___AClassdef___n_propdefs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AClassdef::n_propdefs= (src/parser//parser_nodes.nit:346,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATopClassdef___n_propdefs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATopClassdef::n_propdefs (src/parser//parser_nodes.nit:350,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+}
+void parser_nodes___ATopClassdef___n_propdefs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATopClassdef::n_propdefs= (src/parser//parser_nodes.nit:350,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMainClassdef___n_propdefs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMainClassdef::n_propdefs (src/parser//parser_nodes.nit:354,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+}
+void parser_nodes___AMainClassdef___n_propdefs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMainClassdef::n_propdefs= (src/parser//parser_nodes.nit:354,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AConcreteClasskind___n_kwclass(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteClasskind::n_kwclass (src/parser//parser_nodes.nit:358,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+}
+void parser_nodes___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteClasskind::n_kwclass= (src/parser//parser_nodes.nit:358,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAbstractClasskind___n_kwabstract(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbstractClasskind::n_kwabstract (src/parser//parser_nodes.nit:362,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+}
+void parser_nodes___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbstractClasskind::n_kwabstract= (src/parser//parser_nodes.nit:362,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAbstractClasskind___n_kwclass(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbstractClasskind::n_kwclass (src/parser//parser_nodes.nit:363,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+}
+void parser_nodes___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbstractClasskind::n_kwclass= (src/parser//parser_nodes.nit:363,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AInterfaceClasskind___n_kwinterface(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AInterfaceClasskind::n_kwinterface (src/parser//parser_nodes.nit:367,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+}
+void parser_nodes___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AInterfaceClasskind::n_kwinterface= (src/parser//parser_nodes.nit:367,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AUniversalClasskind___n_kwuniversal(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AUniversalClasskind::n_kwuniversal (src/parser//parser_nodes.nit:371,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+}
+void parser_nodes___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AUniversalClasskind::n_kwuniversal= (src/parser//parser_nodes.nit:371,5--55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AFormaldef___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AFormaldef::n_id (src/parser//parser_nodes.nit:375,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+}
+void parser_nodes___AFormaldef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AFormaldef::n_id= (src/parser//parser_nodes.nit:375,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AFormaldef___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AFormaldef::n_type (src/parser//parser_nodes.nit:376,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+}
+void parser_nodes___AFormaldef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AFormaldef::n_type= (src/parser//parser_nodes.nit:376,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperclass___n_kwspecial(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperclass::n_kwspecial (src/parser//parser_nodes.nit:380,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+}
+void parser_nodes___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperclass::n_kwspecial= (src/parser//parser_nodes.nit:380,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperclass___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperclass::n_type (src/parser//parser_nodes.nit:381,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+}
+void parser_nodes___ASuperclass___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperclass::n_type= (src/parser//parser_nodes.nit:381,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_kwredef(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_kwredef (src/parser//parser_nodes.nit:385,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+}
+void parser_nodes___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_kwredef= (src/parser//parser_nodes.nit:385,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_visibility (src/parser//parser_nodes.nit:386,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+}
+void parser_nodes___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_visibility= (src/parser//parser_nodes.nit:386,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_kwattr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_kwattr (src/parser//parser_nodes.nit:387,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+}
+void parser_nodes___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_kwattr= (src/parser//parser_nodes.nit:387,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_id (src/parser//parser_nodes.nit:388,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+}
+void parser_nodes___AAttrPropdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_id= (src/parser//parser_nodes.nit:388,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_type (src/parser//parser_nodes.nit:389,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+}
+void parser_nodes___AAttrPropdef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_type= (src/parser//parser_nodes.nit:389,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_readable(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_readable (src/parser//parser_nodes.nit:390,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+}
+void parser_nodes___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_readable= (src/parser//parser_nodes.nit:390,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_writable(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_writable (src/parser//parser_nodes.nit:391,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+}
+void parser_nodes___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_writable= (src/parser//parser_nodes.nit:391,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrPropdef___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_expr (src/parser//parser_nodes.nit:392,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+}
+void parser_nodes___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrPropdef::n_expr= (src/parser//parser_nodes.nit:392,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMethPropdef___n_kwredef(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_kwredef (src/parser//parser_nodes.nit:396,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+}
+void parser_nodes___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_kwredef= (src/parser//parser_nodes.nit:396,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMethPropdef___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_visibility (src/parser//parser_nodes.nit:397,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+}
+void parser_nodes___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_visibility= (src/parser//parser_nodes.nit:397,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMethPropdef___n_methid(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_methid (src/parser//parser_nodes.nit:398,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+}
+void parser_nodes___AMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_methid= (src/parser//parser_nodes.nit:398,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMethPropdef___n_signature(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_signature (src/parser//parser_nodes.nit:399,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+}
+void parser_nodes___AMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMethPropdef::n_signature= (src/parser//parser_nodes.nit:399,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ADeferredMethPropdef___n_kwmeth(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ADeferredMethPropdef::n_kwmeth (src/parser//parser_nodes.nit:403,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+}
+void parser_nodes___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ADeferredMethPropdef::n_kwmeth= (src/parser//parser_nodes.nit:403,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AInternMethPropdef___n_kwmeth(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AInternMethPropdef::n_kwmeth (src/parser//parser_nodes.nit:407,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+}
+void parser_nodes___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AInternMethPropdef::n_kwmeth= (src/parser//parser_nodes.nit:407,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AExternMethPropdef___n_kwmeth(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AExternMethPropdef::n_kwmeth (src/parser//parser_nodes.nit:411,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+}
+void parser_nodes___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AExternMethPropdef::n_kwmeth= (src/parser//parser_nodes.nit:411,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AExternMethPropdef___n_extern(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AExternMethPropdef::n_extern (src/parser//parser_nodes.nit:412,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+}
+void parser_nodes___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AExternMethPropdef::n_extern= (src/parser//parser_nodes.nit:412,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AConcreteMethPropdef___n_kwmeth(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteMethPropdef::n_kwmeth (src/parser//parser_nodes.nit:416,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+}
+void parser_nodes___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteMethPropdef::n_kwmeth= (src/parser//parser_nodes.nit:416,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AConcreteMethPropdef___n_block(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteMethPropdef::n_block (src/parser//parser_nodes.nit:417,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+}
+void parser_nodes___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteMethPropdef::n_block= (src/parser//parser_nodes.nit:417,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AConcreteInitPropdef___n_kwinit(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteInitPropdef::n_kwinit (src/parser//parser_nodes.nit:421,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+}
+void parser_nodes___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AConcreteInitPropdef::n_kwinit= (src/parser//parser_nodes.nit:421,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATypePropdef___n_kwredef(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_kwredef (src/parser//parser_nodes.nit:428,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+}
+void parser_nodes___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_kwredef= (src/parser//parser_nodes.nit:428,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATypePropdef___n_visibility(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_visibility (src/parser//parser_nodes.nit:429,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+}
+void parser_nodes___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_visibility= (src/parser//parser_nodes.nit:429,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATypePropdef___n_kwtype(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_kwtype (src/parser//parser_nodes.nit:430,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+}
+void parser_nodes___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_kwtype= (src/parser//parser_nodes.nit:430,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATypePropdef___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_id (src/parser//parser_nodes.nit:431,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+}
+void parser_nodes___ATypePropdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_id= (src/parser//parser_nodes.nit:431,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATypePropdef___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_type (src/parser//parser_nodes.nit:432,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+}
+void parser_nodes___ATypePropdef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATypePropdef::n_type= (src/parser//parser_nodes.nit:432,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AReadAble___n_kwreadable(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AReadAble::n_kwreadable (src/parser//parser_nodes.nit:436,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+}
+void parser_nodes___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AReadAble::n_kwreadable= (src/parser//parser_nodes.nit:436,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AWriteAble___n_kwwritable(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AWriteAble::n_kwwritable (src/parser//parser_nodes.nit:440,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+}
+void parser_nodes___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AWriteAble::n_kwwritable= (src/parser//parser_nodes.nit:440,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIdMethid___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIdMethid::n_id (src/parser//parser_nodes.nit:444,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+}
+void parser_nodes___AIdMethid___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIdMethid::n_id= (src/parser//parser_nodes.nit:444,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APlusMethid___n_plus(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APlusMethid::n_plus (src/parser//parser_nodes.nit:448,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+}
+void parser_nodes___APlusMethid___n_plus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APlusMethid::n_plus= (src/parser//parser_nodes.nit:448,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMinusMethid___n_minus(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMinusMethid::n_minus (src/parser//parser_nodes.nit:452,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+}
+void parser_nodes___AMinusMethid___n_minus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMinusMethid::n_minus= (src/parser//parser_nodes.nit:452,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AStarMethid___n_star(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AStarMethid::n_star (src/parser//parser_nodes.nit:456,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+}
+void parser_nodes___AStarMethid___n_star__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AStarMethid::n_star= (src/parser//parser_nodes.nit:456,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASlashMethid___n_slash(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASlashMethid::n_slash (src/parser//parser_nodes.nit:460,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+}
+void parser_nodes___ASlashMethid___n_slash__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASlashMethid::n_slash= (src/parser//parser_nodes.nit:460,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APercentMethid___n_percent(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APercentMethid::n_percent (src/parser//parser_nodes.nit:464,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+}
+void parser_nodes___APercentMethid___n_percent__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APercentMethid::n_percent= (src/parser//parser_nodes.nit:464,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AEqMethid___n_eq(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AEqMethid::n_eq (src/parser//parser_nodes.nit:468,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+}
+void parser_nodes___AEqMethid___n_eq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AEqMethid::n_eq= (src/parser//parser_nodes.nit:468,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANeMethid___n_ne(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANeMethid::n_ne (src/parser//parser_nodes.nit:472,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+}
+void parser_nodes___ANeMethid___n_ne__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANeMethid::n_ne= (src/parser//parser_nodes.nit:472,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ALeMethid___n_le(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ALeMethid::n_le (src/parser//parser_nodes.nit:476,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+}
+void parser_nodes___ALeMethid___n_le__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ALeMethid::n_le= (src/parser//parser_nodes.nit:476,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AGeMethid___n_ge(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AGeMethid::n_ge (src/parser//parser_nodes.nit:480,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+}
+void parser_nodes___AGeMethid___n_ge__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AGeMethid::n_ge= (src/parser//parser_nodes.nit:480,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ALtMethid___n_lt(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ALtMethid::n_lt (src/parser//parser_nodes.nit:484,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+}
+void parser_nodes___ALtMethid___n_lt__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ALtMethid::n_lt= (src/parser//parser_nodes.nit:484,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AGtMethid___n_gt(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AGtMethid::n_gt (src/parser//parser_nodes.nit:488,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+}
+void parser_nodes___AGtMethid___n_gt__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AGtMethid::n_gt= (src/parser//parser_nodes.nit:488,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraMethid___n_obra(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraMethid::n_obra (src/parser//parser_nodes.nit:492,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+}
+void parser_nodes___ABraMethid___n_obra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraMethid::n_obra= (src/parser//parser_nodes.nit:492,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraMethid___n_cbra(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraMethid::n_cbra (src/parser//parser_nodes.nit:493,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+}
+void parser_nodes___ABraMethid___n_cbra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraMethid::n_cbra= (src/parser//parser_nodes.nit:493,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AStarshipMethid___n_starship(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AStarshipMethid::n_starship (src/parser//parser_nodes.nit:497,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+}
+void parser_nodes___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AStarshipMethid::n_starship= (src/parser//parser_nodes.nit:497,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssignMethid___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignMethid::n_id (src/parser//parser_nodes.nit:501,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+}
+void parser_nodes___AAssignMethid___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignMethid::n_id= (src/parser//parser_nodes.nit:501,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssignMethid___n_assign(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignMethid::n_assign (src/parser//parser_nodes.nit:502,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+}
+void parser_nodes___AAssignMethid___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignMethid::n_assign= (src/parser//parser_nodes.nit:502,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraassignMethid___n_obra(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_obra (src/parser//parser_nodes.nit:506,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+}
+void parser_nodes___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_obra= (src/parser//parser_nodes.nit:506,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraassignMethid___n_cbra(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_cbra (src/parser//parser_nodes.nit:507,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+}
+void parser_nodes___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_cbra= (src/parser//parser_nodes.nit:507,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraassignMethid___n_assign(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_assign (src/parser//parser_nodes.nit:508,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+}
+void parser_nodes___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraassignMethid::n_assign= (src/parser//parser_nodes.nit:508,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASignature___n_params(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASignature::n_params (src/parser//parser_nodes.nit:512,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+}
+void parser_nodes___ASignature___n_params__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASignature::n_params= (src/parser//parser_nodes.nit:512,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASignature___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASignature::n_type (src/parser//parser_nodes.nit:513,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+}
+void parser_nodes___ASignature___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASignature::n_type= (src/parser//parser_nodes.nit:513,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AParam___n_dotdotdot(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AParam::n_dotdotdot (src/parser//parser_nodes.nit:517,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+}
+void parser_nodes___AParam___n_dotdotdot__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AParam::n_dotdotdot= (src/parser//parser_nodes.nit:517,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AType___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AType::n_id (src/parser//parser_nodes.nit:521,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+}
+void parser_nodes___AType___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AType::n_id= (src/parser//parser_nodes.nit:521,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AType___n_types(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AType::n_types (src/parser//parser_nodes.nit:522,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+}
+void parser_nodes___AType___n_types__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AType::n_types= (src/parser//parser_nodes.nit:522,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABlockExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABlockExpr::n_expr (src/parser//parser_nodes.nit:529,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+}
+void parser_nodes___ABlockExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABlockExpr::n_expr= (src/parser//parser_nodes.nit:529,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVardeclExpr___n_kwvar(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_kwvar (src/parser//parser_nodes.nit:533,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+}
+void parser_nodes___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_kwvar= (src/parser//parser_nodes.nit:533,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVardeclExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_id (src/parser//parser_nodes.nit:534,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+}
+void parser_nodes___AVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_id= (src/parser//parser_nodes.nit:534,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVardeclExpr___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_type (src/parser//parser_nodes.nit:535,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+}
+void parser_nodes___AVardeclExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_type= (src/parser//parser_nodes.nit:535,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVardeclExpr___n_assign(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_assign (src/parser//parser_nodes.nit:536,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+}
+void parser_nodes___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_assign= (src/parser//parser_nodes.nit:536,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVardeclExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_expr (src/parser//parser_nodes.nit:537,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+}
+void parser_nodes___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVardeclExpr::n_expr= (src/parser//parser_nodes.nit:537,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AReturnExpr___n_kwreturn(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AReturnExpr::n_kwreturn (src/parser//parser_nodes.nit:541,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+}
+void parser_nodes___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AReturnExpr::n_kwreturn= (src/parser//parser_nodes.nit:541,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AReturnExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AReturnExpr::n_expr (src/parser//parser_nodes.nit:542,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+}
+void parser_nodes___AReturnExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AReturnExpr::n_expr= (src/parser//parser_nodes.nit:542,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABreakExpr___n_kwbreak(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABreakExpr::n_kwbreak (src/parser//parser_nodes.nit:546,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+}
+void parser_nodes___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABreakExpr::n_kwbreak= (src/parser//parser_nodes.nit:546,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAbortExpr___n_kwabort(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbortExpr::n_kwabort (src/parser//parser_nodes.nit:550,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+}
+void parser_nodes___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAbortExpr::n_kwabort= (src/parser//parser_nodes.nit:550,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AContinueExpr___n_kwcontinue(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AContinueExpr::n_kwcontinue (src/parser//parser_nodes.nit:554,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+}
+void parser_nodes___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AContinueExpr::n_kwcontinue= (src/parser//parser_nodes.nit:554,5--53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ADoExpr___n_kwdo(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoExpr::n_kwdo (src/parser//parser_nodes.nit:558,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+}
+void parser_nodes___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoExpr::n_kwdo= (src/parser//parser_nodes.nit:558,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ADoExpr___n_block(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoExpr::n_block (src/parser//parser_nodes.nit:559,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+}
+void parser_nodes___ADoExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoExpr::n_block= (src/parser//parser_nodes.nit:559,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfExpr___n_kwif(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_kwif (src/parser//parser_nodes.nit:563,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+}
+void parser_nodes___AIfExpr___n_kwif__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_kwif= (src/parser//parser_nodes.nit:563,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_expr (src/parser//parser_nodes.nit:564,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+}
+void parser_nodes___AIfExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_expr= (src/parser//parser_nodes.nit:564,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfExpr___n_then(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_then (src/parser//parser_nodes.nit:565,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+}
+void parser_nodes___AIfExpr___n_then__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_then= (src/parser//parser_nodes.nit:565,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfExpr___n_else(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_else (src/parser//parser_nodes.nit:566,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+}
+void parser_nodes___AIfExpr___n_else__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfExpr::n_else= (src/parser//parser_nodes.nit:566,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_kwif(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwif (src/parser//parser_nodes.nit:570,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+}
+void parser_nodes___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwif= (src/parser//parser_nodes.nit:570,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_expr (src/parser//parser_nodes.nit:571,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+}
+void parser_nodes___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_expr= (src/parser//parser_nodes.nit:571,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_kwthen(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwthen (src/parser//parser_nodes.nit:572,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+}
+void parser_nodes___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwthen= (src/parser//parser_nodes.nit:572,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_then(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_then (src/parser//parser_nodes.nit:573,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+}
+void parser_nodes___AIfexprExpr___n_then__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_then= (src/parser//parser_nodes.nit:573,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_kwelse(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwelse (src/parser//parser_nodes.nit:574,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+}
+void parser_nodes___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_kwelse= (src/parser//parser_nodes.nit:574,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIfexprExpr___n_else(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_else (src/parser//parser_nodes.nit:575,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+}
+void parser_nodes___AIfexprExpr___n_else__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIfexprExpr::n_else= (src/parser//parser_nodes.nit:575,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AWhileExpr___n_kwwhile(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_kwwhile (src/parser//parser_nodes.nit:579,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+}
+void parser_nodes___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_kwwhile= (src/parser//parser_nodes.nit:579,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AWhileExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_expr (src/parser//parser_nodes.nit:580,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+}
+void parser_nodes___AWhileExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_expr= (src/parser//parser_nodes.nit:580,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AWhileExpr___n_kwdo(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_kwdo (src/parser//parser_nodes.nit:581,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+}
+void parser_nodes___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_kwdo= (src/parser//parser_nodes.nit:581,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AWhileExpr___n_block(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_block (src/parser//parser_nodes.nit:582,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+}
+void parser_nodes___AWhileExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AWhileExpr::n_block= (src/parser//parser_nodes.nit:582,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForExpr___n_vardecl(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_vardecl (src/parser//parser_nodes.nit:586,5--44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+}
+void parser_nodes___AForExpr___n_vardecl__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_vardecl= (src/parser//parser_nodes.nit:586,5--44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForExpr___n_kwdo(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_kwdo (src/parser//parser_nodes.nit:587,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+}
+void parser_nodes___AForExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_kwdo= (src/parser//parser_nodes.nit:587,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForExpr___n_block(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_block (src/parser//parser_nodes.nit:588,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+}
+void parser_nodes___AForExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForExpr::n_block= (src/parser//parser_nodes.nit:588,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForVardeclExpr___n_kwfor(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_kwfor (src/parser//parser_nodes.nit:592,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+}
+void parser_nodes___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_kwfor= (src/parser//parser_nodes.nit:592,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForVardeclExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_id (src/parser//parser_nodes.nit:593,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+}
+void parser_nodes___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_id= (src/parser//parser_nodes.nit:593,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AForVardeclExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_expr (src/parser//parser_nodes.nit:594,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+}
+void parser_nodes___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AForVardeclExpr::n_expr= (src/parser//parser_nodes.nit:594,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssertExpr___n_kwassert(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_kwassert (src/parser//parser_nodes.nit:598,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+}
+void parser_nodes___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_kwassert= (src/parser//parser_nodes.nit:598,5--49)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssertExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_id (src/parser//parser_nodes.nit:599,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+}
+void parser_nodes___AAssertExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_id= (src/parser//parser_nodes.nit:599,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssertExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_expr (src/parser//parser_nodes.nit:600,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+}
+void parser_nodes___AAssertExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssertExpr::n_expr= (src/parser//parser_nodes.nit:600,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssignFormExpr___n_assign(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignFormExpr::n_assign (src/parser//parser_nodes.nit:604,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAssignFormExpr::_n_assign*/;
+}
+void parser_nodes___AAssignFormExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignFormExpr::n_assign= (src/parser//parser_nodes.nit:604,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAssignFormExpr::_n_assign*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAssignFormExpr___n_value(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignFormExpr::n_value (src/parser//parser_nodes.nit:605,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAssignFormExpr::_n_value*/;
+}
+void parser_nodes___AAssignFormExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAssignFormExpr::n_value= (src/parser//parser_nodes.nit:605,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAssignFormExpr::_n_value*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AReassignFormExpr___n_assign_op(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AReassignFormExpr::n_assign_op (src/parser//parser_nodes.nit:609,5--50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AReassignFormExpr::_n_assign_op*/;
+}
+void parser_nodes___AReassignFormExpr___n_assign_op__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AReassignFormExpr::n_assign_op= (src/parser//parser_nodes.nit:609,5--50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AReassignFormExpr::_n_assign_op*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AReassignFormExpr___n_value(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AReassignFormExpr::n_value (src/parser//parser_nodes.nit:610,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AReassignFormExpr::_n_value*/;
+}
+void parser_nodes___AReassignFormExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AReassignFormExpr::n_value= (src/parser//parser_nodes.nit:610,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AReassignFormExpr::_n_value*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AOnceExpr___n_kwonce(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AOnceExpr::n_kwonce (src/parser//parser_nodes.nit:614,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+}
+void parser_nodes___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AOnceExpr::n_kwonce= (src/parser//parser_nodes.nit:614,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASendExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASendExpr::n_expr (src/parser//parser_nodes.nit:618,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+}
+void parser_nodes___ASendExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASendExpr::n_expr= (src/parser//parser_nodes.nit:618,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABinopExpr___n_expr2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABinopExpr::n_expr2 (src/parser//parser_nodes.nit:622,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+}
+void parser_nodes___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABinopExpr::n_expr2= (src/parser//parser_nodes.nit:622,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AOrExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AOrExpr::n_expr (src/parser//parser_nodes.nit:629,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+}
+void parser_nodes___AOrExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AOrExpr::n_expr= (src/parser//parser_nodes.nit:629,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AOrExpr___n_expr2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AOrExpr::n_expr2 (src/parser//parser_nodes.nit:630,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+}
+void parser_nodes___AOrExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AOrExpr::n_expr2= (src/parser//parser_nodes.nit:630,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAndExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAndExpr::n_expr (src/parser//parser_nodes.nit:634,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+}
+void parser_nodes___AAndExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAndExpr::n_expr= (src/parser//parser_nodes.nit:634,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAndExpr___n_expr2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAndExpr::n_expr2 (src/parser//parser_nodes.nit:635,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+}
+void parser_nodes___AAndExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAndExpr::n_expr2= (src/parser//parser_nodes.nit:635,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANotExpr___n_kwnot(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANotExpr::n_kwnot (src/parser//parser_nodes.nit:639,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+}
+void parser_nodes___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANotExpr::n_kwnot= (src/parser//parser_nodes.nit:639,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANotExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANotExpr::n_expr (src/parser//parser_nodes.nit:640,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+}
+void parser_nodes___ANotExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANotExpr::n_expr= (src/parser//parser_nodes.nit:640,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AEeExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AEeExpr::n_expr (src/parser//parser_nodes.nit:647,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+}
+void parser_nodes___AEeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AEeExpr::n_expr= (src/parser//parser_nodes.nit:647,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AEeExpr___n_expr2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AEeExpr::n_expr2 (src/parser//parser_nodes.nit:648,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+}
+void parser_nodes___AEeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AEeExpr::n_expr2= (src/parser//parser_nodes.nit:648,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIsaExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIsaExpr::n_expr (src/parser//parser_nodes.nit:667,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+}
+void parser_nodes___AIsaExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIsaExpr::n_expr= (src/parser//parser_nodes.nit:667,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIsaExpr___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIsaExpr::n_type (src/parser//parser_nodes.nit:668,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+}
+void parser_nodes___AIsaExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIsaExpr::n_type= (src/parser//parser_nodes.nit:668,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AUminusExpr___n_minus(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AUminusExpr::n_minus (src/parser//parser_nodes.nit:690,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+}
+void parser_nodes___AUminusExpr___n_minus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AUminusExpr::n_minus= (src/parser//parser_nodes.nit:690,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANewExpr___n_kwnew(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_kwnew (src/parser//parser_nodes.nit:694,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+}
+void parser_nodes___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_kwnew= (src/parser//parser_nodes.nit:694,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANewExpr___n_type(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_type (src/parser//parser_nodes.nit:695,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+}
+void parser_nodes___ANewExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_type= (src/parser//parser_nodes.nit:695,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANewExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_id (src/parser//parser_nodes.nit:696,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+}
+void parser_nodes___ANewExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_id= (src/parser//parser_nodes.nit:696,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANewExpr___n_args(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_args (src/parser//parser_nodes.nit:697,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+}
+void parser_nodes___ANewExpr___n_args__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANewExpr::n_args= (src/parser//parser_nodes.nit:697,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrFormExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrFormExpr::n_expr (src/parser//parser_nodes.nit:701,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrFormExpr::_n_expr*/;
+}
+void parser_nodes___AAttrFormExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrFormExpr::n_expr= (src/parser//parser_nodes.nit:701,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrFormExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AAttrFormExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrFormExpr::n_id (src/parser//parser_nodes.nit:702,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrFormExpr::_n_id*/;
+}
+void parser_nodes___AAttrFormExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AAttrFormExpr::n_id= (src/parser//parser_nodes.nit:702,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrFormExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ACallFormExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ACallFormExpr::n_id (src/parser//parser_nodes.nit:713,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallFormExpr::_n_id*/;
+}
+void parser_nodes___ACallFormExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ACallFormExpr::n_id= (src/parser//parser_nodes.nit:713,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallFormExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ACallFormExpr___n_args(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ACallFormExpr::n_args (src/parser//parser_nodes.nit:714,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallFormExpr::_n_args*/;
+}
+void parser_nodes___ACallFormExpr___n_args__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ACallFormExpr::n_args= (src/parser//parser_nodes.nit:714,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallFormExpr::_n_args*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperExpr___n_qualified(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_qualified (src/parser//parser_nodes.nit:735,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+}
+void parser_nodes___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_qualified= (src/parser//parser_nodes.nit:735,5--51)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperExpr___n_kwsuper(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_kwsuper (src/parser//parser_nodes.nit:736,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+}
+void parser_nodes___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_kwsuper= (src/parser//parser_nodes.nit:736,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperExpr___n_args(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_args (src/parser//parser_nodes.nit:737,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+}
+void parser_nodes___ASuperExpr___n_args__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperExpr::n_args= (src/parser//parser_nodes.nit:737,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AInitExpr___n_kwinit(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AInitExpr::n_kwinit (src/parser//parser_nodes.nit:741,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+}
+void parser_nodes___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AInitExpr::n_kwinit= (src/parser//parser_nodes.nit:741,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AInitExpr___n_args(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AInitExpr::n_args (src/parser//parser_nodes.nit:742,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+}
+void parser_nodes___AInitExpr___n_args__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AInitExpr::n_args= (src/parser//parser_nodes.nit:742,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ABraFormExpr___n_args(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraFormExpr::n_args (src/parser//parser_nodes.nit:746,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraFormExpr::_n_args*/;
+}
+void parser_nodes___ABraFormExpr___n_args__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ABraFormExpr::n_args= (src/parser//parser_nodes.nit:746,5--46)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraFormExpr::_n_args*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AVarFormExpr___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AVarFormExpr::n_id (src/parser//parser_nodes.nit:757,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarFormExpr::_n_id*/;
+}
+void parser_nodes___AVarFormExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AVarFormExpr::n_id= (src/parser//parser_nodes.nit:757,5--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarFormExpr::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ARangeExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ARangeExpr::n_expr (src/parser//parser_nodes.nit:776,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+}
+void parser_nodes___ARangeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ARangeExpr::n_expr= (src/parser//parser_nodes.nit:776,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ARangeExpr___n_expr2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ARangeExpr::n_expr2 (src/parser//parser_nodes.nit:777,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+}
+void parser_nodes___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ARangeExpr::n_expr2= (src/parser//parser_nodes.nit:777,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AArrayExpr___n_exprs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AArrayExpr::n_exprs (src/parser//parser_nodes.nit:787,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+}
+void parser_nodes___AArrayExpr___n_exprs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AArrayExpr::n_exprs= (src/parser//parser_nodes.nit:787,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASelfExpr___n_kwself(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASelfExpr::n_kwself (src/parser//parser_nodes.nit:791,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+}
+void parser_nodes___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASelfExpr::n_kwself= (src/parser//parser_nodes.nit:791,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ATrueExpr___n_kwtrue(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ATrueExpr::n_kwtrue (src/parser//parser_nodes.nit:798,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+}
+void parser_nodes___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ATrueExpr::n_kwtrue= (src/parser//parser_nodes.nit:798,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AFalseExpr___n_kwfalse(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AFalseExpr::n_kwfalse (src/parser//parser_nodes.nit:802,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+}
+void parser_nodes___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AFalseExpr::n_kwfalse= (src/parser//parser_nodes.nit:802,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ANullExpr___n_kwnull(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ANullExpr::n_kwnull (src/parser//parser_nodes.nit:806,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+}
+void parser_nodes___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ANullExpr::n_kwnull= (src/parser//parser_nodes.nit:806,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AIntExpr___n_number(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AIntExpr::n_number (src/parser//parser_nodes.nit:810,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+}
+void parser_nodes___AIntExpr___n_number__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AIntExpr::n_number= (src/parser//parser_nodes.nit:810,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AFloatExpr___n_float(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AFloatExpr::n_float (src/parser//parser_nodes.nit:814,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+}
+void parser_nodes___AFloatExpr___n_float__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AFloatExpr::n_float= (src/parser//parser_nodes.nit:814,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ACharExpr___n_char(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ACharExpr::n_char (src/parser//parser_nodes.nit:818,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+}
+void parser_nodes___ACharExpr___n_char__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ACharExpr::n_char= (src/parser//parser_nodes.nit:818,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AStringExpr___n_string(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AStringExpr::n_string (src/parser//parser_nodes.nit:825,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+}
+void parser_nodes___AStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AStringExpr::n_string= (src/parser//parser_nodes.nit:825,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AStartStringExpr___n_string(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AStartStringExpr::n_string (src/parser//parser_nodes.nit:829,5--50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+}
+void parser_nodes___AStartStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AStartStringExpr::n_string= (src/parser//parser_nodes.nit:829,5--50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMidStringExpr___n_string(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMidStringExpr::n_string (src/parser//parser_nodes.nit:833,5--48)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+}
+void parser_nodes___AMidStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMidStringExpr::n_string= (src/parser//parser_nodes.nit:833,5--48)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AEndStringExpr___n_string(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AEndStringExpr::n_string (src/parser//parser_nodes.nit:837,5--48)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+}
+void parser_nodes___AEndStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AEndStringExpr::n_string= (src/parser//parser_nodes.nit:837,5--48)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ASuperstringExpr___n_exprs(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperstringExpr::n_exprs (src/parser//parser_nodes.nit:841,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+}
+void parser_nodes___ASuperstringExpr___n_exprs__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ASuperstringExpr::n_exprs= (src/parser//parser_nodes.nit:841,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AProxyExpr___n_expr(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AProxyExpr::n_expr (src/parser//parser_nodes.nit:848,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AProxyExpr::_n_expr*/;
+}
+void parser_nodes___AProxyExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AProxyExpr::n_expr= (src/parser//parser_nodes.nit:848,5--41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AProxyExpr::_n_expr*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___APlusAssignOp___n_pluseq(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::APlusAssignOp::n_pluseq (src/parser//parser_nodes.nit:852,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+}
+void parser_nodes___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::APlusAssignOp::n_pluseq= (src/parser//parser_nodes.nit:852,5--45)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AMinusAssignOp___n_minuseq(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AMinusAssignOp::n_minuseq (src/parser//parser_nodes.nit:856,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+}
+void parser_nodes___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AMinusAssignOp::n_minuseq= (src/parser//parser_nodes.nit:856,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AQualified___n_id(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AQualified::n_id (src/parser//parser_nodes.nit:860,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+}
+void parser_nodes___AQualified___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AQualified::n_id= (src/parser//parser_nodes.nit:860,5--42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___AQualified___n_classid(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::AQualified::n_classid (src/parser//parser_nodes.nit:861,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+}
+void parser_nodes___AQualified___n_classid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::AQualified::n_classid= (src/parser//parser_nodes.nit:861,5--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___ADoc___n_comment(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoc::n_comment (src/parser//parser_nodes.nit:865,5--52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+}
+void parser_nodes___ADoc___n_comment__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::ADoc::n_comment= (src/parser//parser_nodes.nit:865,5--52)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___Start___n_base(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::Start::n_base (src/parser//parser_nodes.nit:870,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+}
+void parser_nodes___Start___n_base__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::Start::n_base= (src/parser//parser_nodes.nit:870,5--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_nodes___Start___n_eof(val_t  self) {
+  struct trace_t trace = {NULL, "parser_nodes::Start::n_eof (src/parser//parser_nodes.nit:871,5--38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_nodes___Start____n_eof( self) /*Start::_n_eof*/;
+}
+void parser_nodes___Start___n_eof__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_nodes::Start::n_eof= (src/parser//parser_nodes.nit:871,5--38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_nodes___Start____n_eof( self) /*Start::_n_eof*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/parser_nodes._sep.h b/c_src/parser_nodes._sep.h
new file mode 100644 (file)
index 0000000..e4a250d
--- /dev/null
@@ -0,0 +1,2619 @@
+#ifndef parser_nodes__sep
+#define parser_nodes__sep
+#include "standard._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_PNode[];
+
+extern const classtable_elt_t VFT_Token[];
+
+extern const classtable_elt_t VFT_Prod[];
+
+extern const classtable_elt_t VFT_TEol[];
+
+extern const classtable_elt_t VFT_TComment[];
+
+extern const classtable_elt_t VFT_TKwpackage[];
+
+extern const classtable_elt_t VFT_TKwimport[];
+
+extern const classtable_elt_t VFT_TKwclass[];
+
+extern const classtable_elt_t VFT_TKwabstract[];
+
+extern const classtable_elt_t VFT_TKwinterface[];
+
+extern const classtable_elt_t VFT_TKwuniversal[];
+
+extern const classtable_elt_t VFT_TKwspecial[];
+
+extern const classtable_elt_t VFT_TKwend[];
+
+extern const classtable_elt_t VFT_TKwmeth[];
+
+extern const classtable_elt_t VFT_TKwtype[];
+
+extern const classtable_elt_t VFT_TKwattr[];
+
+extern const classtable_elt_t VFT_TKwinit[];
+
+extern const classtable_elt_t VFT_TKwredef[];
+
+extern const classtable_elt_t VFT_TKwis[];
+
+extern const classtable_elt_t VFT_TKwdo[];
+
+extern const classtable_elt_t VFT_TKwreadable[];
+
+extern const classtable_elt_t VFT_TKwwritable[];
+
+extern const classtable_elt_t VFT_TKwvar[];
+
+extern const classtable_elt_t VFT_TKwintern[];
+
+extern const classtable_elt_t VFT_TKwextern[];
+
+extern const classtable_elt_t VFT_TKwprotected[];
+
+extern const classtable_elt_t VFT_TKwprivate[];
+
+extern const classtable_elt_t VFT_TKwintrude[];
+
+extern const classtable_elt_t VFT_TKwif[];
+
+extern const classtable_elt_t VFT_TKwthen[];
+
+extern const classtable_elt_t VFT_TKwelse[];
+
+extern const classtable_elt_t VFT_TKwwhile[];
+
+extern const classtable_elt_t VFT_TKwfor[];
+
+extern const classtable_elt_t VFT_TKwin[];
+
+extern const classtable_elt_t VFT_TKwand[];
+
+extern const classtable_elt_t VFT_TKwor[];
+
+extern const classtable_elt_t VFT_TKwnot[];
+
+extern const classtable_elt_t VFT_TKwreturn[];
+
+extern const classtable_elt_t VFT_TKwcontinue[];
+
+extern const classtable_elt_t VFT_TKwbreak[];
+
+extern const classtable_elt_t VFT_TKwabort[];
+
+extern const classtable_elt_t VFT_TKwassert[];
+
+extern const classtable_elt_t VFT_TKwnew[];
+
+extern const classtable_elt_t VFT_TKwisa[];
+
+extern const classtable_elt_t VFT_TKwonce[];
+
+extern const classtable_elt_t VFT_TKwsuper[];
+
+extern const classtable_elt_t VFT_TKwself[];
+
+extern const classtable_elt_t VFT_TKwtrue[];
+
+extern const classtable_elt_t VFT_TKwfalse[];
+
+extern const classtable_elt_t VFT_TKwnull[];
+
+extern const classtable_elt_t VFT_TOpar[];
+
+extern const classtable_elt_t VFT_TCpar[];
+
+extern const classtable_elt_t VFT_TObra[];
+
+extern const classtable_elt_t VFT_TCbra[];
+
+extern const classtable_elt_t VFT_TComma[];
+
+extern const classtable_elt_t VFT_TColumn[];
+
+extern const classtable_elt_t VFT_TQuad[];
+
+extern const classtable_elt_t VFT_TAssign[];
+
+extern const classtable_elt_t VFT_TPluseq[];
+
+extern const classtable_elt_t VFT_TMinuseq[];
+
+extern const classtable_elt_t VFT_TDotdotdot[];
+
+extern const classtable_elt_t VFT_TDotdot[];
+
+extern const classtable_elt_t VFT_TDot[];
+
+extern const classtable_elt_t VFT_TPlus[];
+
+extern const classtable_elt_t VFT_TMinus[];
+
+extern const classtable_elt_t VFT_TStar[];
+
+extern const classtable_elt_t VFT_TSlash[];
+
+extern const classtable_elt_t VFT_TPercent[];
+
+extern const classtable_elt_t VFT_TEq[];
+
+extern const classtable_elt_t VFT_TNe[];
+
+extern const classtable_elt_t VFT_TLt[];
+
+extern const classtable_elt_t VFT_TLe[];
+
+extern const classtable_elt_t VFT_TGt[];
+
+extern const classtable_elt_t VFT_TGe[];
+
+extern const classtable_elt_t VFT_TStarship[];
+
+extern const classtable_elt_t VFT_TClassid[];
+
+extern const classtable_elt_t VFT_TId[];
+
+extern const classtable_elt_t VFT_TAttrid[];
+
+extern const classtable_elt_t VFT_TNumber[];
+
+extern const classtable_elt_t VFT_TFloat[];
+
+extern const classtable_elt_t VFT_TChar[];
+
+extern const classtable_elt_t VFT_TString[];
+
+extern const classtable_elt_t VFT_TStartString[];
+
+extern const classtable_elt_t VFT_TMidString[];
+
+extern const classtable_elt_t VFT_TEndString[];
+
+extern const classtable_elt_t VFT_EOF[];
+
+extern const classtable_elt_t VFT_PError[];
+
+extern const classtable_elt_t VFT_PModule[];
+
+extern const classtable_elt_t VFT_PPackagedecl[];
+
+extern const classtable_elt_t VFT_PImport[];
+
+extern const classtable_elt_t VFT_PVisibility[];
+
+extern const classtable_elt_t VFT_PClassdef[];
+
+extern const classtable_elt_t VFT_PClasskind[];
+
+extern const classtable_elt_t VFT_PFormaldef[];
+
+extern const classtable_elt_t VFT_PSuperclass[];
+
+extern const classtable_elt_t VFT_PPropdef[];
+
+extern const classtable_elt_t VFT_PAble[];
+
+extern const classtable_elt_t VFT_PMethid[];
+
+extern const classtable_elt_t VFT_PSignature[];
+
+extern const classtable_elt_t VFT_PParam[];
+
+extern const classtable_elt_t VFT_PType[];
+
+extern const classtable_elt_t VFT_PExpr[];
+
+extern const classtable_elt_t VFT_PAssignOp[];
+
+extern const classtable_elt_t VFT_PQualified[];
+
+extern const classtable_elt_t VFT_PDoc[];
+
+extern const classtable_elt_t VFT_AModule[];
+
+extern const classtable_elt_t VFT_APackagedecl[];
+
+extern const classtable_elt_t VFT_AImport[];
+
+extern const classtable_elt_t VFT_ANoImport[];
+
+extern const classtable_elt_t VFT_APublicVisibility[];
+
+extern const classtable_elt_t VFT_APrivateVisibility[];
+
+extern const classtable_elt_t VFT_AProtectedVisibility[];
+
+extern const classtable_elt_t VFT_AIntrudeVisibility[];
+
+extern const classtable_elt_t VFT_AClassdef[];
+
+extern const classtable_elt_t VFT_ATopClassdef[];
+
+extern const classtable_elt_t VFT_AMainClassdef[];
+
+extern const classtable_elt_t VFT_AConcreteClasskind[];
+
+extern const classtable_elt_t VFT_AAbstractClasskind[];
+
+extern const classtable_elt_t VFT_AInterfaceClasskind[];
+
+extern const classtable_elt_t VFT_AUniversalClasskind[];
+
+extern const classtable_elt_t VFT_AFormaldef[];
+
+extern const classtable_elt_t VFT_ASuperclass[];
+
+extern const classtable_elt_t VFT_AAttrPropdef[];
+
+extern const classtable_elt_t VFT_AMethPropdef[];
+
+extern const classtable_elt_t VFT_ADeferredMethPropdef[];
+
+extern const classtable_elt_t VFT_AInternMethPropdef[];
+
+extern const classtable_elt_t VFT_AExternMethPropdef[];
+
+extern const classtable_elt_t VFT_AConcreteMethPropdef[];
+
+extern const classtable_elt_t VFT_AConcreteInitPropdef[];
+
+extern const classtable_elt_t VFT_AMainMethPropdef[];
+
+extern const classtable_elt_t VFT_ATypePropdef[];
+
+extern const classtable_elt_t VFT_AReadAble[];
+
+extern const classtable_elt_t VFT_AWriteAble[];
+
+extern const classtable_elt_t VFT_AIdMethid[];
+
+extern const classtable_elt_t VFT_APlusMethid[];
+
+extern const classtable_elt_t VFT_AMinusMethid[];
+
+extern const classtable_elt_t VFT_AStarMethid[];
+
+extern const classtable_elt_t VFT_ASlashMethid[];
+
+extern const classtable_elt_t VFT_APercentMethid[];
+
+extern const classtable_elt_t VFT_AEqMethid[];
+
+extern const classtable_elt_t VFT_ANeMethid[];
+
+extern const classtable_elt_t VFT_ALeMethid[];
+
+extern const classtable_elt_t VFT_AGeMethid[];
+
+extern const classtable_elt_t VFT_ALtMethid[];
+
+extern const classtable_elt_t VFT_AGtMethid[];
+
+extern const classtable_elt_t VFT_ABraMethid[];
+
+extern const classtable_elt_t VFT_AStarshipMethid[];
+
+extern const classtable_elt_t VFT_AAssignMethid[];
+
+extern const classtable_elt_t VFT_ABraassignMethid[];
+
+extern const classtable_elt_t VFT_ASignature[];
+
+extern const classtable_elt_t VFT_AParam[];
+
+extern const classtable_elt_t VFT_AType[];
+
+extern const classtable_elt_t VFT_ABlockExpr[];
+
+extern const classtable_elt_t VFT_AVardeclExpr[];
+
+extern const classtable_elt_t VFT_AReturnExpr[];
+
+extern const classtable_elt_t VFT_ABreakExpr[];
+
+extern const classtable_elt_t VFT_AAbortExpr[];
+
+extern const classtable_elt_t VFT_AContinueExpr[];
+
+extern const classtable_elt_t VFT_ADoExpr[];
+
+extern const classtable_elt_t VFT_AIfExpr[];
+
+extern const classtable_elt_t VFT_AIfexprExpr[];
+
+extern const classtable_elt_t VFT_AWhileExpr[];
+
+extern const classtable_elt_t VFT_AForExpr[];
+
+extern const classtable_elt_t VFT_AForVardeclExpr[];
+
+extern const classtable_elt_t VFT_AAssertExpr[];
+
+extern const classtable_elt_t VFT_AAssignFormExpr[];
+
+extern const classtable_elt_t VFT_AReassignFormExpr[];
+
+extern const classtable_elt_t VFT_AOnceExpr[];
+
+extern const classtable_elt_t VFT_ASendExpr[];
+
+extern const classtable_elt_t VFT_ABinopExpr[];
+
+extern const classtable_elt_t VFT_ABoolExpr[];
+
+extern const classtable_elt_t VFT_AOrExpr[];
+
+extern const classtable_elt_t VFT_AAndExpr[];
+
+extern const classtable_elt_t VFT_ANotExpr[];
+
+extern const classtable_elt_t VFT_AEqExpr[];
+
+extern const classtable_elt_t VFT_AEeExpr[];
+
+extern const classtable_elt_t VFT_ANeExpr[];
+
+extern const classtable_elt_t VFT_ALtExpr[];
+
+extern const classtable_elt_t VFT_ALeExpr[];
+
+extern const classtable_elt_t VFT_AGtExpr[];
+
+extern const classtable_elt_t VFT_AGeExpr[];
+
+extern const classtable_elt_t VFT_AIsaExpr[];
+
+extern const classtable_elt_t VFT_APlusExpr[];
+
+extern const classtable_elt_t VFT_AMinusExpr[];
+
+extern const classtable_elt_t VFT_AStarshipExpr[];
+
+extern const classtable_elt_t VFT_AStarExpr[];
+
+extern const classtable_elt_t VFT_ASlashExpr[];
+
+extern const classtable_elt_t VFT_APercentExpr[];
+
+extern const classtable_elt_t VFT_AUminusExpr[];
+
+extern const classtable_elt_t VFT_ANewExpr[];
+
+extern const classtable_elt_t VFT_AAttrFormExpr[];
+
+extern const classtable_elt_t VFT_AAttrExpr[];
+
+extern const classtable_elt_t VFT_AAttrAssignExpr[];
+
+extern const classtable_elt_t VFT_ACallFormExpr[];
+
+extern const classtable_elt_t VFT_AAttrReassignExpr[];
+
+extern const classtable_elt_t VFT_ACallExpr[];
+
+extern const classtable_elt_t VFT_ACallAssignExpr[];
+
+extern const classtable_elt_t VFT_ACallReassignExpr[];
+
+extern const classtable_elt_t VFT_ASuperExpr[];
+
+extern const classtable_elt_t VFT_AInitExpr[];
+
+extern const classtable_elt_t VFT_ABraFormExpr[];
+
+extern const classtable_elt_t VFT_ABraExpr[];
+
+extern const classtable_elt_t VFT_ABraAssignExpr[];
+
+extern const classtable_elt_t VFT_AVarFormExpr[];
+
+extern const classtable_elt_t VFT_ABraReassignExpr[];
+
+extern const classtable_elt_t VFT_AVarExpr[];
+
+extern const classtable_elt_t VFT_AVarAssignExpr[];
+
+extern const classtable_elt_t VFT_AVarReassignExpr[];
+
+extern const classtable_elt_t VFT_ARangeExpr[];
+
+extern const classtable_elt_t VFT_ACrangeExpr[];
+
+extern const classtable_elt_t VFT_AOrangeExpr[];
+
+extern const classtable_elt_t VFT_AArrayExpr[];
+
+extern const classtable_elt_t VFT_ASelfExpr[];
+
+extern const classtable_elt_t VFT_AImplicitSelfExpr[];
+
+extern const classtable_elt_t VFT_ATrueExpr[];
+
+extern const classtable_elt_t VFT_AFalseExpr[];
+
+extern const classtable_elt_t VFT_ANullExpr[];
+
+extern const classtable_elt_t VFT_AIntExpr[];
+
+extern const classtable_elt_t VFT_AFloatExpr[];
+
+extern const classtable_elt_t VFT_ACharExpr[];
+
+extern const classtable_elt_t VFT_AStringFormExpr[];
+
+extern const classtable_elt_t VFT_AStringExpr[];
+
+extern const classtable_elt_t VFT_AStartStringExpr[];
+
+extern const classtable_elt_t VFT_AMidStringExpr[];
+
+extern const classtable_elt_t VFT_AEndStringExpr[];
+
+extern const classtable_elt_t VFT_ASuperstringExpr[];
+
+extern const classtable_elt_t VFT_AParExpr[];
+
+extern const classtable_elt_t VFT_AProxyExpr[];
+
+extern const classtable_elt_t VFT_APlusAssignOp[];
+
+extern const classtable_elt_t VFT_AMinusAssignOp[];
+
+extern const classtable_elt_t VFT_AQualified[];
+
+extern const classtable_elt_t VFT_ADoc[];
+
+extern const classtable_elt_t VFT_Start[];
+extern const int SFT_parser_nodes[];
+#define ID_PNode SFT_parser_nodes[0]
+#define COLOR_PNode SFT_parser_nodes[1]
+#define INIT_TABLE_POS_PNode SFT_parser_nodes[2]
+#define ID_Token SFT_parser_nodes[3]
+#define COLOR_Token SFT_parser_nodes[4]
+#define INIT_TABLE_POS_Token SFT_parser_nodes[5]
+#define ID_Prod SFT_parser_nodes[6]
+#define COLOR_Prod SFT_parser_nodes[7]
+#define INIT_TABLE_POS_Prod SFT_parser_nodes[8]
+#define ID_TEol SFT_parser_nodes[9]
+#define COLOR_TEol SFT_parser_nodes[10]
+#define INIT_TABLE_POS_TEol SFT_parser_nodes[11]
+#define ID_TComment SFT_parser_nodes[12]
+#define COLOR_TComment SFT_parser_nodes[13]
+#define INIT_TABLE_POS_TComment SFT_parser_nodes[14]
+#define ID_TKwpackage SFT_parser_nodes[15]
+#define COLOR_TKwpackage SFT_parser_nodes[16]
+#define INIT_TABLE_POS_TKwpackage SFT_parser_nodes[17]
+#define ID_TKwimport SFT_parser_nodes[18]
+#define COLOR_TKwimport SFT_parser_nodes[19]
+#define INIT_TABLE_POS_TKwimport SFT_parser_nodes[20]
+#define ID_TKwclass SFT_parser_nodes[21]
+#define COLOR_TKwclass SFT_parser_nodes[22]
+#define INIT_TABLE_POS_TKwclass SFT_parser_nodes[23]
+#define ID_TKwabstract SFT_parser_nodes[24]
+#define COLOR_TKwabstract SFT_parser_nodes[25]
+#define INIT_TABLE_POS_TKwabstract SFT_parser_nodes[26]
+#define ID_TKwinterface SFT_parser_nodes[27]
+#define COLOR_TKwinterface SFT_parser_nodes[28]
+#define INIT_TABLE_POS_TKwinterface SFT_parser_nodes[29]
+#define ID_TKwuniversal SFT_parser_nodes[30]
+#define COLOR_TKwuniversal SFT_parser_nodes[31]
+#define INIT_TABLE_POS_TKwuniversal SFT_parser_nodes[32]
+#define ID_TKwspecial SFT_parser_nodes[33]
+#define COLOR_TKwspecial SFT_parser_nodes[34]
+#define INIT_TABLE_POS_TKwspecial SFT_parser_nodes[35]
+#define ID_TKwend SFT_parser_nodes[36]
+#define COLOR_TKwend SFT_parser_nodes[37]
+#define INIT_TABLE_POS_TKwend SFT_parser_nodes[38]
+#define ID_TKwmeth SFT_parser_nodes[39]
+#define COLOR_TKwmeth SFT_parser_nodes[40]
+#define INIT_TABLE_POS_TKwmeth SFT_parser_nodes[41]
+#define ID_TKwtype SFT_parser_nodes[42]
+#define COLOR_TKwtype SFT_parser_nodes[43]
+#define INIT_TABLE_POS_TKwtype SFT_parser_nodes[44]
+#define ID_TKwattr SFT_parser_nodes[45]
+#define COLOR_TKwattr SFT_parser_nodes[46]
+#define INIT_TABLE_POS_TKwattr SFT_parser_nodes[47]
+#define ID_TKwinit SFT_parser_nodes[48]
+#define COLOR_TKwinit SFT_parser_nodes[49]
+#define INIT_TABLE_POS_TKwinit SFT_parser_nodes[50]
+#define ID_TKwredef SFT_parser_nodes[51]
+#define COLOR_TKwredef SFT_parser_nodes[52]
+#define INIT_TABLE_POS_TKwredef SFT_parser_nodes[53]
+#define ID_TKwis SFT_parser_nodes[54]
+#define COLOR_TKwis SFT_parser_nodes[55]
+#define INIT_TABLE_POS_TKwis SFT_parser_nodes[56]
+#define ID_TKwdo SFT_parser_nodes[57]
+#define COLOR_TKwdo SFT_parser_nodes[58]
+#define INIT_TABLE_POS_TKwdo SFT_parser_nodes[59]
+#define ID_TKwreadable SFT_parser_nodes[60]
+#define COLOR_TKwreadable SFT_parser_nodes[61]
+#define INIT_TABLE_POS_TKwreadable SFT_parser_nodes[62]
+#define ID_TKwwritable SFT_parser_nodes[63]
+#define COLOR_TKwwritable SFT_parser_nodes[64]
+#define INIT_TABLE_POS_TKwwritable SFT_parser_nodes[65]
+#define ID_TKwvar SFT_parser_nodes[66]
+#define COLOR_TKwvar SFT_parser_nodes[67]
+#define INIT_TABLE_POS_TKwvar SFT_parser_nodes[68]
+#define ID_TKwintern SFT_parser_nodes[69]
+#define COLOR_TKwintern SFT_parser_nodes[70]
+#define INIT_TABLE_POS_TKwintern SFT_parser_nodes[71]
+#define ID_TKwextern SFT_parser_nodes[72]
+#define COLOR_TKwextern SFT_parser_nodes[73]
+#define INIT_TABLE_POS_TKwextern SFT_parser_nodes[74]
+#define ID_TKwprotected SFT_parser_nodes[75]
+#define COLOR_TKwprotected SFT_parser_nodes[76]
+#define INIT_TABLE_POS_TKwprotected SFT_parser_nodes[77]
+#define ID_TKwprivate SFT_parser_nodes[78]
+#define COLOR_TKwprivate SFT_parser_nodes[79]
+#define INIT_TABLE_POS_TKwprivate SFT_parser_nodes[80]
+#define ID_TKwintrude SFT_parser_nodes[81]
+#define COLOR_TKwintrude SFT_parser_nodes[82]
+#define INIT_TABLE_POS_TKwintrude SFT_parser_nodes[83]
+#define ID_TKwif SFT_parser_nodes[84]
+#define COLOR_TKwif SFT_parser_nodes[85]
+#define INIT_TABLE_POS_TKwif SFT_parser_nodes[86]
+#define ID_TKwthen SFT_parser_nodes[87]
+#define COLOR_TKwthen SFT_parser_nodes[88]
+#define INIT_TABLE_POS_TKwthen SFT_parser_nodes[89]
+#define ID_TKwelse SFT_parser_nodes[90]
+#define COLOR_TKwelse SFT_parser_nodes[91]
+#define INIT_TABLE_POS_TKwelse SFT_parser_nodes[92]
+#define ID_TKwwhile SFT_parser_nodes[93]
+#define COLOR_TKwwhile SFT_parser_nodes[94]
+#define INIT_TABLE_POS_TKwwhile SFT_parser_nodes[95]
+#define ID_TKwfor SFT_parser_nodes[96]
+#define COLOR_TKwfor SFT_parser_nodes[97]
+#define INIT_TABLE_POS_TKwfor SFT_parser_nodes[98]
+#define ID_TKwin SFT_parser_nodes[99]
+#define COLOR_TKwin SFT_parser_nodes[100]
+#define INIT_TABLE_POS_TKwin SFT_parser_nodes[101]
+#define ID_TKwand SFT_parser_nodes[102]
+#define COLOR_TKwand SFT_parser_nodes[103]
+#define INIT_TABLE_POS_TKwand SFT_parser_nodes[104]
+#define ID_TKwor SFT_parser_nodes[105]
+#define COLOR_TKwor SFT_parser_nodes[106]
+#define INIT_TABLE_POS_TKwor SFT_parser_nodes[107]
+#define ID_TKwnot SFT_parser_nodes[108]
+#define COLOR_TKwnot SFT_parser_nodes[109]
+#define INIT_TABLE_POS_TKwnot SFT_parser_nodes[110]
+#define ID_TKwreturn SFT_parser_nodes[111]
+#define COLOR_TKwreturn SFT_parser_nodes[112]
+#define INIT_TABLE_POS_TKwreturn SFT_parser_nodes[113]
+#define ID_TKwcontinue SFT_parser_nodes[114]
+#define COLOR_TKwcontinue SFT_parser_nodes[115]
+#define INIT_TABLE_POS_TKwcontinue SFT_parser_nodes[116]
+#define ID_TKwbreak SFT_parser_nodes[117]
+#define COLOR_TKwbreak SFT_parser_nodes[118]
+#define INIT_TABLE_POS_TKwbreak SFT_parser_nodes[119]
+#define ID_TKwabort SFT_parser_nodes[120]
+#define COLOR_TKwabort SFT_parser_nodes[121]
+#define INIT_TABLE_POS_TKwabort SFT_parser_nodes[122]
+#define ID_TKwassert SFT_parser_nodes[123]
+#define COLOR_TKwassert SFT_parser_nodes[124]
+#define INIT_TABLE_POS_TKwassert SFT_parser_nodes[125]
+#define ID_TKwnew SFT_parser_nodes[126]
+#define COLOR_TKwnew SFT_parser_nodes[127]
+#define INIT_TABLE_POS_TKwnew SFT_parser_nodes[128]
+#define ID_TKwisa SFT_parser_nodes[129]
+#define COLOR_TKwisa SFT_parser_nodes[130]
+#define INIT_TABLE_POS_TKwisa SFT_parser_nodes[131]
+#define ID_TKwonce SFT_parser_nodes[132]
+#define COLOR_TKwonce SFT_parser_nodes[133]
+#define INIT_TABLE_POS_TKwonce SFT_parser_nodes[134]
+#define ID_TKwsuper SFT_parser_nodes[135]
+#define COLOR_TKwsuper SFT_parser_nodes[136]
+#define INIT_TABLE_POS_TKwsuper SFT_parser_nodes[137]
+#define ID_TKwself SFT_parser_nodes[138]
+#define COLOR_TKwself SFT_parser_nodes[139]
+#define INIT_TABLE_POS_TKwself SFT_parser_nodes[140]
+#define ID_TKwtrue SFT_parser_nodes[141]
+#define COLOR_TKwtrue SFT_parser_nodes[142]
+#define INIT_TABLE_POS_TKwtrue SFT_parser_nodes[143]
+#define ID_TKwfalse SFT_parser_nodes[144]
+#define COLOR_TKwfalse SFT_parser_nodes[145]
+#define INIT_TABLE_POS_TKwfalse SFT_parser_nodes[146]
+#define ID_TKwnull SFT_parser_nodes[147]
+#define COLOR_TKwnull SFT_parser_nodes[148]
+#define INIT_TABLE_POS_TKwnull SFT_parser_nodes[149]
+#define ID_TOpar SFT_parser_nodes[150]
+#define COLOR_TOpar SFT_parser_nodes[151]
+#define INIT_TABLE_POS_TOpar SFT_parser_nodes[152]
+#define ID_TCpar SFT_parser_nodes[153]
+#define COLOR_TCpar SFT_parser_nodes[154]
+#define INIT_TABLE_POS_TCpar SFT_parser_nodes[155]
+#define ID_TObra SFT_parser_nodes[156]
+#define COLOR_TObra SFT_parser_nodes[157]
+#define INIT_TABLE_POS_TObra SFT_parser_nodes[158]
+#define ID_TCbra SFT_parser_nodes[159]
+#define COLOR_TCbra SFT_parser_nodes[160]
+#define INIT_TABLE_POS_TCbra SFT_parser_nodes[161]
+#define ID_TComma SFT_parser_nodes[162]
+#define COLOR_TComma SFT_parser_nodes[163]
+#define INIT_TABLE_POS_TComma SFT_parser_nodes[164]
+#define ID_TColumn SFT_parser_nodes[165]
+#define COLOR_TColumn SFT_parser_nodes[166]
+#define INIT_TABLE_POS_TColumn SFT_parser_nodes[167]
+#define ID_TQuad SFT_parser_nodes[168]
+#define COLOR_TQuad SFT_parser_nodes[169]
+#define INIT_TABLE_POS_TQuad SFT_parser_nodes[170]
+#define ID_TAssign SFT_parser_nodes[171]
+#define COLOR_TAssign SFT_parser_nodes[172]
+#define INIT_TABLE_POS_TAssign SFT_parser_nodes[173]
+#define ID_TPluseq SFT_parser_nodes[174]
+#define COLOR_TPluseq SFT_parser_nodes[175]
+#define INIT_TABLE_POS_TPluseq SFT_parser_nodes[176]
+#define ID_TMinuseq SFT_parser_nodes[177]
+#define COLOR_TMinuseq SFT_parser_nodes[178]
+#define INIT_TABLE_POS_TMinuseq SFT_parser_nodes[179]
+#define ID_TDotdotdot SFT_parser_nodes[180]
+#define COLOR_TDotdotdot SFT_parser_nodes[181]
+#define INIT_TABLE_POS_TDotdotdot SFT_parser_nodes[182]
+#define ID_TDotdot SFT_parser_nodes[183]
+#define COLOR_TDotdot SFT_parser_nodes[184]
+#define INIT_TABLE_POS_TDotdot SFT_parser_nodes[185]
+#define ID_TDot SFT_parser_nodes[186]
+#define COLOR_TDot SFT_parser_nodes[187]
+#define INIT_TABLE_POS_TDot SFT_parser_nodes[188]
+#define ID_TPlus SFT_parser_nodes[189]
+#define COLOR_TPlus SFT_parser_nodes[190]
+#define INIT_TABLE_POS_TPlus SFT_parser_nodes[191]
+#define ID_TMinus SFT_parser_nodes[192]
+#define COLOR_TMinus SFT_parser_nodes[193]
+#define INIT_TABLE_POS_TMinus SFT_parser_nodes[194]
+#define ID_TStar SFT_parser_nodes[195]
+#define COLOR_TStar SFT_parser_nodes[196]
+#define INIT_TABLE_POS_TStar SFT_parser_nodes[197]
+#define ID_TSlash SFT_parser_nodes[198]
+#define COLOR_TSlash SFT_parser_nodes[199]
+#define INIT_TABLE_POS_TSlash SFT_parser_nodes[200]
+#define ID_TPercent SFT_parser_nodes[201]
+#define COLOR_TPercent SFT_parser_nodes[202]
+#define INIT_TABLE_POS_TPercent SFT_parser_nodes[203]
+#define ID_TEq SFT_parser_nodes[204]
+#define COLOR_TEq SFT_parser_nodes[205]
+#define INIT_TABLE_POS_TEq SFT_parser_nodes[206]
+#define ID_TNe SFT_parser_nodes[207]
+#define COLOR_TNe SFT_parser_nodes[208]
+#define INIT_TABLE_POS_TNe SFT_parser_nodes[209]
+#define ID_TLt SFT_parser_nodes[210]
+#define COLOR_TLt SFT_parser_nodes[211]
+#define INIT_TABLE_POS_TLt SFT_parser_nodes[212]
+#define ID_TLe SFT_parser_nodes[213]
+#define COLOR_TLe SFT_parser_nodes[214]
+#define INIT_TABLE_POS_TLe SFT_parser_nodes[215]
+#define ID_TGt SFT_parser_nodes[216]
+#define COLOR_TGt SFT_parser_nodes[217]
+#define INIT_TABLE_POS_TGt SFT_parser_nodes[218]
+#define ID_TGe SFT_parser_nodes[219]
+#define COLOR_TGe SFT_parser_nodes[220]
+#define INIT_TABLE_POS_TGe SFT_parser_nodes[221]
+#define ID_TStarship SFT_parser_nodes[222]
+#define COLOR_TStarship SFT_parser_nodes[223]
+#define INIT_TABLE_POS_TStarship SFT_parser_nodes[224]
+#define ID_TClassid SFT_parser_nodes[225]
+#define COLOR_TClassid SFT_parser_nodes[226]
+#define INIT_TABLE_POS_TClassid SFT_parser_nodes[227]
+#define ID_TId SFT_parser_nodes[228]
+#define COLOR_TId SFT_parser_nodes[229]
+#define INIT_TABLE_POS_TId SFT_parser_nodes[230]
+#define ID_TAttrid SFT_parser_nodes[231]
+#define COLOR_TAttrid SFT_parser_nodes[232]
+#define INIT_TABLE_POS_TAttrid SFT_parser_nodes[233]
+#define ID_TNumber SFT_parser_nodes[234]
+#define COLOR_TNumber SFT_parser_nodes[235]
+#define INIT_TABLE_POS_TNumber SFT_parser_nodes[236]
+#define ID_TFloat SFT_parser_nodes[237]
+#define COLOR_TFloat SFT_parser_nodes[238]
+#define INIT_TABLE_POS_TFloat SFT_parser_nodes[239]
+#define ID_TChar SFT_parser_nodes[240]
+#define COLOR_TChar SFT_parser_nodes[241]
+#define INIT_TABLE_POS_TChar SFT_parser_nodes[242]
+#define ID_TString SFT_parser_nodes[243]
+#define COLOR_TString SFT_parser_nodes[244]
+#define INIT_TABLE_POS_TString SFT_parser_nodes[245]
+#define ID_TStartString SFT_parser_nodes[246]
+#define COLOR_TStartString SFT_parser_nodes[247]
+#define INIT_TABLE_POS_TStartString SFT_parser_nodes[248]
+#define ID_TMidString SFT_parser_nodes[249]
+#define COLOR_TMidString SFT_parser_nodes[250]
+#define INIT_TABLE_POS_TMidString SFT_parser_nodes[251]
+#define ID_TEndString SFT_parser_nodes[252]
+#define COLOR_TEndString SFT_parser_nodes[253]
+#define INIT_TABLE_POS_TEndString SFT_parser_nodes[254]
+#define ID_EOF SFT_parser_nodes[255]
+#define COLOR_EOF SFT_parser_nodes[256]
+#define INIT_TABLE_POS_EOF SFT_parser_nodes[257]
+#define ID_PError SFT_parser_nodes[258]
+#define COLOR_PError SFT_parser_nodes[259]
+#define INIT_TABLE_POS_PError SFT_parser_nodes[260]
+#define ID_PModule SFT_parser_nodes[261]
+#define COLOR_PModule SFT_parser_nodes[262]
+#define INIT_TABLE_POS_PModule SFT_parser_nodes[263]
+#define ID_PPackagedecl SFT_parser_nodes[264]
+#define COLOR_PPackagedecl SFT_parser_nodes[265]
+#define INIT_TABLE_POS_PPackagedecl SFT_parser_nodes[266]
+#define ID_PImport SFT_parser_nodes[267]
+#define COLOR_PImport SFT_parser_nodes[268]
+#define INIT_TABLE_POS_PImport SFT_parser_nodes[269]
+#define ID_PVisibility SFT_parser_nodes[270]
+#define COLOR_PVisibility SFT_parser_nodes[271]
+#define INIT_TABLE_POS_PVisibility SFT_parser_nodes[272]
+#define ID_PClassdef SFT_parser_nodes[273]
+#define COLOR_PClassdef SFT_parser_nodes[274]
+#define INIT_TABLE_POS_PClassdef SFT_parser_nodes[275]
+#define ID_PClasskind SFT_parser_nodes[276]
+#define COLOR_PClasskind SFT_parser_nodes[277]
+#define INIT_TABLE_POS_PClasskind SFT_parser_nodes[278]
+#define ID_PFormaldef SFT_parser_nodes[279]
+#define COLOR_PFormaldef SFT_parser_nodes[280]
+#define INIT_TABLE_POS_PFormaldef SFT_parser_nodes[281]
+#define ID_PSuperclass SFT_parser_nodes[282]
+#define COLOR_PSuperclass SFT_parser_nodes[283]
+#define INIT_TABLE_POS_PSuperclass SFT_parser_nodes[284]
+#define ID_PPropdef SFT_parser_nodes[285]
+#define COLOR_PPropdef SFT_parser_nodes[286]
+#define COLOR_parser_nodes___PPropdef____n_doc SFT_parser_nodes[287]
+#define INIT_TABLE_POS_PPropdef SFT_parser_nodes[288]
+#define COLOR_parser_nodes___PPropdef___n_doc SFT_parser_nodes[289]
+#define COLOR_parser_nodes___PPropdef___n_doc__eq SFT_parser_nodes[290]
+#define ID_PAble SFT_parser_nodes[291]
+#define COLOR_PAble SFT_parser_nodes[292]
+#define COLOR_parser_nodes___PAble____n_kwredef SFT_parser_nodes[293]
+#define INIT_TABLE_POS_PAble SFT_parser_nodes[294]
+#define COLOR_parser_nodes___PAble___n_kwredef SFT_parser_nodes[295]
+#define COLOR_parser_nodes___PAble___n_kwredef__eq SFT_parser_nodes[296]
+#define ID_PMethid SFT_parser_nodes[297]
+#define COLOR_PMethid SFT_parser_nodes[298]
+#define INIT_TABLE_POS_PMethid SFT_parser_nodes[299]
+#define ID_PSignature SFT_parser_nodes[300]
+#define COLOR_PSignature SFT_parser_nodes[301]
+#define INIT_TABLE_POS_PSignature SFT_parser_nodes[302]
+#define ID_PParam SFT_parser_nodes[303]
+#define COLOR_PParam SFT_parser_nodes[304]
+#define COLOR_parser_nodes___PParam____n_id SFT_parser_nodes[305]
+#define COLOR_parser_nodes___PParam____n_type SFT_parser_nodes[306]
+#define INIT_TABLE_POS_PParam SFT_parser_nodes[307]
+#define COLOR_parser_nodes___PParam___n_id SFT_parser_nodes[308]
+#define COLOR_parser_nodes___PParam___n_id__eq SFT_parser_nodes[309]
+#define COLOR_parser_nodes___PParam___n_type SFT_parser_nodes[310]
+#define COLOR_parser_nodes___PParam___n_type__eq SFT_parser_nodes[311]
+#define ID_PType SFT_parser_nodes[312]
+#define COLOR_PType SFT_parser_nodes[313]
+#define INIT_TABLE_POS_PType SFT_parser_nodes[314]
+#define ID_PExpr SFT_parser_nodes[315]
+#define COLOR_PExpr SFT_parser_nodes[316]
+#define INIT_TABLE_POS_PExpr SFT_parser_nodes[317]
+#define ID_PAssignOp SFT_parser_nodes[318]
+#define COLOR_PAssignOp SFT_parser_nodes[319]
+#define INIT_TABLE_POS_PAssignOp SFT_parser_nodes[320]
+#define ID_PQualified SFT_parser_nodes[321]
+#define COLOR_PQualified SFT_parser_nodes[322]
+#define INIT_TABLE_POS_PQualified SFT_parser_nodes[323]
+#define ID_PDoc SFT_parser_nodes[324]
+#define COLOR_PDoc SFT_parser_nodes[325]
+#define INIT_TABLE_POS_PDoc SFT_parser_nodes[326]
+#define ID_AModule SFT_parser_nodes[327]
+#define COLOR_AModule SFT_parser_nodes[328]
+#define COLOR_parser_nodes___AModule____n_packagedecl SFT_parser_nodes[329]
+#define COLOR_parser_nodes___AModule____n_imports SFT_parser_nodes[330]
+#define COLOR_parser_nodes___AModule____n_classdefs SFT_parser_nodes[331]
+#define INIT_TABLE_POS_AModule SFT_parser_nodes[332]
+#define COLOR_parser_nodes___AModule___n_packagedecl SFT_parser_nodes[333]
+#define COLOR_parser_nodes___AModule___n_packagedecl__eq SFT_parser_nodes[334]
+#define COLOR_parser_nodes___AModule___n_imports SFT_parser_nodes[335]
+#define COLOR_parser_nodes___AModule___n_imports__eq SFT_parser_nodes[336]
+#define COLOR_parser_nodes___AModule___n_classdefs SFT_parser_nodes[337]
+#define COLOR_parser_nodes___AModule___n_classdefs__eq SFT_parser_nodes[338]
+#define ID_APackagedecl SFT_parser_nodes[339]
+#define COLOR_APackagedecl SFT_parser_nodes[340]
+#define COLOR_parser_nodes___APackagedecl____n_doc SFT_parser_nodes[341]
+#define COLOR_parser_nodes___APackagedecl____n_kwpackage SFT_parser_nodes[342]
+#define COLOR_parser_nodes___APackagedecl____n_id SFT_parser_nodes[343]
+#define INIT_TABLE_POS_APackagedecl SFT_parser_nodes[344]
+#define COLOR_parser_nodes___APackagedecl___n_doc SFT_parser_nodes[345]
+#define COLOR_parser_nodes___APackagedecl___n_doc__eq SFT_parser_nodes[346]
+#define COLOR_parser_nodes___APackagedecl___n_kwpackage SFT_parser_nodes[347]
+#define COLOR_parser_nodes___APackagedecl___n_kwpackage__eq SFT_parser_nodes[348]
+#define COLOR_parser_nodes___APackagedecl___n_id SFT_parser_nodes[349]
+#define COLOR_parser_nodes___APackagedecl___n_id__eq SFT_parser_nodes[350]
+#define ID_AImport SFT_parser_nodes[351]
+#define COLOR_AImport SFT_parser_nodes[352]
+#define COLOR_parser_nodes___AImport____n_visibility SFT_parser_nodes[353]
+#define COLOR_parser_nodes___AImport____n_kwimport SFT_parser_nodes[354]
+#define COLOR_parser_nodes___AImport____n_id SFT_parser_nodes[355]
+#define INIT_TABLE_POS_AImport SFT_parser_nodes[356]
+#define COLOR_parser_nodes___AImport___n_visibility SFT_parser_nodes[357]
+#define COLOR_parser_nodes___AImport___n_visibility__eq SFT_parser_nodes[358]
+#define COLOR_parser_nodes___AImport___n_kwimport SFT_parser_nodes[359]
+#define COLOR_parser_nodes___AImport___n_kwimport__eq SFT_parser_nodes[360]
+#define COLOR_parser_nodes___AImport___n_id SFT_parser_nodes[361]
+#define COLOR_parser_nodes___AImport___n_id__eq SFT_parser_nodes[362]
+#define ID_ANoImport SFT_parser_nodes[363]
+#define COLOR_ANoImport SFT_parser_nodes[364]
+#define COLOR_parser_nodes___ANoImport____n_visibility SFT_parser_nodes[365]
+#define COLOR_parser_nodes___ANoImport____n_kwimport SFT_parser_nodes[366]
+#define COLOR_parser_nodes___ANoImport____n_kwend SFT_parser_nodes[367]
+#define INIT_TABLE_POS_ANoImport SFT_parser_nodes[368]
+#define COLOR_parser_nodes___ANoImport___n_visibility SFT_parser_nodes[369]
+#define COLOR_parser_nodes___ANoImport___n_visibility__eq SFT_parser_nodes[370]
+#define COLOR_parser_nodes___ANoImport___n_kwimport SFT_parser_nodes[371]
+#define COLOR_parser_nodes___ANoImport___n_kwimport__eq SFT_parser_nodes[372]
+#define COLOR_parser_nodes___ANoImport___n_kwend SFT_parser_nodes[373]
+#define COLOR_parser_nodes___ANoImport___n_kwend__eq SFT_parser_nodes[374]
+#define ID_APublicVisibility SFT_parser_nodes[375]
+#define COLOR_APublicVisibility SFT_parser_nodes[376]
+#define INIT_TABLE_POS_APublicVisibility SFT_parser_nodes[377]
+#define ID_APrivateVisibility SFT_parser_nodes[378]
+#define COLOR_APrivateVisibility SFT_parser_nodes[379]
+#define COLOR_parser_nodes___APrivateVisibility____n_kwprivate SFT_parser_nodes[380]
+#define INIT_TABLE_POS_APrivateVisibility SFT_parser_nodes[381]
+#define COLOR_parser_nodes___APrivateVisibility___n_kwprivate SFT_parser_nodes[382]
+#define COLOR_parser_nodes___APrivateVisibility___n_kwprivate__eq SFT_parser_nodes[383]
+#define ID_AProtectedVisibility SFT_parser_nodes[384]
+#define COLOR_AProtectedVisibility SFT_parser_nodes[385]
+#define COLOR_parser_nodes___AProtectedVisibility____n_kwprotected SFT_parser_nodes[386]
+#define INIT_TABLE_POS_AProtectedVisibility SFT_parser_nodes[387]
+#define COLOR_parser_nodes___AProtectedVisibility___n_kwprotected SFT_parser_nodes[388]
+#define COLOR_parser_nodes___AProtectedVisibility___n_kwprotected__eq SFT_parser_nodes[389]
+#define ID_AIntrudeVisibility SFT_parser_nodes[390]
+#define COLOR_AIntrudeVisibility SFT_parser_nodes[391]
+#define COLOR_parser_nodes___AIntrudeVisibility____n_kwintrude SFT_parser_nodes[392]
+#define INIT_TABLE_POS_AIntrudeVisibility SFT_parser_nodes[393]
+#define COLOR_parser_nodes___AIntrudeVisibility___n_kwintrude SFT_parser_nodes[394]
+#define COLOR_parser_nodes___AIntrudeVisibility___n_kwintrude__eq SFT_parser_nodes[395]
+#define ID_AClassdef SFT_parser_nodes[396]
+#define COLOR_AClassdef SFT_parser_nodes[397]
+#define COLOR_parser_nodes___AClassdef____n_doc SFT_parser_nodes[398]
+#define COLOR_parser_nodes___AClassdef____n_kwredef SFT_parser_nodes[399]
+#define COLOR_parser_nodes___AClassdef____n_visibility SFT_parser_nodes[400]
+#define COLOR_parser_nodes___AClassdef____n_classkind SFT_parser_nodes[401]
+#define COLOR_parser_nodes___AClassdef____n_id SFT_parser_nodes[402]
+#define COLOR_parser_nodes___AClassdef____n_formaldefs SFT_parser_nodes[403]
+#define COLOR_parser_nodes___AClassdef____n_superclasses SFT_parser_nodes[404]
+#define COLOR_parser_nodes___AClassdef____n_propdefs SFT_parser_nodes[405]
+#define INIT_TABLE_POS_AClassdef SFT_parser_nodes[406]
+#define COLOR_parser_nodes___AClassdef___n_doc SFT_parser_nodes[407]
+#define COLOR_parser_nodes___AClassdef___n_doc__eq SFT_parser_nodes[408]
+#define COLOR_parser_nodes___AClassdef___n_kwredef SFT_parser_nodes[409]
+#define COLOR_parser_nodes___AClassdef___n_kwredef__eq SFT_parser_nodes[410]
+#define COLOR_parser_nodes___AClassdef___n_visibility SFT_parser_nodes[411]
+#define COLOR_parser_nodes___AClassdef___n_visibility__eq SFT_parser_nodes[412]
+#define COLOR_parser_nodes___AClassdef___n_classkind SFT_parser_nodes[413]
+#define COLOR_parser_nodes___AClassdef___n_classkind__eq SFT_parser_nodes[414]
+#define COLOR_parser_nodes___AClassdef___n_id SFT_parser_nodes[415]
+#define COLOR_parser_nodes___AClassdef___n_id__eq SFT_parser_nodes[416]
+#define COLOR_parser_nodes___AClassdef___n_formaldefs SFT_parser_nodes[417]
+#define COLOR_parser_nodes___AClassdef___n_formaldefs__eq SFT_parser_nodes[418]
+#define COLOR_parser_nodes___AClassdef___n_superclasses SFT_parser_nodes[419]
+#define COLOR_parser_nodes___AClassdef___n_superclasses__eq SFT_parser_nodes[420]
+#define COLOR_parser_nodes___AClassdef___n_propdefs SFT_parser_nodes[421]
+#define COLOR_parser_nodes___AClassdef___n_propdefs__eq SFT_parser_nodes[422]
+#define ID_ATopClassdef SFT_parser_nodes[423]
+#define COLOR_ATopClassdef SFT_parser_nodes[424]
+#define COLOR_parser_nodes___ATopClassdef____n_propdefs SFT_parser_nodes[425]
+#define INIT_TABLE_POS_ATopClassdef SFT_parser_nodes[426]
+#define COLOR_parser_nodes___ATopClassdef___n_propdefs SFT_parser_nodes[427]
+#define COLOR_parser_nodes___ATopClassdef___n_propdefs__eq SFT_parser_nodes[428]
+#define ID_AMainClassdef SFT_parser_nodes[429]
+#define COLOR_AMainClassdef SFT_parser_nodes[430]
+#define COLOR_parser_nodes___AMainClassdef____n_propdefs SFT_parser_nodes[431]
+#define INIT_TABLE_POS_AMainClassdef SFT_parser_nodes[432]
+#define COLOR_parser_nodes___AMainClassdef___n_propdefs SFT_parser_nodes[433]
+#define COLOR_parser_nodes___AMainClassdef___n_propdefs__eq SFT_parser_nodes[434]
+#define ID_AConcreteClasskind SFT_parser_nodes[435]
+#define COLOR_AConcreteClasskind SFT_parser_nodes[436]
+#define COLOR_parser_nodes___AConcreteClasskind____n_kwclass SFT_parser_nodes[437]
+#define INIT_TABLE_POS_AConcreteClasskind SFT_parser_nodes[438]
+#define COLOR_parser_nodes___AConcreteClasskind___n_kwclass SFT_parser_nodes[439]
+#define COLOR_parser_nodes___AConcreteClasskind___n_kwclass__eq SFT_parser_nodes[440]
+#define ID_AAbstractClasskind SFT_parser_nodes[441]
+#define COLOR_AAbstractClasskind SFT_parser_nodes[442]
+#define COLOR_parser_nodes___AAbstractClasskind____n_kwabstract SFT_parser_nodes[443]
+#define COLOR_parser_nodes___AAbstractClasskind____n_kwclass SFT_parser_nodes[444]
+#define INIT_TABLE_POS_AAbstractClasskind SFT_parser_nodes[445]
+#define COLOR_parser_nodes___AAbstractClasskind___n_kwabstract SFT_parser_nodes[446]
+#define COLOR_parser_nodes___AAbstractClasskind___n_kwabstract__eq SFT_parser_nodes[447]
+#define COLOR_parser_nodes___AAbstractClasskind___n_kwclass SFT_parser_nodes[448]
+#define COLOR_parser_nodes___AAbstractClasskind___n_kwclass__eq SFT_parser_nodes[449]
+#define ID_AInterfaceClasskind SFT_parser_nodes[450]
+#define COLOR_AInterfaceClasskind SFT_parser_nodes[451]
+#define COLOR_parser_nodes___AInterfaceClasskind____n_kwinterface SFT_parser_nodes[452]
+#define INIT_TABLE_POS_AInterfaceClasskind SFT_parser_nodes[453]
+#define COLOR_parser_nodes___AInterfaceClasskind___n_kwinterface SFT_parser_nodes[454]
+#define COLOR_parser_nodes___AInterfaceClasskind___n_kwinterface__eq SFT_parser_nodes[455]
+#define ID_AUniversalClasskind SFT_parser_nodes[456]
+#define COLOR_AUniversalClasskind SFT_parser_nodes[457]
+#define COLOR_parser_nodes___AUniversalClasskind____n_kwuniversal SFT_parser_nodes[458]
+#define INIT_TABLE_POS_AUniversalClasskind SFT_parser_nodes[459]
+#define COLOR_parser_nodes___AUniversalClasskind___n_kwuniversal SFT_parser_nodes[460]
+#define COLOR_parser_nodes___AUniversalClasskind___n_kwuniversal__eq SFT_parser_nodes[461]
+#define ID_AFormaldef SFT_parser_nodes[462]
+#define COLOR_AFormaldef SFT_parser_nodes[463]
+#define COLOR_parser_nodes___AFormaldef____n_id SFT_parser_nodes[464]
+#define COLOR_parser_nodes___AFormaldef____n_type SFT_parser_nodes[465]
+#define INIT_TABLE_POS_AFormaldef SFT_parser_nodes[466]
+#define COLOR_parser_nodes___AFormaldef___n_id SFT_parser_nodes[467]
+#define COLOR_parser_nodes___AFormaldef___n_id__eq SFT_parser_nodes[468]
+#define COLOR_parser_nodes___AFormaldef___n_type SFT_parser_nodes[469]
+#define COLOR_parser_nodes___AFormaldef___n_type__eq SFT_parser_nodes[470]
+#define ID_ASuperclass SFT_parser_nodes[471]
+#define COLOR_ASuperclass SFT_parser_nodes[472]
+#define COLOR_parser_nodes___ASuperclass____n_kwspecial SFT_parser_nodes[473]
+#define COLOR_parser_nodes___ASuperclass____n_type SFT_parser_nodes[474]
+#define INIT_TABLE_POS_ASuperclass SFT_parser_nodes[475]
+#define COLOR_parser_nodes___ASuperclass___n_kwspecial SFT_parser_nodes[476]
+#define COLOR_parser_nodes___ASuperclass___n_kwspecial__eq SFT_parser_nodes[477]
+#define COLOR_parser_nodes___ASuperclass___n_type SFT_parser_nodes[478]
+#define COLOR_parser_nodes___ASuperclass___n_type__eq SFT_parser_nodes[479]
+#define ID_AAttrPropdef SFT_parser_nodes[480]
+#define COLOR_AAttrPropdef SFT_parser_nodes[481]
+#define COLOR_parser_nodes___AAttrPropdef____n_kwredef SFT_parser_nodes[482]
+#define COLOR_parser_nodes___AAttrPropdef____n_visibility SFT_parser_nodes[483]
+#define COLOR_parser_nodes___AAttrPropdef____n_kwattr SFT_parser_nodes[484]
+#define COLOR_parser_nodes___AAttrPropdef____n_id SFT_parser_nodes[485]
+#define COLOR_parser_nodes___AAttrPropdef____n_type SFT_parser_nodes[486]
+#define COLOR_parser_nodes___AAttrPropdef____n_readable SFT_parser_nodes[487]
+#define COLOR_parser_nodes___AAttrPropdef____n_writable SFT_parser_nodes[488]
+#define COLOR_parser_nodes___AAttrPropdef____n_expr SFT_parser_nodes[489]
+#define INIT_TABLE_POS_AAttrPropdef SFT_parser_nodes[490]
+#define COLOR_parser_nodes___AAttrPropdef___n_kwredef SFT_parser_nodes[491]
+#define COLOR_parser_nodes___AAttrPropdef___n_kwredef__eq SFT_parser_nodes[492]
+#define COLOR_parser_nodes___AAttrPropdef___n_visibility SFT_parser_nodes[493]
+#define COLOR_parser_nodes___AAttrPropdef___n_visibility__eq SFT_parser_nodes[494]
+#define COLOR_parser_nodes___AAttrPropdef___n_kwattr SFT_parser_nodes[495]
+#define COLOR_parser_nodes___AAttrPropdef___n_kwattr__eq SFT_parser_nodes[496]
+#define COLOR_parser_nodes___AAttrPropdef___n_id SFT_parser_nodes[497]
+#define COLOR_parser_nodes___AAttrPropdef___n_id__eq SFT_parser_nodes[498]
+#define COLOR_parser_nodes___AAttrPropdef___n_type SFT_parser_nodes[499]
+#define COLOR_parser_nodes___AAttrPropdef___n_type__eq SFT_parser_nodes[500]
+#define COLOR_parser_nodes___AAttrPropdef___n_readable SFT_parser_nodes[501]
+#define COLOR_parser_nodes___AAttrPropdef___n_readable__eq SFT_parser_nodes[502]
+#define COLOR_parser_nodes___AAttrPropdef___n_writable SFT_parser_nodes[503]
+#define COLOR_parser_nodes___AAttrPropdef___n_writable__eq SFT_parser_nodes[504]
+#define COLOR_parser_nodes___AAttrPropdef___n_expr SFT_parser_nodes[505]
+#define COLOR_parser_nodes___AAttrPropdef___n_expr__eq SFT_parser_nodes[506]
+#define ID_AMethPropdef SFT_parser_nodes[507]
+#define COLOR_AMethPropdef SFT_parser_nodes[508]
+#define COLOR_parser_nodes___AMethPropdef____n_kwredef SFT_parser_nodes[509]
+#define COLOR_parser_nodes___AMethPropdef____n_visibility SFT_parser_nodes[510]
+#define COLOR_parser_nodes___AMethPropdef____n_methid SFT_parser_nodes[511]
+#define COLOR_parser_nodes___AMethPropdef____n_signature SFT_parser_nodes[512]
+#define INIT_TABLE_POS_AMethPropdef SFT_parser_nodes[513]
+#define COLOR_parser_nodes___AMethPropdef___n_kwredef SFT_parser_nodes[514]
+#define COLOR_parser_nodes___AMethPropdef___n_kwredef__eq SFT_parser_nodes[515]
+#define COLOR_parser_nodes___AMethPropdef___n_visibility SFT_parser_nodes[516]
+#define COLOR_parser_nodes___AMethPropdef___n_visibility__eq SFT_parser_nodes[517]
+#define COLOR_parser_nodes___AMethPropdef___n_methid SFT_parser_nodes[518]
+#define COLOR_parser_nodes___AMethPropdef___n_methid__eq SFT_parser_nodes[519]
+#define COLOR_parser_nodes___AMethPropdef___n_signature SFT_parser_nodes[520]
+#define COLOR_parser_nodes___AMethPropdef___n_signature__eq SFT_parser_nodes[521]
+#define ID_ADeferredMethPropdef SFT_parser_nodes[522]
+#define COLOR_ADeferredMethPropdef SFT_parser_nodes[523]
+#define COLOR_parser_nodes___ADeferredMethPropdef____n_kwmeth SFT_parser_nodes[524]
+#define INIT_TABLE_POS_ADeferredMethPropdef SFT_parser_nodes[525]
+#define COLOR_parser_nodes___ADeferredMethPropdef___n_kwmeth SFT_parser_nodes[526]
+#define COLOR_parser_nodes___ADeferredMethPropdef___n_kwmeth__eq SFT_parser_nodes[527]
+#define ID_AInternMethPropdef SFT_parser_nodes[528]
+#define COLOR_AInternMethPropdef SFT_parser_nodes[529]
+#define COLOR_parser_nodes___AInternMethPropdef____n_kwmeth SFT_parser_nodes[530]
+#define INIT_TABLE_POS_AInternMethPropdef SFT_parser_nodes[531]
+#define COLOR_parser_nodes___AInternMethPropdef___n_kwmeth SFT_parser_nodes[532]
+#define COLOR_parser_nodes___AInternMethPropdef___n_kwmeth__eq SFT_parser_nodes[533]
+#define ID_AExternMethPropdef SFT_parser_nodes[534]
+#define COLOR_AExternMethPropdef SFT_parser_nodes[535]
+#define COLOR_parser_nodes___AExternMethPropdef____n_kwmeth SFT_parser_nodes[536]
+#define COLOR_parser_nodes___AExternMethPropdef____n_extern SFT_parser_nodes[537]
+#define INIT_TABLE_POS_AExternMethPropdef SFT_parser_nodes[538]
+#define COLOR_parser_nodes___AExternMethPropdef___n_kwmeth SFT_parser_nodes[539]
+#define COLOR_parser_nodes___AExternMethPropdef___n_kwmeth__eq SFT_parser_nodes[540]
+#define COLOR_parser_nodes___AExternMethPropdef___n_extern SFT_parser_nodes[541]
+#define COLOR_parser_nodes___AExternMethPropdef___n_extern__eq SFT_parser_nodes[542]
+#define ID_AConcreteMethPropdef SFT_parser_nodes[543]
+#define COLOR_AConcreteMethPropdef SFT_parser_nodes[544]
+#define COLOR_parser_nodes___AConcreteMethPropdef____n_kwmeth SFT_parser_nodes[545]
+#define COLOR_parser_nodes___AConcreteMethPropdef____n_block SFT_parser_nodes[546]
+#define INIT_TABLE_POS_AConcreteMethPropdef SFT_parser_nodes[547]
+#define COLOR_parser_nodes___AConcreteMethPropdef___n_kwmeth SFT_parser_nodes[548]
+#define COLOR_parser_nodes___AConcreteMethPropdef___n_kwmeth__eq SFT_parser_nodes[549]
+#define COLOR_parser_nodes___AConcreteMethPropdef___n_block SFT_parser_nodes[550]
+#define COLOR_parser_nodes___AConcreteMethPropdef___n_block__eq SFT_parser_nodes[551]
+#define ID_AConcreteInitPropdef SFT_parser_nodes[552]
+#define COLOR_AConcreteInitPropdef SFT_parser_nodes[553]
+#define COLOR_parser_nodes___AConcreteInitPropdef____n_kwinit SFT_parser_nodes[554]
+#define INIT_TABLE_POS_AConcreteInitPropdef SFT_parser_nodes[555]
+#define COLOR_parser_nodes___AConcreteInitPropdef___n_kwinit SFT_parser_nodes[556]
+#define COLOR_parser_nodes___AConcreteInitPropdef___n_kwinit__eq SFT_parser_nodes[557]
+#define ID_AMainMethPropdef SFT_parser_nodes[558]
+#define COLOR_AMainMethPropdef SFT_parser_nodes[559]
+#define INIT_TABLE_POS_AMainMethPropdef SFT_parser_nodes[560]
+#define ID_ATypePropdef SFT_parser_nodes[561]
+#define COLOR_ATypePropdef SFT_parser_nodes[562]
+#define COLOR_parser_nodes___ATypePropdef____n_kwredef SFT_parser_nodes[563]
+#define COLOR_parser_nodes___ATypePropdef____n_visibility SFT_parser_nodes[564]
+#define COLOR_parser_nodes___ATypePropdef____n_kwtype SFT_parser_nodes[565]
+#define COLOR_parser_nodes___ATypePropdef____n_id SFT_parser_nodes[566]
+#define COLOR_parser_nodes___ATypePropdef____n_type SFT_parser_nodes[567]
+#define INIT_TABLE_POS_ATypePropdef SFT_parser_nodes[568]
+#define COLOR_parser_nodes___ATypePropdef___n_kwredef SFT_parser_nodes[569]
+#define COLOR_parser_nodes___ATypePropdef___n_kwredef__eq SFT_parser_nodes[570]
+#define COLOR_parser_nodes___ATypePropdef___n_visibility SFT_parser_nodes[571]
+#define COLOR_parser_nodes___ATypePropdef___n_visibility__eq SFT_parser_nodes[572]
+#define COLOR_parser_nodes___ATypePropdef___n_kwtype SFT_parser_nodes[573]
+#define COLOR_parser_nodes___ATypePropdef___n_kwtype__eq SFT_parser_nodes[574]
+#define COLOR_parser_nodes___ATypePropdef___n_id SFT_parser_nodes[575]
+#define COLOR_parser_nodes___ATypePropdef___n_id__eq SFT_parser_nodes[576]
+#define COLOR_parser_nodes___ATypePropdef___n_type SFT_parser_nodes[577]
+#define COLOR_parser_nodes___ATypePropdef___n_type__eq SFT_parser_nodes[578]
+#define ID_AReadAble SFT_parser_nodes[579]
+#define COLOR_AReadAble SFT_parser_nodes[580]
+#define COLOR_parser_nodes___AReadAble____n_kwreadable SFT_parser_nodes[581]
+#define INIT_TABLE_POS_AReadAble SFT_parser_nodes[582]
+#define COLOR_parser_nodes___AReadAble___n_kwreadable SFT_parser_nodes[583]
+#define COLOR_parser_nodes___AReadAble___n_kwreadable__eq SFT_parser_nodes[584]
+#define ID_AWriteAble SFT_parser_nodes[585]
+#define COLOR_AWriteAble SFT_parser_nodes[586]
+#define COLOR_parser_nodes___AWriteAble____n_kwwritable SFT_parser_nodes[587]
+#define INIT_TABLE_POS_AWriteAble SFT_parser_nodes[588]
+#define COLOR_parser_nodes___AWriteAble___n_kwwritable SFT_parser_nodes[589]
+#define COLOR_parser_nodes___AWriteAble___n_kwwritable__eq SFT_parser_nodes[590]
+#define ID_AIdMethid SFT_parser_nodes[591]
+#define COLOR_AIdMethid SFT_parser_nodes[592]
+#define COLOR_parser_nodes___AIdMethid____n_id SFT_parser_nodes[593]
+#define INIT_TABLE_POS_AIdMethid SFT_parser_nodes[594]
+#define COLOR_parser_nodes___AIdMethid___n_id SFT_parser_nodes[595]
+#define COLOR_parser_nodes___AIdMethid___n_id__eq SFT_parser_nodes[596]
+#define ID_APlusMethid SFT_parser_nodes[597]
+#define COLOR_APlusMethid SFT_parser_nodes[598]
+#define COLOR_parser_nodes___APlusMethid____n_plus SFT_parser_nodes[599]
+#define INIT_TABLE_POS_APlusMethid SFT_parser_nodes[600]
+#define COLOR_parser_nodes___APlusMethid___n_plus SFT_parser_nodes[601]
+#define COLOR_parser_nodes___APlusMethid___n_plus__eq SFT_parser_nodes[602]
+#define ID_AMinusMethid SFT_parser_nodes[603]
+#define COLOR_AMinusMethid SFT_parser_nodes[604]
+#define COLOR_parser_nodes___AMinusMethid____n_minus SFT_parser_nodes[605]
+#define INIT_TABLE_POS_AMinusMethid SFT_parser_nodes[606]
+#define COLOR_parser_nodes___AMinusMethid___n_minus SFT_parser_nodes[607]
+#define COLOR_parser_nodes___AMinusMethid___n_minus__eq SFT_parser_nodes[608]
+#define ID_AStarMethid SFT_parser_nodes[609]
+#define COLOR_AStarMethid SFT_parser_nodes[610]
+#define COLOR_parser_nodes___AStarMethid____n_star SFT_parser_nodes[611]
+#define INIT_TABLE_POS_AStarMethid SFT_parser_nodes[612]
+#define COLOR_parser_nodes___AStarMethid___n_star SFT_parser_nodes[613]
+#define COLOR_parser_nodes___AStarMethid___n_star__eq SFT_parser_nodes[614]
+#define ID_ASlashMethid SFT_parser_nodes[615]
+#define COLOR_ASlashMethid SFT_parser_nodes[616]
+#define COLOR_parser_nodes___ASlashMethid____n_slash SFT_parser_nodes[617]
+#define INIT_TABLE_POS_ASlashMethid SFT_parser_nodes[618]
+#define COLOR_parser_nodes___ASlashMethid___n_slash SFT_parser_nodes[619]
+#define COLOR_parser_nodes___ASlashMethid___n_slash__eq SFT_parser_nodes[620]
+#define ID_APercentMethid SFT_parser_nodes[621]
+#define COLOR_APercentMethid SFT_parser_nodes[622]
+#define COLOR_parser_nodes___APercentMethid____n_percent SFT_parser_nodes[623]
+#define INIT_TABLE_POS_APercentMethid SFT_parser_nodes[624]
+#define COLOR_parser_nodes___APercentMethid___n_percent SFT_parser_nodes[625]
+#define COLOR_parser_nodes___APercentMethid___n_percent__eq SFT_parser_nodes[626]
+#define ID_AEqMethid SFT_parser_nodes[627]
+#define COLOR_AEqMethid SFT_parser_nodes[628]
+#define COLOR_parser_nodes___AEqMethid____n_eq SFT_parser_nodes[629]
+#define INIT_TABLE_POS_AEqMethid SFT_parser_nodes[630]
+#define COLOR_parser_nodes___AEqMethid___n_eq SFT_parser_nodes[631]
+#define COLOR_parser_nodes___AEqMethid___n_eq__eq SFT_parser_nodes[632]
+#define ID_ANeMethid SFT_parser_nodes[633]
+#define COLOR_ANeMethid SFT_parser_nodes[634]
+#define COLOR_parser_nodes___ANeMethid____n_ne SFT_parser_nodes[635]
+#define INIT_TABLE_POS_ANeMethid SFT_parser_nodes[636]
+#define COLOR_parser_nodes___ANeMethid___n_ne SFT_parser_nodes[637]
+#define COLOR_parser_nodes___ANeMethid___n_ne__eq SFT_parser_nodes[638]
+#define ID_ALeMethid SFT_parser_nodes[639]
+#define COLOR_ALeMethid SFT_parser_nodes[640]
+#define COLOR_parser_nodes___ALeMethid____n_le SFT_parser_nodes[641]
+#define INIT_TABLE_POS_ALeMethid SFT_parser_nodes[642]
+#define COLOR_parser_nodes___ALeMethid___n_le SFT_parser_nodes[643]
+#define COLOR_parser_nodes___ALeMethid___n_le__eq SFT_parser_nodes[644]
+#define ID_AGeMethid SFT_parser_nodes[645]
+#define COLOR_AGeMethid SFT_parser_nodes[646]
+#define COLOR_parser_nodes___AGeMethid____n_ge SFT_parser_nodes[647]
+#define INIT_TABLE_POS_AGeMethid SFT_parser_nodes[648]
+#define COLOR_parser_nodes___AGeMethid___n_ge SFT_parser_nodes[649]
+#define COLOR_parser_nodes___AGeMethid___n_ge__eq SFT_parser_nodes[650]
+#define ID_ALtMethid SFT_parser_nodes[651]
+#define COLOR_ALtMethid SFT_parser_nodes[652]
+#define COLOR_parser_nodes___ALtMethid____n_lt SFT_parser_nodes[653]
+#define INIT_TABLE_POS_ALtMethid SFT_parser_nodes[654]
+#define COLOR_parser_nodes___ALtMethid___n_lt SFT_parser_nodes[655]
+#define COLOR_parser_nodes___ALtMethid___n_lt__eq SFT_parser_nodes[656]
+#define ID_AGtMethid SFT_parser_nodes[657]
+#define COLOR_AGtMethid SFT_parser_nodes[658]
+#define COLOR_parser_nodes___AGtMethid____n_gt SFT_parser_nodes[659]
+#define INIT_TABLE_POS_AGtMethid SFT_parser_nodes[660]
+#define COLOR_parser_nodes___AGtMethid___n_gt SFT_parser_nodes[661]
+#define COLOR_parser_nodes___AGtMethid___n_gt__eq SFT_parser_nodes[662]
+#define ID_ABraMethid SFT_parser_nodes[663]
+#define COLOR_ABraMethid SFT_parser_nodes[664]
+#define COLOR_parser_nodes___ABraMethid____n_obra SFT_parser_nodes[665]
+#define COLOR_parser_nodes___ABraMethid____n_cbra SFT_parser_nodes[666]
+#define INIT_TABLE_POS_ABraMethid SFT_parser_nodes[667]
+#define COLOR_parser_nodes___ABraMethid___n_obra SFT_parser_nodes[668]
+#define COLOR_parser_nodes___ABraMethid___n_obra__eq SFT_parser_nodes[669]
+#define COLOR_parser_nodes___ABraMethid___n_cbra SFT_parser_nodes[670]
+#define COLOR_parser_nodes___ABraMethid___n_cbra__eq SFT_parser_nodes[671]
+#define ID_AStarshipMethid SFT_parser_nodes[672]
+#define COLOR_AStarshipMethid SFT_parser_nodes[673]
+#define COLOR_parser_nodes___AStarshipMethid____n_starship SFT_parser_nodes[674]
+#define INIT_TABLE_POS_AStarshipMethid SFT_parser_nodes[675]
+#define COLOR_parser_nodes___AStarshipMethid___n_starship SFT_parser_nodes[676]
+#define COLOR_parser_nodes___AStarshipMethid___n_starship__eq SFT_parser_nodes[677]
+#define ID_AAssignMethid SFT_parser_nodes[678]
+#define COLOR_AAssignMethid SFT_parser_nodes[679]
+#define COLOR_parser_nodes___AAssignMethid____n_id SFT_parser_nodes[680]
+#define COLOR_parser_nodes___AAssignMethid____n_assign SFT_parser_nodes[681]
+#define INIT_TABLE_POS_AAssignMethid SFT_parser_nodes[682]
+#define COLOR_parser_nodes___AAssignMethid___n_id SFT_parser_nodes[683]
+#define COLOR_parser_nodes___AAssignMethid___n_id__eq SFT_parser_nodes[684]
+#define COLOR_parser_nodes___AAssignMethid___n_assign SFT_parser_nodes[685]
+#define COLOR_parser_nodes___AAssignMethid___n_assign__eq SFT_parser_nodes[686]
+#define ID_ABraassignMethid SFT_parser_nodes[687]
+#define COLOR_ABraassignMethid SFT_parser_nodes[688]
+#define COLOR_parser_nodes___ABraassignMethid____n_obra SFT_parser_nodes[689]
+#define COLOR_parser_nodes___ABraassignMethid____n_cbra SFT_parser_nodes[690]
+#define COLOR_parser_nodes___ABraassignMethid____n_assign SFT_parser_nodes[691]
+#define INIT_TABLE_POS_ABraassignMethid SFT_parser_nodes[692]
+#define COLOR_parser_nodes___ABraassignMethid___n_obra SFT_parser_nodes[693]
+#define COLOR_parser_nodes___ABraassignMethid___n_obra__eq SFT_parser_nodes[694]
+#define COLOR_parser_nodes___ABraassignMethid___n_cbra SFT_parser_nodes[695]
+#define COLOR_parser_nodes___ABraassignMethid___n_cbra__eq SFT_parser_nodes[696]
+#define COLOR_parser_nodes___ABraassignMethid___n_assign SFT_parser_nodes[697]
+#define COLOR_parser_nodes___ABraassignMethid___n_assign__eq SFT_parser_nodes[698]
+#define ID_ASignature SFT_parser_nodes[699]
+#define COLOR_ASignature SFT_parser_nodes[700]
+#define COLOR_parser_nodes___ASignature____n_params SFT_parser_nodes[701]
+#define COLOR_parser_nodes___ASignature____n_type SFT_parser_nodes[702]
+#define INIT_TABLE_POS_ASignature SFT_parser_nodes[703]
+#define COLOR_parser_nodes___ASignature___n_params SFT_parser_nodes[704]
+#define COLOR_parser_nodes___ASignature___n_params__eq SFT_parser_nodes[705]
+#define COLOR_parser_nodes___ASignature___n_type SFT_parser_nodes[706]
+#define COLOR_parser_nodes___ASignature___n_type__eq SFT_parser_nodes[707]
+#define ID_AParam SFT_parser_nodes[708]
+#define COLOR_AParam SFT_parser_nodes[709]
+#define COLOR_parser_nodes___AParam____n_dotdotdot SFT_parser_nodes[710]
+#define INIT_TABLE_POS_AParam SFT_parser_nodes[711]
+#define COLOR_parser_nodes___AParam___n_dotdotdot SFT_parser_nodes[712]
+#define COLOR_parser_nodes___AParam___n_dotdotdot__eq SFT_parser_nodes[713]
+#define ID_AType SFT_parser_nodes[714]
+#define COLOR_AType SFT_parser_nodes[715]
+#define COLOR_parser_nodes___AType____n_id SFT_parser_nodes[716]
+#define COLOR_parser_nodes___AType____n_types SFT_parser_nodes[717]
+#define INIT_TABLE_POS_AType SFT_parser_nodes[718]
+#define COLOR_parser_nodes___AType___n_id SFT_parser_nodes[719]
+#define COLOR_parser_nodes___AType___n_id__eq SFT_parser_nodes[720]
+#define COLOR_parser_nodes___AType___n_types SFT_parser_nodes[721]
+#define COLOR_parser_nodes___AType___n_types__eq SFT_parser_nodes[722]
+#define ID_ABlockExpr SFT_parser_nodes[723]
+#define COLOR_ABlockExpr SFT_parser_nodes[724]
+#define COLOR_parser_nodes___ABlockExpr____n_expr SFT_parser_nodes[725]
+#define INIT_TABLE_POS_ABlockExpr SFT_parser_nodes[726]
+#define COLOR_parser_nodes___ABlockExpr___n_expr SFT_parser_nodes[727]
+#define COLOR_parser_nodes___ABlockExpr___n_expr__eq SFT_parser_nodes[728]
+#define ID_AVardeclExpr SFT_parser_nodes[729]
+#define COLOR_AVardeclExpr SFT_parser_nodes[730]
+#define COLOR_parser_nodes___AVardeclExpr____n_kwvar SFT_parser_nodes[731]
+#define COLOR_parser_nodes___AVardeclExpr____n_id SFT_parser_nodes[732]
+#define COLOR_parser_nodes___AVardeclExpr____n_type SFT_parser_nodes[733]
+#define COLOR_parser_nodes___AVardeclExpr____n_assign SFT_parser_nodes[734]
+#define COLOR_parser_nodes___AVardeclExpr____n_expr SFT_parser_nodes[735]
+#define INIT_TABLE_POS_AVardeclExpr SFT_parser_nodes[736]
+#define COLOR_parser_nodes___AVardeclExpr___n_kwvar SFT_parser_nodes[737]
+#define COLOR_parser_nodes___AVardeclExpr___n_kwvar__eq SFT_parser_nodes[738]
+#define COLOR_parser_nodes___AVardeclExpr___n_id SFT_parser_nodes[739]
+#define COLOR_parser_nodes___AVardeclExpr___n_id__eq SFT_parser_nodes[740]
+#define COLOR_parser_nodes___AVardeclExpr___n_type SFT_parser_nodes[741]
+#define COLOR_parser_nodes___AVardeclExpr___n_type__eq SFT_parser_nodes[742]
+#define COLOR_parser_nodes___AVardeclExpr___n_assign SFT_parser_nodes[743]
+#define COLOR_parser_nodes___AVardeclExpr___n_assign__eq SFT_parser_nodes[744]
+#define COLOR_parser_nodes___AVardeclExpr___n_expr SFT_parser_nodes[745]
+#define COLOR_parser_nodes___AVardeclExpr___n_expr__eq SFT_parser_nodes[746]
+#define ID_AReturnExpr SFT_parser_nodes[747]
+#define COLOR_AReturnExpr SFT_parser_nodes[748]
+#define COLOR_parser_nodes___AReturnExpr____n_kwreturn SFT_parser_nodes[749]
+#define COLOR_parser_nodes___AReturnExpr____n_expr SFT_parser_nodes[750]
+#define INIT_TABLE_POS_AReturnExpr SFT_parser_nodes[751]
+#define COLOR_parser_nodes___AReturnExpr___n_kwreturn SFT_parser_nodes[752]
+#define COLOR_parser_nodes___AReturnExpr___n_kwreturn__eq SFT_parser_nodes[753]
+#define COLOR_parser_nodes___AReturnExpr___n_expr SFT_parser_nodes[754]
+#define COLOR_parser_nodes___AReturnExpr___n_expr__eq SFT_parser_nodes[755]
+#define ID_ABreakExpr SFT_parser_nodes[756]
+#define COLOR_ABreakExpr SFT_parser_nodes[757]
+#define COLOR_parser_nodes___ABreakExpr____n_kwbreak SFT_parser_nodes[758]
+#define INIT_TABLE_POS_ABreakExpr SFT_parser_nodes[759]
+#define COLOR_parser_nodes___ABreakExpr___n_kwbreak SFT_parser_nodes[760]
+#define COLOR_parser_nodes___ABreakExpr___n_kwbreak__eq SFT_parser_nodes[761]
+#define ID_AAbortExpr SFT_parser_nodes[762]
+#define COLOR_AAbortExpr SFT_parser_nodes[763]
+#define COLOR_parser_nodes___AAbortExpr____n_kwabort SFT_parser_nodes[764]
+#define INIT_TABLE_POS_AAbortExpr SFT_parser_nodes[765]
+#define COLOR_parser_nodes___AAbortExpr___n_kwabort SFT_parser_nodes[766]
+#define COLOR_parser_nodes___AAbortExpr___n_kwabort__eq SFT_parser_nodes[767]
+#define ID_AContinueExpr SFT_parser_nodes[768]
+#define COLOR_AContinueExpr SFT_parser_nodes[769]
+#define COLOR_parser_nodes___AContinueExpr____n_kwcontinue SFT_parser_nodes[770]
+#define INIT_TABLE_POS_AContinueExpr SFT_parser_nodes[771]
+#define COLOR_parser_nodes___AContinueExpr___n_kwcontinue SFT_parser_nodes[772]
+#define COLOR_parser_nodes___AContinueExpr___n_kwcontinue__eq SFT_parser_nodes[773]
+#define ID_ADoExpr SFT_parser_nodes[774]
+#define COLOR_ADoExpr SFT_parser_nodes[775]
+#define COLOR_parser_nodes___ADoExpr____n_kwdo SFT_parser_nodes[776]
+#define COLOR_parser_nodes___ADoExpr____n_block SFT_parser_nodes[777]
+#define INIT_TABLE_POS_ADoExpr SFT_parser_nodes[778]
+#define COLOR_parser_nodes___ADoExpr___n_kwdo SFT_parser_nodes[779]
+#define COLOR_parser_nodes___ADoExpr___n_kwdo__eq SFT_parser_nodes[780]
+#define COLOR_parser_nodes___ADoExpr___n_block SFT_parser_nodes[781]
+#define COLOR_parser_nodes___ADoExpr___n_block__eq SFT_parser_nodes[782]
+#define ID_AIfExpr SFT_parser_nodes[783]
+#define COLOR_AIfExpr SFT_parser_nodes[784]
+#define COLOR_parser_nodes___AIfExpr____n_kwif SFT_parser_nodes[785]
+#define COLOR_parser_nodes___AIfExpr____n_expr SFT_parser_nodes[786]
+#define COLOR_parser_nodes___AIfExpr____n_then SFT_parser_nodes[787]
+#define COLOR_parser_nodes___AIfExpr____n_else SFT_parser_nodes[788]
+#define INIT_TABLE_POS_AIfExpr SFT_parser_nodes[789]
+#define COLOR_parser_nodes___AIfExpr___n_kwif SFT_parser_nodes[790]
+#define COLOR_parser_nodes___AIfExpr___n_kwif__eq SFT_parser_nodes[791]
+#define COLOR_parser_nodes___AIfExpr___n_expr SFT_parser_nodes[792]
+#define COLOR_parser_nodes___AIfExpr___n_expr__eq SFT_parser_nodes[793]
+#define COLOR_parser_nodes___AIfExpr___n_then SFT_parser_nodes[794]
+#define COLOR_parser_nodes___AIfExpr___n_then__eq SFT_parser_nodes[795]
+#define COLOR_parser_nodes___AIfExpr___n_else SFT_parser_nodes[796]
+#define COLOR_parser_nodes___AIfExpr___n_else__eq SFT_parser_nodes[797]
+#define ID_AIfexprExpr SFT_parser_nodes[798]
+#define COLOR_AIfexprExpr SFT_parser_nodes[799]
+#define COLOR_parser_nodes___AIfexprExpr____n_kwif SFT_parser_nodes[800]
+#define COLOR_parser_nodes___AIfexprExpr____n_expr SFT_parser_nodes[801]
+#define COLOR_parser_nodes___AIfexprExpr____n_kwthen SFT_parser_nodes[802]
+#define COLOR_parser_nodes___AIfexprExpr____n_then SFT_parser_nodes[803]
+#define COLOR_parser_nodes___AIfexprExpr____n_kwelse SFT_parser_nodes[804]
+#define COLOR_parser_nodes___AIfexprExpr____n_else SFT_parser_nodes[805]
+#define INIT_TABLE_POS_AIfexprExpr SFT_parser_nodes[806]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwif SFT_parser_nodes[807]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwif__eq SFT_parser_nodes[808]
+#define COLOR_parser_nodes___AIfexprExpr___n_expr SFT_parser_nodes[809]
+#define COLOR_parser_nodes___AIfexprExpr___n_expr__eq SFT_parser_nodes[810]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwthen SFT_parser_nodes[811]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwthen__eq SFT_parser_nodes[812]
+#define COLOR_parser_nodes___AIfexprExpr___n_then SFT_parser_nodes[813]
+#define COLOR_parser_nodes___AIfexprExpr___n_then__eq SFT_parser_nodes[814]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwelse SFT_parser_nodes[815]
+#define COLOR_parser_nodes___AIfexprExpr___n_kwelse__eq SFT_parser_nodes[816]
+#define COLOR_parser_nodes___AIfexprExpr___n_else SFT_parser_nodes[817]
+#define COLOR_parser_nodes___AIfexprExpr___n_else__eq SFT_parser_nodes[818]
+#define ID_AWhileExpr SFT_parser_nodes[819]
+#define COLOR_AWhileExpr SFT_parser_nodes[820]
+#define COLOR_parser_nodes___AWhileExpr____n_kwwhile SFT_parser_nodes[821]
+#define COLOR_parser_nodes___AWhileExpr____n_expr SFT_parser_nodes[822]
+#define COLOR_parser_nodes___AWhileExpr____n_kwdo SFT_parser_nodes[823]
+#define COLOR_parser_nodes___AWhileExpr____n_block SFT_parser_nodes[824]
+#define INIT_TABLE_POS_AWhileExpr SFT_parser_nodes[825]
+#define COLOR_parser_nodes___AWhileExpr___n_kwwhile SFT_parser_nodes[826]
+#define COLOR_parser_nodes___AWhileExpr___n_kwwhile__eq SFT_parser_nodes[827]
+#define COLOR_parser_nodes___AWhileExpr___n_expr SFT_parser_nodes[828]
+#define COLOR_parser_nodes___AWhileExpr___n_expr__eq SFT_parser_nodes[829]
+#define COLOR_parser_nodes___AWhileExpr___n_kwdo SFT_parser_nodes[830]
+#define COLOR_parser_nodes___AWhileExpr___n_kwdo__eq SFT_parser_nodes[831]
+#define COLOR_parser_nodes___AWhileExpr___n_block SFT_parser_nodes[832]
+#define COLOR_parser_nodes___AWhileExpr___n_block__eq SFT_parser_nodes[833]
+#define ID_AForExpr SFT_parser_nodes[834]
+#define COLOR_AForExpr SFT_parser_nodes[835]
+#define COLOR_parser_nodes___AForExpr____n_vardecl SFT_parser_nodes[836]
+#define COLOR_parser_nodes___AForExpr____n_kwdo SFT_parser_nodes[837]
+#define COLOR_parser_nodes___AForExpr____n_block SFT_parser_nodes[838]
+#define INIT_TABLE_POS_AForExpr SFT_parser_nodes[839]
+#define COLOR_parser_nodes___AForExpr___n_vardecl SFT_parser_nodes[840]
+#define COLOR_parser_nodes___AForExpr___n_vardecl__eq SFT_parser_nodes[841]
+#define COLOR_parser_nodes___AForExpr___n_kwdo SFT_parser_nodes[842]
+#define COLOR_parser_nodes___AForExpr___n_kwdo__eq SFT_parser_nodes[843]
+#define COLOR_parser_nodes___AForExpr___n_block SFT_parser_nodes[844]
+#define COLOR_parser_nodes___AForExpr___n_block__eq SFT_parser_nodes[845]
+#define ID_AForVardeclExpr SFT_parser_nodes[846]
+#define COLOR_AForVardeclExpr SFT_parser_nodes[847]
+#define COLOR_parser_nodes___AForVardeclExpr____n_kwfor SFT_parser_nodes[848]
+#define COLOR_parser_nodes___AForVardeclExpr____n_id SFT_parser_nodes[849]
+#define COLOR_parser_nodes___AForVardeclExpr____n_expr SFT_parser_nodes[850]
+#define INIT_TABLE_POS_AForVardeclExpr SFT_parser_nodes[851]
+#define COLOR_parser_nodes___AForVardeclExpr___n_kwfor SFT_parser_nodes[852]
+#define COLOR_parser_nodes___AForVardeclExpr___n_kwfor__eq SFT_parser_nodes[853]
+#define COLOR_parser_nodes___AForVardeclExpr___n_id SFT_parser_nodes[854]
+#define COLOR_parser_nodes___AForVardeclExpr___n_id__eq SFT_parser_nodes[855]
+#define COLOR_parser_nodes___AForVardeclExpr___n_expr SFT_parser_nodes[856]
+#define COLOR_parser_nodes___AForVardeclExpr___n_expr__eq SFT_parser_nodes[857]
+#define ID_AAssertExpr SFT_parser_nodes[858]
+#define COLOR_AAssertExpr SFT_parser_nodes[859]
+#define COLOR_parser_nodes___AAssertExpr____n_kwassert SFT_parser_nodes[860]
+#define COLOR_parser_nodes___AAssertExpr____n_id SFT_parser_nodes[861]
+#define COLOR_parser_nodes___AAssertExpr____n_expr SFT_parser_nodes[862]
+#define INIT_TABLE_POS_AAssertExpr SFT_parser_nodes[863]
+#define COLOR_parser_nodes___AAssertExpr___n_kwassert SFT_parser_nodes[864]
+#define COLOR_parser_nodes___AAssertExpr___n_kwassert__eq SFT_parser_nodes[865]
+#define COLOR_parser_nodes___AAssertExpr___n_id SFT_parser_nodes[866]
+#define COLOR_parser_nodes___AAssertExpr___n_id__eq SFT_parser_nodes[867]
+#define COLOR_parser_nodes___AAssertExpr___n_expr SFT_parser_nodes[868]
+#define COLOR_parser_nodes___AAssertExpr___n_expr__eq SFT_parser_nodes[869]
+#define ID_AAssignFormExpr SFT_parser_nodes[870]
+#define COLOR_AAssignFormExpr SFT_parser_nodes[871]
+#define COLOR_parser_nodes___AAssignFormExpr____n_assign SFT_parser_nodes[872]
+#define COLOR_parser_nodes___AAssignFormExpr____n_value SFT_parser_nodes[873]
+#define INIT_TABLE_POS_AAssignFormExpr SFT_parser_nodes[874]
+#define COLOR_parser_nodes___AAssignFormExpr___n_assign SFT_parser_nodes[875]
+#define COLOR_parser_nodes___AAssignFormExpr___n_assign__eq SFT_parser_nodes[876]
+#define COLOR_parser_nodes___AAssignFormExpr___n_value SFT_parser_nodes[877]
+#define COLOR_parser_nodes___AAssignFormExpr___n_value__eq SFT_parser_nodes[878]
+#define ID_AReassignFormExpr SFT_parser_nodes[879]
+#define COLOR_AReassignFormExpr SFT_parser_nodes[880]
+#define COLOR_parser_nodes___AReassignFormExpr____n_assign_op SFT_parser_nodes[881]
+#define COLOR_parser_nodes___AReassignFormExpr____n_value SFT_parser_nodes[882]
+#define INIT_TABLE_POS_AReassignFormExpr SFT_parser_nodes[883]
+#define COLOR_parser_nodes___AReassignFormExpr___n_assign_op SFT_parser_nodes[884]
+#define COLOR_parser_nodes___AReassignFormExpr___n_assign_op__eq SFT_parser_nodes[885]
+#define COLOR_parser_nodes___AReassignFormExpr___n_value SFT_parser_nodes[886]
+#define COLOR_parser_nodes___AReassignFormExpr___n_value__eq SFT_parser_nodes[887]
+#define ID_AOnceExpr SFT_parser_nodes[888]
+#define COLOR_AOnceExpr SFT_parser_nodes[889]
+#define COLOR_parser_nodes___AOnceExpr____n_kwonce SFT_parser_nodes[890]
+#define INIT_TABLE_POS_AOnceExpr SFT_parser_nodes[891]
+#define COLOR_parser_nodes___AOnceExpr___n_kwonce SFT_parser_nodes[892]
+#define COLOR_parser_nodes___AOnceExpr___n_kwonce__eq SFT_parser_nodes[893]
+#define ID_ASendExpr SFT_parser_nodes[894]
+#define COLOR_ASendExpr SFT_parser_nodes[895]
+#define COLOR_parser_nodes___ASendExpr____n_expr SFT_parser_nodes[896]
+#define INIT_TABLE_POS_ASendExpr SFT_parser_nodes[897]
+#define COLOR_parser_nodes___ASendExpr___n_expr SFT_parser_nodes[898]
+#define COLOR_parser_nodes___ASendExpr___n_expr__eq SFT_parser_nodes[899]
+#define ID_ABinopExpr SFT_parser_nodes[900]
+#define COLOR_ABinopExpr SFT_parser_nodes[901]
+#define COLOR_parser_nodes___ABinopExpr____n_expr2 SFT_parser_nodes[902]
+#define INIT_TABLE_POS_ABinopExpr SFT_parser_nodes[903]
+#define COLOR_parser_nodes___ABinopExpr___n_expr2 SFT_parser_nodes[904]
+#define COLOR_parser_nodes___ABinopExpr___n_expr2__eq SFT_parser_nodes[905]
+#define ID_ABoolExpr SFT_parser_nodes[906]
+#define COLOR_ABoolExpr SFT_parser_nodes[907]
+#define INIT_TABLE_POS_ABoolExpr SFT_parser_nodes[908]
+#define ID_AOrExpr SFT_parser_nodes[909]
+#define COLOR_AOrExpr SFT_parser_nodes[910]
+#define COLOR_parser_nodes___AOrExpr____n_expr SFT_parser_nodes[911]
+#define COLOR_parser_nodes___AOrExpr____n_expr2 SFT_parser_nodes[912]
+#define INIT_TABLE_POS_AOrExpr SFT_parser_nodes[913]
+#define COLOR_parser_nodes___AOrExpr___n_expr SFT_parser_nodes[914]
+#define COLOR_parser_nodes___AOrExpr___n_expr__eq SFT_parser_nodes[915]
+#define COLOR_parser_nodes___AOrExpr___n_expr2 SFT_parser_nodes[916]
+#define COLOR_parser_nodes___AOrExpr___n_expr2__eq SFT_parser_nodes[917]
+#define ID_AAndExpr SFT_parser_nodes[918]
+#define COLOR_AAndExpr SFT_parser_nodes[919]
+#define COLOR_parser_nodes___AAndExpr____n_expr SFT_parser_nodes[920]
+#define COLOR_parser_nodes___AAndExpr____n_expr2 SFT_parser_nodes[921]
+#define INIT_TABLE_POS_AAndExpr SFT_parser_nodes[922]
+#define COLOR_parser_nodes___AAndExpr___n_expr SFT_parser_nodes[923]
+#define COLOR_parser_nodes___AAndExpr___n_expr__eq SFT_parser_nodes[924]
+#define COLOR_parser_nodes___AAndExpr___n_expr2 SFT_parser_nodes[925]
+#define COLOR_parser_nodes___AAndExpr___n_expr2__eq SFT_parser_nodes[926]
+#define ID_ANotExpr SFT_parser_nodes[927]
+#define COLOR_ANotExpr SFT_parser_nodes[928]
+#define COLOR_parser_nodes___ANotExpr____n_kwnot SFT_parser_nodes[929]
+#define COLOR_parser_nodes___ANotExpr____n_expr SFT_parser_nodes[930]
+#define INIT_TABLE_POS_ANotExpr SFT_parser_nodes[931]
+#define COLOR_parser_nodes___ANotExpr___n_kwnot SFT_parser_nodes[932]
+#define COLOR_parser_nodes___ANotExpr___n_kwnot__eq SFT_parser_nodes[933]
+#define COLOR_parser_nodes___ANotExpr___n_expr SFT_parser_nodes[934]
+#define COLOR_parser_nodes___ANotExpr___n_expr__eq SFT_parser_nodes[935]
+#define ID_AEqExpr SFT_parser_nodes[936]
+#define COLOR_AEqExpr SFT_parser_nodes[937]
+#define INIT_TABLE_POS_AEqExpr SFT_parser_nodes[938]
+#define ID_AEeExpr SFT_parser_nodes[939]
+#define COLOR_AEeExpr SFT_parser_nodes[940]
+#define COLOR_parser_nodes___AEeExpr____n_expr SFT_parser_nodes[941]
+#define COLOR_parser_nodes___AEeExpr____n_expr2 SFT_parser_nodes[942]
+#define INIT_TABLE_POS_AEeExpr SFT_parser_nodes[943]
+#define COLOR_parser_nodes___AEeExpr___n_expr SFT_parser_nodes[944]
+#define COLOR_parser_nodes___AEeExpr___n_expr__eq SFT_parser_nodes[945]
+#define COLOR_parser_nodes___AEeExpr___n_expr2 SFT_parser_nodes[946]
+#define COLOR_parser_nodes___AEeExpr___n_expr2__eq SFT_parser_nodes[947]
+#define ID_ANeExpr SFT_parser_nodes[948]
+#define COLOR_ANeExpr SFT_parser_nodes[949]
+#define INIT_TABLE_POS_ANeExpr SFT_parser_nodes[950]
+#define ID_ALtExpr SFT_parser_nodes[951]
+#define COLOR_ALtExpr SFT_parser_nodes[952]
+#define INIT_TABLE_POS_ALtExpr SFT_parser_nodes[953]
+#define ID_ALeExpr SFT_parser_nodes[954]
+#define COLOR_ALeExpr SFT_parser_nodes[955]
+#define INIT_TABLE_POS_ALeExpr SFT_parser_nodes[956]
+#define ID_AGtExpr SFT_parser_nodes[957]
+#define COLOR_AGtExpr SFT_parser_nodes[958]
+#define INIT_TABLE_POS_AGtExpr SFT_parser_nodes[959]
+#define ID_AGeExpr SFT_parser_nodes[960]
+#define COLOR_AGeExpr SFT_parser_nodes[961]
+#define INIT_TABLE_POS_AGeExpr SFT_parser_nodes[962]
+#define ID_AIsaExpr SFT_parser_nodes[963]
+#define COLOR_AIsaExpr SFT_parser_nodes[964]
+#define COLOR_parser_nodes___AIsaExpr____n_expr SFT_parser_nodes[965]
+#define COLOR_parser_nodes___AIsaExpr____n_type SFT_parser_nodes[966]
+#define INIT_TABLE_POS_AIsaExpr SFT_parser_nodes[967]
+#define COLOR_parser_nodes___AIsaExpr___n_expr SFT_parser_nodes[968]
+#define COLOR_parser_nodes___AIsaExpr___n_expr__eq SFT_parser_nodes[969]
+#define COLOR_parser_nodes___AIsaExpr___n_type SFT_parser_nodes[970]
+#define COLOR_parser_nodes___AIsaExpr___n_type__eq SFT_parser_nodes[971]
+#define ID_APlusExpr SFT_parser_nodes[972]
+#define COLOR_APlusExpr SFT_parser_nodes[973]
+#define INIT_TABLE_POS_APlusExpr SFT_parser_nodes[974]
+#define ID_AMinusExpr SFT_parser_nodes[975]
+#define COLOR_AMinusExpr SFT_parser_nodes[976]
+#define INIT_TABLE_POS_AMinusExpr SFT_parser_nodes[977]
+#define ID_AStarshipExpr SFT_parser_nodes[978]
+#define COLOR_AStarshipExpr SFT_parser_nodes[979]
+#define INIT_TABLE_POS_AStarshipExpr SFT_parser_nodes[980]
+#define ID_AStarExpr SFT_parser_nodes[981]
+#define COLOR_AStarExpr SFT_parser_nodes[982]
+#define INIT_TABLE_POS_AStarExpr SFT_parser_nodes[983]
+#define ID_ASlashExpr SFT_parser_nodes[984]
+#define COLOR_ASlashExpr SFT_parser_nodes[985]
+#define INIT_TABLE_POS_ASlashExpr SFT_parser_nodes[986]
+#define ID_APercentExpr SFT_parser_nodes[987]
+#define COLOR_APercentExpr SFT_parser_nodes[988]
+#define INIT_TABLE_POS_APercentExpr SFT_parser_nodes[989]
+#define ID_AUminusExpr SFT_parser_nodes[990]
+#define COLOR_AUminusExpr SFT_parser_nodes[991]
+#define COLOR_parser_nodes___AUminusExpr____n_minus SFT_parser_nodes[992]
+#define INIT_TABLE_POS_AUminusExpr SFT_parser_nodes[993]
+#define COLOR_parser_nodes___AUminusExpr___n_minus SFT_parser_nodes[994]
+#define COLOR_parser_nodes___AUminusExpr___n_minus__eq SFT_parser_nodes[995]
+#define ID_ANewExpr SFT_parser_nodes[996]
+#define COLOR_ANewExpr SFT_parser_nodes[997]
+#define COLOR_parser_nodes___ANewExpr____n_kwnew SFT_parser_nodes[998]
+#define COLOR_parser_nodes___ANewExpr____n_type SFT_parser_nodes[999]
+#define COLOR_parser_nodes___ANewExpr____n_id SFT_parser_nodes[1000]
+#define COLOR_parser_nodes___ANewExpr____n_args SFT_parser_nodes[1001]
+#define INIT_TABLE_POS_ANewExpr SFT_parser_nodes[1002]
+#define COLOR_parser_nodes___ANewExpr___n_kwnew SFT_parser_nodes[1003]
+#define COLOR_parser_nodes___ANewExpr___n_kwnew__eq SFT_parser_nodes[1004]
+#define COLOR_parser_nodes___ANewExpr___n_type SFT_parser_nodes[1005]
+#define COLOR_parser_nodes___ANewExpr___n_type__eq SFT_parser_nodes[1006]
+#define COLOR_parser_nodes___ANewExpr___n_id SFT_parser_nodes[1007]
+#define COLOR_parser_nodes___ANewExpr___n_id__eq SFT_parser_nodes[1008]
+#define COLOR_parser_nodes___ANewExpr___n_args SFT_parser_nodes[1009]
+#define COLOR_parser_nodes___ANewExpr___n_args__eq SFT_parser_nodes[1010]
+#define ID_AAttrFormExpr SFT_parser_nodes[1011]
+#define COLOR_AAttrFormExpr SFT_parser_nodes[1012]
+#define COLOR_parser_nodes___AAttrFormExpr____n_expr SFT_parser_nodes[1013]
+#define COLOR_parser_nodes___AAttrFormExpr____n_id SFT_parser_nodes[1014]
+#define INIT_TABLE_POS_AAttrFormExpr SFT_parser_nodes[1015]
+#define COLOR_parser_nodes___AAttrFormExpr___n_expr SFT_parser_nodes[1016]
+#define COLOR_parser_nodes___AAttrFormExpr___n_expr__eq SFT_parser_nodes[1017]
+#define COLOR_parser_nodes___AAttrFormExpr___n_id SFT_parser_nodes[1018]
+#define COLOR_parser_nodes___AAttrFormExpr___n_id__eq SFT_parser_nodes[1019]
+#define ID_AAttrExpr SFT_parser_nodes[1020]
+#define COLOR_AAttrExpr SFT_parser_nodes[1021]
+#define INIT_TABLE_POS_AAttrExpr SFT_parser_nodes[1022]
+#define ID_AAttrAssignExpr SFT_parser_nodes[1023]
+#define COLOR_AAttrAssignExpr SFT_parser_nodes[1024]
+#define INIT_TABLE_POS_AAttrAssignExpr SFT_parser_nodes[1025]
+#define ID_ACallFormExpr SFT_parser_nodes[1026]
+#define COLOR_ACallFormExpr SFT_parser_nodes[1027]
+#define COLOR_parser_nodes___ACallFormExpr____n_id SFT_parser_nodes[1028]
+#define COLOR_parser_nodes___ACallFormExpr____n_args SFT_parser_nodes[1029]
+#define INIT_TABLE_POS_ACallFormExpr SFT_parser_nodes[1030]
+#define COLOR_parser_nodes___ACallFormExpr___n_id SFT_parser_nodes[1031]
+#define COLOR_parser_nodes___ACallFormExpr___n_id__eq SFT_parser_nodes[1032]
+#define COLOR_parser_nodes___ACallFormExpr___n_args SFT_parser_nodes[1033]
+#define COLOR_parser_nodes___ACallFormExpr___n_args__eq SFT_parser_nodes[1034]
+#define ID_AAttrReassignExpr SFT_parser_nodes[1035]
+#define COLOR_AAttrReassignExpr SFT_parser_nodes[1036]
+#define INIT_TABLE_POS_AAttrReassignExpr SFT_parser_nodes[1037]
+#define ID_ACallExpr SFT_parser_nodes[1038]
+#define COLOR_ACallExpr SFT_parser_nodes[1039]
+#define INIT_TABLE_POS_ACallExpr SFT_parser_nodes[1040]
+#define ID_ACallAssignExpr SFT_parser_nodes[1041]
+#define COLOR_ACallAssignExpr SFT_parser_nodes[1042]
+#define INIT_TABLE_POS_ACallAssignExpr SFT_parser_nodes[1043]
+#define ID_ACallReassignExpr SFT_parser_nodes[1044]
+#define COLOR_ACallReassignExpr SFT_parser_nodes[1045]
+#define INIT_TABLE_POS_ACallReassignExpr SFT_parser_nodes[1046]
+#define ID_ASuperExpr SFT_parser_nodes[1047]
+#define COLOR_ASuperExpr SFT_parser_nodes[1048]
+#define COLOR_parser_nodes___ASuperExpr____n_qualified SFT_parser_nodes[1049]
+#define COLOR_parser_nodes___ASuperExpr____n_kwsuper SFT_parser_nodes[1050]
+#define COLOR_parser_nodes___ASuperExpr____n_args SFT_parser_nodes[1051]
+#define INIT_TABLE_POS_ASuperExpr SFT_parser_nodes[1052]
+#define COLOR_parser_nodes___ASuperExpr___n_qualified SFT_parser_nodes[1053]
+#define COLOR_parser_nodes___ASuperExpr___n_qualified__eq SFT_parser_nodes[1054]
+#define COLOR_parser_nodes___ASuperExpr___n_kwsuper SFT_parser_nodes[1055]
+#define COLOR_parser_nodes___ASuperExpr___n_kwsuper__eq SFT_parser_nodes[1056]
+#define COLOR_parser_nodes___ASuperExpr___n_args SFT_parser_nodes[1057]
+#define COLOR_parser_nodes___ASuperExpr___n_args__eq SFT_parser_nodes[1058]
+#define ID_AInitExpr SFT_parser_nodes[1059]
+#define COLOR_AInitExpr SFT_parser_nodes[1060]
+#define COLOR_parser_nodes___AInitExpr____n_kwinit SFT_parser_nodes[1061]
+#define COLOR_parser_nodes___AInitExpr____n_args SFT_parser_nodes[1062]
+#define INIT_TABLE_POS_AInitExpr SFT_parser_nodes[1063]
+#define COLOR_parser_nodes___AInitExpr___n_kwinit SFT_parser_nodes[1064]
+#define COLOR_parser_nodes___AInitExpr___n_kwinit__eq SFT_parser_nodes[1065]
+#define COLOR_parser_nodes___AInitExpr___n_args SFT_parser_nodes[1066]
+#define COLOR_parser_nodes___AInitExpr___n_args__eq SFT_parser_nodes[1067]
+#define ID_ABraFormExpr SFT_parser_nodes[1068]
+#define COLOR_ABraFormExpr SFT_parser_nodes[1069]
+#define COLOR_parser_nodes___ABraFormExpr____n_args SFT_parser_nodes[1070]
+#define INIT_TABLE_POS_ABraFormExpr SFT_parser_nodes[1071]
+#define COLOR_parser_nodes___ABraFormExpr___n_args SFT_parser_nodes[1072]
+#define COLOR_parser_nodes___ABraFormExpr___n_args__eq SFT_parser_nodes[1073]
+#define ID_ABraExpr SFT_parser_nodes[1074]
+#define COLOR_ABraExpr SFT_parser_nodes[1075]
+#define INIT_TABLE_POS_ABraExpr SFT_parser_nodes[1076]
+#define ID_ABraAssignExpr SFT_parser_nodes[1077]
+#define COLOR_ABraAssignExpr SFT_parser_nodes[1078]
+#define INIT_TABLE_POS_ABraAssignExpr SFT_parser_nodes[1079]
+#define ID_AVarFormExpr SFT_parser_nodes[1080]
+#define COLOR_AVarFormExpr SFT_parser_nodes[1081]
+#define COLOR_parser_nodes___AVarFormExpr____n_id SFT_parser_nodes[1082]
+#define INIT_TABLE_POS_AVarFormExpr SFT_parser_nodes[1083]
+#define COLOR_parser_nodes___AVarFormExpr___n_id SFT_parser_nodes[1084]
+#define COLOR_parser_nodes___AVarFormExpr___n_id__eq SFT_parser_nodes[1085]
+#define ID_ABraReassignExpr SFT_parser_nodes[1086]
+#define COLOR_ABraReassignExpr SFT_parser_nodes[1087]
+#define INIT_TABLE_POS_ABraReassignExpr SFT_parser_nodes[1088]
+#define ID_AVarExpr SFT_parser_nodes[1089]
+#define COLOR_AVarExpr SFT_parser_nodes[1090]
+#define INIT_TABLE_POS_AVarExpr SFT_parser_nodes[1091]
+#define ID_AVarAssignExpr SFT_parser_nodes[1092]
+#define COLOR_AVarAssignExpr SFT_parser_nodes[1093]
+#define INIT_TABLE_POS_AVarAssignExpr SFT_parser_nodes[1094]
+#define ID_AVarReassignExpr SFT_parser_nodes[1095]
+#define COLOR_AVarReassignExpr SFT_parser_nodes[1096]
+#define INIT_TABLE_POS_AVarReassignExpr SFT_parser_nodes[1097]
+#define ID_ARangeExpr SFT_parser_nodes[1098]
+#define COLOR_ARangeExpr SFT_parser_nodes[1099]
+#define COLOR_parser_nodes___ARangeExpr____n_expr SFT_parser_nodes[1100]
+#define COLOR_parser_nodes___ARangeExpr____n_expr2 SFT_parser_nodes[1101]
+#define INIT_TABLE_POS_ARangeExpr SFT_parser_nodes[1102]
+#define COLOR_parser_nodes___ARangeExpr___n_expr SFT_parser_nodes[1103]
+#define COLOR_parser_nodes___ARangeExpr___n_expr__eq SFT_parser_nodes[1104]
+#define COLOR_parser_nodes___ARangeExpr___n_expr2 SFT_parser_nodes[1105]
+#define COLOR_parser_nodes___ARangeExpr___n_expr2__eq SFT_parser_nodes[1106]
+#define ID_ACrangeExpr SFT_parser_nodes[1107]
+#define COLOR_ACrangeExpr SFT_parser_nodes[1108]
+#define INIT_TABLE_POS_ACrangeExpr SFT_parser_nodes[1109]
+#define ID_AOrangeExpr SFT_parser_nodes[1110]
+#define COLOR_AOrangeExpr SFT_parser_nodes[1111]
+#define INIT_TABLE_POS_AOrangeExpr SFT_parser_nodes[1112]
+#define ID_AArrayExpr SFT_parser_nodes[1113]
+#define COLOR_AArrayExpr SFT_parser_nodes[1114]
+#define COLOR_parser_nodes___AArrayExpr____n_exprs SFT_parser_nodes[1115]
+#define INIT_TABLE_POS_AArrayExpr SFT_parser_nodes[1116]
+#define COLOR_parser_nodes___AArrayExpr___n_exprs SFT_parser_nodes[1117]
+#define COLOR_parser_nodes___AArrayExpr___n_exprs__eq SFT_parser_nodes[1118]
+#define ID_ASelfExpr SFT_parser_nodes[1119]
+#define COLOR_ASelfExpr SFT_parser_nodes[1120]
+#define COLOR_parser_nodes___ASelfExpr____n_kwself SFT_parser_nodes[1121]
+#define INIT_TABLE_POS_ASelfExpr SFT_parser_nodes[1122]
+#define COLOR_parser_nodes___ASelfExpr___n_kwself SFT_parser_nodes[1123]
+#define COLOR_parser_nodes___ASelfExpr___n_kwself__eq SFT_parser_nodes[1124]
+#define ID_AImplicitSelfExpr SFT_parser_nodes[1125]
+#define COLOR_AImplicitSelfExpr SFT_parser_nodes[1126]
+#define INIT_TABLE_POS_AImplicitSelfExpr SFT_parser_nodes[1127]
+#define ID_ATrueExpr SFT_parser_nodes[1128]
+#define COLOR_ATrueExpr SFT_parser_nodes[1129]
+#define COLOR_parser_nodes___ATrueExpr____n_kwtrue SFT_parser_nodes[1130]
+#define INIT_TABLE_POS_ATrueExpr SFT_parser_nodes[1131]
+#define COLOR_parser_nodes___ATrueExpr___n_kwtrue SFT_parser_nodes[1132]
+#define COLOR_parser_nodes___ATrueExpr___n_kwtrue__eq SFT_parser_nodes[1133]
+#define ID_AFalseExpr SFT_parser_nodes[1134]
+#define COLOR_AFalseExpr SFT_parser_nodes[1135]
+#define COLOR_parser_nodes___AFalseExpr____n_kwfalse SFT_parser_nodes[1136]
+#define INIT_TABLE_POS_AFalseExpr SFT_parser_nodes[1137]
+#define COLOR_parser_nodes___AFalseExpr___n_kwfalse SFT_parser_nodes[1138]
+#define COLOR_parser_nodes___AFalseExpr___n_kwfalse__eq SFT_parser_nodes[1139]
+#define ID_ANullExpr SFT_parser_nodes[1140]
+#define COLOR_ANullExpr SFT_parser_nodes[1141]
+#define COLOR_parser_nodes___ANullExpr____n_kwnull SFT_parser_nodes[1142]
+#define INIT_TABLE_POS_ANullExpr SFT_parser_nodes[1143]
+#define COLOR_parser_nodes___ANullExpr___n_kwnull SFT_parser_nodes[1144]
+#define COLOR_parser_nodes___ANullExpr___n_kwnull__eq SFT_parser_nodes[1145]
+#define ID_AIntExpr SFT_parser_nodes[1146]
+#define COLOR_AIntExpr SFT_parser_nodes[1147]
+#define COLOR_parser_nodes___AIntExpr____n_number SFT_parser_nodes[1148]
+#define INIT_TABLE_POS_AIntExpr SFT_parser_nodes[1149]
+#define COLOR_parser_nodes___AIntExpr___n_number SFT_parser_nodes[1150]
+#define COLOR_parser_nodes___AIntExpr___n_number__eq SFT_parser_nodes[1151]
+#define ID_AFloatExpr SFT_parser_nodes[1152]
+#define COLOR_AFloatExpr SFT_parser_nodes[1153]
+#define COLOR_parser_nodes___AFloatExpr____n_float SFT_parser_nodes[1154]
+#define INIT_TABLE_POS_AFloatExpr SFT_parser_nodes[1155]
+#define COLOR_parser_nodes___AFloatExpr___n_float SFT_parser_nodes[1156]
+#define COLOR_parser_nodes___AFloatExpr___n_float__eq SFT_parser_nodes[1157]
+#define ID_ACharExpr SFT_parser_nodes[1158]
+#define COLOR_ACharExpr SFT_parser_nodes[1159]
+#define COLOR_parser_nodes___ACharExpr____n_char SFT_parser_nodes[1160]
+#define INIT_TABLE_POS_ACharExpr SFT_parser_nodes[1161]
+#define COLOR_parser_nodes___ACharExpr___n_char SFT_parser_nodes[1162]
+#define COLOR_parser_nodes___ACharExpr___n_char__eq SFT_parser_nodes[1163]
+#define ID_AStringFormExpr SFT_parser_nodes[1164]
+#define COLOR_AStringFormExpr SFT_parser_nodes[1165]
+#define INIT_TABLE_POS_AStringFormExpr SFT_parser_nodes[1166]
+#define ID_AStringExpr SFT_parser_nodes[1167]
+#define COLOR_AStringExpr SFT_parser_nodes[1168]
+#define COLOR_parser_nodes___AStringExpr____n_string SFT_parser_nodes[1169]
+#define INIT_TABLE_POS_AStringExpr SFT_parser_nodes[1170]
+#define COLOR_parser_nodes___AStringExpr___n_string SFT_parser_nodes[1171]
+#define COLOR_parser_nodes___AStringExpr___n_string__eq SFT_parser_nodes[1172]
+#define ID_AStartStringExpr SFT_parser_nodes[1173]
+#define COLOR_AStartStringExpr SFT_parser_nodes[1174]
+#define COLOR_parser_nodes___AStartStringExpr____n_string SFT_parser_nodes[1175]
+#define INIT_TABLE_POS_AStartStringExpr SFT_parser_nodes[1176]
+#define COLOR_parser_nodes___AStartStringExpr___n_string SFT_parser_nodes[1177]
+#define COLOR_parser_nodes___AStartStringExpr___n_string__eq SFT_parser_nodes[1178]
+#define ID_AMidStringExpr SFT_parser_nodes[1179]
+#define COLOR_AMidStringExpr SFT_parser_nodes[1180]
+#define COLOR_parser_nodes___AMidStringExpr____n_string SFT_parser_nodes[1181]
+#define INIT_TABLE_POS_AMidStringExpr SFT_parser_nodes[1182]
+#define COLOR_parser_nodes___AMidStringExpr___n_string SFT_parser_nodes[1183]
+#define COLOR_parser_nodes___AMidStringExpr___n_string__eq SFT_parser_nodes[1184]
+#define ID_AEndStringExpr SFT_parser_nodes[1185]
+#define COLOR_AEndStringExpr SFT_parser_nodes[1186]
+#define COLOR_parser_nodes___AEndStringExpr____n_string SFT_parser_nodes[1187]
+#define INIT_TABLE_POS_AEndStringExpr SFT_parser_nodes[1188]
+#define COLOR_parser_nodes___AEndStringExpr___n_string SFT_parser_nodes[1189]
+#define COLOR_parser_nodes___AEndStringExpr___n_string__eq SFT_parser_nodes[1190]
+#define ID_ASuperstringExpr SFT_parser_nodes[1191]
+#define COLOR_ASuperstringExpr SFT_parser_nodes[1192]
+#define COLOR_parser_nodes___ASuperstringExpr____n_exprs SFT_parser_nodes[1193]
+#define INIT_TABLE_POS_ASuperstringExpr SFT_parser_nodes[1194]
+#define COLOR_parser_nodes___ASuperstringExpr___n_exprs SFT_parser_nodes[1195]
+#define COLOR_parser_nodes___ASuperstringExpr___n_exprs__eq SFT_parser_nodes[1196]
+#define ID_AParExpr SFT_parser_nodes[1197]
+#define COLOR_AParExpr SFT_parser_nodes[1198]
+#define INIT_TABLE_POS_AParExpr SFT_parser_nodes[1199]
+#define ID_AProxyExpr SFT_parser_nodes[1200]
+#define COLOR_AProxyExpr SFT_parser_nodes[1201]
+#define COLOR_parser_nodes___AProxyExpr____n_expr SFT_parser_nodes[1202]
+#define INIT_TABLE_POS_AProxyExpr SFT_parser_nodes[1203]
+#define COLOR_parser_nodes___AProxyExpr___n_expr SFT_parser_nodes[1204]
+#define COLOR_parser_nodes___AProxyExpr___n_expr__eq SFT_parser_nodes[1205]
+#define ID_APlusAssignOp SFT_parser_nodes[1206]
+#define COLOR_APlusAssignOp SFT_parser_nodes[1207]
+#define COLOR_parser_nodes___APlusAssignOp____n_pluseq SFT_parser_nodes[1208]
+#define INIT_TABLE_POS_APlusAssignOp SFT_parser_nodes[1209]
+#define COLOR_parser_nodes___APlusAssignOp___n_pluseq SFT_parser_nodes[1210]
+#define COLOR_parser_nodes___APlusAssignOp___n_pluseq__eq SFT_parser_nodes[1211]
+#define ID_AMinusAssignOp SFT_parser_nodes[1212]
+#define COLOR_AMinusAssignOp SFT_parser_nodes[1213]
+#define COLOR_parser_nodes___AMinusAssignOp____n_minuseq SFT_parser_nodes[1214]
+#define INIT_TABLE_POS_AMinusAssignOp SFT_parser_nodes[1215]
+#define COLOR_parser_nodes___AMinusAssignOp___n_minuseq SFT_parser_nodes[1216]
+#define COLOR_parser_nodes___AMinusAssignOp___n_minuseq__eq SFT_parser_nodes[1217]
+#define ID_AQualified SFT_parser_nodes[1218]
+#define COLOR_AQualified SFT_parser_nodes[1219]
+#define COLOR_parser_nodes___AQualified____n_id SFT_parser_nodes[1220]
+#define COLOR_parser_nodes___AQualified____n_classid SFT_parser_nodes[1221]
+#define INIT_TABLE_POS_AQualified SFT_parser_nodes[1222]
+#define COLOR_parser_nodes___AQualified___n_id SFT_parser_nodes[1223]
+#define COLOR_parser_nodes___AQualified___n_id__eq SFT_parser_nodes[1224]
+#define COLOR_parser_nodes___AQualified___n_classid SFT_parser_nodes[1225]
+#define COLOR_parser_nodes___AQualified___n_classid__eq SFT_parser_nodes[1226]
+#define ID_ADoc SFT_parser_nodes[1227]
+#define COLOR_ADoc SFT_parser_nodes[1228]
+#define COLOR_parser_nodes___ADoc____n_comment SFT_parser_nodes[1229]
+#define INIT_TABLE_POS_ADoc SFT_parser_nodes[1230]
+#define COLOR_parser_nodes___ADoc___n_comment SFT_parser_nodes[1231]
+#define COLOR_parser_nodes___ADoc___n_comment__eq SFT_parser_nodes[1232]
+#define ID_Start SFT_parser_nodes[1233]
+#define COLOR_Start SFT_parser_nodes[1234]
+#define COLOR_parser_nodes___Start____n_base SFT_parser_nodes[1235]
+#define COLOR_parser_nodes___Start____n_eof SFT_parser_nodes[1236]
+#define INIT_TABLE_POS_Start SFT_parser_nodes[1237]
+#define COLOR_parser_nodes___Start___n_base SFT_parser_nodes[1238]
+#define COLOR_parser_nodes___Start___n_base__eq SFT_parser_nodes[1239]
+#define COLOR_parser_nodes___Start___n_eof SFT_parser_nodes[1240]
+#define COLOR_parser_nodes___Start___n_eof__eq SFT_parser_nodes[1241]
+#define ATTR_parser_nodes___PPropdef____n_doc(recv) ATTR(recv, COLOR_parser_nodes___PPropdef____n_doc)
+typedef val_t (* parser_nodes___PPropdef___n_doc_t)(val_t  self);
+val_t parser_nodes___PPropdef___n_doc(val_t  self);
+typedef void (* parser_nodes___PPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___PPropdef___n_doc__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___PAble____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___PAble____n_kwredef)
+typedef val_t (* parser_nodes___PAble___n_kwredef_t)(val_t  self);
+val_t parser_nodes___PAble___n_kwredef(val_t  self);
+typedef void (* parser_nodes___PAble___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___PAble___n_kwredef__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___PParam____n_id(recv) ATTR(recv, COLOR_parser_nodes___PParam____n_id)
+typedef val_t (* parser_nodes___PParam___n_id_t)(val_t  self);
+val_t parser_nodes___PParam___n_id(val_t  self);
+typedef void (* parser_nodes___PParam___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___PParam___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___PParam____n_type(recv) ATTR(recv, COLOR_parser_nodes___PParam____n_type)
+typedef val_t (* parser_nodes___PParam___n_type_t)(val_t  self);
+val_t parser_nodes___PParam___n_type(val_t  self);
+typedef void (* parser_nodes___PParam___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___PParam___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AModule____n_packagedecl(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_packagedecl)
+typedef val_t (* parser_nodes___AModule___n_packagedecl_t)(val_t  self);
+val_t parser_nodes___AModule___n_packagedecl(val_t  self);
+typedef void (* parser_nodes___AModule___n_packagedecl__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AModule___n_packagedecl__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AModule____n_imports(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_imports)
+typedef val_t (* parser_nodes___AModule___n_imports_t)(val_t  self);
+val_t parser_nodes___AModule___n_imports(val_t  self);
+typedef void (* parser_nodes___AModule___n_imports__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AModule___n_imports__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AModule____n_classdefs(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_classdefs)
+typedef val_t (* parser_nodes___AModule___n_classdefs_t)(val_t  self);
+val_t parser_nodes___AModule___n_classdefs(val_t  self);
+typedef void (* parser_nodes___AModule___n_classdefs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AModule___n_classdefs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APackagedecl____n_doc(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_doc)
+typedef val_t (* parser_nodes___APackagedecl___n_doc_t)(val_t  self);
+val_t parser_nodes___APackagedecl___n_doc(val_t  self);
+typedef void (* parser_nodes___APackagedecl___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APackagedecl___n_doc__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APackagedecl____n_kwpackage(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_kwpackage)
+typedef val_t (* parser_nodes___APackagedecl___n_kwpackage_t)(val_t  self);
+val_t parser_nodes___APackagedecl___n_kwpackage(val_t  self);
+typedef void (* parser_nodes___APackagedecl___n_kwpackage__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APackagedecl____n_id(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_id)
+typedef val_t (* parser_nodes___APackagedecl___n_id_t)(val_t  self);
+val_t parser_nodes___APackagedecl___n_id(val_t  self);
+typedef void (* parser_nodes___APackagedecl___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APackagedecl___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AImport____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_visibility)
+typedef val_t (* parser_nodes___AImport___n_visibility_t)(val_t  self);
+val_t parser_nodes___AImport___n_visibility(val_t  self);
+typedef void (* parser_nodes___AImport___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AImport___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AImport____n_kwimport(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_kwimport)
+typedef val_t (* parser_nodes___AImport___n_kwimport_t)(val_t  self);
+val_t parser_nodes___AImport___n_kwimport(val_t  self);
+typedef void (* parser_nodes___AImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AImport___n_kwimport__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AImport____n_id(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_id)
+typedef val_t (* parser_nodes___AImport___n_id_t)(val_t  self);
+val_t parser_nodes___AImport___n_id(val_t  self);
+typedef void (* parser_nodes___AImport___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AImport___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANoImport____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_visibility)
+typedef val_t (* parser_nodes___ANoImport___n_visibility_t)(val_t  self);
+val_t parser_nodes___ANoImport___n_visibility(val_t  self);
+typedef void (* parser_nodes___ANoImport___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANoImport___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANoImport____n_kwimport(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_kwimport)
+typedef val_t (* parser_nodes___ANoImport___n_kwimport_t)(val_t  self);
+val_t parser_nodes___ANoImport___n_kwimport(val_t  self);
+typedef void (* parser_nodes___ANoImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANoImport___n_kwimport__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANoImport____n_kwend(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_kwend)
+typedef val_t (* parser_nodes___ANoImport___n_kwend_t)(val_t  self);
+val_t parser_nodes___ANoImport___n_kwend(val_t  self);
+typedef void (* parser_nodes___ANoImport___n_kwend__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANoImport___n_kwend__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APrivateVisibility____n_kwprivate(recv) ATTR(recv, COLOR_parser_nodes___APrivateVisibility____n_kwprivate)
+typedef val_t (* parser_nodes___APrivateVisibility___n_kwprivate_t)(val_t  self);
+val_t parser_nodes___APrivateVisibility___n_kwprivate(val_t  self);
+typedef void (* parser_nodes___APrivateVisibility___n_kwprivate__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(recv) ATTR(recv, COLOR_parser_nodes___AProtectedVisibility____n_kwprotected)
+typedef val_t (* parser_nodes___AProtectedVisibility___n_kwprotected_t)(val_t  self);
+val_t parser_nodes___AProtectedVisibility___n_kwprotected(val_t  self);
+typedef void (* parser_nodes___AProtectedVisibility___n_kwprotected__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(recv) ATTR(recv, COLOR_parser_nodes___AIntrudeVisibility____n_kwintrude)
+typedef val_t (* parser_nodes___AIntrudeVisibility___n_kwintrude_t)(val_t  self);
+val_t parser_nodes___AIntrudeVisibility___n_kwintrude(val_t  self);
+typedef void (* parser_nodes___AIntrudeVisibility___n_kwintrude__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_doc(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_doc)
+typedef val_t (* parser_nodes___AClassdef___n_doc_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_doc(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_doc__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_kwredef)
+typedef val_t (* parser_nodes___AClassdef___n_kwredef_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_kwredef(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_kwredef__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_visibility)
+typedef val_t (* parser_nodes___AClassdef___n_visibility_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_visibility(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_classkind(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_classkind)
+typedef val_t (* parser_nodes___AClassdef___n_classkind_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_classkind(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_classkind__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_classkind__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_id)
+typedef val_t (* parser_nodes___AClassdef___n_id_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_id(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_formaldefs(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_formaldefs)
+typedef val_t (* parser_nodes___AClassdef___n_formaldefs_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_formaldefs(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_formaldefs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_formaldefs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_superclasses(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_superclasses)
+typedef val_t (* parser_nodes___AClassdef___n_superclasses_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_superclasses(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_superclasses__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_superclasses__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_propdefs)
+typedef val_t (* parser_nodes___AClassdef___n_propdefs_t)(val_t  self);
+val_t parser_nodes___AClassdef___n_propdefs(val_t  self);
+typedef void (* parser_nodes___AClassdef___n_propdefs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AClassdef___n_propdefs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATopClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___ATopClassdef____n_propdefs)
+typedef val_t (* parser_nodes___ATopClassdef___n_propdefs_t)(val_t  self);
+val_t parser_nodes___ATopClassdef___n_propdefs(val_t  self);
+typedef void (* parser_nodes___ATopClassdef___n_propdefs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATopClassdef___n_propdefs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMainClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___AMainClassdef____n_propdefs)
+typedef val_t (* parser_nodes___AMainClassdef___n_propdefs_t)(val_t  self);
+val_t parser_nodes___AMainClassdef___n_propdefs(val_t  self);
+typedef void (* parser_nodes___AMainClassdef___n_propdefs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMainClassdef___n_propdefs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AConcreteClasskind____n_kwclass(recv) ATTR(recv, COLOR_parser_nodes___AConcreteClasskind____n_kwclass)
+typedef val_t (* parser_nodes___AConcreteClasskind___n_kwclass_t)(val_t  self);
+val_t parser_nodes___AConcreteClasskind___n_kwclass(val_t  self);
+typedef void (* parser_nodes___AConcreteClasskind___n_kwclass__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(recv) ATTR(recv, COLOR_parser_nodes___AAbstractClasskind____n_kwabstract)
+typedef val_t (* parser_nodes___AAbstractClasskind___n_kwabstract_t)(val_t  self);
+val_t parser_nodes___AAbstractClasskind___n_kwabstract(val_t  self);
+typedef void (* parser_nodes___AAbstractClasskind___n_kwabstract__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAbstractClasskind____n_kwclass(recv) ATTR(recv, COLOR_parser_nodes___AAbstractClasskind____n_kwclass)
+typedef val_t (* parser_nodes___AAbstractClasskind___n_kwclass_t)(val_t  self);
+val_t parser_nodes___AAbstractClasskind___n_kwclass(val_t  self);
+typedef void (* parser_nodes___AAbstractClasskind___n_kwclass__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(recv) ATTR(recv, COLOR_parser_nodes___AInterfaceClasskind____n_kwinterface)
+typedef val_t (* parser_nodes___AInterfaceClasskind___n_kwinterface_t)(val_t  self);
+val_t parser_nodes___AInterfaceClasskind___n_kwinterface(val_t  self);
+typedef void (* parser_nodes___AInterfaceClasskind___n_kwinterface__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(recv) ATTR(recv, COLOR_parser_nodes___AUniversalClasskind____n_kwuniversal)
+typedef val_t (* parser_nodes___AUniversalClasskind___n_kwuniversal_t)(val_t  self);
+val_t parser_nodes___AUniversalClasskind___n_kwuniversal(val_t  self);
+typedef void (* parser_nodes___AUniversalClasskind___n_kwuniversal__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AFormaldef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AFormaldef____n_id)
+typedef val_t (* parser_nodes___AFormaldef___n_id_t)(val_t  self);
+val_t parser_nodes___AFormaldef___n_id(val_t  self);
+typedef void (* parser_nodes___AFormaldef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AFormaldef___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AFormaldef____n_type(recv) ATTR(recv, COLOR_parser_nodes___AFormaldef____n_type)
+typedef val_t (* parser_nodes___AFormaldef___n_type_t)(val_t  self);
+val_t parser_nodes___AFormaldef___n_type(val_t  self);
+typedef void (* parser_nodes___AFormaldef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AFormaldef___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperclass____n_kwspecial(recv) ATTR(recv, COLOR_parser_nodes___ASuperclass____n_kwspecial)
+typedef val_t (* parser_nodes___ASuperclass___n_kwspecial_t)(val_t  self);
+val_t parser_nodes___ASuperclass___n_kwspecial(val_t  self);
+typedef void (* parser_nodes___ASuperclass___n_kwspecial__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperclass____n_type(recv) ATTR(recv, COLOR_parser_nodes___ASuperclass____n_type)
+typedef val_t (* parser_nodes___ASuperclass___n_type_t)(val_t  self);
+val_t parser_nodes___ASuperclass___n_type(val_t  self);
+typedef void (* parser_nodes___ASuperclass___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperclass___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_kwredef)
+typedef val_t (* parser_nodes___AAttrPropdef___n_kwredef_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_kwredef(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_visibility)
+typedef val_t (* parser_nodes___AAttrPropdef___n_visibility_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_visibility(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_kwattr(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_kwattr)
+typedef val_t (* parser_nodes___AAttrPropdef___n_kwattr_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_kwattr(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_kwattr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_id)
+typedef val_t (* parser_nodes___AAttrPropdef___n_id_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_id(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_type(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_type)
+typedef val_t (* parser_nodes___AAttrPropdef___n_type_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_type(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_readable(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_readable)
+typedef val_t (* parser_nodes___AAttrPropdef___n_readable_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_readable(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_readable__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_writable(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_writable)
+typedef val_t (* parser_nodes___AAttrPropdef___n_writable_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_writable(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_writable__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrPropdef____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_expr)
+typedef val_t (* parser_nodes___AAttrPropdef___n_expr_t)(val_t  self);
+val_t parser_nodes___AAttrPropdef___n_expr(val_t  self);
+typedef void (* parser_nodes___AAttrPropdef___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMethPropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_kwredef)
+typedef val_t (* parser_nodes___AMethPropdef___n_kwredef_t)(val_t  self);
+val_t parser_nodes___AMethPropdef___n_kwredef(val_t  self);
+typedef void (* parser_nodes___AMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMethPropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_visibility)
+typedef val_t (* parser_nodes___AMethPropdef___n_visibility_t)(val_t  self);
+val_t parser_nodes___AMethPropdef___n_visibility(val_t  self);
+typedef void (* parser_nodes___AMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMethPropdef____n_methid(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_methid)
+typedef val_t (* parser_nodes___AMethPropdef___n_methid_t)(val_t  self);
+val_t parser_nodes___AMethPropdef___n_methid(val_t  self);
+typedef void (* parser_nodes___AMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMethPropdef____n_signature(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_signature)
+typedef val_t (* parser_nodes___AMethPropdef___n_signature_t)(val_t  self);
+val_t parser_nodes___AMethPropdef___n_signature(val_t  self);
+typedef void (* parser_nodes___AMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___ADeferredMethPropdef____n_kwmeth)
+typedef val_t (* parser_nodes___ADeferredMethPropdef___n_kwmeth_t)(val_t  self);
+val_t parser_nodes___ADeferredMethPropdef___n_kwmeth(val_t  self);
+typedef void (* parser_nodes___ADeferredMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AInternMethPropdef____n_kwmeth)
+typedef val_t (* parser_nodes___AInternMethPropdef___n_kwmeth_t)(val_t  self);
+val_t parser_nodes___AInternMethPropdef___n_kwmeth(val_t  self);
+typedef void (* parser_nodes___AInternMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AExternMethPropdef____n_kwmeth)
+typedef val_t (* parser_nodes___AExternMethPropdef___n_kwmeth_t)(val_t  self);
+val_t parser_nodes___AExternMethPropdef___n_kwmeth(val_t  self);
+typedef void (* parser_nodes___AExternMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AExternMethPropdef____n_extern(recv) ATTR(recv, COLOR_parser_nodes___AExternMethPropdef____n_extern)
+typedef val_t (* parser_nodes___AExternMethPropdef___n_extern_t)(val_t  self);
+val_t parser_nodes___AExternMethPropdef___n_extern(val_t  self);
+typedef void (* parser_nodes___AExternMethPropdef___n_extern__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AConcreteMethPropdef____n_kwmeth)
+typedef val_t (* parser_nodes___AConcreteMethPropdef___n_kwmeth_t)(val_t  self);
+val_t parser_nodes___AConcreteMethPropdef___n_kwmeth(val_t  self);
+typedef void (* parser_nodes___AConcreteMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AConcreteMethPropdef____n_block(recv) ATTR(recv, COLOR_parser_nodes___AConcreteMethPropdef____n_block)
+typedef val_t (* parser_nodes___AConcreteMethPropdef___n_block_t)(val_t  self);
+val_t parser_nodes___AConcreteMethPropdef___n_block(val_t  self);
+typedef void (* parser_nodes___AConcreteMethPropdef___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(recv) ATTR(recv, COLOR_parser_nodes___AConcreteInitPropdef____n_kwinit)
+typedef val_t (* parser_nodes___AConcreteInitPropdef___n_kwinit_t)(val_t  self);
+val_t parser_nodes___AConcreteInitPropdef___n_kwinit(val_t  self);
+typedef void (* parser_nodes___AConcreteInitPropdef___n_kwinit__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATypePropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_kwredef)
+typedef val_t (* parser_nodes___ATypePropdef___n_kwredef_t)(val_t  self);
+val_t parser_nodes___ATypePropdef___n_kwredef(val_t  self);
+typedef void (* parser_nodes___ATypePropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATypePropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_visibility)
+typedef val_t (* parser_nodes___ATypePropdef___n_visibility_t)(val_t  self);
+val_t parser_nodes___ATypePropdef___n_visibility(val_t  self);
+typedef void (* parser_nodes___ATypePropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATypePropdef____n_kwtype(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_kwtype)
+typedef val_t (* parser_nodes___ATypePropdef___n_kwtype_t)(val_t  self);
+val_t parser_nodes___ATypePropdef___n_kwtype(val_t  self);
+typedef void (* parser_nodes___ATypePropdef___n_kwtype__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATypePropdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_id)
+typedef val_t (* parser_nodes___ATypePropdef___n_id_t)(val_t  self);
+val_t parser_nodes___ATypePropdef___n_id(val_t  self);
+typedef void (* parser_nodes___ATypePropdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATypePropdef___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATypePropdef____n_type(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_type)
+typedef val_t (* parser_nodes___ATypePropdef___n_type_t)(val_t  self);
+val_t parser_nodes___ATypePropdef___n_type(val_t  self);
+typedef void (* parser_nodes___ATypePropdef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATypePropdef___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AReadAble____n_kwreadable(recv) ATTR(recv, COLOR_parser_nodes___AReadAble____n_kwreadable)
+typedef val_t (* parser_nodes___AReadAble___n_kwreadable_t)(val_t  self);
+val_t parser_nodes___AReadAble___n_kwreadable(val_t  self);
+typedef void (* parser_nodes___AReadAble___n_kwreadable__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AWriteAble____n_kwwritable(recv) ATTR(recv, COLOR_parser_nodes___AWriteAble____n_kwwritable)
+typedef val_t (* parser_nodes___AWriteAble___n_kwwritable_t)(val_t  self);
+val_t parser_nodes___AWriteAble___n_kwwritable(val_t  self);
+typedef void (* parser_nodes___AWriteAble___n_kwwritable__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIdMethid____n_id(recv) ATTR(recv, COLOR_parser_nodes___AIdMethid____n_id)
+typedef val_t (* parser_nodes___AIdMethid___n_id_t)(val_t  self);
+val_t parser_nodes___AIdMethid___n_id(val_t  self);
+typedef void (* parser_nodes___AIdMethid___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIdMethid___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APlusMethid____n_plus(recv) ATTR(recv, COLOR_parser_nodes___APlusMethid____n_plus)
+typedef val_t (* parser_nodes___APlusMethid___n_plus_t)(val_t  self);
+val_t parser_nodes___APlusMethid___n_plus(val_t  self);
+typedef void (* parser_nodes___APlusMethid___n_plus__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APlusMethid___n_plus__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMinusMethid____n_minus(recv) ATTR(recv, COLOR_parser_nodes___AMinusMethid____n_minus)
+typedef val_t (* parser_nodes___AMinusMethid___n_minus_t)(val_t  self);
+val_t parser_nodes___AMinusMethid___n_minus(val_t  self);
+typedef void (* parser_nodes___AMinusMethid___n_minus__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMinusMethid___n_minus__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AStarMethid____n_star(recv) ATTR(recv, COLOR_parser_nodes___AStarMethid____n_star)
+typedef val_t (* parser_nodes___AStarMethid___n_star_t)(val_t  self);
+val_t parser_nodes___AStarMethid___n_star(val_t  self);
+typedef void (* parser_nodes___AStarMethid___n_star__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AStarMethid___n_star__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASlashMethid____n_slash(recv) ATTR(recv, COLOR_parser_nodes___ASlashMethid____n_slash)
+typedef val_t (* parser_nodes___ASlashMethid___n_slash_t)(val_t  self);
+val_t parser_nodes___ASlashMethid___n_slash(val_t  self);
+typedef void (* parser_nodes___ASlashMethid___n_slash__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASlashMethid___n_slash__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APercentMethid____n_percent(recv) ATTR(recv, COLOR_parser_nodes___APercentMethid____n_percent)
+typedef val_t (* parser_nodes___APercentMethid___n_percent_t)(val_t  self);
+val_t parser_nodes___APercentMethid___n_percent(val_t  self);
+typedef void (* parser_nodes___APercentMethid___n_percent__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APercentMethid___n_percent__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AEqMethid____n_eq(recv) ATTR(recv, COLOR_parser_nodes___AEqMethid____n_eq)
+typedef val_t (* parser_nodes___AEqMethid___n_eq_t)(val_t  self);
+val_t parser_nodes___AEqMethid___n_eq(val_t  self);
+typedef void (* parser_nodes___AEqMethid___n_eq__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AEqMethid___n_eq__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANeMethid____n_ne(recv) ATTR(recv, COLOR_parser_nodes___ANeMethid____n_ne)
+typedef val_t (* parser_nodes___ANeMethid___n_ne_t)(val_t  self);
+val_t parser_nodes___ANeMethid___n_ne(val_t  self);
+typedef void (* parser_nodes___ANeMethid___n_ne__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANeMethid___n_ne__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ALeMethid____n_le(recv) ATTR(recv, COLOR_parser_nodes___ALeMethid____n_le)
+typedef val_t (* parser_nodes___ALeMethid___n_le_t)(val_t  self);
+val_t parser_nodes___ALeMethid___n_le(val_t  self);
+typedef void (* parser_nodes___ALeMethid___n_le__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ALeMethid___n_le__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AGeMethid____n_ge(recv) ATTR(recv, COLOR_parser_nodes___AGeMethid____n_ge)
+typedef val_t (* parser_nodes___AGeMethid___n_ge_t)(val_t  self);
+val_t parser_nodes___AGeMethid___n_ge(val_t  self);
+typedef void (* parser_nodes___AGeMethid___n_ge__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AGeMethid___n_ge__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ALtMethid____n_lt(recv) ATTR(recv, COLOR_parser_nodes___ALtMethid____n_lt)
+typedef val_t (* parser_nodes___ALtMethid___n_lt_t)(val_t  self);
+val_t parser_nodes___ALtMethid___n_lt(val_t  self);
+typedef void (* parser_nodes___ALtMethid___n_lt__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ALtMethid___n_lt__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AGtMethid____n_gt(recv) ATTR(recv, COLOR_parser_nodes___AGtMethid____n_gt)
+typedef val_t (* parser_nodes___AGtMethid___n_gt_t)(val_t  self);
+val_t parser_nodes___AGtMethid___n_gt(val_t  self);
+typedef void (* parser_nodes___AGtMethid___n_gt__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AGtMethid___n_gt__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraMethid____n_obra(recv) ATTR(recv, COLOR_parser_nodes___ABraMethid____n_obra)
+typedef val_t (* parser_nodes___ABraMethid___n_obra_t)(val_t  self);
+val_t parser_nodes___ABraMethid___n_obra(val_t  self);
+typedef void (* parser_nodes___ABraMethid___n_obra__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraMethid___n_obra__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraMethid____n_cbra(recv) ATTR(recv, COLOR_parser_nodes___ABraMethid____n_cbra)
+typedef val_t (* parser_nodes___ABraMethid___n_cbra_t)(val_t  self);
+val_t parser_nodes___ABraMethid___n_cbra(val_t  self);
+typedef void (* parser_nodes___ABraMethid___n_cbra__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraMethid___n_cbra__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AStarshipMethid____n_starship(recv) ATTR(recv, COLOR_parser_nodes___AStarshipMethid____n_starship)
+typedef val_t (* parser_nodes___AStarshipMethid___n_starship_t)(val_t  self);
+val_t parser_nodes___AStarshipMethid___n_starship(val_t  self);
+typedef void (* parser_nodes___AStarshipMethid___n_starship__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssignMethid____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAssignMethid____n_id)
+typedef val_t (* parser_nodes___AAssignMethid___n_id_t)(val_t  self);
+val_t parser_nodes___AAssignMethid___n_id(val_t  self);
+typedef void (* parser_nodes___AAssignMethid___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssignMethid___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssignMethid____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AAssignMethid____n_assign)
+typedef val_t (* parser_nodes___AAssignMethid___n_assign_t)(val_t  self);
+val_t parser_nodes___AAssignMethid___n_assign(val_t  self);
+typedef void (* parser_nodes___AAssignMethid___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssignMethid___n_assign__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraassignMethid____n_obra(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_obra)
+typedef val_t (* parser_nodes___ABraassignMethid___n_obra_t)(val_t  self);
+val_t parser_nodes___ABraassignMethid___n_obra(val_t  self);
+typedef void (* parser_nodes___ABraassignMethid___n_obra__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraassignMethid____n_cbra(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_cbra)
+typedef val_t (* parser_nodes___ABraassignMethid___n_cbra_t)(val_t  self);
+val_t parser_nodes___ABraassignMethid___n_cbra(val_t  self);
+typedef void (* parser_nodes___ABraassignMethid___n_cbra__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraassignMethid____n_assign(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_assign)
+typedef val_t (* parser_nodes___ABraassignMethid___n_assign_t)(val_t  self);
+val_t parser_nodes___ABraassignMethid___n_assign(val_t  self);
+typedef void (* parser_nodes___ABraassignMethid___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASignature____n_params(recv) ATTR(recv, COLOR_parser_nodes___ASignature____n_params)
+typedef val_t (* parser_nodes___ASignature___n_params_t)(val_t  self);
+val_t parser_nodes___ASignature___n_params(val_t  self);
+typedef void (* parser_nodes___ASignature___n_params__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASignature___n_params__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASignature____n_type(recv) ATTR(recv, COLOR_parser_nodes___ASignature____n_type)
+typedef val_t (* parser_nodes___ASignature___n_type_t)(val_t  self);
+val_t parser_nodes___ASignature___n_type(val_t  self);
+typedef void (* parser_nodes___ASignature___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASignature___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AParam____n_dotdotdot(recv) ATTR(recv, COLOR_parser_nodes___AParam____n_dotdotdot)
+typedef val_t (* parser_nodes___AParam___n_dotdotdot_t)(val_t  self);
+val_t parser_nodes___AParam___n_dotdotdot(val_t  self);
+typedef void (* parser_nodes___AParam___n_dotdotdot__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AParam___n_dotdotdot__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AType____n_id(recv) ATTR(recv, COLOR_parser_nodes___AType____n_id)
+typedef val_t (* parser_nodes___AType___n_id_t)(val_t  self);
+val_t parser_nodes___AType___n_id(val_t  self);
+typedef void (* parser_nodes___AType___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AType___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AType____n_types(recv) ATTR(recv, COLOR_parser_nodes___AType____n_types)
+typedef val_t (* parser_nodes___AType___n_types_t)(val_t  self);
+val_t parser_nodes___AType___n_types(val_t  self);
+typedef void (* parser_nodes___AType___n_types__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AType___n_types__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABlockExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ABlockExpr____n_expr)
+typedef val_t (* parser_nodes___ABlockExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___ABlockExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___ABlockExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABlockExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVardeclExpr____n_kwvar(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_kwvar)
+typedef val_t (* parser_nodes___AVardeclExpr___n_kwvar_t)(val_t  self);
+val_t parser_nodes___AVardeclExpr___n_kwvar(val_t  self);
+typedef void (* parser_nodes___AVardeclExpr___n_kwvar__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVardeclExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_id)
+typedef val_t (* parser_nodes___AVardeclExpr___n_id_t)(val_t  self);
+val_t parser_nodes___AVardeclExpr___n_id(val_t  self);
+typedef void (* parser_nodes___AVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVardeclExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVardeclExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_type)
+typedef val_t (* parser_nodes___AVardeclExpr___n_type_t)(val_t  self);
+val_t parser_nodes___AVardeclExpr___n_type(val_t  self);
+typedef void (* parser_nodes___AVardeclExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVardeclExpr___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVardeclExpr____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_assign)
+typedef val_t (* parser_nodes___AVardeclExpr___n_assign_t)(val_t  self);
+val_t parser_nodes___AVardeclExpr___n_assign(val_t  self);
+typedef void (* parser_nodes___AVardeclExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVardeclExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_expr)
+typedef val_t (* parser_nodes___AVardeclExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AVardeclExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AVardeclExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AReturnExpr____n_kwreturn(recv) ATTR(recv, COLOR_parser_nodes___AReturnExpr____n_kwreturn)
+typedef val_t (* parser_nodes___AReturnExpr___n_kwreturn_t)(val_t  self);
+val_t parser_nodes___AReturnExpr___n_kwreturn(val_t  self);
+typedef void (* parser_nodes___AReturnExpr___n_kwreturn__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AReturnExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AReturnExpr____n_expr)
+typedef val_t (* parser_nodes___AReturnExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AReturnExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AReturnExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AReturnExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABreakExpr____n_kwbreak(recv) ATTR(recv, COLOR_parser_nodes___ABreakExpr____n_kwbreak)
+typedef val_t (* parser_nodes___ABreakExpr___n_kwbreak_t)(val_t  self);
+val_t parser_nodes___ABreakExpr___n_kwbreak(val_t  self);
+typedef void (* parser_nodes___ABreakExpr___n_kwbreak__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAbortExpr____n_kwabort(recv) ATTR(recv, COLOR_parser_nodes___AAbortExpr____n_kwabort)
+typedef val_t (* parser_nodes___AAbortExpr___n_kwabort_t)(val_t  self);
+val_t parser_nodes___AAbortExpr___n_kwabort(val_t  self);
+typedef void (* parser_nodes___AAbortExpr___n_kwabort__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AContinueExpr____n_kwcontinue(recv) ATTR(recv, COLOR_parser_nodes___AContinueExpr____n_kwcontinue)
+typedef val_t (* parser_nodes___AContinueExpr___n_kwcontinue_t)(val_t  self);
+val_t parser_nodes___AContinueExpr___n_kwcontinue(val_t  self);
+typedef void (* parser_nodes___AContinueExpr___n_kwcontinue__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ADoExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___ADoExpr____n_kwdo)
+typedef val_t (* parser_nodes___ADoExpr___n_kwdo_t)(val_t  self);
+val_t parser_nodes___ADoExpr___n_kwdo(val_t  self);
+typedef void (* parser_nodes___ADoExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ADoExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___ADoExpr____n_block)
+typedef val_t (* parser_nodes___ADoExpr___n_block_t)(val_t  self);
+val_t parser_nodes___ADoExpr___n_block(val_t  self);
+typedef void (* parser_nodes___ADoExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ADoExpr___n_block__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfExpr____n_kwif(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_kwif)
+typedef val_t (* parser_nodes___AIfExpr___n_kwif_t)(val_t  self);
+val_t parser_nodes___AIfExpr___n_kwif(val_t  self);
+typedef void (* parser_nodes___AIfExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfExpr___n_kwif__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_expr)
+typedef val_t (* parser_nodes___AIfExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AIfExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AIfExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfExpr____n_then(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_then)
+typedef val_t (* parser_nodes___AIfExpr___n_then_t)(val_t  self);
+val_t parser_nodes___AIfExpr___n_then(val_t  self);
+typedef void (* parser_nodes___AIfExpr___n_then__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfExpr___n_then__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfExpr____n_else(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_else)
+typedef val_t (* parser_nodes___AIfExpr___n_else_t)(val_t  self);
+val_t parser_nodes___AIfExpr___n_else(val_t  self);
+typedef void (* parser_nodes___AIfExpr___n_else__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfExpr___n_else__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_kwif(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwif)
+typedef val_t (* parser_nodes___AIfexprExpr___n_kwif_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_kwif(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_expr)
+typedef val_t (* parser_nodes___AIfexprExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_kwthen(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwthen)
+typedef val_t (* parser_nodes___AIfexprExpr___n_kwthen_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_kwthen(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_kwthen__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_then(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_then)
+typedef val_t (* parser_nodes___AIfexprExpr___n_then_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_then(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_then__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_then__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_kwelse(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwelse)
+typedef val_t (* parser_nodes___AIfexprExpr___n_kwelse_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_kwelse(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_kwelse__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIfexprExpr____n_else(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_else)
+typedef val_t (* parser_nodes___AIfexprExpr___n_else_t)(val_t  self);
+val_t parser_nodes___AIfexprExpr___n_else(val_t  self);
+typedef void (* parser_nodes___AIfexprExpr___n_else__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIfexprExpr___n_else__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AWhileExpr____n_kwwhile(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_kwwhile)
+typedef val_t (* parser_nodes___AWhileExpr___n_kwwhile_t)(val_t  self);
+val_t parser_nodes___AWhileExpr___n_kwwhile(val_t  self);
+typedef void (* parser_nodes___AWhileExpr___n_kwwhile__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AWhileExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_expr)
+typedef val_t (* parser_nodes___AWhileExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AWhileExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AWhileExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AWhileExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AWhileExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_kwdo)
+typedef val_t (* parser_nodes___AWhileExpr___n_kwdo_t)(val_t  self);
+val_t parser_nodes___AWhileExpr___n_kwdo(val_t  self);
+typedef void (* parser_nodes___AWhileExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AWhileExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_block)
+typedef val_t (* parser_nodes___AWhileExpr___n_block_t)(val_t  self);
+val_t parser_nodes___AWhileExpr___n_block(val_t  self);
+typedef void (* parser_nodes___AWhileExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AWhileExpr___n_block__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForExpr____n_vardecl(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_vardecl)
+typedef val_t (* parser_nodes___AForExpr___n_vardecl_t)(val_t  self);
+val_t parser_nodes___AForExpr___n_vardecl(val_t  self);
+typedef void (* parser_nodes___AForExpr___n_vardecl__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForExpr___n_vardecl__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_kwdo)
+typedef val_t (* parser_nodes___AForExpr___n_kwdo_t)(val_t  self);
+val_t parser_nodes___AForExpr___n_kwdo(val_t  self);
+typedef void (* parser_nodes___AForExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForExpr___n_kwdo__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_block)
+typedef val_t (* parser_nodes___AForExpr___n_block_t)(val_t  self);
+val_t parser_nodes___AForExpr___n_block(val_t  self);
+typedef void (* parser_nodes___AForExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForExpr___n_block__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForVardeclExpr____n_kwfor(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_kwfor)
+typedef val_t (* parser_nodes___AForVardeclExpr___n_kwfor_t)(val_t  self);
+val_t parser_nodes___AForVardeclExpr___n_kwfor(val_t  self);
+typedef void (* parser_nodes___AForVardeclExpr___n_kwfor__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForVardeclExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_id)
+typedef val_t (* parser_nodes___AForVardeclExpr___n_id_t)(val_t  self);
+val_t parser_nodes___AForVardeclExpr___n_id(val_t  self);
+typedef void (* parser_nodes___AForVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AForVardeclExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_expr)
+typedef val_t (* parser_nodes___AForVardeclExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AForVardeclExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AForVardeclExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssertExpr____n_kwassert(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_kwassert)
+typedef val_t (* parser_nodes___AAssertExpr___n_kwassert_t)(val_t  self);
+val_t parser_nodes___AAssertExpr___n_kwassert(val_t  self);
+typedef void (* parser_nodes___AAssertExpr___n_kwassert__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssertExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_id)
+typedef val_t (* parser_nodes___AAssertExpr___n_id_t)(val_t  self);
+val_t parser_nodes___AAssertExpr___n_id(val_t  self);
+typedef void (* parser_nodes___AAssertExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssertExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssertExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_expr)
+typedef val_t (* parser_nodes___AAssertExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AAssertExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AAssertExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssertExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssignFormExpr____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AAssignFormExpr____n_assign)
+typedef val_t (* parser_nodes___AAssignFormExpr___n_assign_t)(val_t  self);
+val_t parser_nodes___AAssignFormExpr___n_assign(val_t  self);
+typedef void (* parser_nodes___AAssignFormExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssignFormExpr___n_assign__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAssignFormExpr____n_value(recv) ATTR(recv, COLOR_parser_nodes___AAssignFormExpr____n_value)
+typedef val_t (* parser_nodes___AAssignFormExpr___n_value_t)(val_t  self);
+val_t parser_nodes___AAssignFormExpr___n_value(val_t  self);
+typedef void (* parser_nodes___AAssignFormExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAssignFormExpr___n_value__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AReassignFormExpr____n_assign_op(recv) ATTR(recv, COLOR_parser_nodes___AReassignFormExpr____n_assign_op)
+typedef val_t (* parser_nodes___AReassignFormExpr___n_assign_op_t)(val_t  self);
+val_t parser_nodes___AReassignFormExpr___n_assign_op(val_t  self);
+typedef void (* parser_nodes___AReassignFormExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AReassignFormExpr___n_assign_op__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AReassignFormExpr____n_value(recv) ATTR(recv, COLOR_parser_nodes___AReassignFormExpr____n_value)
+typedef val_t (* parser_nodes___AReassignFormExpr___n_value_t)(val_t  self);
+val_t parser_nodes___AReassignFormExpr___n_value(val_t  self);
+typedef void (* parser_nodes___AReassignFormExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AReassignFormExpr___n_value__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AOnceExpr____n_kwonce(recv) ATTR(recv, COLOR_parser_nodes___AOnceExpr____n_kwonce)
+typedef val_t (* parser_nodes___AOnceExpr___n_kwonce_t)(val_t  self);
+val_t parser_nodes___AOnceExpr___n_kwonce(val_t  self);
+typedef void (* parser_nodes___AOnceExpr___n_kwonce__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASendExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ASendExpr____n_expr)
+typedef val_t (* parser_nodes___ASendExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___ASendExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___ASendExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASendExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABinopExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___ABinopExpr____n_expr2)
+typedef val_t (* parser_nodes___ABinopExpr___n_expr2_t)(val_t  self);
+val_t parser_nodes___ABinopExpr___n_expr2(val_t  self);
+typedef void (* parser_nodes___ABinopExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AOrExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AOrExpr____n_expr)
+typedef val_t (* parser_nodes___AOrExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AOrExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AOrExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AOrExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AOrExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AOrExpr____n_expr2)
+typedef val_t (* parser_nodes___AOrExpr___n_expr2_t)(val_t  self);
+val_t parser_nodes___AOrExpr___n_expr2(val_t  self);
+typedef void (* parser_nodes___AOrExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AOrExpr___n_expr2__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAndExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAndExpr____n_expr)
+typedef val_t (* parser_nodes___AAndExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AAndExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AAndExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAndExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAndExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AAndExpr____n_expr2)
+typedef val_t (* parser_nodes___AAndExpr___n_expr2_t)(val_t  self);
+val_t parser_nodes___AAndExpr___n_expr2(val_t  self);
+typedef void (* parser_nodes___AAndExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAndExpr___n_expr2__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANotExpr____n_kwnot(recv) ATTR(recv, COLOR_parser_nodes___ANotExpr____n_kwnot)
+typedef val_t (* parser_nodes___ANotExpr___n_kwnot_t)(val_t  self);
+val_t parser_nodes___ANotExpr___n_kwnot(val_t  self);
+typedef void (* parser_nodes___ANotExpr___n_kwnot__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANotExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ANotExpr____n_expr)
+typedef val_t (* parser_nodes___ANotExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___ANotExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___ANotExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANotExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AEeExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AEeExpr____n_expr)
+typedef val_t (* parser_nodes___AEeExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AEeExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AEeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AEeExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AEeExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AEeExpr____n_expr2)
+typedef val_t (* parser_nodes___AEeExpr___n_expr2_t)(val_t  self);
+val_t parser_nodes___AEeExpr___n_expr2(val_t  self);
+typedef void (* parser_nodes___AEeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AEeExpr___n_expr2__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIsaExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIsaExpr____n_expr)
+typedef val_t (* parser_nodes___AIsaExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AIsaExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AIsaExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIsaExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIsaExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___AIsaExpr____n_type)
+typedef val_t (* parser_nodes___AIsaExpr___n_type_t)(val_t  self);
+val_t parser_nodes___AIsaExpr___n_type(val_t  self);
+typedef void (* parser_nodes___AIsaExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIsaExpr___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AUminusExpr____n_minus(recv) ATTR(recv, COLOR_parser_nodes___AUminusExpr____n_minus)
+typedef val_t (* parser_nodes___AUminusExpr___n_minus_t)(val_t  self);
+val_t parser_nodes___AUminusExpr___n_minus(val_t  self);
+typedef void (* parser_nodes___AUminusExpr___n_minus__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AUminusExpr___n_minus__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANewExpr____n_kwnew(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_kwnew)
+typedef val_t (* parser_nodes___ANewExpr___n_kwnew_t)(val_t  self);
+val_t parser_nodes___ANewExpr___n_kwnew(val_t  self);
+typedef void (* parser_nodes___ANewExpr___n_kwnew__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANewExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_type)
+typedef val_t (* parser_nodes___ANewExpr___n_type_t)(val_t  self);
+val_t parser_nodes___ANewExpr___n_type(val_t  self);
+typedef void (* parser_nodes___ANewExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANewExpr___n_type__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANewExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_id)
+typedef val_t (* parser_nodes___ANewExpr___n_id_t)(val_t  self);
+val_t parser_nodes___ANewExpr___n_id(val_t  self);
+typedef void (* parser_nodes___ANewExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANewExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANewExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_args)
+typedef val_t (* parser_nodes___ANewExpr___n_args_t)(val_t  self);
+val_t parser_nodes___ANewExpr___n_args(val_t  self);
+typedef void (* parser_nodes___ANewExpr___n_args__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANewExpr___n_args__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrFormExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAttrFormExpr____n_expr)
+typedef val_t (* parser_nodes___AAttrFormExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AAttrFormExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AAttrFormExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrFormExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AAttrFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAttrFormExpr____n_id)
+typedef val_t (* parser_nodes___AAttrFormExpr___n_id_t)(val_t  self);
+val_t parser_nodes___AAttrFormExpr___n_id(val_t  self);
+typedef void (* parser_nodes___AAttrFormExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AAttrFormExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ACallFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___ACallFormExpr____n_id)
+typedef val_t (* parser_nodes___ACallFormExpr___n_id_t)(val_t  self);
+val_t parser_nodes___ACallFormExpr___n_id(val_t  self);
+typedef void (* parser_nodes___ACallFormExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ACallFormExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ACallFormExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ACallFormExpr____n_args)
+typedef val_t (* parser_nodes___ACallFormExpr___n_args_t)(val_t  self);
+val_t parser_nodes___ACallFormExpr___n_args(val_t  self);
+typedef void (* parser_nodes___ACallFormExpr___n_args__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ACallFormExpr___n_args__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperExpr____n_qualified(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_qualified)
+typedef val_t (* parser_nodes___ASuperExpr___n_qualified_t)(val_t  self);
+val_t parser_nodes___ASuperExpr___n_qualified(val_t  self);
+typedef void (* parser_nodes___ASuperExpr___n_qualified__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperExpr____n_kwsuper(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_kwsuper)
+typedef val_t (* parser_nodes___ASuperExpr___n_kwsuper_t)(val_t  self);
+val_t parser_nodes___ASuperExpr___n_kwsuper(val_t  self);
+typedef void (* parser_nodes___ASuperExpr___n_kwsuper__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_args)
+typedef val_t (* parser_nodes___ASuperExpr___n_args_t)(val_t  self);
+val_t parser_nodes___ASuperExpr___n_args(val_t  self);
+typedef void (* parser_nodes___ASuperExpr___n_args__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperExpr___n_args__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AInitExpr____n_kwinit(recv) ATTR(recv, COLOR_parser_nodes___AInitExpr____n_kwinit)
+typedef val_t (* parser_nodes___AInitExpr___n_kwinit_t)(val_t  self);
+val_t parser_nodes___AInitExpr___n_kwinit(val_t  self);
+typedef void (* parser_nodes___AInitExpr___n_kwinit__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AInitExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___AInitExpr____n_args)
+typedef val_t (* parser_nodes___AInitExpr___n_args_t)(val_t  self);
+val_t parser_nodes___AInitExpr___n_args(val_t  self);
+typedef void (* parser_nodes___AInitExpr___n_args__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AInitExpr___n_args__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ABraFormExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ABraFormExpr____n_args)
+typedef val_t (* parser_nodes___ABraFormExpr___n_args_t)(val_t  self);
+val_t parser_nodes___ABraFormExpr___n_args(val_t  self);
+typedef void (* parser_nodes___ABraFormExpr___n_args__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ABraFormExpr___n_args__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AVarFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AVarFormExpr____n_id)
+typedef val_t (* parser_nodes___AVarFormExpr___n_id_t)(val_t  self);
+val_t parser_nodes___AVarFormExpr___n_id(val_t  self);
+typedef void (* parser_nodes___AVarFormExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AVarFormExpr___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ARangeExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ARangeExpr____n_expr)
+typedef val_t (* parser_nodes___ARangeExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___ARangeExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___ARangeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ARangeExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ARangeExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___ARangeExpr____n_expr2)
+typedef val_t (* parser_nodes___ARangeExpr___n_expr2_t)(val_t  self);
+val_t parser_nodes___ARangeExpr___n_expr2(val_t  self);
+typedef void (* parser_nodes___ARangeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AArrayExpr____n_exprs(recv) ATTR(recv, COLOR_parser_nodes___AArrayExpr____n_exprs)
+typedef val_t (* parser_nodes___AArrayExpr___n_exprs_t)(val_t  self);
+val_t parser_nodes___AArrayExpr___n_exprs(val_t  self);
+typedef void (* parser_nodes___AArrayExpr___n_exprs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AArrayExpr___n_exprs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASelfExpr____n_kwself(recv) ATTR(recv, COLOR_parser_nodes___ASelfExpr____n_kwself)
+typedef val_t (* parser_nodes___ASelfExpr___n_kwself_t)(val_t  self);
+val_t parser_nodes___ASelfExpr___n_kwself(val_t  self);
+typedef void (* parser_nodes___ASelfExpr___n_kwself__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ATrueExpr____n_kwtrue(recv) ATTR(recv, COLOR_parser_nodes___ATrueExpr____n_kwtrue)
+typedef val_t (* parser_nodes___ATrueExpr___n_kwtrue_t)(val_t  self);
+val_t parser_nodes___ATrueExpr___n_kwtrue(val_t  self);
+typedef void (* parser_nodes___ATrueExpr___n_kwtrue__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AFalseExpr____n_kwfalse(recv) ATTR(recv, COLOR_parser_nodes___AFalseExpr____n_kwfalse)
+typedef val_t (* parser_nodes___AFalseExpr___n_kwfalse_t)(val_t  self);
+val_t parser_nodes___AFalseExpr___n_kwfalse(val_t  self);
+typedef void (* parser_nodes___AFalseExpr___n_kwfalse__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ANullExpr____n_kwnull(recv) ATTR(recv, COLOR_parser_nodes___ANullExpr____n_kwnull)
+typedef val_t (* parser_nodes___ANullExpr___n_kwnull_t)(val_t  self);
+val_t parser_nodes___ANullExpr___n_kwnull(val_t  self);
+typedef void (* parser_nodes___ANullExpr___n_kwnull__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AIntExpr____n_number(recv) ATTR(recv, COLOR_parser_nodes___AIntExpr____n_number)
+typedef val_t (* parser_nodes___AIntExpr___n_number_t)(val_t  self);
+val_t parser_nodes___AIntExpr___n_number(val_t  self);
+typedef void (* parser_nodes___AIntExpr___n_number__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AIntExpr___n_number__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AFloatExpr____n_float(recv) ATTR(recv, COLOR_parser_nodes___AFloatExpr____n_float)
+typedef val_t (* parser_nodes___AFloatExpr___n_float_t)(val_t  self);
+val_t parser_nodes___AFloatExpr___n_float(val_t  self);
+typedef void (* parser_nodes___AFloatExpr___n_float__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AFloatExpr___n_float__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ACharExpr____n_char(recv) ATTR(recv, COLOR_parser_nodes___ACharExpr____n_char)
+typedef val_t (* parser_nodes___ACharExpr___n_char_t)(val_t  self);
+val_t parser_nodes___ACharExpr___n_char(val_t  self);
+typedef void (* parser_nodes___ACharExpr___n_char__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ACharExpr___n_char__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AStringExpr____n_string)
+typedef val_t (* parser_nodes___AStringExpr___n_string_t)(val_t  self);
+val_t parser_nodes___AStringExpr___n_string(val_t  self);
+typedef void (* parser_nodes___AStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AStringExpr___n_string__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AStartStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AStartStringExpr____n_string)
+typedef val_t (* parser_nodes___AStartStringExpr___n_string_t)(val_t  self);
+val_t parser_nodes___AStartStringExpr___n_string(val_t  self);
+typedef void (* parser_nodes___AStartStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AStartStringExpr___n_string__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMidStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AMidStringExpr____n_string)
+typedef val_t (* parser_nodes___AMidStringExpr___n_string_t)(val_t  self);
+val_t parser_nodes___AMidStringExpr___n_string(val_t  self);
+typedef void (* parser_nodes___AMidStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMidStringExpr___n_string__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AEndStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AEndStringExpr____n_string)
+typedef val_t (* parser_nodes___AEndStringExpr___n_string_t)(val_t  self);
+val_t parser_nodes___AEndStringExpr___n_string(val_t  self);
+typedef void (* parser_nodes___AEndStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AEndStringExpr___n_string__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ASuperstringExpr____n_exprs(recv) ATTR(recv, COLOR_parser_nodes___ASuperstringExpr____n_exprs)
+typedef val_t (* parser_nodes___ASuperstringExpr___n_exprs_t)(val_t  self);
+val_t parser_nodes___ASuperstringExpr___n_exprs(val_t  self);
+typedef void (* parser_nodes___ASuperstringExpr___n_exprs__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ASuperstringExpr___n_exprs__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AProxyExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AProxyExpr____n_expr)
+typedef val_t (* parser_nodes___AProxyExpr___n_expr_t)(val_t  self);
+val_t parser_nodes___AProxyExpr___n_expr(val_t  self);
+typedef void (* parser_nodes___AProxyExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AProxyExpr___n_expr__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___APlusAssignOp____n_pluseq(recv) ATTR(recv, COLOR_parser_nodes___APlusAssignOp____n_pluseq)
+typedef val_t (* parser_nodes___APlusAssignOp___n_pluseq_t)(val_t  self);
+val_t parser_nodes___APlusAssignOp___n_pluseq(val_t  self);
+typedef void (* parser_nodes___APlusAssignOp___n_pluseq__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AMinusAssignOp____n_minuseq(recv) ATTR(recv, COLOR_parser_nodes___AMinusAssignOp____n_minuseq)
+typedef val_t (* parser_nodes___AMinusAssignOp___n_minuseq_t)(val_t  self);
+val_t parser_nodes___AMinusAssignOp___n_minuseq(val_t  self);
+typedef void (* parser_nodes___AMinusAssignOp___n_minuseq__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AQualified____n_id(recv) ATTR(recv, COLOR_parser_nodes___AQualified____n_id)
+typedef val_t (* parser_nodes___AQualified___n_id_t)(val_t  self);
+val_t parser_nodes___AQualified___n_id(val_t  self);
+typedef void (* parser_nodes___AQualified___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AQualified___n_id__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___AQualified____n_classid(recv) ATTR(recv, COLOR_parser_nodes___AQualified____n_classid)
+typedef val_t (* parser_nodes___AQualified___n_classid_t)(val_t  self);
+val_t parser_nodes___AQualified___n_classid(val_t  self);
+typedef void (* parser_nodes___AQualified___n_classid__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___AQualified___n_classid__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___ADoc____n_comment(recv) ATTR(recv, COLOR_parser_nodes___ADoc____n_comment)
+typedef val_t (* parser_nodes___ADoc___n_comment_t)(val_t  self);
+val_t parser_nodes___ADoc___n_comment(val_t  self);
+typedef void (* parser_nodes___ADoc___n_comment__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___ADoc___n_comment__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___Start____n_base(recv) ATTR(recv, COLOR_parser_nodes___Start____n_base)
+typedef val_t (* parser_nodes___Start___n_base_t)(val_t  self);
+val_t parser_nodes___Start___n_base(val_t  self);
+typedef void (* parser_nodes___Start___n_base__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___Start___n_base__eq(val_t  self, val_t  param0);
+#define ATTR_parser_nodes___Start____n_eof(recv) ATTR(recv, COLOR_parser_nodes___Start____n_eof)
+typedef val_t (* parser_nodes___Start___n_eof_t)(val_t  self);
+val_t parser_nodes___Start___n_eof(val_t  self);
+typedef void (* parser_nodes___Start___n_eof__eq_t)(val_t  self, val_t  param0);
+void parser_nodes___Start___n_eof__eq(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/parser_prod._sep.c b/c_src/parser_prod._sep.c
new file mode 100644 (file)
index 0000000..e5aef11
--- /dev/null
@@ -0,0 +1,19713 @@
+#include "parser_prod._sep.h"
+val_t parser_prod___PNode___parent(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::parent (src/parser//parser_prod.nit:9,2--10:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
+}
+void parser_prod___PNode___parent__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::parent= (src/parser//parser_prod.nit:9,2--10:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___PNode___remove_child(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::remove_child (src/parser//parser_prod.nit:12,2--15:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((parser_prod___PNode___replace_child_t)CALL( self,COLOR_parser_prod___PNode___replace_child))( self,  variable0 /*child*/,  NIT_NULL /*null*/) /*PNode::replace_child*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___PNode___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::replace_child (src/parser//parser_prod.nit:18,2--19:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method replace_child called (src/parser//parser_prod.nit:18,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___PNode___replace_with(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::replace_with (src/parser//parser_prod.nit:21,2--25:35)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_prod___PNode____parent( self) /*PNode::_parent*/;
+    ((parser_prod___PNode___replace_child_t)CALL(variable1,COLOR_parser_prod___PNode___replace_child))(variable1,  self,  variable0 /*node*/) /*PNode::replace_child*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___PNode___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::visit_all (src/parser//parser_prod.nit:29,2--31:26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method visit_all called (src/parser//parser_prod.nit:29,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___PNode___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::visit_all_reverse (src/parser//parser_prod.nit:33,2--35:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method visit_all_reverse called (src/parser//parser_prod.nit:33,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_prod___PNode___locate(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::locate (src/parser//parser_prod.nit:37,2--38:20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method locate called (src/parser//parser_prod.nit:37,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void parser_prod___PNode___printl(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::PNode::printl (src/parser//parser_prod.nit:40,2--43:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 = ((parser_prod___PNode___locate_t)CALL( self,COLOR_parser_prod___PNode___locate))( self) /*PNode::locate*/;
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+  variable8 =  variable0 /*str*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
+  ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable1) /*PNode::print*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Token___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Token::visit_all (src/parser//parser_prod.nit:48,2--32)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Token___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Token::visit_all_reverse (src/parser//parser_prod.nit:49,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Token___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::Token::replace_child (src/parser//parser_prod.nit:50,2--60)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_prod___Token___locate(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::Token::locate (src/parser//parser_prod.nit:52,2--54:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = ((lexer___Token___filename_t)CALL( self,COLOR_lexer___Token___filename))( self) /*Token::filename*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  variable7 = ((lexer___Token___line_t)CALL( self,COLOR_lexer___Token___line))( self) /*Token::line*/;
+  variable8 = variable7;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
+  variable11 = ((lexer___Token___pos_t)CALL( self,COLOR_lexer___Token___pos))( self) /*Token::pos*/;
+  variable12 = variable11;
+  variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
+  variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable14 = variable13;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_prod___Prod___first_token(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::first_token (src/parser//parser_prod.nit:59,2--60:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/;
+}
+void parser_prod___Prod___first_token__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::first_token= (src/parser//parser_prod.nit:59,2--60:43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_prod___Prod____first_token( self) /*Prod::_first_token*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_prod___Prod___last_token(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::last_token (src/parser//parser_prod.nit:62,2--63:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/;
+}
+void parser_prod___Prod___last_token__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::last_token= (src/parser//parser_prod.nit:62,2--63:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_parser_prod___Prod____last_token( self) /*Prod::_last_token*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_prod___Prod___locate(val_t  self) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::locate (src/parser//parser_prod.nit:65,2--74:61)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Token::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_string___String___with_native(BOX_NativeString("????"), TAG_Int(4)); /*new String*/
+    goto return_label7;
+  }
+  variable1 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
+  variable1 = ((lexer___Token___pos_t)CALL(variable1,COLOR_lexer___Token___pos))(variable1) /*Token::pos*/;
+  variable2 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
+  variable2 = ((lexer___Token___text_t)CALL(variable2,COLOR_lexer___Token___text))(variable2) /*Token::text*/;
+  variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int(variable2));
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  variable0 = variable1;
+  variable1 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
+  variable1 = ((lexer___Token___line_t)CALL(variable1,COLOR_lexer___Token___line))(variable1) /*Token::line*/;
+  variable2 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
+  variable2 = ((lexer___Token___line_t)CALL(variable2,COLOR_lexer___Token___line))(variable2) /*Token::line*/;
+  variable1 = TAG_Bool((variable1)==(variable2));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
+    variable4 = ((parser_prod___Token___locate_t)CALL(variable4,COLOR_parser_prod___PNode___locate))(variable4) /*Token::locate*/;
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+    variable8 =  variable0 /*lastpos*/;
+    variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
+    variable0 = variable1;
+    goto return_label7;
+  } else { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
+    variable4 = ((parser_prod___Token___locate_t)CALL(variable4,COLOR_parser_prod___PNode___locate))(variable4) /*Token::locate*/;
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+    variable8 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
+    variable8 = ((lexer___Token___line_t)CALL(variable8,COLOR_lexer___Token___line))(variable8) /*Token::line*/;
+    variable9 = variable8;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable11) /*String::append*/;
+    variable12 =  variable0 /*lastpos*/;
+    variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable14) /*String::append*/;
+    variable0 = variable1;
+    goto return_label7;
+  }
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void parser_prod___Prod___replace_with(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Prod::replace_with (src/parser//parser_prod.nit:78,2--83:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((parser_prod___Prod___replace_with_t)CALL( self,COLOR_SUPER_parser_prod___Prod___replace_with))( self,  param0) /*super Prod::replace_with*/;
+  variable1 = TAG_Bool(( variable0 /*n*/==NIT_NULL) || VAL_ISA( variable0 /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:81,3--19\n"); nit_exit(1);}
+  variable1 = ((parser_prod___Prod___first_token_t)CALL( self,COLOR_parser_prod___Prod___first_token))( self) /*Prod::first_token*/;
+  ((parser_prod___Prod___first_token__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___Prod___first_token__eq))( variable0 /*n*/, variable1) /*Prod::first_token=*/;
+  variable1 = ((parser_prod___Prod___last_token_t)CALL( self,COLOR_parser_prod___Prod___last_token))( self) /*Prod::last_token*/;
+  ((parser_prod___Prod___last_token__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___Prod___last_token__eq))( variable0 /*n*/, variable1) /*Prod::last_token=*/;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Visitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Visitor::visit (src/parser//parser_prod.nit:89,9--92:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method visit called (src/parser//parser_prod.nit:89,9)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___n_packagedecl__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::n_packagedecl= (src/parser//parser_prod.nit:96,5--100:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PPackagedecl::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::empty_init (src/parser//parser_prod.nit:104,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___init_amodule(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::init_amodule (src/parser//parser_prod.nit:106,5--126:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i]) return;
+  ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ =  variable0 /*n_packagedecl*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_packagedecl*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_packagedecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_packagedecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_packagedecl*/,  NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_packagedecl*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_packagedecl*/,  self) /*PPackagedecl::parent=*/;
+  }
+  variable3 = NEW_list___List___init(); /*new List[PImport]*/
+  ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/ = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_imports*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_imports*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:118,3--22\n"); nit_exit(1);}
+    variable5 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/,  self) /*PImport::parent=*/;
+    continue_12: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_12: while(0);
+  variable3 = NEW_list___List___init(); /*new List[PClassdef]*/
+  ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/ = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_classdefs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_classdefs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:124,3--24\n"); nit_exit(1);}
+    variable5 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/,  self) /*PClassdef::parent=*/;
+    continue_13: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_13: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AModule].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::replace_child (src/parser//parser_prod.nit:130,5--164:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:132,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PPackagedecl::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:136,3--35\n"); nit_exit(1);}
+      ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label14;
+  }
+  variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PImport::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:146,7--34\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PImport::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label14;
+    }
+    continue_15: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_15: while(0);
+  variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PClassdef::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:158,7--36\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PClassdef::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label14;
+    }
+    continue_16: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_16: while(0);
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::visit_all (src/parser//parser_prod.nit:169,5--178:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_18: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_18: while(0);
+  variable1 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_19: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_19: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AModule___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AModule::visit_all_reverse (src/parser//parser_prod.nit:182,5--198:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PPackagedecl::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AModule____n_packagedecl( self) /*AModule::_n_packagedecl*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AModule____n_imports( self) /*AModule::_n_imports*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_21: while(0);
+  }
+  break_21: while(0);
+  variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AModule____n_classdefs( self) /*AModule::_n_classdefs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_22: while(0);
+  }
+  break_22: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::n_doc= (src/parser//parser_prod.nit:204,5--208:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::n_kwpackage= (src/parser//parser_prod.nit:211,5--215:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwpackage::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::n_id= (src/parser//parser_prod.nit:218,5--222:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::empty_init (src/parser//parser_prod.nit:226,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___init_apackagedecl(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::init_apackagedecl (src/parser//parser_prod.nit:228,5--244:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i]) return;
+  ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ =  variable0 /*n_doc*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ =  variable1 /*n_kwpackage*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwpackage*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwpackage*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwpackage*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwpackage*/,  NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwpackage*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwpackage*/,  self) /*TKwpackage::parent=*/;
+  }
+  ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ =  variable2 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::replace_child (src/parser//parser_prod.nit:248,5--279:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:250,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:254,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label28;
+  }
+  variable2 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwpackage::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:264,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label28;
+  }
+  variable2 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:274,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label28;
+  }
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::visit_all (src/parser//parser_prod.nit:283,5--292:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APackagedecl___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APackagedecl::visit_all_reverse (src/parser//parser_prod.nit:296,5--305:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_doc( self) /*APackagedecl::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwpackage::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_kwpackage( self) /*APackagedecl::_n_kwpackage*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APackagedecl____n_id( self) /*APackagedecl::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::n_visibility= (src/parser//parser_prod.nit:310,5--314:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___n_kwimport__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::n_kwimport= (src/parser//parser_prod.nit:317,5--321:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwimport::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::n_id= (src/parser//parser_prod.nit:324,5--328:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::empty_init (src/parser//parser_prod.nit:332,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___init_aimport(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::init_aimport (src/parser//parser_prod.nit:334,5--350:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i]) return;
+  ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ =  variable0 /*n_visibility*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ =  variable1 /*n_kwimport*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwimport*/,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwimport*/,  self) /*TKwimport::parent=*/;
+  }
+  ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ =  variable2 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImport].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::replace_child (src/parser//parser_prod.nit:354,5--385:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:356,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:360,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label36;
+  }
+  variable2 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwimport::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:370,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label36;
+  }
+  variable2 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:380,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label36;
+  }
+  return_label36: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::visit_all (src/parser//parser_prod.nit:389,5--398:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImport___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImport::visit_all_reverse (src/parser//parser_prod.nit:402,5--411:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_visibility( self) /*AImport::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_kwimport( self) /*AImport::_n_kwimport*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AImport____n_id( self) /*AImport::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::n_visibility= (src/parser//parser_prod.nit:416,5--420:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___n_kwimport__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::n_kwimport= (src/parser//parser_prod.nit:423,5--427:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwimport::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___n_kwend__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::n_kwend= (src/parser//parser_prod.nit:430,5--434:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwend::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwend::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::empty_init (src/parser//parser_prod.nit:438,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___init_anoimport(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::init_anoimport (src/parser//parser_prod.nit:440,5--456:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i]) return;
+  ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ =  variable0 /*n_visibility*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ =  variable1 /*n_kwimport*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwimport*/,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwimport*/,  self) /*TKwimport::parent=*/;
+  }
+  ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ =  variable2 /*n_kwend*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwend*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_kwend*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwend*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwend*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwend*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwend*/,  NIT_NULL /*null*/) /*TKwend::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwend*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwend*/,  self) /*TKwend::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANoImport].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::replace_child (src/parser//parser_prod.nit:460,5--491:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:462,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:466,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label44;
+  }
+  variable2 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwimport::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:476,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label44;
+  }
+  variable2 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwend::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:486,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label44;
+  }
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::visit_all (src/parser//parser_prod.nit:495,5--504:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwend::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANoImport___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANoImport::visit_all_reverse (src/parser//parser_prod.nit:508,5--517:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_visibility( self) /*ANoImport::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwimport::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_kwimport( self) /*ANoImport::_n_kwimport*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwend::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANoImport____n_kwend( self) /*ANoImport::_n_kwend*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APublicVisibility___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APublicVisibility::empty_init (src/parser//parser_prod.nit:523,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APublicVisibility___init_apublicvisibility(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APublicVisibility::init_apublicvisibility (src/parser//parser_prod.nit:525,5--31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APublicVisibility___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APublicVisibility::replace_child (src/parser//parser_prod.nit:529,5--531:32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:531,9--32\n"); nit_exit(1);}
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APublicVisibility___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APublicVisibility::visit_all (src/parser//parser_prod.nit:534,5--35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APublicVisibility___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APublicVisibility::visit_all_reverse (src/parser//parser_prod.nit:538,5--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::n_kwprivate= (src/parser//parser_prod.nit:543,5--547:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwprivate::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::empty_init (src/parser//parser_prod.nit:551,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::init_aprivatevisibility (src/parser//parser_prod.nit:553,5--559:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
+  ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ =  variable0 /*n_kwprivate*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwprivate*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwprivate*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwprivate*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwprivate*/,  NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwprivate*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwprivate*/,  self) /*TKwprivate::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::replace_child (src/parser//parser_prod.nit:563,5--574:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:565,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwprivate::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:569,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label55;
+  }
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::visit_all (src/parser//parser_prod.nit:578,5--581:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APrivateVisibility___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APrivateVisibility::visit_all_reverse (src/parser//parser_prod.nit:585,5--588:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwprivate::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APrivateVisibility____n_kwprivate( self) /*APrivateVisibility::_n_kwprivate*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::n_kwprotected= (src/parser//parser_prod.nit:593,5--597:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwprotected::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::empty_init (src/parser//parser_prod.nit:601,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::init_aprotectedvisibility (src/parser//parser_prod.nit:603,5--609:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
+  ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ =  variable0 /*n_kwprotected*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwprotected*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwprotected*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwprotected*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwprotected*/,  NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwprotected*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwprotected*/,  self) /*TKwprotected::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::replace_child (src/parser//parser_prod.nit:613,5--624:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:615,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwprotected::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:619,3--35\n"); nit_exit(1);}
+      ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label61;
+  }
+  return_label61: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::visit_all (src/parser//parser_prod.nit:628,5--631:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AProtectedVisibility___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AProtectedVisibility::visit_all_reverse (src/parser//parser_prod.nit:635,5--638:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwprotected::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected( self) /*AProtectedVisibility::_n_kwprotected*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::n_kwintrude= (src/parser//parser_prod.nit:643,5--647:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwintrude::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::empty_init (src/parser//parser_prod.nit:651,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::init_aintrudevisibility (src/parser//parser_prod.nit:653,5--659:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
+  ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ =  variable0 /*n_kwintrude*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwintrude*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwintrude*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwintrude*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwintrude*/,  NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwintrude*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwintrude*/,  self) /*TKwintrude::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::replace_child (src/parser//parser_prod.nit:663,5--674:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:665,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwintrude::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:669,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label67;
+  }
+  return_label67: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::visit_all (src/parser//parser_prod.nit:678,5--681:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntrudeVisibility::visit_all_reverse (src/parser//parser_prod.nit:685,5--688:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwintrude::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude( self) /*AIntrudeVisibility::_n_kwintrude*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::n_doc= (src/parser//parser_prod.nit:693,5--697:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::n_kwredef= (src/parser//parser_prod.nit:700,5--704:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::n_visibility= (src/parser//parser_prod.nit:707,5--711:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___n_classkind__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::n_classkind= (src/parser//parser_prod.nit:714,5--718:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PClasskind::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PClasskind::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::n_id= (src/parser//parser_prod.nit:721,5--725:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TClassid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::empty_init (src/parser//parser_prod.nit:729,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___init_aclassdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::init_aclassdef (src/parser//parser_prod.nit:731,5--778:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+    val_t variable9;
+    val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable6 =  param6;
+  variable7 =  param7;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i]) return;
+  ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ =  variable3 /*n_classkind*/;
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_classkind*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_classkind*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_classkind*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_classkind*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_classkind*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_classkind*/,  NIT_NULL /*null*/) /*PClasskind::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_classkind*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_classkind*/,  self) /*PClasskind::parent=*/;
+  }
+  ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ =  variable4 /*n_id*/;
+  variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_id*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_id*/,  self) /*TClassid::parent=*/;
+  }
+  variable8 = NEW_list___List___init(); /*new List[PFormaldef]*/
+  ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/ = variable8;
+  variable8 = ((array___AbstractArray___iterator_t)CALL( variable5 /*n_formaldefs*/,COLOR_abstract_collection___Collection___iterator))( variable5 /*n_formaldefs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable9)) break; /*for*/
+    variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+    variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:764,3--25\n"); nit_exit(1);}
+    variable10 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  variable9 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/,  self) /*PFormaldef::parent=*/;
+    continue_77: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+  }
+  break_77: while(0);
+  variable8 = NEW_list___List___init(); /*new List[PSuperclass]*/
+  ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/ = variable8;
+  variable8 = ((array___AbstractArray___iterator_t)CALL( variable6 /*n_superclasses*/,COLOR_abstract_collection___Collection___iterator))( variable6 /*n_superclasses*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable9)) break; /*for*/
+    variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+    variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:770,3--26\n"); nit_exit(1);}
+    variable10 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  variable9 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/,  self) /*PSuperclass::parent=*/;
+    continue_78: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+  }
+  break_78: while(0);
+  variable8 = NEW_list___List___init(); /*new List[PPropdef]*/
+  ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/ = variable8;
+  variable8 = ((array___AbstractArray___iterator_t)CALL( variable7 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable7 /*n_propdefs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable9)) break; /*for*/
+    variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+    variable10 = TAG_Bool(( variable9 /*n*/==NIT_NULL) || VAL_ISA( variable9 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:776,3--23\n"); nit_exit(1);}
+    variable10 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  variable9 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable9 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable9 /*n*/,  self) /*PPropdef::parent=*/;
+    continue_79: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+  }
+  break_79: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::replace_child (src/parser//parser_prod.nit:782,5--868:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:784,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:788,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label80;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:798,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label80;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:808,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label80;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PClasskind::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:818,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label80;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TClassid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:828,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label80;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PFormaldef::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:838,7--37\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PFormaldef::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label80;
+    }
+    continue_81: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_81: while(0);
+  variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PSuperclass::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:850,7--38\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PSuperclass::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label80;
+    }
+    continue_82: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_82: while(0);
+  variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PPropdef::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:862,7--35\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PPropdef::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label80;
+    }
+    continue_83: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_83: while(0);
+  return_label80: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::visit_all (src/parser//parser_prod.nit:873,5--897:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PClasskind::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_85: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_85: while(0);
+  variable1 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_86: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_86: while(0);
+  variable1 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_87: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_87: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AClassdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AClassdef::visit_all_reverse (src/parser//parser_prod.nit:901,5--936:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_doc( self) /*AClassdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_kwredef( self) /*AClassdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_visibility( self) /*AClassdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PClasskind::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_classkind( self) /*AClassdef::_n_classkind*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AClassdef____n_id( self) /*AClassdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AClassdef____n_formaldefs( self) /*AClassdef::_n_formaldefs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_89: while(0);
+  }
+  break_89: while(0);
+  variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AClassdef____n_superclasses( self) /*AClassdef::_n_superclasses*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_90: while(0);
+  }
+  break_90: while(0);
+  variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AClassdef____n_propdefs( self) /*AClassdef::_n_propdefs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_91: while(0);
+  }
+  break_91: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATopClassdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATopClassdef::empty_init (src/parser//parser_prod.nit:943,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATopClassdef___init_atopclassdef(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATopClassdef::init_atopclassdef (src/parser//parser_prod.nit:945,5--953:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[PPropdef]*/
+  ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_propdefs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:951,3--23\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*PPropdef::parent=*/;
+    continue_94: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_94: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATopClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATopClassdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ATopClassdef::replace_child (src/parser//parser_prod.nit:957,5--969:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:959,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PPropdef::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:963,7--35\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PPropdef::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label95;
+    }
+    continue_96: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_96: while(0);
+  return_label95: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATopClassdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATopClassdef::visit_all (src/parser//parser_prod.nit:974,5--977:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_98: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_98: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATopClassdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATopClassdef::visit_all_reverse (src/parser//parser_prod.nit:981,5--987:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ATopClassdef____n_propdefs( self) /*ATopClassdef::_n_propdefs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_100: while(0);
+  }
+  break_100: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainClassdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMainClassdef::empty_init (src/parser//parser_prod.nit:994,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainClassdef___init_amainclassdef(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMainClassdef::init_amainclassdef (src/parser//parser_prod.nit:996,5--1004:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[PPropdef]*/
+  ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_propdefs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1002,3--23\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*PPropdef::parent=*/;
+    continue_103: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_103: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainClassdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainClassdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMainClassdef::replace_child (src/parser//parser_prod.nit:1008,5--1020:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1010,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PPropdef::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1014,7--35\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PPropdef::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label104;
+    }
+    continue_105: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_105: while(0);
+  return_label104: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainClassdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainClassdef::visit_all (src/parser//parser_prod.nit:1025,5--1028:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_107: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_107: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainClassdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainClassdef::visit_all_reverse (src/parser//parser_prod.nit:1032,5--1038:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AMainClassdef____n_propdefs( self) /*AMainClassdef::_n_propdefs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_109: while(0);
+  }
+  break_109: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::n_kwclass= (src/parser//parser_prod.nit:1044,5--1048:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwclass::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::empty_init (src/parser//parser_prod.nit:1052,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::init_aconcreteclasskind (src/parser//parser_prod.nit:1054,5--1060:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
+  ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ =  variable0 /*n_kwclass*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwclass*/,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwclass*/,  self) /*TKwclass::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::replace_child (src/parser//parser_prod.nit:1064,5--1075:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1066,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwclass::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1070,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label113;
+  }
+  return_label113: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::visit_all (src/parser//parser_prod.nit:1079,5--1082:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteClasskind___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteClasskind::visit_all_reverse (src/parser//parser_prod.nit:1086,5--1089:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteClasskind____n_kwclass( self) /*AConcreteClasskind::_n_kwclass*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::n_kwabstract= (src/parser//parser_prod.nit:1094,5--1098:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwabstract::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::n_kwclass= (src/parser//parser_prod.nit:1101,5--1105:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwclass::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::empty_init (src/parser//parser_prod.nit:1109,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::init_aabstractclasskind (src/parser//parser_prod.nit:1111,5--1122:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
+  ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ =  variable0 /*n_kwabstract*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwabstract*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwabstract*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwabstract*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwabstract*/,  NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwabstract*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwabstract*/,  self) /*TKwabstract::parent=*/;
+  }
+  ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ =  variable1 /*n_kwclass*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwclass*/,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwclass*/,  self) /*TKwclass::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::replace_child (src/parser//parser_prod.nit:1126,5--1147:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1128,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwabstract::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1132,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label120;
+  }
+  variable2 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwclass::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1142,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label120;
+  }
+  return_label120: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::visit_all (src/parser//parser_prod.nit:1151,5--1157:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbstractClasskind___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbstractClasskind::visit_all_reverse (src/parser//parser_prod.nit:1161,5--1167:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwabstract::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract( self) /*AAbstractClasskind::_n_kwabstract*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwclass::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbstractClasskind____n_kwclass( self) /*AAbstractClasskind::_n_kwclass*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::n_kwinterface= (src/parser//parser_prod.nit:1172,5--1176:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwinterface::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::empty_init (src/parser//parser_prod.nit:1180,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::init_ainterfaceclasskind (src/parser//parser_prod.nit:1182,5--1188:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
+  ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ =  variable0 /*n_kwinterface*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwinterface*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwinterface*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwinterface*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwinterface*/,  NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwinterface*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwinterface*/,  self) /*TKwinterface::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::replace_child (src/parser//parser_prod.nit:1192,5--1203:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1194,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwinterface::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1198,3--35\n"); nit_exit(1);}
+      ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label126;
+  }
+  return_label126: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::visit_all (src/parser//parser_prod.nit:1207,5--1210:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInterfaceClasskind::visit_all_reverse (src/parser//parser_prod.nit:1214,5--1217:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinterface::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface( self) /*AInterfaceClasskind::_n_kwinterface*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::n_kwuniversal= (src/parser//parser_prod.nit:1222,5--1226:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwuniversal::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::empty_init (src/parser//parser_prod.nit:1230,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::init_auniversalclasskind (src/parser//parser_prod.nit:1232,5--1238:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
+  ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ =  variable0 /*n_kwuniversal*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwuniversal*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwuniversal*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwuniversal*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwuniversal*/,  NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwuniversal*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwuniversal*/,  self) /*TKwuniversal::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::replace_child (src/parser//parser_prod.nit:1242,5--1253:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1244,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwuniversal::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1248,3--35\n"); nit_exit(1);}
+      ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label132;
+  }
+  return_label132: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::visit_all (src/parser//parser_prod.nit:1257,5--1260:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUniversalClasskind___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUniversalClasskind::visit_all_reverse (src/parser//parser_prod.nit:1264,5--1267:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwuniversal::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal( self) /*AUniversalClasskind::_n_kwuniversal*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::n_id= (src/parser//parser_prod.nit:1272,5--1276:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TClassid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::n_type= (src/parser//parser_prod.nit:1279,5--1283:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::empty_init (src/parser//parser_prod.nit:1287,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___init_aformaldef(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::init_aformaldef (src/parser//parser_prod.nit:1289,5--1300:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i]) return;
+  ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ =  variable0 /*n_id*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TClassid::parent=*/;
+  }
+  ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ =  variable1 /*n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::replace_child (src/parser//parser_prod.nit:1304,5--1325:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1306,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TClassid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1310,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label139;
+  }
+  variable2 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1320,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label139;
+  }
+  return_label139: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::visit_all (src/parser//parser_prod.nit:1329,5--1335:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFormaldef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFormaldef::visit_all_reverse (src/parser//parser_prod.nit:1339,5--1345:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFormaldef____n_id( self) /*AFormaldef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFormaldef____n_type( self) /*AFormaldef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::n_kwspecial= (src/parser//parser_prod.nit:1350,5--1354:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwspecial::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::n_type= (src/parser//parser_prod.nit:1357,5--1361:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::empty_init (src/parser//parser_prod.nit:1365,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___init_asuperclass(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::init_asuperclass (src/parser//parser_prod.nit:1367,5--1378:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i]) return;
+  ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ =  variable0 /*n_kwspecial*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwspecial*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwspecial*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwspecial*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwspecial*/,  NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwspecial*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwspecial*/,  self) /*TKwspecial::parent=*/;
+  }
+  ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ =  variable1 /*n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::replace_child (src/parser//parser_prod.nit:1382,5--1403:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1384,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwspecial::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1388,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label146;
+  }
+  variable2 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1398,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label146;
+  }
+  return_label146: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::visit_all (src/parser//parser_prod.nit:1407,5--1413:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperclass___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperclass::visit_all_reverse (src/parser//parser_prod.nit:1417,5--1423:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwspecial::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperclass____n_kwspecial( self) /*ASuperclass::_n_kwspecial*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperclass____n_type( self) /*ASuperclass::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_doc= (src/parser//parser_prod.nit:1428,5--1432:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_readable= (src/parser//parser_prod.nit:1435,5--1439:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAble::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_writable= (src/parser//parser_prod.nit:1442,5--1446:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAble::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_kwredef= (src/parser//parser_prod.nit:1449,5--1453:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_visibility= (src/parser//parser_prod.nit:1456,5--1460:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_kwattr= (src/parser//parser_prod.nit:1463,5--1467:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwattr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwattr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_id= (src/parser//parser_prod.nit:1470,5--1474:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAttrid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_type= (src/parser//parser_prod.nit:1477,5--1481:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::n_expr= (src/parser//parser_prod.nit:1484,5--1488:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::empty_init (src/parser//parser_prod.nit:1492,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___init_aattrpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, val_t  param8, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::init_aattrpropdef (src/parser//parser_prod.nit:1494,5--1540:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable6 =  param6;
+  variable7 =  param7;
+  variable8 =  param8;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ =  variable1 /*n_readable*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_readable*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_readable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_readable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_readable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_readable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_readable*/,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_readable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_readable*/,  self) /*PAble::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ =  variable2 /*n_writable*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_writable*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_writable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_writable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_writable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_writable*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_writable*/,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_writable*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_writable*/,  self) /*PAble::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ =  variable3 /*n_kwredef*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ =  variable4 /*n_visibility*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ =  variable5 /*n_kwattr*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_kwattr*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_kwattr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_kwattr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_kwattr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_kwattr*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_kwattr*/,  NIT_NULL /*null*/) /*TKwattr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_kwattr*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_kwattr*/,  self) /*TKwattr::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ =  variable6 /*n_id*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable6 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_id*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_id*/,  self) /*TAttrid::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ =  variable7 /*n_type*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable7 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable7 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable7 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable7 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ =  variable8 /*n_expr*/;
+  variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable8 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable8 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable8 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable9)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable8 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable8 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::replace_child (src/parser//parser_prod.nit:1544,5--1635:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1546,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1550,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAble::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1560,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAble::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1570,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1580,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1590,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwattr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1600,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAttrid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1610,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1620,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  variable2 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1630,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label160;
+  }
+  return_label160: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::visit_all (src/parser//parser_prod.nit:1639,5--1666:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwattr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrPropdef::visit_all_reverse (src/parser//parser_prod.nit:1670,5--1697:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AAttrPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_readable( self) /*AAttrPropdef::_n_readable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAble::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_writable( self) /*AAttrPropdef::_n_writable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwredef( self) /*AAttrPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_visibility( self) /*AAttrPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwattr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_kwattr( self) /*AAttrPropdef::_n_kwattr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_id( self) /*AAttrPropdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_type( self) /*AAttrPropdef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrPropdef____n_expr( self) /*AAttrPropdef::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::n_doc= (src/parser//parser_prod.nit:1702,5--1706:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::n_kwredef= (src/parser//parser_prod.nit:1709,5--1713:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::n_visibility= (src/parser//parser_prod.nit:1716,5--1720:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::n_methid= (src/parser//parser_prod.nit:1723,5--1727:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::n_signature= (src/parser//parser_prod.nit:1730,5--1734:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::empty_init (src/parser//parser_prod.nit:1738,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___init_amethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::init_amethpropdef (src/parser//parser_prod.nit:1740,5--1766:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ =  variable3 /*n_methid*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ =  variable4 /*n_signature*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::replace_child (src/parser//parser_prod.nit:1770,5--1821:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1772,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1776,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label170;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1786,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label170;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1796,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label170;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1806,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label170;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1816,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label170;
+  }
+  return_label170: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::visit_all (src/parser//parser_prod.nit:1825,5--1840:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:1844,5--1859:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_doc= (src/parser//parser_prod.nit:1864,5--1868:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_kwredef= (src/parser//parser_prod.nit:1871,5--1875:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_visibility= (src/parser//parser_prod.nit:1878,5--1882:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_kwmeth= (src/parser//parser_prod.nit:1885,5--1889:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwmeth::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_methid= (src/parser//parser_prod.nit:1892,5--1896:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::n_signature= (src/parser//parser_prod.nit:1899,5--1903:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::empty_init (src/parser//parser_prod.nit:1907,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::init_adeferredmethpropdef (src/parser//parser_prod.nit:1909,5--1940:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ =  variable3 /*n_kwmeth*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/,  self) /*TKwmeth::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ =  variable4 /*n_methid*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ =  variable5 /*n_signature*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::replace_child (src/parser//parser_prod.nit:1944,5--2005:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1946,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1950,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1960,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1970,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  variable2 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwmeth::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1980,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:1990,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2000,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label181;
+  }
+  return_label181: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::visit_all (src/parser//parser_prod.nit:2009,5--2027:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADeferredMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:2031,5--2049:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ADeferredMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*ADeferredMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*ADeferredMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth( self) /*ADeferredMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*ADeferredMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*ADeferredMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_doc= (src/parser//parser_prod.nit:2054,5--2058:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_kwredef= (src/parser//parser_prod.nit:2061,5--2065:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_visibility= (src/parser//parser_prod.nit:2068,5--2072:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_kwmeth= (src/parser//parser_prod.nit:2075,5--2079:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwmeth::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_methid= (src/parser//parser_prod.nit:2082,5--2086:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::n_signature= (src/parser//parser_prod.nit:2089,5--2093:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::empty_init (src/parser//parser_prod.nit:2097,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::init_ainternmethpropdef (src/parser//parser_prod.nit:2099,5--2130:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ =  variable3 /*n_kwmeth*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/,  self) /*TKwmeth::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ =  variable4 /*n_methid*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ =  variable5 /*n_signature*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::replace_child (src/parser//parser_prod.nit:2134,5--2195:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2136,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2140,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2150,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2160,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  variable2 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwmeth::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2170,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2180,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2190,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label192;
+  }
+  return_label192: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::visit_all (src/parser//parser_prod.nit:2199,5--2217:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInternMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInternMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:2221,5--2239:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AInternMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AInternMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AInternMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth( self) /*AInternMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AInternMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AInternMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_doc= (src/parser//parser_prod.nit:2244,5--2248:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_kwredef= (src/parser//parser_prod.nit:2251,5--2255:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_visibility= (src/parser//parser_prod.nit:2258,5--2262:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_kwmeth= (src/parser//parser_prod.nit:2265,5--2269:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwmeth::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_methid= (src/parser//parser_prod.nit:2272,5--2276:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_signature= (src/parser//parser_prod.nit:2279,5--2283:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::n_extern= (src/parser//parser_prod.nit:2286,5--2290:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TString::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::empty_init (src/parser//parser_prod.nit:2294,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::init_aexternmethpropdef (src/parser//parser_prod.nit:2296,5--2332:24)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable6 =  param6;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ =  variable3 /*n_kwmeth*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/,  self) /*TKwmeth::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ =  variable4 /*n_methid*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ =  variable5 /*n_signature*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ =  variable6 /*n_extern*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_extern*/ ==  NIT_NULL /*null*/) || (( variable6 /*n_extern*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_extern*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_extern*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_extern*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_extern*/,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_extern*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_extern*/,  self) /*TString::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::replace_child (src/parser//parser_prod.nit:2336,5--2407:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2338,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2342,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2352,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2362,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwmeth::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2372,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2382,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2392,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  variable2 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TString::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2402,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label204;
+  }
+  return_label204: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::visit_all (src/parser//parser_prod.nit:2411,5--2432:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AExternMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AExternMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:2436,5--2457:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AExternMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AExternMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AExternMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth( self) /*AExternMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AExternMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AExternMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AExternMethPropdef____n_extern( self) /*AExternMethPropdef::_n_extern*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_doc= (src/parser//parser_prod.nit:2462,5--2466:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_kwredef= (src/parser//parser_prod.nit:2469,5--2473:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_visibility= (src/parser//parser_prod.nit:2476,5--2480:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_kwmeth= (src/parser//parser_prod.nit:2483,5--2487:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwmeth::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_methid= (src/parser//parser_prod.nit:2490,5--2494:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_signature= (src/parser//parser_prod.nit:2497,5--2501:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::n_block= (src/parser//parser_prod.nit:2504,5--2508:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::empty_init (src/parser//parser_prod.nit:2512,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef (src/parser//parser_prod.nit:2514,5--2550:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable6 =  param6;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
+  ((parser_prod___AMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AMethPropdef___empty_init))( self, init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ =  variable3 /*n_kwmeth*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwmeth*/,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwmeth*/,  self) /*TKwmeth::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ =  variable4 /*n_methid*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ =  variable5 /*n_signature*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ =  variable6 /*n_block*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable6 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::replace_child (src/parser//parser_prod.nit:2554,5--2625:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2556,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2560,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2570,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2580,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwmeth::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2590,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2600,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2610,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2620,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label216;
+  }
+  return_label216: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::visit_all (src/parser//parser_prod.nit:2629,5--2650:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:2654,5--2675:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteMethPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteMethPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwmeth::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth( self) /*AConcreteMethPropdef::_n_kwmeth*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteMethPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteMethPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteMethPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_doc= (src/parser//parser_prod.nit:2680,5--2684:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_kwredef= (src/parser//parser_prod.nit:2687,5--2691:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_visibility= (src/parser//parser_prod.nit:2694,5--2698:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_kwinit= (src/parser//parser_prod.nit:2701,5--2705:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwinit::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_methid= (src/parser//parser_prod.nit:2708,5--2712:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PMethid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_signature= (src/parser//parser_prod.nit:2715,5--2719:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PSignature::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::n_block= (src/parser//parser_prod.nit:2722,5--2726:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::empty_init (src/parser//parser_prod.nit:2730,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
+  ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::init_aconcreteinitpropdef (src/parser//parser_prod.nit:2732,5--2768:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable6 =  param6;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
+  ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ =  variable3 /*n_kwinit*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwinit*/,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwinit*/,  self) /*TKwinit::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ =  variable4 /*n_methid*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_methid*/,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_methid*/,  self) /*PMethid::parent=*/;
+  }
+  ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ =  variable5 /*n_signature*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_signature*/,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_signature*/,  self) /*PSignature::parent=*/;
+  }
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ =  variable6 /*n_block*/;
+  variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable6 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable6 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable6 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::replace_child (src/parser//parser_prod.nit:2772,5--2843:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2774,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2778,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2788,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2798,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwinit::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2808,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PMethid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2818,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PSignature::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2828,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2838,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label228;
+  }
+  return_label228: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::visit_all (src/parser//parser_prod.nit:2847,5--2868:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AConcreteInitPropdef::visit_all_reverse (src/parser//parser_prod.nit:2872,5--2893:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*AConcreteInitPropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AConcreteInitPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_visibility( self) /*AConcreteInitPropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit( self) /*AConcreteInitPropdef::_n_kwinit*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PMethid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_methid( self) /*AConcreteInitPropdef::_n_methid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PSignature::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_signature( self) /*AConcreteInitPropdef::_n_signature*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AConcreteInitPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::n_kwredef= (src/parser//parser_prod.nit:2898,5--2902:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::n_block= (src/parser//parser_prod.nit:2905,5--2909:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::empty_init (src/parser//parser_prod.nit:2913,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
+  ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::init_amainmethpropdef (src/parser//parser_prod.nit:2915,5--2926:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
+  ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL( self,COLOR_parser_prod___AConcreteMethPropdef___empty_init))( self, init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
+  ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ =  variable0 /*n_kwredef*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ =  variable1 /*n_block*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::replace_child (src/parser//parser_prod.nit:2930,5--2951:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2932,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2936,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label235;
+  }
+  variable2 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:2946,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label235;
+  }
+  return_label235: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::visit_all (src/parser//parser_prod.nit:2955,5--2961:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMainMethPropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMainMethPropdef::visit_all_reverse (src/parser//parser_prod.nit:2965,5--2971:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMethPropdef____n_kwredef( self) /*AMainMethPropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AConcreteMethPropdef____n_block( self) /*AMainMethPropdef::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_doc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_doc= (src/parser//parser_prod.nit:2976,5--2980:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PDoc::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_kwredef= (src/parser//parser_prod.nit:2983,5--2987:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_visibility= (src/parser//parser_prod.nit:2990,5--2994:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PVisibility::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_kwtype= (src/parser//parser_prod.nit:2997,5--3001:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwtype::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwtype::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_id= (src/parser//parser_prod.nit:3004,5--3008:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TClassid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::n_type= (src/parser//parser_prod.nit:3011,5--3015:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::empty_init (src/parser//parser_prod.nit:3019,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___init_atypepropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::init_atypepropdef (src/parser//parser_prod.nit:3021,5--3052:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
+  ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ =  variable0 /*n_doc*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_doc*/,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_doc*/,  self) /*PDoc::parent=*/;
+  }
+  ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ =  variable1 /*n_kwredef*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ =  variable2 /*n_visibility*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_visibility*/,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_visibility*/,  self) /*PVisibility::parent=*/;
+  }
+  ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ =  variable3 /*n_kwtype*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_kwtype*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_kwtype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwtype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_kwtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_kwtype*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_kwtype*/,  NIT_NULL /*null*/) /*TKwtype::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_kwtype*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_kwtype*/,  self) /*TKwtype::parent=*/;
+  }
+  ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ =  variable4 /*n_id*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_id*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_id*/,  self) /*TClassid::parent=*/;
+  }
+  ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ =  variable5 /*n_type*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::replace_child (src/parser//parser_prod.nit:3056,5--3117:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3058,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PDoc::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3062,3--27\n"); nit_exit(1);}
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  variable2 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3072,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  variable2 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PVisibility::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3082,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  variable2 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwtype::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3092,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  variable2 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TClassid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3102,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  variable2 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3112,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label246;
+  }
+  return_label246: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::visit_all (src/parser//parser_prod.nit:3121,5--3139:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwtype::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATypePropdef___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATypePropdef::visit_all_reverse (src/parser//parser_prod.nit:3143,5--3161:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PDoc::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PPropdef____n_doc( self) /*ATypePropdef::_n_doc*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_kwredef( self) /*ATypePropdef::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PVisibility::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_visibility( self) /*ATypePropdef::_n_visibility*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwtype::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_kwtype( self) /*ATypePropdef::_n_kwtype*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_id( self) /*ATypePropdef::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATypePropdef____n_type( self) /*ATypePropdef::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::n_kwredef= (src/parser//parser_prod.nit:3166,5--3170:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::n_kwreadable= (src/parser//parser_prod.nit:3173,5--3177:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwreadable::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::empty_init (src/parser//parser_prod.nit:3181,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___init_areadable(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::init_areadable (src/parser//parser_prod.nit:3183,5--3194:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i]) return;
+  ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ =  variable0 /*n_kwredef*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ =  variable1 /*n_kwreadable*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwreadable*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwreadable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwreadable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwreadable*/,  NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwreadable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwreadable*/,  self) /*TKwreadable::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReadAble].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::replace_child (src/parser//parser_prod.nit:3198,5--3219:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3200,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3204,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label253;
+  }
+  variable2 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwreadable::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3214,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label253;
+  }
+  return_label253: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::visit_all (src/parser//parser_prod.nit:3223,5--3229:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReadAble___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReadAble::visit_all_reverse (src/parser//parser_prod.nit:3233,5--3239:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AReadAble::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwreadable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReadAble____n_kwreadable( self) /*AReadAble::_n_kwreadable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___n_kwredef__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::n_kwredef= (src/parser//parser_prod.nit:3244,5--3248:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwredef::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::n_kwwritable= (src/parser//parser_prod.nit:3251,5--3255:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwwritable::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::empty_init (src/parser//parser_prod.nit:3259,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___init_awriteable(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::init_awriteable (src/parser//parser_prod.nit:3261,5--3272:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i]) return;
+  ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ =  variable0 /*n_kwredef*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwredef*/,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwredef*/,  self) /*TKwredef::parent=*/;
+  }
+  ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ =  variable1 /*n_kwwritable*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwwritable*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwwritable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwwritable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwwritable*/,  NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwwritable*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwwritable*/,  self) /*TKwwritable::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::replace_child (src/parser//parser_prod.nit:3276,5--3297:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3278,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwredef::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3282,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label260;
+  }
+  variable2 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwwritable::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3292,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label260;
+  }
+  return_label260: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::visit_all (src/parser//parser_prod.nit:3301,5--3307:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWriteAble___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWriteAble::visit_all_reverse (src/parser//parser_prod.nit:3311,5--3317:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwredef::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PAble____n_kwredef( self) /*AWriteAble::_n_kwredef*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwwritable::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWriteAble____n_kwwritable( self) /*AWriteAble::_n_kwwritable*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::n_id= (src/parser//parser_prod.nit:3322,5--3326:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::empty_init (src/parser//parser_prod.nit:3330,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___init_aidmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::init_aidmethid (src/parser//parser_prod.nit:3332,5--3338:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i]) return;
+  ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ =  variable0 /*n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::replace_child (src/parser//parser_prod.nit:3342,5--3353:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3344,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3348,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label266;
+  }
+  return_label266: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::visit_all (src/parser//parser_prod.nit:3357,5--3360:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIdMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIdMethid::visit_all_reverse (src/parser//parser_prod.nit:3364,5--3367:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIdMethid____n_id( self) /*AIdMethid::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___n_plus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::n_plus= (src/parser//parser_prod.nit:3372,5--3376:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TPlus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TPlus::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::empty_init (src/parser//parser_prod.nit:3380,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___init_aplusmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::init_aplusmethid (src/parser//parser_prod.nit:3382,5--3388:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i]) return;
+  ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ =  variable0 /*n_plus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_plus*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_plus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_plus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_plus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_plus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_plus*/,  NIT_NULL /*null*/) /*TPlus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_plus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_plus*/,  self) /*TPlus::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::replace_child (src/parser//parser_prod.nit:3392,5--3403:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3394,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TPlus::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3398,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label272;
+  }
+  return_label272: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::visit_all (src/parser//parser_prod.nit:3407,5--3410:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPlus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusMethid::visit_all_reverse (src/parser//parser_prod.nit:3414,5--3417:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPlus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APlusMethid____n_plus( self) /*APlusMethid::_n_plus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___n_minus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::n_minus= (src/parser//parser_prod.nit:3422,5--3426:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TMinus::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::empty_init (src/parser//parser_prod.nit:3430,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___init_aminusmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::init_aminusmethid (src/parser//parser_prod.nit:3432,5--3438:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
+  ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ =  variable0 /*n_minus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minus*/,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minus*/,  self) /*TMinus::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::replace_child (src/parser//parser_prod.nit:3442,5--3453:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3444,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TMinus::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3448,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label278;
+  }
+  return_label278: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::visit_all (src/parser//parser_prod.nit:3457,5--3460:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusMethid::visit_all_reverse (src/parser//parser_prod.nit:3464,5--3467:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMinusMethid____n_minus( self) /*AMinusMethid::_n_minus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___n_star__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::n_star= (src/parser//parser_prod.nit:3472,5--3476:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TStar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TStar::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::empty_init (src/parser//parser_prod.nit:3480,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___init_astarmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::init_astarmethid (src/parser//parser_prod.nit:3482,5--3488:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i]) return;
+  ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ =  variable0 /*n_star*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_star*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_star*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_star*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_star*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_star*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_star*/,  NIT_NULL /*null*/) /*TStar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_star*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_star*/,  self) /*TStar::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::replace_child (src/parser//parser_prod.nit:3492,5--3503:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3494,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TStar::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3498,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label284;
+  }
+  return_label284: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::visit_all (src/parser//parser_prod.nit:3507,5--3510:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarMethid::visit_all_reverse (src/parser//parser_prod.nit:3514,5--3517:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStarMethid____n_star( self) /*AStarMethid::_n_star*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___n_slash__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::n_slash= (src/parser//parser_prod.nit:3522,5--3526:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TSlash::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TSlash::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::empty_init (src/parser//parser_prod.nit:3530,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___init_aslashmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::init_aslashmethid (src/parser//parser_prod.nit:3532,5--3538:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
+  ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ =  variable0 /*n_slash*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_slash*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_slash*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_slash*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_slash*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_slash*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_slash*/,  NIT_NULL /*null*/) /*TSlash::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_slash*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_slash*/,  self) /*TSlash::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::replace_child (src/parser//parser_prod.nit:3542,5--3553:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3544,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TSlash::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3548,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label290;
+  }
+  return_label290: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::visit_all (src/parser//parser_prod.nit:3557,5--3560:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TSlash::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashMethid::visit_all_reverse (src/parser//parser_prod.nit:3564,5--3567:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TSlash::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASlashMethid____n_slash( self) /*ASlashMethid::_n_slash*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___n_percent__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::n_percent= (src/parser//parser_prod.nit:3572,5--3576:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TPercent::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TPercent::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::empty_init (src/parser//parser_prod.nit:3580,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___init_apercentmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::init_apercentmethid (src/parser//parser_prod.nit:3582,5--3588:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i]) return;
+  ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ =  variable0 /*n_percent*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_percent*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_percent*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_percent*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_percent*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_percent*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_percent*/,  NIT_NULL /*null*/) /*TPercent::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_percent*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_percent*/,  self) /*TPercent::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::replace_child (src/parser//parser_prod.nit:3592,5--3603:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3594,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TPercent::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3598,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label296;
+  }
+  return_label296: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::visit_all (src/parser//parser_prod.nit:3607,5--3610:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPercent::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentMethid::visit_all_reverse (src/parser//parser_prod.nit:3614,5--3617:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPercent::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APercentMethid____n_percent( self) /*APercentMethid::_n_percent*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___n_eq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::n_eq= (src/parser//parser_prod.nit:3622,5--3626:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TEq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TEq::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::empty_init (src/parser//parser_prod.nit:3630,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___init_aeqmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::init_aeqmethid (src/parser//parser_prod.nit:3632,5--3638:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i]) return;
+  ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ =  variable0 /*n_eq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_eq*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_eq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_eq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_eq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_eq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_eq*/,  NIT_NULL /*null*/) /*TEq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_eq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_eq*/,  self) /*TEq::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::replace_child (src/parser//parser_prod.nit:3642,5--3653:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3644,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TEq::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3648,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label302;
+  }
+  return_label302: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::visit_all (src/parser//parser_prod.nit:3657,5--3660:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TEq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqMethid::visit_all_reverse (src/parser//parser_prod.nit:3664,5--3667:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TEq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEqMethid____n_eq( self) /*AEqMethid::_n_eq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___n_ne__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::n_ne= (src/parser//parser_prod.nit:3672,5--3676:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TNe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TNe::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::empty_init (src/parser//parser_prod.nit:3680,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___init_anemethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::init_anemethid (src/parser//parser_prod.nit:3682,5--3688:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i]) return;
+  ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ =  variable0 /*n_ne*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_ne*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_ne*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_ne*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_ne*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_ne*/,  NIT_NULL /*null*/) /*TNe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_ne*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_ne*/,  self) /*TNe::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::replace_child (src/parser//parser_prod.nit:3692,5--3703:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3694,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TNe::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3698,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label308;
+  }
+  return_label308: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::visit_all (src/parser//parser_prod.nit:3707,5--3710:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TNe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeMethid::visit_all_reverse (src/parser//parser_prod.nit:3714,5--3717:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TNe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANeMethid____n_ne( self) /*ANeMethid::_n_ne*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___n_le__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::n_le= (src/parser//parser_prod.nit:3722,5--3726:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TLe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TLe::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::empty_init (src/parser//parser_prod.nit:3730,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___init_alemethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::init_alemethid (src/parser//parser_prod.nit:3732,5--3738:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i]) return;
+  ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ =  variable0 /*n_le*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_le*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_le*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_le*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_le*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_le*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_le*/,  NIT_NULL /*null*/) /*TLe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_le*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_le*/,  self) /*TLe::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::replace_child (src/parser//parser_prod.nit:3742,5--3753:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3744,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TLe::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3748,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label314;
+  }
+  return_label314: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::visit_all (src/parser//parser_prod.nit:3757,5--3760:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TLe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeMethid::visit_all_reverse (src/parser//parser_prod.nit:3764,5--3767:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TLe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ALeMethid____n_le( self) /*ALeMethid::_n_le*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___n_ge__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::n_ge= (src/parser//parser_prod.nit:3772,5--3776:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TGe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TGe::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::empty_init (src/parser//parser_prod.nit:3780,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___init_agemethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::init_agemethid (src/parser//parser_prod.nit:3782,5--3788:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i]) return;
+  ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ =  variable0 /*n_ge*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_ge*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_ge*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_ge*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_ge*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_ge*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_ge*/,  NIT_NULL /*null*/) /*TGe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_ge*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_ge*/,  self) /*TGe::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::replace_child (src/parser//parser_prod.nit:3792,5--3803:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3794,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TGe::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3798,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label320;
+  }
+  return_label320: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::visit_all (src/parser//parser_prod.nit:3807,5--3810:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TGe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeMethid::visit_all_reverse (src/parser//parser_prod.nit:3814,5--3817:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TGe::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AGeMethid____n_ge( self) /*AGeMethid::_n_ge*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___n_lt__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::n_lt= (src/parser//parser_prod.nit:3822,5--3826:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TLt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TLt::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::empty_init (src/parser//parser_prod.nit:3830,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___init_altmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::init_altmethid (src/parser//parser_prod.nit:3832,5--3838:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i]) return;
+  ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ =  variable0 /*n_lt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_lt*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_lt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_lt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_lt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_lt*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_lt*/,  NIT_NULL /*null*/) /*TLt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_lt*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_lt*/,  self) /*TLt::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::replace_child (src/parser//parser_prod.nit:3842,5--3853:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3844,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TLt::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3848,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label326;
+  }
+  return_label326: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::visit_all (src/parser//parser_prod.nit:3857,5--3860:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TLt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtMethid::visit_all_reverse (src/parser//parser_prod.nit:3864,5--3867:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TLt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ALtMethid____n_lt( self) /*ALtMethid::_n_lt*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___n_gt__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::n_gt= (src/parser//parser_prod.nit:3872,5--3876:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TGt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TGt::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::empty_init (src/parser//parser_prod.nit:3880,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___init_agtmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::init_agtmethid (src/parser//parser_prod.nit:3882,5--3888:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i]) return;
+  ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ =  variable0 /*n_gt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_gt*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_gt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_gt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_gt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_gt*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_gt*/,  NIT_NULL /*null*/) /*TGt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_gt*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_gt*/,  self) /*TGt::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::replace_child (src/parser//parser_prod.nit:3892,5--3903:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3894,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TGt::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3898,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label332;
+  }
+  return_label332: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::visit_all (src/parser//parser_prod.nit:3907,5--3910:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TGt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtMethid::visit_all_reverse (src/parser//parser_prod.nit:3914,5--3917:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TGt::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AGtMethid____n_gt( self) /*AGtMethid::_n_gt*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___n_obra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::n_obra= (src/parser//parser_prod.nit:3922,5--3926:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TObra::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___n_cbra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::n_cbra= (src/parser//parser_prod.nit:3929,5--3933:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TCbra::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::empty_init (src/parser//parser_prod.nit:3937,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___init_abramethid(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::init_abramethid (src/parser//parser_prod.nit:3939,5--3950:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i]) return;
+  ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ =  variable0 /*n_obra*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_obra*/,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_obra*/,  self) /*TObra::parent=*/;
+  }
+  ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ =  variable1 /*n_cbra*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_cbra*/,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_cbra*/,  self) /*TCbra::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::replace_child (src/parser//parser_prod.nit:3954,5--3975:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3956,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TObra::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3960,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label339;
+  }
+  variable2 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TCbra::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:3970,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label339;
+  }
+  return_label339: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::visit_all (src/parser//parser_prod.nit:3979,5--3985:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraMethid::visit_all_reverse (src/parser//parser_prod.nit:3989,5--3995:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraMethid____n_obra( self) /*ABraMethid::_n_obra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraMethid____n_cbra( self) /*ABraMethid::_n_cbra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::n_starship= (src/parser//parser_prod.nit:4000,5--4004:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TStarship::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TStarship::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::empty_init (src/parser//parser_prod.nit:4008,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___init_astarshipmethid(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::init_astarshipmethid (src/parser//parser_prod.nit:4010,5--4016:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
+  ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ =  variable0 /*n_starship*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_starship*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_starship*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_starship*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_starship*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_starship*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_starship*/,  NIT_NULL /*null*/) /*TStarship::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_starship*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_starship*/,  self) /*TStarship::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::replace_child (src/parser//parser_prod.nit:4020,5--4031:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4022,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TStarship::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4026,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label345;
+  }
+  return_label345: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::visit_all (src/parser//parser_prod.nit:4035,5--4038:31)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStarship::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipMethid::visit_all_reverse (src/parser//parser_prod.nit:4042,5--4045:31)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStarship::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStarshipMethid____n_starship( self) /*AStarshipMethid::_n_starship*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::n_id= (src/parser//parser_prod.nit:4050,5--4054:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::n_assign= (src/parser//parser_prod.nit:4057,5--4061:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::empty_init (src/parser//parser_prod.nit:4065,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___init_aassignmethid(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::init_aassignmethid (src/parser//parser_prod.nit:4067,5--4078:24)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
+  ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ =  variable0 /*n_id*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ =  variable1 /*n_assign*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::replace_child (src/parser//parser_prod.nit:4082,5--4103:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4084,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4088,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label352;
+  }
+  variable2 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4098,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label352;
+  }
+  return_label352: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::visit_all (src/parser//parser_prod.nit:4107,5--4113:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssignMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssignMethid::visit_all_reverse (src/parser//parser_prod.nit:4117,5--4123:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignMethid____n_id( self) /*AAssignMethid::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignMethid____n_assign( self) /*AAssignMethid::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::n_obra= (src/parser//parser_prod.nit:4128,5--4132:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TObra::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::n_cbra= (src/parser//parser_prod.nit:4135,5--4139:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TCbra::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::n_assign= (src/parser//parser_prod.nit:4142,5--4146:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::empty_init (src/parser//parser_prod.nit:4150,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___init_abraassignmethid(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::init_abraassignmethid (src/parser//parser_prod.nit:4152,5--4168:24)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
+  ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ =  variable0 /*n_obra*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_obra*/,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_obra*/,  self) /*TObra::parent=*/;
+  }
+  ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ =  variable1 /*n_cbra*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_cbra*/,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_cbra*/,  self) /*TCbra::parent=*/;
+  }
+  ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ =  variable2 /*n_assign*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::replace_child (src/parser//parser_prod.nit:4172,5--4203:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4174,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TObra::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4178,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label360;
+  }
+  variable2 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TCbra::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4188,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label360;
+  }
+  variable2 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4198,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label360;
+  }
+  return_label360: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::visit_all (src/parser//parser_prod.nit:4207,5--4216:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraassignMethid___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraassignMethid::visit_all_reverse (src/parser//parser_prod.nit:4220,5--4229:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TObra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_obra( self) /*ABraassignMethid::_n_obra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TCbra::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_cbra( self) /*ABraassignMethid::_n_cbra*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABraassignMethid____n_assign( self) /*ABraassignMethid::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::n_type= (src/parser//parser_prod.nit:4234,5--4238:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::empty_init (src/parser//parser_prod.nit:4242,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___init_asignature(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::init_asignature (src/parser//parser_prod.nit:4244,5--4257:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i]) return;
+  variable2 = NEW_list___List___init(); /*new List[PParam]*/
+  ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/ = variable2;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_params*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_params*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4251,3--21\n"); nit_exit(1);}
+    variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable3 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/,  self) /*PParam::parent=*/;
+    continue_366: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_366: while(0);
+  ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ =  variable1 /*n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASignature].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::replace_child (src/parser//parser_prod.nit:4261,5--4284:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4263,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PParam::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4267,7--33\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PParam::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label367;
+    }
+    continue_368: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_368: while(0);
+  variable2 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4279,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label367;
+  }
+  return_label367: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::visit_all (src/parser//parser_prod.nit:4288,5--4294:27)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_370: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_370: while(0);
+  variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASignature___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASignature::visit_all_reverse (src/parser//parser_prod.nit:4298,5--4308:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ASignature____n_params( self) /*ASignature::_n_params*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_372: while(0);
+  }
+  break_372: while(0);
+  variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASignature____n_type( self) /*ASignature::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::n_id= (src/parser//parser_prod.nit:4313,5--4317:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::n_type= (src/parser//parser_prod.nit:4320,5--4324:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___n_dotdotdot__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::n_dotdotdot= (src/parser//parser_prod.nit:4327,5--4331:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TDotdotdot::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::empty_init (src/parser//parser_prod.nit:4335,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___init_aparam(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::init_aparam (src/parser//parser_prod.nit:4337,5--4353:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i]) return;
+  ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ =  variable0 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ =  variable1 /*n_type*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ =  variable2 /*n_dotdotdot*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_dotdotdot*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_dotdotdot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_dotdotdot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_dotdotdot*/,  NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_dotdotdot*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_dotdotdot*/,  self) /*TDotdotdot::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParam].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::replace_child (src/parser//parser_prod.nit:4357,5--4388:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4359,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4363,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label378;
+  }
+  variable2 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4373,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label378;
+  }
+  variable2 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TDotdotdot::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4383,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label378;
+  }
+  return_label378: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::visit_all (src/parser//parser_prod.nit:4392,5--4401:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParam___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParam::visit_all_reverse (src/parser//parser_prod.nit:4405,5--4414:32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PParam____n_id( self) /*AParam::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___PParam____n_type( self) /*AParam::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TDotdotdot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AParam____n_dotdotdot( self) /*AParam::_n_dotdotdot*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AType::n_id= (src/parser//parser_prod.nit:4419,5--4423:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TClassid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AType::empty_init (src/parser//parser_prod.nit:4427,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___init_atype(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AType::init_atype (src/parser//parser_prod.nit:4429,5--4442:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i]) return;
+  ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ =  variable0 /*n_id*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TClassid::parent=*/;
+  }
+  variable2 = NEW_list___List___init(); /*new List[PType]*/
+  ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/ = variable2;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_types*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_types*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PType, ID_PType)) /*cast PType*/;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4440,3--20\n"); nit_exit(1);}
+    variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable3 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/,  self) /*PType::parent=*/;
+    continue_384: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_384: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AType].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AType::replace_child (src/parser//parser_prod.nit:4446,5--4468:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4448,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TClassid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4452,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label385;
+  }
+  variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PType::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4462,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PType::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label385;
+    }
+    continue_386: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_386: while(0);
+  return_label385: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AType::visit_all (src/parser//parser_prod.nit:4473,5--4479:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_388: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_388: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AType___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AType::visit_all_reverse (src/parser//parser_prod.nit:4483,5--4492:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AType____n_id( self) /*AType::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AType____n_types( self) /*AType::_n_types*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_390: while(0);
+  }
+  break_390: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABlockExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABlockExpr::empty_init (src/parser//parser_prod.nit:4499,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABlockExpr___init_ablockexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABlockExpr::init_ablockexpr (src/parser//parser_prod.nit:4501,5--4509:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_expr*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_expr*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4507,3--20\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*PExpr::parent=*/;
+    continue_393: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_393: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABlockExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABlockExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABlockExpr::replace_child (src/parser//parser_prod.nit:4513,5--4525:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4515,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4519,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label394;
+    }
+    continue_395: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_395: while(0);
+  return_label394: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABlockExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABlockExpr::visit_all (src/parser//parser_prod.nit:4530,5--4533:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_397: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_397: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABlockExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABlockExpr::visit_all_reverse (src/parser//parser_prod.nit:4537,5--4543:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ABlockExpr____n_expr( self) /*ABlockExpr::_n_expr*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_399: while(0);
+  }
+  break_399: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::n_kwvar= (src/parser//parser_prod.nit:4549,5--4553:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwvar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwvar::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::n_id= (src/parser//parser_prod.nit:4556,5--4560:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::n_type= (src/parser//parser_prod.nit:4563,5--4567:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::n_assign= (src/parser//parser_prod.nit:4570,5--4574:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::n_expr= (src/parser//parser_prod.nit:4577,5--4581:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::empty_init (src/parser//parser_prod.nit:4585,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___init_avardeclexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::init_avardeclexpr (src/parser//parser_prod.nit:4587,5--4613:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
+  ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ =  variable0 /*n_kwvar*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwvar*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwvar*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwvar*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwvar*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwvar*/,  NIT_NULL /*null*/) /*TKwvar::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwvar*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwvar*/,  self) /*TKwvar::parent=*/;
+  }
+  ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ =  variable2 /*n_type*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ =  variable3 /*n_assign*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ =  variable4 /*n_expr*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::replace_child (src/parser//parser_prod.nit:4617,5--4668:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4619,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwvar::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4623,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label407;
+  }
+  variable2 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4633,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label407;
+  }
+  variable2 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4643,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label407;
+  }
+  variable2 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4653,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label407;
+  }
+  variable2 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4663,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label407;
+  }
+  return_label407: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::visit_all (src/parser//parser_prod.nit:4672,5--4687:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwvar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVardeclExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVardeclExpr::visit_all_reverse (src/parser//parser_prod.nit:4691,5--4706:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwvar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_kwvar( self) /*AVardeclExpr::_n_kwvar*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_id( self) /*AVardeclExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_type( self) /*AVardeclExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_assign( self) /*AVardeclExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVardeclExpr____n_expr( self) /*AVardeclExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::n_kwreturn= (src/parser//parser_prod.nit:4711,5--4715:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwreturn::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::n_expr= (src/parser//parser_prod.nit:4718,5--4722:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::empty_init (src/parser//parser_prod.nit:4726,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___init_areturnexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::init_areturnexpr (src/parser//parser_prod.nit:4728,5--4739:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
+  ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ =  variable0 /*n_kwreturn*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwreturn*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwreturn*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwreturn*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwreturn*/,  NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwreturn*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwreturn*/,  self) /*TKwreturn::parent=*/;
+  }
+  ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::replace_child (src/parser//parser_prod.nit:4743,5--4764:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4745,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwreturn::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4749,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label414;
+  }
+  variable2 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4759,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label414;
+  }
+  return_label414: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::visit_all (src/parser//parser_prod.nit:4768,5--4774:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AReturnExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AReturnExpr::visit_all_reverse (src/parser//parser_prod.nit:4778,5--4784:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwreturn::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReturnExpr____n_kwreturn( self) /*AReturnExpr::_n_kwreturn*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReturnExpr____n_expr( self) /*AReturnExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::n_kwbreak= (src/parser//parser_prod.nit:4789,5--4793:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwbreak::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::empty_init (src/parser//parser_prod.nit:4797,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___init_abreakexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::init_abreakexpr (src/parser//parser_prod.nit:4799,5--4805:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
+  ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ =  variable0 /*n_kwbreak*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwbreak*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwbreak*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwbreak*/,  NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwbreak*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwbreak*/,  self) /*TKwbreak::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::replace_child (src/parser//parser_prod.nit:4809,5--4820:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4811,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwbreak::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4815,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label420;
+  }
+  return_label420: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::visit_all (src/parser//parser_prod.nit:4824,5--4827:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABreakExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABreakExpr::visit_all_reverse (src/parser//parser_prod.nit:4831,5--4834:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwbreak::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABreakExpr____n_kwbreak( self) /*ABreakExpr::_n_kwbreak*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::n_kwabort= (src/parser//parser_prod.nit:4839,5--4843:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwabort::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwabort::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::empty_init (src/parser//parser_prod.nit:4847,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___init_aabortexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::init_aabortexpr (src/parser//parser_prod.nit:4849,5--4855:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
+  ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ =  variable0 /*n_kwabort*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwabort*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwabort*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabort*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwabort*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwabort*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwabort*/,  NIT_NULL /*null*/) /*TKwabort::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwabort*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwabort*/,  self) /*TKwabort::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::replace_child (src/parser//parser_prod.nit:4859,5--4870:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4861,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwabort::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4865,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label426;
+  }
+  return_label426: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::visit_all (src/parser//parser_prod.nit:4874,5--4877:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwabort::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAbortExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAbortExpr::visit_all_reverse (src/parser//parser_prod.nit:4881,5--4884:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwabort::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAbortExpr____n_kwabort( self) /*AAbortExpr::_n_kwabort*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::n_kwcontinue= (src/parser//parser_prod.nit:4889,5--4893:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwcontinue::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::empty_init (src/parser//parser_prod.nit:4897,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___init_acontinueexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::init_acontinueexpr (src/parser//parser_prod.nit:4899,5--4905:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
+  ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ =  variable0 /*n_kwcontinue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwcontinue*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwcontinue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwcontinue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwcontinue*/,  NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwcontinue*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwcontinue*/,  self) /*TKwcontinue::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::replace_child (src/parser//parser_prod.nit:4909,5--4920:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4911,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwcontinue::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4915,3--34\n"); nit_exit(1);}
+      ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label432;
+  }
+  return_label432: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::visit_all (src/parser//parser_prod.nit:4924,5--4927:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AContinueExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AContinueExpr::visit_all_reverse (src/parser//parser_prod.nit:4931,5--4934:33)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwcontinue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AContinueExpr____n_kwcontinue( self) /*AContinueExpr::_n_kwcontinue*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::n_kwdo= (src/parser//parser_prod.nit:4939,5--4943:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwdo::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::n_block= (src/parser//parser_prod.nit:4946,5--4950:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::empty_init (src/parser//parser_prod.nit:4954,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___init_adoexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::init_adoexpr (src/parser//parser_prod.nit:4956,5--4967:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i]) return;
+  ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ =  variable0 /*n_kwdo*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwdo*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwdo*/,  self) /*TKwdo::parent=*/;
+  }
+  ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ =  variable1 /*n_block*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::replace_child (src/parser//parser_prod.nit:4971,5--4992:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4973,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwdo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4977,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label439;
+  }
+  variable2 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:4987,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label439;
+  }
+  return_label439: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::visit_all (src/parser//parser_prod.nit:4996,5--5002:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoExpr::visit_all_reverse (src/parser//parser_prod.nit:5006,5--5012:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADoExpr____n_kwdo( self) /*ADoExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ADoExpr____n_block( self) /*ADoExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___n_kwif__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::n_kwif= (src/parser//parser_prod.nit:5017,5--5021:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwif::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::n_expr= (src/parser//parser_prod.nit:5024,5--5028:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___n_then__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::n_then= (src/parser//parser_prod.nit:5031,5--5035:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___n_else__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::n_else= (src/parser//parser_prod.nit:5038,5--5042:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::empty_init (src/parser//parser_prod.nit:5046,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___init_aifexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::init_aifexpr (src/parser//parser_prod.nit:5048,5--5069:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i]) return;
+  ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ =  variable0 /*n_kwif*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwif*/,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwif*/,  self) /*TKwif::parent=*/;
+  }
+  ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ =  variable2 /*n_then*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_then*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_then*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_then*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_then*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ =  variable3 /*n_else*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_else*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_else*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_else*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_else*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::replace_child (src/parser//parser_prod.nit:5073,5--5114:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5075,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwif::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5079,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label448;
+  }
+  variable2 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5089,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label448;
+  }
+  variable2 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5099,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label448;
+  }
+  variable2 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5109,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label448;
+  }
+  return_label448: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::visit_all (src/parser//parser_prod.nit:5118,5--5130:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfExpr::visit_all_reverse (src/parser//parser_prod.nit:5134,5--5146:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_kwif( self) /*AIfExpr::_n_kwif*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_expr( self) /*AIfExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_then( self) /*AIfExpr::_n_then*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfExpr____n_else( self) /*AIfExpr::_n_else*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_kwif= (src/parser//parser_prod.nit:5151,5--5155:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwif::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_expr= (src/parser//parser_prod.nit:5158,5--5162:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_kwthen= (src/parser//parser_prod.nit:5165,5--5169:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwthen::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwthen::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_then__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_then= (src/parser//parser_prod.nit:5172,5--5176:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_kwelse= (src/parser//parser_prod.nit:5179,5--5183:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwelse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwelse::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___n_else__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::n_else= (src/parser//parser_prod.nit:5186,5--5190:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::empty_init (src/parser//parser_prod.nit:5194,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___init_aifexprexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::init_aifexprexpr (src/parser//parser_prod.nit:5196,5--5227:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
+  ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ =  variable0 /*n_kwif*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwif*/,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwif*/,  self) /*TKwif::parent=*/;
+  }
+  ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ =  variable2 /*n_kwthen*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwthen*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_kwthen*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwthen*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwthen*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwthen*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwthen*/,  NIT_NULL /*null*/) /*TKwthen::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwthen*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwthen*/,  self) /*TKwthen::parent=*/;
+  }
+  ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ =  variable3 /*n_then*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_then*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_then*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_then*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_then*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ =  variable4 /*n_kwelse*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_kwelse*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_kwelse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_kwelse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_kwelse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_kwelse*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_kwelse*/,  NIT_NULL /*null*/) /*TKwelse::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_kwelse*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_kwelse*/,  self) /*TKwelse::parent=*/;
+  }
+  ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ =  variable5 /*n_else*/;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*n_else*/ ==  NIT_NULL /*null*/) || (( variable5 /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*n_else*/,COLOR_kernel___Object_____eqeq))( variable5 /*n_else*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n_else*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::replace_child (src/parser//parser_prod.nit:5231,5--5292:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5233,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwif::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5237,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5247,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwthen::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5257,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5267,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwelse::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5277,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  variable2 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5287,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label459;
+  }
+  return_label459: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::visit_all (src/parser//parser_prod.nit:5296,5--5314:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwthen::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwelse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIfexprExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIfexprExpr::visit_all_reverse (src/parser//parser_prod.nit:5318,5--5336:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwif::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwif( self) /*AIfexprExpr::_n_kwif*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_expr( self) /*AIfexprExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwthen::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwthen( self) /*AIfexprExpr::_n_kwthen*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_then( self) /*AIfexprExpr::_n_then*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwelse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_kwelse( self) /*AIfexprExpr::_n_kwelse*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIfexprExpr____n_else( self) /*AIfexprExpr::_n_else*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::n_kwwhile= (src/parser//parser_prod.nit:5341,5--5345:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwwhile::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::n_expr= (src/parser//parser_prod.nit:5348,5--5352:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::n_kwdo= (src/parser//parser_prod.nit:5355,5--5359:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwdo::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::n_block= (src/parser//parser_prod.nit:5362,5--5366:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::empty_init (src/parser//parser_prod.nit:5370,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___init_awhileexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::init_awhileexpr (src/parser//parser_prod.nit:5372,5--5393:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
+  ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ =  variable0 /*n_kwwhile*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwwhile*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwwhile*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwwhile*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwwhile*/,  NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwwhile*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwwhile*/,  self) /*TKwwhile::parent=*/;
+  }
+  ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ =  variable2 /*n_kwdo*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_kwdo*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_kwdo*/,  self) /*TKwdo::parent=*/;
+  }
+  ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ =  variable3 /*n_block*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::replace_child (src/parser//parser_prod.nit:5397,5--5438:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5399,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwwhile::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5403,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label468;
+  }
+  variable2 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5413,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label468;
+  }
+  variable2 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwdo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5423,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label468;
+  }
+  variable2 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5433,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label468;
+  }
+  return_label468: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::visit_all (src/parser//parser_prod.nit:5442,5--5454:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AWhileExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AWhileExpr::visit_all_reverse (src/parser//parser_prod.nit:5458,5--5470:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwwhile::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_kwwhile( self) /*AWhileExpr::_n_kwwhile*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_expr( self) /*AWhileExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_kwdo( self) /*AWhileExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AWhileExpr____n_block( self) /*AWhileExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___n_vardecl__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::n_vardecl= (src/parser//parser_prod.nit:5475,5--5479:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___n_kwdo__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::n_kwdo= (src/parser//parser_prod.nit:5482,5--5486:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwdo::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___n_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::n_block= (src/parser//parser_prod.nit:5489,5--5493:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::empty_init (src/parser//parser_prod.nit:5497,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___init_aforexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::init_aforexpr (src/parser//parser_prod.nit:5499,5--5515:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i]) return;
+  ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ =  variable0 /*n_vardecl*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_vardecl*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_vardecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_vardecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_vardecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_vardecl*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_vardecl*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_vardecl*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_vardecl*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ =  variable1 /*n_kwdo*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwdo*/,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwdo*/,  self) /*TKwdo::parent=*/;
+  }
+  ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ =  variable2 /*n_block*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_block*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_block*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_block*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_block*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::replace_child (src/parser//parser_prod.nit:5519,5--5550:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5521,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5525,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label476;
+  }
+  variable2 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwdo::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5535,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label476;
+  }
+  variable2 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5545,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label476;
+  }
+  return_label476: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::visit_all (src/parser//parser_prod.nit:5554,5--5563:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForExpr::visit_all_reverse (src/parser//parser_prod.nit:5567,5--5576:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_vardecl( self) /*AForExpr::_n_vardecl*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwdo::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_kwdo( self) /*AForExpr::_n_kwdo*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForExpr____n_block( self) /*AForExpr::_n_block*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::n_kwfor= (src/parser//parser_prod.nit:5581,5--5585:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwfor::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwfor::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::n_id= (src/parser//parser_prod.nit:5588,5--5592:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::n_expr= (src/parser//parser_prod.nit:5595,5--5599:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::empty_init (src/parser//parser_prod.nit:5603,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::init_aforvardeclexpr (src/parser//parser_prod.nit:5605,5--5621:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
+  ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ =  variable0 /*n_kwfor*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwfor*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwfor*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfor*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwfor*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfor*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwfor*/,  NIT_NULL /*null*/) /*TKwfor::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwfor*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwfor*/,  self) /*TKwfor::parent=*/;
+  }
+  ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ =  variable2 /*n_expr*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::replace_child (src/parser//parser_prod.nit:5625,5--5656:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5627,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwfor::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5631,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label484;
+  }
+  variable2 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5641,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label484;
+  }
+  variable2 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5651,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label484;
+  }
+  return_label484: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::visit_all (src/parser//parser_prod.nit:5660,5--5669:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwfor::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AForVardeclExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AForVardeclExpr::visit_all_reverse (src/parser//parser_prod.nit:5673,5--5682:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwfor::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_kwfor( self) /*AForVardeclExpr::_n_kwfor*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_id( self) /*AForVardeclExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AForVardeclExpr____n_expr( self) /*AForVardeclExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::n_kwassert= (src/parser//parser_prod.nit:5687,5--5691:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwassert::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwassert::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::n_id= (src/parser//parser_prod.nit:5694,5--5698:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::n_expr= (src/parser//parser_prod.nit:5701,5--5705:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::empty_init (src/parser//parser_prod.nit:5709,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___init_aassertexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::init_aassertexpr (src/parser//parser_prod.nit:5711,5--5727:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
+  ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ =  variable0 /*n_kwassert*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwassert*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwassert*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwassert*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwassert*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwassert*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwassert*/,  NIT_NULL /*null*/) /*TKwassert::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwassert*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwassert*/,  self) /*TKwassert::parent=*/;
+  }
+  ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ =  variable2 /*n_expr*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::replace_child (src/parser//parser_prod.nit:5731,5--5762:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5733,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwassert::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5737,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label492;
+  }
+  variable2 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5747,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label492;
+  }
+  variable2 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5757,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label492;
+  }
+  return_label492: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::visit_all (src/parser//parser_prod.nit:5766,5--5775:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwassert::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAssertExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAssertExpr::visit_all_reverse (src/parser//parser_prod.nit:5779,5--5788:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwassert::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_kwassert( self) /*AAssertExpr::_n_kwassert*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_id( self) /*AAssertExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssertExpr____n_expr( self) /*AAssertExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::n_kwonce= (src/parser//parser_prod.nit:5793,5--5797:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwonce::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwonce::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::n_expr= (src/parser//parser_prod.nit:5800,5--5804:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::empty_init (src/parser//parser_prod.nit:5808,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___init_aonceexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::init_aonceexpr (src/parser//parser_prod.nit:5810,5--5821:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
+  ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ =  variable0 /*n_kwonce*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwonce*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwonce*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwonce*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwonce*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwonce*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwonce*/,  NIT_NULL /*null*/) /*TKwonce::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwonce*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwonce*/,  self) /*TKwonce::parent=*/;
+  }
+  ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::replace_child (src/parser//parser_prod.nit:5825,5--5846:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5827,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwonce::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5831,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label499;
+  }
+  variable2 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5841,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label499;
+  }
+  return_label499: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::visit_all (src/parser//parser_prod.nit:5850,5--5856:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwonce::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOnceExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOnceExpr::visit_all_reverse (src/parser//parser_prod.nit:5860,5--5866:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwonce::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOnceExpr____n_kwonce( self) /*AOnceExpr::_n_kwonce*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AOnceExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::n_expr= (src/parser//parser_prod.nit:5871,5--5875:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::empty_init (src/parser//parser_prod.nit:5879,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___init_asendexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::init_asendexpr (src/parser//parser_prod.nit:5881,5--5887:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::replace_child (src/parser//parser_prod.nit:5891,5--5902:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5893,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5897,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label505;
+  }
+  return_label505: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::visit_all (src/parser//parser_prod.nit:5906,5--5909:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASendExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASendExpr::visit_all_reverse (src/parser//parser_prod.nit:5913,5--5916:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASendExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::n_expr= (src/parser//parser_prod.nit:5921,5--5925:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::n_expr2= (src/parser//parser_prod.nit:5928,5--5932:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::empty_init (src/parser//parser_prod.nit:5936,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___init_abinopexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::init_abinopexpr (src/parser//parser_prod.nit:5938,5--5949:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::replace_child (src/parser//parser_prod.nit:5953,5--5974:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5955,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5959,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label512;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:5969,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label512;
+  }
+  return_label512: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::visit_all (src/parser//parser_prod.nit:5978,5--5984:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABinopExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABinopExpr::visit_all_reverse (src/parser//parser_prod.nit:5988,5--5994:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABinopExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ABinopExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::n_expr= (src/parser//parser_prod.nit:5999,5--6003:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::n_expr2= (src/parser//parser_prod.nit:6006,5--6010:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::empty_init (src/parser//parser_prod.nit:6014,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___init_aorexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::init_aorexpr (src/parser//parser_prod.nit:6016,5--6027:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i]) return;
+  ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::replace_child (src/parser//parser_prod.nit:6031,5--6052:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6033,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6037,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label519;
+  }
+  variable2 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6047,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label519;
+  }
+  return_label519: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::visit_all (src/parser//parser_prod.nit:6056,5--6062:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrExpr::visit_all_reverse (src/parser//parser_prod.nit:6066,5--6072:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOrExpr____n_expr( self) /*AOrExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AOrExpr____n_expr2( self) /*AOrExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::n_expr= (src/parser//parser_prod.nit:6077,5--6081:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::n_expr2= (src/parser//parser_prod.nit:6084,5--6088:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::empty_init (src/parser//parser_prod.nit:6092,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___init_aandexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::init_aandexpr (src/parser//parser_prod.nit:6094,5--6105:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i]) return;
+  ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::replace_child (src/parser//parser_prod.nit:6109,5--6130:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6111,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6115,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label526;
+  }
+  variable2 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6125,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label526;
+  }
+  return_label526: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::visit_all (src/parser//parser_prod.nit:6134,5--6140:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAndExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAndExpr::visit_all_reverse (src/parser//parser_prod.nit:6144,5--6150:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAndExpr____n_expr( self) /*AAndExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAndExpr____n_expr2( self) /*AAndExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::n_kwnot= (src/parser//parser_prod.nit:6155,5--6159:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwnot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwnot::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::n_expr= (src/parser//parser_prod.nit:6162,5--6166:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::empty_init (src/parser//parser_prod.nit:6170,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___init_anotexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::init_anotexpr (src/parser//parser_prod.nit:6172,5--6183:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i]) return;
+  ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ =  variable0 /*n_kwnot*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnot*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwnot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnot*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnot*/,  NIT_NULL /*null*/) /*TKwnot::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnot*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnot*/,  self) /*TKwnot::parent=*/;
+  }
+  ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::replace_child (src/parser//parser_prod.nit:6187,5--6208:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6189,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwnot::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6193,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label533;
+  }
+  variable2 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6203,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label533;
+  }
+  return_label533: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::visit_all (src/parser//parser_prod.nit:6212,5--6218:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANotExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANotExpr::visit_all_reverse (src/parser//parser_prod.nit:6222,5--6228:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnot::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANotExpr____n_kwnot( self) /*ANotExpr::_n_kwnot*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANotExpr____n_expr( self) /*ANotExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::n_expr= (src/parser//parser_prod.nit:6233,5--6237:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::n_expr2= (src/parser//parser_prod.nit:6240,5--6244:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::empty_init (src/parser//parser_prod.nit:6248,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___init_aeqexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::init_aeqexpr (src/parser//parser_prod.nit:6250,5--6261:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::replace_child (src/parser//parser_prod.nit:6265,5--6286:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6267,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6271,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label540;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6281,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label540;
+  }
+  return_label540: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::visit_all (src/parser//parser_prod.nit:6290,5--6296:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEqExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEqExpr::visit_all_reverse (src/parser//parser_prod.nit:6300,5--6306:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AEqExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AEqExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::n_expr= (src/parser//parser_prod.nit:6311,5--6315:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::n_expr2= (src/parser//parser_prod.nit:6318,5--6322:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::empty_init (src/parser//parser_prod.nit:6326,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___init_aeeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::init_aeeexpr (src/parser//parser_prod.nit:6328,5--6339:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i]) return;
+  ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::replace_child (src/parser//parser_prod.nit:6343,5--6364:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6345,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6349,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label547;
+  }
+  variable2 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6359,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label547;
+  }
+  return_label547: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::visit_all (src/parser//parser_prod.nit:6368,5--6374:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEeExpr::visit_all_reverse (src/parser//parser_prod.nit:6378,5--6384:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEeExpr____n_expr( self) /*AEeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEeExpr____n_expr2( self) /*AEeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::n_expr= (src/parser//parser_prod.nit:6389,5--6393:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::n_expr2= (src/parser//parser_prod.nit:6396,5--6400:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::empty_init (src/parser//parser_prod.nit:6404,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___init_aneexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::init_aneexpr (src/parser//parser_prod.nit:6406,5--6417:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::replace_child (src/parser//parser_prod.nit:6421,5--6442:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6423,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6427,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label554;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6437,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label554;
+  }
+  return_label554: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::visit_all (src/parser//parser_prod.nit:6446,5--6452:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANeExpr::visit_all_reverse (src/parser//parser_prod.nit:6456,5--6462:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ANeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ANeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::n_expr= (src/parser//parser_prod.nit:6467,5--6471:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::n_expr2= (src/parser//parser_prod.nit:6474,5--6478:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::empty_init (src/parser//parser_prod.nit:6482,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___init_altexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::init_altexpr (src/parser//parser_prod.nit:6484,5--6495:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::replace_child (src/parser//parser_prod.nit:6499,5--6520:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6501,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6505,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label561;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6515,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label561;
+  }
+  return_label561: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::visit_all (src/parser//parser_prod.nit:6524,5--6530:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALtExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALtExpr::visit_all_reverse (src/parser//parser_prod.nit:6534,5--6540:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALtExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALtExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::n_expr= (src/parser//parser_prod.nit:6545,5--6549:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::n_expr2= (src/parser//parser_prod.nit:6552,5--6556:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::empty_init (src/parser//parser_prod.nit:6560,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___init_aleexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::init_aleexpr (src/parser//parser_prod.nit:6562,5--6573:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::replace_child (src/parser//parser_prod.nit:6577,5--6598:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6579,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6583,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label568;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6593,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label568;
+  }
+  return_label568: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::visit_all (src/parser//parser_prod.nit:6602,5--6608:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ALeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ALeExpr::visit_all_reverse (src/parser//parser_prod.nit:6612,5--6618:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ALeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ALeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::n_expr= (src/parser//parser_prod.nit:6623,5--6627:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::n_expr2= (src/parser//parser_prod.nit:6630,5--6634:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::empty_init (src/parser//parser_prod.nit:6638,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___init_agtexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::init_agtexpr (src/parser//parser_prod.nit:6640,5--6651:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::replace_child (src/parser//parser_prod.nit:6655,5--6676:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6657,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6661,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label575;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6671,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label575;
+  }
+  return_label575: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::visit_all (src/parser//parser_prod.nit:6680,5--6686:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGtExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGtExpr::visit_all_reverse (src/parser//parser_prod.nit:6690,5--6696:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGtExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGtExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::n_expr= (src/parser//parser_prod.nit:6701,5--6705:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::n_expr2= (src/parser//parser_prod.nit:6708,5--6712:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::empty_init (src/parser//parser_prod.nit:6716,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___init_ageexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::init_ageexpr (src/parser//parser_prod.nit:6718,5--6729:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::replace_child (src/parser//parser_prod.nit:6733,5--6754:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6735,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6739,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label582;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6749,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label582;
+  }
+  return_label582: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::visit_all (src/parser//parser_prod.nit:6758,5--6764:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AGeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AGeExpr::visit_all_reverse (src/parser//parser_prod.nit:6768,5--6774:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AGeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AGeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::n_expr= (src/parser//parser_prod.nit:6779,5--6783:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::n_type= (src/parser//parser_prod.nit:6786,5--6790:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::empty_init (src/parser//parser_prod.nit:6794,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___init_aisaexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::init_aisaexpr (src/parser//parser_prod.nit:6796,5--6807:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
+  ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ =  variable1 /*n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::replace_child (src/parser//parser_prod.nit:6811,5--6832:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6813,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6817,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label589;
+  }
+  variable2 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6827,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label589;
+  }
+  return_label589: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::visit_all (src/parser//parser_prod.nit:6836,5--6842:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIsaExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIsaExpr::visit_all_reverse (src/parser//parser_prod.nit:6846,5--6852:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIsaExpr____n_expr( self) /*AIsaExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIsaExpr____n_type( self) /*AIsaExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::n_expr= (src/parser//parser_prod.nit:6857,5--6861:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::n_expr2= (src/parser//parser_prod.nit:6864,5--6868:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::empty_init (src/parser//parser_prod.nit:6872,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___init_aplusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::init_aplusexpr (src/parser//parser_prod.nit:6874,5--6885:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::replace_child (src/parser//parser_prod.nit:6889,5--6910:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6891,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6895,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label596;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6905,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label596;
+  }
+  return_label596: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::visit_all (src/parser//parser_prod.nit:6914,5--6920:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusExpr::visit_all_reverse (src/parser//parser_prod.nit:6924,5--6930:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APlusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APlusExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::n_expr= (src/parser//parser_prod.nit:6935,5--6939:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::n_expr2= (src/parser//parser_prod.nit:6942,5--6946:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::empty_init (src/parser//parser_prod.nit:6950,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___init_aminusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::init_aminusexpr (src/parser//parser_prod.nit:6952,5--6963:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::replace_child (src/parser//parser_prod.nit:6967,5--6988:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6969,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6973,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label603;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:6983,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label603;
+  }
+  return_label603: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::visit_all (src/parser//parser_prod.nit:6992,5--6998:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusExpr::visit_all_reverse (src/parser//parser_prod.nit:7002,5--7008:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AMinusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AMinusExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::n_expr= (src/parser//parser_prod.nit:7013,5--7017:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::n_expr2= (src/parser//parser_prod.nit:7020,5--7024:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::empty_init (src/parser//parser_prod.nit:7028,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___init_astarshipexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::init_astarshipexpr (src/parser//parser_prod.nit:7030,5--7041:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::replace_child (src/parser//parser_prod.nit:7045,5--7066:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7047,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7051,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label610;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7061,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label610;
+  }
+  return_label610: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::visit_all (src/parser//parser_prod.nit:7070,5--7076:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarshipExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarshipExpr::visit_all_reverse (src/parser//parser_prod.nit:7080,5--7086:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarshipExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarshipExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::n_expr= (src/parser//parser_prod.nit:7091,5--7095:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::n_expr2= (src/parser//parser_prod.nit:7098,5--7102:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::empty_init (src/parser//parser_prod.nit:7106,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___init_astarexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::init_astarexpr (src/parser//parser_prod.nit:7108,5--7119:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::replace_child (src/parser//parser_prod.nit:7123,5--7144:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7125,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7129,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label617;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7139,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label617;
+  }
+  return_label617: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::visit_all (src/parser//parser_prod.nit:7148,5--7154:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStarExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStarExpr::visit_all_reverse (src/parser//parser_prod.nit:7158,5--7164:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AStarExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*AStarExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::n_expr= (src/parser//parser_prod.nit:7169,5--7173:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::n_expr2= (src/parser//parser_prod.nit:7176,5--7180:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::empty_init (src/parser//parser_prod.nit:7184,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___init_aslashexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::init_aslashexpr (src/parser//parser_prod.nit:7186,5--7197:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::replace_child (src/parser//parser_prod.nit:7201,5--7222:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7203,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7207,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label624;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7217,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label624;
+  }
+  return_label624: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::visit_all (src/parser//parser_prod.nit:7226,5--7232:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASlashExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASlashExpr::visit_all_reverse (src/parser//parser_prod.nit:7236,5--7242:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ASlashExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*ASlashExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::n_expr= (src/parser//parser_prod.nit:7247,5--7251:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::n_expr2= (src/parser//parser_prod.nit:7254,5--7258:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::empty_init (src/parser//parser_prod.nit:7262,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___init_apercentexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::init_apercentexpr (src/parser//parser_prod.nit:7264,5--7275:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i]) return;
+  ((parser_prod___ABinopExpr___empty_init_t)CALL( self,COLOR_parser_prod___ABinopExpr___empty_init))( self, init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::replace_child (src/parser//parser_prod.nit:7279,5--7300:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7281,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7285,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label631;
+  }
+  variable2 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7295,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label631;
+  }
+  return_label631: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::visit_all (src/parser//parser_prod.nit:7304,5--7310:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APercentExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APercentExpr::visit_all_reverse (src/parser//parser_prod.nit:7314,5--7320:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*APercentExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ABinopExpr____n_expr2( self) /*APercentExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___n_minus__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::n_minus= (src/parser//parser_prod.nit:7325,5--7329:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TMinus::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::n_expr= (src/parser//parser_prod.nit:7332,5--7336:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::empty_init (src/parser//parser_prod.nit:7340,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___init_auminusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::init_auminusexpr (src/parser//parser_prod.nit:7342,5--7353:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ =  variable0 /*n_minus*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minus*/,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minus*/,  self) /*TMinus::parent=*/;
+  }
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ =  variable1 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::replace_child (src/parser//parser_prod.nit:7357,5--7378:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7359,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TMinus::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7363,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label638;
+  }
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7373,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label638;
+  }
+  return_label638: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::visit_all (src/parser//parser_prod.nit:7382,5--7388:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AUminusExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AUminusExpr::visit_all_reverse (src/parser//parser_prod.nit:7392,5--7398:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinus::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AUminusExpr____n_minus( self) /*AUminusExpr::_n_minus*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AUminusExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::n_kwnew= (src/parser//parser_prod.nit:7403,5--7407:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwnew::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwnew::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___n_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::n_type= (src/parser//parser_prod.nit:7410,5--7414:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PType::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::n_id= (src/parser//parser_prod.nit:7417,5--7421:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::empty_init (src/parser//parser_prod.nit:7425,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___init_anewexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::init_anewexpr (src/parser//parser_prod.nit:7427,5--7450:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i]) return;
+  ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ =  variable0 /*n_kwnew*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnew*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwnew*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnew*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnew*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnew*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnew*/,  NIT_NULL /*null*/) /*TKwnew::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnew*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnew*/,  self) /*TKwnew::parent=*/;
+  }
+  ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ =  variable1 /*n_type*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_type*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_type*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_type*/,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_type*/,  self) /*PType::parent=*/;
+  }
+  ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ =  variable2 /*n_id*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  variable4 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/ = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable3 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable3 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7448,3--20\n"); nit_exit(1);}
+    variable6 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable5 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/,  self) /*PExpr::parent=*/;
+    continue_646: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_646: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANewExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::replace_child (src/parser//parser_prod.nit:7454,5--7496:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7456,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwnew::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7460,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label647;
+  }
+  variable2 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7470,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label647;
+  }
+  variable2 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7480,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label647;
+  }
+  variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7490,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label647;
+    }
+    continue_648: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_648: while(0);
+  return_label647: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::visit_all (src/parser//parser_prod.nit:7501,5--7513:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnew::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_650: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_650: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANewExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANewExpr::visit_all_reverse (src/parser//parser_prod.nit:7517,5--7532:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnew::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_kwnew( self) /*ANewExpr::_n_kwnew*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_type( self) /*ANewExpr::_n_type*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANewExpr____n_id( self) /*ANewExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ANewExpr____n_args( self) /*ANewExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_652: while(0);
+  }
+  break_652: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::n_expr= (src/parser//parser_prod.nit:7538,5--7542:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::n_id= (src/parser//parser_prod.nit:7545,5--7549:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAttrid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::empty_init (src/parser//parser_prod.nit:7553,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___init_aattrexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::init_aattrexpr (src/parser//parser_prod.nit:7555,5--7566:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TAttrid::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::replace_child (src/parser//parser_prod.nit:7570,5--7591:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7572,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7576,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label657;
+  }
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAttrid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7586,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label657;
+  }
+  return_label657: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::visit_all (src/parser//parser_prod.nit:7595,5--7601:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrExpr::visit_all_reverse (src/parser//parser_prod.nit:7605,5--7611:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::n_expr= (src/parser//parser_prod.nit:7616,5--7620:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::n_id= (src/parser//parser_prod.nit:7623,5--7627:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAttrid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::n_assign= (src/parser//parser_prod.nit:7630,5--7634:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::n_value= (src/parser//parser_prod.nit:7637,5--7641:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::empty_init (src/parser//parser_prod.nit:7645,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::init_aattrassignexpr (src/parser//parser_prod.nit:7647,5--7668:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TAttrid::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ =  variable2 /*n_assign*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ =  variable3 /*n_value*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::replace_child (src/parser//parser_prod.nit:7672,5--7713:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7674,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7678,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label666;
+  }
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAttrid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7688,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label666;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7698,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label666;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7708,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label666;
+  }
+  return_label666: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::visit_all (src/parser//parser_prod.nit:7717,5--7729:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrAssignExpr::visit_all_reverse (src/parser//parser_prod.nit:7733,5--7745:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AAttrAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AAttrAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::n_expr= (src/parser//parser_prod.nit:7750,5--7754:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::n_id= (src/parser//parser_prod.nit:7757,5--7761:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAttrid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::n_assign_op= (src/parser//parser_prod.nit:7764,5--7768:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAssignOp::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::n_value= (src/parser//parser_prod.nit:7771,5--7775:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::empty_init (src/parser//parser_prod.nit:7779,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::init_aattrreassignexpr (src/parser//parser_prod.nit:7781,5--7802:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
+  ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TAttrid::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ =  variable2 /*n_assign_op*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign_op*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign_op*/,  self) /*PAssignOp::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ =  variable3 /*n_value*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::replace_child (src/parser//parser_prod.nit:7806,5--7847:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7808,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7812,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label675;
+  }
+  variable2 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAttrid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7822,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label675;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAssignOp::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7832,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label675;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7842,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label675;
+  }
+  return_label675: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::visit_all (src/parser//parser_prod.nit:7851,5--7863:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AAttrReassignExpr::visit_all_reverse (src/parser//parser_prod.nit:7867,5--7879:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_expr( self) /*AAttrReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAttrid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAttrFormExpr____n_id( self) /*AAttrReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AAttrReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AAttrReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::n_expr= (src/parser//parser_prod.nit:7884,5--7888:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::n_id= (src/parser//parser_prod.nit:7891,5--7895:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::empty_init (src/parser//parser_prod.nit:7899,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___init_acallexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::init_acallexpr (src/parser//parser_prod.nit:7901,5--7919:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  variable3 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/ = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7917,3--20\n"); nit_exit(1);}
+    variable5 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/,  self) /*PExpr::parent=*/;
+    continue_682: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_682: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::replace_child (src/parser//parser_prod.nit:7923,5--7955:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7925,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7929,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label683;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7939,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label683;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:7949,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label683;
+    }
+    continue_684: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_684: while(0);
+  return_label683: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::visit_all (src/parser//parser_prod.nit:7960,5--7969:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_686: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_686: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallExpr::visit_all_reverse (src/parser//parser_prod.nit:7973,5--7985:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_688: while(0);
+  }
+  break_688: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::n_expr= (src/parser//parser_prod.nit:7991,5--7995:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::n_id= (src/parser//parser_prod.nit:7998,5--8002:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::n_assign= (src/parser//parser_prod.nit:8005,5--8009:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::n_value= (src/parser//parser_prod.nit:8012,5--8016:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::empty_init (src/parser//parser_prod.nit:8020,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___init_acallassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::init_acallassignexpr (src/parser//parser_prod.nit:8022,5--8050:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  variable5 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/ = variable5;
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable7 = TAG_Bool(( variable6 /*n*/==NIT_NULL) || VAL_ISA( variable6 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8040,3--20\n"); nit_exit(1);}
+    variable7 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable6 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n*/,  self) /*PExpr::parent=*/;
+    continue_695: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_695: while(0);
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ =  variable3 /*n_assign*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ =  variable4 /*n_value*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::replace_child (src/parser//parser_prod.nit:8054,5--8107:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8056,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8060,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label696;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8070,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label696;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8080,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label696;
+    }
+    continue_697: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_697: while(0);
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8092,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label696;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8102,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label696;
+  }
+  return_label696: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::visit_all (src/parser//parser_prod.nit:8111,5--8126:28)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_699: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_699: while(0);
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallAssignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallAssignExpr::visit_all_reverse (src/parser//parser_prod.nit:8130,5--8149:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallAssignExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_701: while(0);
+  }
+  break_701: while(0);
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ACallAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ACallAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::n_expr= (src/parser//parser_prod.nit:8154,5--8158:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::n_id= (src/parser//parser_prod.nit:8161,5--8165:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::n_assign_op= (src/parser//parser_prod.nit:8168,5--8172:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAssignOp::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::n_value= (src/parser//parser_prod.nit:8175,5--8179:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::empty_init (src/parser//parser_prod.nit:8183,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::init_acallreassignexpr (src/parser//parser_prod.nit:8185,5--8213:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ =  variable1 /*n_id*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  variable5 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/ = variable5;
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    variable7 = TAG_Bool(( variable6 /*n*/==NIT_NULL) || VAL_ISA( variable6 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8203,3--20\n"); nit_exit(1);}
+    variable7 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable6 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable6 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable6 /*n*/,  self) /*PExpr::parent=*/;
+    continue_708: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_708: while(0);
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ =  variable3 /*n_assign_op*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_assign_op*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_assign_op*/,  self) /*PAssignOp::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ =  variable4 /*n_value*/;
+  variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable4 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable4 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::replace_child (src/parser//parser_prod.nit:8217,5--8270:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8219,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8223,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label709;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8233,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label709;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8243,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label709;
+    }
+    continue_710: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_710: while(0);
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAssignOp::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8255,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label709;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8265,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label709;
+  }
+  return_label709: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::visit_all (src/parser//parser_prod.nit:8274,5--8289:28)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_712: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_712: while(0);
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACallReassignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACallReassignExpr::visit_all_reverse (src/parser//parser_prod.nit:8293,5--8312:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ACallReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACallFormExpr____n_id( self) /*ACallReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ACallFormExpr____n_args( self) /*ACallReassignExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_714: while(0);
+  }
+  break_714: while(0);
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ACallReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ACallReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::n_qualified= (src/parser//parser_prod.nit:8317,5--8321:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PQualified::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PQualified::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::n_kwsuper= (src/parser//parser_prod.nit:8324,5--8328:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwsuper::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::empty_init (src/parser//parser_prod.nit:8332,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___init_asuperexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::init_asuperexpr (src/parser//parser_prod.nit:8334,5--8352:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
+  ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ =  variable0 /*n_qualified*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_qualified*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_qualified*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_qualified*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_qualified*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_qualified*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_qualified*/,  NIT_NULL /*null*/) /*PQualified::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_qualified*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_qualified*/,  self) /*PQualified::parent=*/;
+  }
+  ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ =  variable1 /*n_kwsuper*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwsuper*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwsuper*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwsuper*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwsuper*/,  NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwsuper*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwsuper*/,  self) /*TKwsuper::parent=*/;
+  }
+  variable3 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/ = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8350,3--20\n"); nit_exit(1);}
+    variable5 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/,  self) /*PExpr::parent=*/;
+    continue_719: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_719: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::replace_child (src/parser//parser_prod.nit:8356,5--8388:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8358,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PQualified::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8362,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label720;
+  }
+  variable2 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwsuper::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8372,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label720;
+  }
+  variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8382,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label720;
+    }
+    continue_721: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_721: while(0);
+  return_label720: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::visit_all (src/parser//parser_prod.nit:8393,5--8402:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PQualified::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_723: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_723: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperExpr::visit_all_reverse (src/parser//parser_prod.nit:8406,5--8418:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PQualified::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperExpr____n_qualified( self) /*ASuperExpr::_n_qualified*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwsuper::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASuperExpr____n_kwsuper( self) /*ASuperExpr::_n_kwsuper*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ASuperExpr____n_args( self) /*ASuperExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_725: while(0);
+  }
+  break_725: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::n_expr= (src/parser//parser_prod.nit:8424,5--8428:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::n_kwinit= (src/parser//parser_prod.nit:8431,5--8435:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwinit::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::empty_init (src/parser//parser_prod.nit:8439,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___init_ainitexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::init_ainitexpr (src/parser//parser_prod.nit:8441,5--8459:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i]) return;
+  ((parser_prod___ASendExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASendExpr___empty_init))( self, init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ =  variable1 /*n_kwinit*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_kwinit*/,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_kwinit*/,  self) /*TKwinit::parent=*/;
+  }
+  variable3 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/ = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = TAG_Bool(( variable4 /*n*/==NIT_NULL) || VAL_ISA( variable4 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8457,3--20\n"); nit_exit(1);}
+    variable5 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  variable4 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable4 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable4 /*n*/,  self) /*PExpr::parent=*/;
+    continue_730: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_730: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AInitExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::replace_child (src/parser//parser_prod.nit:8463,5--8495:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8465,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8469,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label731;
+  }
+  variable2 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwinit::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8479,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label731;
+  }
+  variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8489,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label731;
+    }
+    continue_732: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_732: while(0);
+  return_label731: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::visit_all (src/parser//parser_prod.nit:8500,5--8509:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_734: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_734: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AInitExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AInitExpr::visit_all_reverse (src/parser//parser_prod.nit:8513,5--8525:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*AInitExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwinit::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AInitExpr____n_kwinit( self) /*AInitExpr::_n_kwinit*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AInitExpr____n_args( self) /*AInitExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_736: while(0);
+  }
+  break_736: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::n_expr= (src/parser//parser_prod.nit:8531,5--8535:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::empty_init (src/parser//parser_prod.nit:8539,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___init_abraexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::init_abraexpr (src/parser//parser_prod.nit:8541,5--8554:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  variable2 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/ = variable2;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8552,3--20\n"); nit_exit(1);}
+    variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable3 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/,  self) /*PExpr::parent=*/;
+    continue_740: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_740: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::replace_child (src/parser//parser_prod.nit:8558,5--8580:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8560,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8564,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label741;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8574,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label741;
+    }
+    continue_742: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_742: while(0);
+  return_label741: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::visit_all (src/parser//parser_prod.nit:8585,5--8591:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_744: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_744: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraExpr::visit_all_reverse (src/parser//parser_prod.nit:8595,5--8604:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_746: while(0);
+  }
+  break_746: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::n_expr= (src/parser//parser_prod.nit:8610,5--8614:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::n_assign= (src/parser//parser_prod.nit:8617,5--8621:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::n_value= (src/parser//parser_prod.nit:8624,5--8628:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::empty_init (src/parser//parser_prod.nit:8632,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::init_abraassignexpr (src/parser//parser_prod.nit:8634,5--8657:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  variable4 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/ = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8647,3--20\n"); nit_exit(1);}
+    variable6 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable5 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/,  self) /*PExpr::parent=*/;
+    continue_752: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_752: while(0);
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ =  variable2 /*n_assign*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ =  variable3 /*n_value*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::replace_child (src/parser//parser_prod.nit:8661,5--8704:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8663,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8667,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label753;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8677,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label753;
+    }
+    continue_754: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_754: while(0);
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8689,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label753;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8699,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label753;
+  }
+  return_label753: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::visit_all (src/parser//parser_prod.nit:8708,5--8720:28)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_756: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_756: while(0);
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraAssignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraAssignExpr::visit_all_reverse (src/parser//parser_prod.nit:8724,5--8740:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraAssignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraAssignExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_758: while(0);
+  }
+  break_758: while(0);
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*ABraAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*ABraAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::n_expr= (src/parser//parser_prod.nit:8745,5--8749:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::n_assign_op= (src/parser//parser_prod.nit:8752,5--8756:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAssignOp::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::n_value= (src/parser//parser_prod.nit:8759,5--8763:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::empty_init (src/parser//parser_prod.nit:8767,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::init_abrareassignexpr (src/parser//parser_prod.nit:8769,5--8792:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
+  ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  variable4 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/ = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*n_args*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = TAG_Bool(( variable5 /*n*/==NIT_NULL) || VAL_ISA( variable5 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8782,3--20\n"); nit_exit(1);}
+    variable6 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  variable5 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable5 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable5 /*n*/,  self) /*PExpr::parent=*/;
+    continue_764: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_764: while(0);
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ =  variable2 /*n_assign_op*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_assign_op*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_assign_op*/,  self) /*PAssignOp::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ =  variable3 /*n_value*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable3 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable3 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::replace_child (src/parser//parser_prod.nit:8796,5--8839:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8798,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8802,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label765;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8812,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label765;
+    }
+    continue_766: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_766: while(0);
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAssignOp::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8824,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label765;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8834,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label765;
+  }
+  return_label765: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::visit_all (src/parser//parser_prod.nit:8843,5--8855:28)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_768: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_768: while(0);
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ABraReassignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ABraReassignExpr::visit_all_reverse (src/parser//parser_prod.nit:8859,5--8875:28)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASendExpr____n_expr( self) /*ABraReassignExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ABraFormExpr____n_args( self) /*ABraReassignExpr::_n_args*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_770: while(0);
+  }
+  break_770: while(0);
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*ABraReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*ABraReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::n_id= (src/parser//parser_prod.nit:8880,5--8884:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::empty_init (src/parser//parser_prod.nit:8888,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___init_avarexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::init_avarexpr (src/parser//parser_prod.nit:8890,5--8896:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i]) return;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ =  variable0 /*n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::replace_child (src/parser//parser_prod.nit:8900,5--8911:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8902,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8906,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label774;
+  }
+  return_label774: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::visit_all (src/parser//parser_prod.nit:8915,5--8918:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarExpr::visit_all_reverse (src/parser//parser_prod.nit:8922,5--8925:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::n_id= (src/parser//parser_prod.nit:8930,5--8934:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::n_assign= (src/parser//parser_prod.nit:8937,5--8941:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TAssign::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::n_value= (src/parser//parser_prod.nit:8944,5--8948:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::empty_init (src/parser//parser_prod.nit:8952,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::init_avarassignexpr (src/parser//parser_prod.nit:8954,5--8970:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ =  variable0 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ =  variable1 /*n_assign*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign*/,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign*/,  self) /*TAssign::parent=*/;
+  }
+  ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ =  variable2 /*n_value*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::replace_child (src/parser//parser_prod.nit:8974,5--9005:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8976,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8980,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label782;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TAssign::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:8990,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label782;
+  }
+  variable2 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9000,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label782;
+  }
+  return_label782: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::visit_all (src/parser//parser_prod.nit:9009,5--9018:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarAssignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarAssignExpr::visit_all_reverse (src/parser//parser_prod.nit:9022,5--9031:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarAssignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TAssign::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_assign( self) /*AVarAssignExpr::_n_assign*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AAssignFormExpr____n_value( self) /*AVarAssignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___n_id__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::n_id= (src/parser//parser_prod.nit:9036,5--9040:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TId::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::n_assign_op= (src/parser//parser_prod.nit:9043,5--9047:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PAssignOp::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___n_value__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::n_value= (src/parser//parser_prod.nit:9050,5--9054:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::empty_init (src/parser//parser_prod.nit:9058,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::init_avarreassignexpr (src/parser//parser_prod.nit:9060,5--9076:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
+  ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ =  variable0 /*n_id*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_id*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_id*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_id*/,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_id*/,  self) /*TId::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ =  variable1 /*n_assign_op*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_assign_op*/,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_assign_op*/,  self) /*PAssignOp::parent=*/;
+  }
+  ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ =  variable2 /*n_value*/;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n_value*/ ==  NIT_NULL /*null*/) || (( variable2 /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n_value*/,COLOR_kernel___Object_____eqeq))( variable2 /*n_value*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n_value*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::replace_child (src/parser//parser_prod.nit:9080,5--9111:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9082,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9086,3--26\n"); nit_exit(1);}
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label790;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PAssignOp::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9096,3--32\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label790;
+  }
+  variable2 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9106,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label790;
+  }
+  return_label790: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::visit_all (src/parser//parser_prod.nit:9115,5--9124:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AVarReassignExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AVarReassignExpr::visit_all_reverse (src/parser//parser_prod.nit:9128,5--9137:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TId::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AVarFormExpr____n_id( self) /*AVarReassignExpr::_n_id*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PAssignOp::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_assign_op( self) /*AVarReassignExpr::_n_assign_op*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AReassignFormExpr____n_value( self) /*AVarReassignExpr::_n_value*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::n_expr= (src/parser//parser_prod.nit:9142,5--9146:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::n_expr2= (src/parser//parser_prod.nit:9149,5--9153:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::empty_init (src/parser//parser_prod.nit:9157,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___init_arangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::init_arangeexpr (src/parser//parser_prod.nit:9159,5--9170:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::replace_child (src/parser//parser_prod.nit:9174,5--9195:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9176,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9180,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label797;
+  }
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9190,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label797;
+  }
+  return_label797: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::visit_all (src/parser//parser_prod.nit:9199,5--9205:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ARangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ARangeExpr::visit_all_reverse (src/parser//parser_prod.nit:9209,5--9215:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ARangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ARangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::n_expr= (src/parser//parser_prod.nit:9220,5--9224:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::n_expr2= (src/parser//parser_prod.nit:9227,5--9231:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::empty_init (src/parser//parser_prod.nit:9235,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
+  ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___init_acrangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::init_acrangeexpr (src/parser//parser_prod.nit:9237,5--9248:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
+  ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::replace_child (src/parser//parser_prod.nit:9252,5--9273:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9254,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9258,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label804;
+  }
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9268,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label804;
+  }
+  return_label804: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::visit_all (src/parser//parser_prod.nit:9277,5--9283:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACrangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACrangeExpr::visit_all_reverse (src/parser//parser_prod.nit:9287,5--9293:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*ACrangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*ACrangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::n_expr= (src/parser//parser_prod.nit:9298,5--9302:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::n_expr2= (src/parser//parser_prod.nit:9305,5--9309:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::empty_init (src/parser//parser_prod.nit:9313,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
+  ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___init_aorangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::init_aorangeexpr (src/parser//parser_prod.nit:9315,5--9326:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
+  ((parser_prod___ARangeExpr___empty_init_t)CALL( self,COLOR_parser_prod___ARangeExpr___empty_init))( self, init_table /*YYY*/) /*ARangeExpr::empty_init*/;
+  ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ =  variable1 /*n_expr2*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_expr2*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_expr2*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::replace_child (src/parser//parser_prod.nit:9330,5--9351:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9332,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9336,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label811;
+  }
+  variable2 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9346,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label811;
+  }
+  return_label811: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::visit_all (src/parser//parser_prod.nit:9355,5--9361:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AOrangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AOrangeExpr::visit_all_reverse (src/parser//parser_prod.nit:9365,5--9371:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr( self) /*AOrangeExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ARangeExpr____n_expr2( self) /*AOrangeExpr::_n_expr2*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AArrayExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AArrayExpr::empty_init (src/parser//parser_prod.nit:9377,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AArrayExpr___init_aarrayexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AArrayExpr::init_aarrayexpr (src/parser//parser_prod.nit:9379,5--9387:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_exprs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9385,3--20\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*PExpr::parent=*/;
+    continue_816: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_816: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AArrayExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AArrayExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AArrayExpr::replace_child (src/parser//parser_prod.nit:9391,5--9403:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9393,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9397,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label817;
+    }
+    continue_818: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_818: while(0);
+  return_label817: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AArrayExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AArrayExpr::visit_all (src/parser//parser_prod.nit:9408,5--9411:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_820: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_820: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AArrayExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AArrayExpr::visit_all_reverse (src/parser//parser_prod.nit:9415,5--9421:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AArrayExpr____n_exprs( self) /*AArrayExpr::_n_exprs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_822: while(0);
+  }
+  break_822: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::n_kwself= (src/parser//parser_prod.nit:9427,5--9431:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwself::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwself::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::empty_init (src/parser//parser_prod.nit:9435,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___init_aselfexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::init_aselfexpr (src/parser//parser_prod.nit:9437,5--9443:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
+  ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ =  variable0 /*n_kwself*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwself*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwself*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwself*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwself*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwself*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwself*/,  NIT_NULL /*null*/) /*TKwself::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwself*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwself*/,  self) /*TKwself::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::replace_child (src/parser//parser_prod.nit:9447,5--9458:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9449,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwself::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9453,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label826;
+  }
+  return_label826: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::visit_all (src/parser//parser_prod.nit:9462,5--9465:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwself::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASelfExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASelfExpr::visit_all_reverse (src/parser//parser_prod.nit:9469,5--9472:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwself::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ASelfExpr____n_kwself( self) /*ASelfExpr::_n_kwself*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImplicitSelfExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AImplicitSelfExpr::empty_init (src/parser//parser_prod.nit:9478,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
+  ((parser_prod___ASelfExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASelfExpr___empty_init))( self, init_table /*YYY*/) /*ASelfExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AImplicitSelfExpr::init_aimplicitselfexpr (src/parser//parser_prod.nit:9480,5--31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
+  ((parser_prod___ASelfExpr___empty_init_t)CALL( self,COLOR_parser_prod___ASelfExpr___empty_init))( self, init_table /*YYY*/) /*ASelfExpr::empty_init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImplicitSelfExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AImplicitSelfExpr::replace_child (src/parser//parser_prod.nit:9484,5--9486:32)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9486,9--32\n"); nit_exit(1);}
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImplicitSelfExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImplicitSelfExpr::visit_all (src/parser//parser_prod.nit:9489,5--35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AImplicitSelfExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AImplicitSelfExpr::visit_all_reverse (src/parser//parser_prod.nit:9493,5--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::n_kwtrue= (src/parser//parser_prod.nit:9498,5--9502:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwtrue::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::empty_init (src/parser//parser_prod.nit:9506,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___init_atrueexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::init_atrueexpr (src/parser//parser_prod.nit:9508,5--9514:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
+  ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ =  variable0 /*n_kwtrue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwtrue*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwtrue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwtrue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwtrue*/,  NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwtrue*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwtrue*/,  self) /*TKwtrue::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::replace_child (src/parser//parser_prod.nit:9518,5--9529:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9520,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwtrue::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9524,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label837;
+  }
+  return_label837: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::visit_all (src/parser//parser_prod.nit:9533,5--9536:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ATrueExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ATrueExpr::visit_all_reverse (src/parser//parser_prod.nit:9540,5--9543:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwtrue::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ATrueExpr____n_kwtrue( self) /*ATrueExpr::_n_kwtrue*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::n_kwfalse= (src/parser//parser_prod.nit:9548,5--9552:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwfalse::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::empty_init (src/parser//parser_prod.nit:9556,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___init_afalseexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::init_afalseexpr (src/parser//parser_prod.nit:9558,5--9564:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
+  ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ =  variable0 /*n_kwfalse*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwfalse*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwfalse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwfalse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwfalse*/,  NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwfalse*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwfalse*/,  self) /*TKwfalse::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::replace_child (src/parser//parser_prod.nit:9568,5--9579:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9570,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwfalse::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9574,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label843;
+  }
+  return_label843: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::visit_all (src/parser//parser_prod.nit:9583,5--9586:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFalseExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFalseExpr::visit_all_reverse (src/parser//parser_prod.nit:9590,5--9593:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwfalse::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFalseExpr____n_kwfalse( self) /*AFalseExpr::_n_kwfalse*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::n_kwnull= (src/parser//parser_prod.nit:9598,5--9602:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TKwnull::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TKwnull::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::empty_init (src/parser//parser_prod.nit:9606,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___init_anullexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::init_anullexpr (src/parser//parser_prod.nit:9608,5--9614:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i]) return;
+  ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ =  variable0 /*n_kwnull*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_kwnull*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_kwnull*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnull*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_kwnull*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_kwnull*/,  NIT_NULL /*null*/) /*TKwnull::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_kwnull*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_kwnull*/,  self) /*TKwnull::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::replace_child (src/parser//parser_prod.nit:9618,5--9629:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9620,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TKwnull::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9624,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label849;
+  }
+  return_label849: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::visit_all (src/parser//parser_prod.nit:9633,5--9636:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnull::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ANullExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ANullExpr::visit_all_reverse (src/parser//parser_prod.nit:9640,5--9643:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TKwnull::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ANullExpr____n_kwnull( self) /*ANullExpr::_n_kwnull*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___n_number__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::n_number= (src/parser//parser_prod.nit:9648,5--9652:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TNumber::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TNumber::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::empty_init (src/parser//parser_prod.nit:9656,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___init_aintexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::init_aintexpr (src/parser//parser_prod.nit:9658,5--9664:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i]) return;
+  ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ =  variable0 /*n_number*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_number*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_number*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_number*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_number*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_number*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_number*/,  NIT_NULL /*null*/) /*TNumber::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_number*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_number*/,  self) /*TNumber::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::replace_child (src/parser//parser_prod.nit:9668,5--9679:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9670,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TNumber::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9674,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label855;
+  }
+  return_label855: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::visit_all (src/parser//parser_prod.nit:9683,5--9686:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TNumber::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AIntExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AIntExpr::visit_all_reverse (src/parser//parser_prod.nit:9690,5--9693:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TNumber::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AIntExpr____n_number( self) /*AIntExpr::_n_number*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___n_float__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::n_float= (src/parser//parser_prod.nit:9698,5--9702:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TFloat::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TFloat::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::empty_init (src/parser//parser_prod.nit:9706,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___init_afloatexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::init_afloatexpr (src/parser//parser_prod.nit:9708,5--9714:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
+  ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ =  variable0 /*n_float*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_float*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_float*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_float*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_float*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_float*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_float*/,  NIT_NULL /*null*/) /*TFloat::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_float*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_float*/,  self) /*TFloat::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::replace_child (src/parser//parser_prod.nit:9718,5--9729:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9720,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TFloat::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9724,3--29\n"); nit_exit(1);}
+      ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label861;
+  }
+  return_label861: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::visit_all (src/parser//parser_prod.nit:9733,5--9736:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TFloat::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AFloatExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AFloatExpr::visit_all_reverse (src/parser//parser_prod.nit:9740,5--9743:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TFloat::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AFloatExpr____n_float( self) /*AFloatExpr::_n_float*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___n_char__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::n_char= (src/parser//parser_prod.nit:9748,5--9752:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TChar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TChar::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::empty_init (src/parser//parser_prod.nit:9756,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___init_acharexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::init_acharexpr (src/parser//parser_prod.nit:9758,5--9764:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i]) return;
+  ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ =  variable0 /*n_char*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_char*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_char*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_char*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_char*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_char*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_char*/,  NIT_NULL /*null*/) /*TChar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_char*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_char*/,  self) /*TChar::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::replace_child (src/parser//parser_prod.nit:9768,5--9779:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9770,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TChar::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9774,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label867;
+  }
+  return_label867: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::visit_all (src/parser//parser_prod.nit:9783,5--9786:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TChar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ACharExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ACharExpr::visit_all_reverse (src/parser//parser_prod.nit:9790,5--9793:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TChar::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___ACharExpr____n_char( self) /*ACharExpr::_n_char*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::n_string= (src/parser//parser_prod.nit:9798,5--9802:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TString::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::empty_init (src/parser//parser_prod.nit:9806,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___init_astringexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::init_astringexpr (src/parser//parser_prod.nit:9808,5--9814:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i]) return;
+  ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ =  variable0 /*n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/,  self) /*TString::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::replace_child (src/parser//parser_prod.nit:9818,5--9829:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9820,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TString::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9824,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label873;
+  }
+  return_label873: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::visit_all (src/parser//parser_prod.nit:9833,5--9836:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStringExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStringExpr::visit_all_reverse (src/parser//parser_prod.nit:9840,5--9843:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStringExpr____n_string( self) /*AStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::n_string= (src/parser//parser_prod.nit:9848,5--9852:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TStartString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TStartString::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::empty_init (src/parser//parser_prod.nit:9856,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___init_astartstringexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::init_astartstringexpr (src/parser//parser_prod.nit:9858,5--9864:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
+  ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ =  variable0 /*n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/,  NIT_NULL /*null*/) /*TStartString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/,  self) /*TStartString::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::replace_child (src/parser//parser_prod.nit:9868,5--9879:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9870,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TStartString::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9874,3--35\n"); nit_exit(1);}
+      ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label879;
+  }
+  return_label879: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::visit_all (src/parser//parser_prod.nit:9883,5--9886:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStartString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AStartStringExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AStartStringExpr::visit_all_reverse (src/parser//parser_prod.nit:9890,5--9893:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TStartString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AStartStringExpr____n_string( self) /*AStartStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::n_string= (src/parser//parser_prod.nit:9898,5--9902:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TMidString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TMidString::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::empty_init (src/parser//parser_prod.nit:9906,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___init_amidstringexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::init_amidstringexpr (src/parser//parser_prod.nit:9908,5--9914:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
+  ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ =  variable0 /*n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/,  NIT_NULL /*null*/) /*TMidString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/,  self) /*TMidString::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::replace_child (src/parser//parser_prod.nit:9918,5--9929:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9920,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TMidString::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9924,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label885;
+  }
+  return_label885: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::visit_all (src/parser//parser_prod.nit:9933,5--9936:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMidString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMidStringExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMidStringExpr::visit_all_reverse (src/parser//parser_prod.nit:9940,5--9943:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMidString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMidStringExpr____n_string( self) /*AMidStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___n_string__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::n_string= (src/parser//parser_prod.nit:9948,5--9952:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TEndString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TEndString::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::empty_init (src/parser//parser_prod.nit:9956,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___init_aendstringexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::init_aendstringexpr (src/parser//parser_prod.nit:9958,5--9964:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
+  ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ =  variable0 /*n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_string*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_string*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_string*/,  NIT_NULL /*null*/) /*TEndString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_string*/,  self) /*TEndString::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::replace_child (src/parser//parser_prod.nit:9968,5--9979:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9970,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TEndString::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:9974,3--33\n"); nit_exit(1);}
+      ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label891;
+  }
+  return_label891: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::visit_all (src/parser//parser_prod.nit:9983,5--9986:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TEndString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AEndStringExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AEndStringExpr::visit_all_reverse (src/parser//parser_prod.nit:9990,5--9993:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TEndString::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AEndStringExpr____n_string( self) /*AEndStringExpr::_n_string*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperstringExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperstringExpr::empty_init (src/parser//parser_prod.nit:9999,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperstringExpr::init_asuperstringexpr (src/parser//parser_prod.nit:10001,5--10009:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[PExpr]*/
+  ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_exprs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10007,3--20\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*PExpr::parent=*/;
+    continue_896: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_896: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ASuperstringExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperstringExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperstringExpr::replace_child (src/parser//parser_prod.nit:10013,5--10025:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10015,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*PExpr::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10019,7--32\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PExpr::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label897;
+    }
+    continue_898: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_898: while(0);
+  return_label897: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperstringExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperstringExpr::visit_all (src/parser//parser_prod.nit:10030,5--10033:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_900: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_900: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ASuperstringExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ASuperstringExpr::visit_all_reverse (src/parser//parser_prod.nit:10037,5--10043:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ASuperstringExpr____n_exprs( self) /*ASuperstringExpr::_n_exprs*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_902: while(0);
+  }
+  break_902: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___n_expr__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::n_expr= (src/parser//parser_prod.nit:10049,5--10053:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*PExpr::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::empty_init (src/parser//parser_prod.nit:10057,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___init_aparexpr(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::init_aparexpr (src/parser//parser_prod.nit:10059,5--10065:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i]) return;
+  ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ =  variable0 /*n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_expr*/,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_expr*/,  self) /*PExpr::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AParExpr].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::replace_child (src/parser//parser_prod.nit:10069,5--10080:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10071,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PExpr::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10075,3--28\n"); nit_exit(1);}
+      ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label906;
+  }
+  return_label906: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::visit_all (src/parser//parser_prod.nit:10084,5--10087:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AParExpr___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AParExpr::visit_all_reverse (src/parser//parser_prod.nit:10091,5--10094:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AProxyExpr____n_expr( self) /*AParExpr::_n_expr*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::n_pluseq= (src/parser//parser_prod.nit:10099,5--10103:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TPluseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TPluseq::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::empty_init (src/parser//parser_prod.nit:10107,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___init_aplusassignop(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::init_aplusassignop (src/parser//parser_prod.nit:10109,5--10115:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
+  ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ =  variable0 /*n_pluseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_pluseq*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_pluseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_pluseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_pluseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_pluseq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_pluseq*/,  NIT_NULL /*null*/) /*TPluseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_pluseq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_pluseq*/,  self) /*TPluseq::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::replace_child (src/parser//parser_prod.nit:10119,5--10130:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10121,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TPluseq::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10125,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label912;
+  }
+  return_label912: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::visit_all (src/parser//parser_prod.nit:10134,5--10137:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPluseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___APlusAssignOp___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::APlusAssignOp::visit_all_reverse (src/parser//parser_prod.nit:10141,5--10144:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TPluseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___APlusAssignOp____n_pluseq( self) /*APlusAssignOp::_n_pluseq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::n_minuseq= (src/parser//parser_prod.nit:10149,5--10153:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TMinuseq::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::empty_init (src/parser//parser_prod.nit:10157,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___init_aminusassignop(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::init_aminusassignop (src/parser//parser_prod.nit:10159,5--10165:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
+  ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ =  variable0 /*n_minuseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n_minuseq*/ ==  NIT_NULL /*null*/) || (( variable0 /*n_minuseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n_minuseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n_minuseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n_minuseq*/,COLOR_kernel___Object_____eqeq))( variable0 /*n_minuseq*/,  NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n_minuseq*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n_minuseq*/,  self) /*TMinuseq::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::replace_child (src/parser//parser_prod.nit:10169,5--10180:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10171,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TMinuseq::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10175,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label918;
+  }
+  return_label918: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::visit_all (src/parser//parser_prod.nit:10184,5--10187:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AMinusAssignOp___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AMinusAssignOp::visit_all_reverse (src/parser//parser_prod.nit:10191,5--10194:30)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TMinuseq::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AMinusAssignOp____n_minuseq( self) /*AMinusAssignOp::_n_minuseq*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___n_classid__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::n_classid= (src/parser//parser_prod.nit:10199,5--10203:20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ =  variable0 /*n*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*n*/,  self) /*TClassid::parent=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::empty_init (src/parser//parser_prod.nit:10207,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___init_aqualified(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::init_aqualified (src/parser//parser_prod.nit:10209,5--10222:25)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i]) return;
+  variable2 = NEW_list___List___init(); /*new List[TId]*/
+  ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/ = variable2;
+  variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_id*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_id*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+    variable4 = TAG_Bool(( variable3 /*n*/==NIT_NULL) || VAL_ISA( variable3 /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
+    if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10216,3--18\n"); nit_exit(1);}
+    variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable3 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable3 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable3 /*n*/,  self) /*TId::parent=*/;
+    continue_924: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+  }
+  break_924: while(0);
+  ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ =  variable1 /*n_classid*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n_classid*/ ==  NIT_NULL /*null*/) || (( variable1 /*n_classid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n_classid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n_classid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n_classid*/,COLOR_kernel___Object_____eqeq))( variable1 /*n_classid*/,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*n_classid*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*n_classid*/,  self) /*TClassid::parent=*/;
+  }
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AQualified].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::replace_child (src/parser//parser_prod.nit:10226,5--10249:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10228,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*TId::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10232,7--30\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*TId::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label925;
+    }
+    continue_926: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_926: while(0);
+  variable2 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*TClassid::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10244,3--31\n"); nit_exit(1);}
+      ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ =  variable1 /*new_child*/;
+    } else { /*if*/
+      ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/ =  NIT_NULL /*null*/;
+    }
+    goto return_label925;
+  }
+  return_label925: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::visit_all (src/parser//parser_prod.nit:10253,5--10259:30)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_928: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_928: while(0);
+  variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___AQualified___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::AQualified::visit_all_reverse (src/parser//parser_prod.nit:10263,5--10273:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___AQualified____n_id( self) /*AQualified::_n_id*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_930: while(0);
+  }
+  break_930: while(0);
+  variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*TClassid::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___AQualified____n_classid( self) /*AQualified::_n_classid*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoc___empty_init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADoc::empty_init (src/parser//parser_prod.nit:10279,5--27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoc___init_adoc(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::ADoc::init_adoc (src/parser//parser_prod.nit:10281,5--10289:17)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i]) return;
+  variable1 = NEW_list___List___init(); /*new List[TComment]*/
+  ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/ = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( variable0 /*n_comment*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*n_comment*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = TAG_Bool(( variable2 /*n*/==NIT_NULL) || VAL_ISA( variable2 /*n*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+    if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10287,3--23\n"); nit_exit(1);}
+    variable3 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+    ((abstract_collection___IndexedCollection___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable2 /*n*/) /*List::add*/;
+    ((parser_prod___PNode___parent__eq_t)CALL( variable2 /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable2 /*n*/,  self) /*TComment::parent=*/;
+    continue_933: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_933: while(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ADoc].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoc___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::ADoc::replace_child (src/parser//parser_prod.nit:10293,5--10305:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10295,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable3 = NEW_range___Range___without_last( TAG_Int(0), variable2); /*new Range[Int]*/
+  variable2 = variable3;
+  variable2 = ((range___Range___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
+    variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+    variable4 = ((list___List_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable3 /*i*/) /*List::[]*/;
+    variable4 = TAG_Bool((variable4 ==  variable0 /*old_child*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  variable0 /*old_child*/) /*TComment::==*/)))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+        if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10299,7--35\n"); nit_exit(1);}
+        variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+        ((list___List_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*new_child*/) /*List::[]=*/;
+        ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*TComment::parent=*/;
+      } else { /*if*/
+        variable4 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+        ((list___List___remove_at_t)CALL(variable4,COLOR_abstract_collection___Map___remove_at))(variable4,  variable3 /*i*/) /*List::remove_at*/;
+      }
+      goto return_label934;
+    }
+    continue_935: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
+  }
+  break_935: while(0);
+  return_label934: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoc___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoc::visit_all (src/parser//parser_prod.nit:10310,5--10313:25)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+  variable1 = ((list___List___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*List::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((list___ListIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((list___ListIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ListIterator::item*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/,  variable2 /*n*/) /*Visitor::visit*/;
+    continue_937: while(0);
+    ((list___ListIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ListIterator::next*/;
+  }
+  break_937: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___ADoc___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::ADoc::visit_all_reverse (src/parser//parser_prod.nit:10317,5--10323:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+  variable2 = ((list___List___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*List::length*/;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = ATTR_parser_nodes___ADoc____n_comment( self) /*ADoc::_n_comment*/;
+    variable2 = ((list___List_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2,  variable1 /*i*/) /*List::[]*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*Visitor::visit*/;
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable1 = variable2 /*i=*/;
+    continue_939: while(0);
+  }
+  break_939: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Start___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "parser_prod::Start::init (src/parser//parser_prod.nit:10330,5--10335:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Start].i]) return;
+  ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/ =  variable0 /*n_base*/;
+  ATTR_parser_nodes___Start____n_eof( self) /*Start::_n_eof*/ =  variable1 /*n_eof*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Start].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Start___replace_child(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "parser_prod::Start::replace_child (src/parser//parser_prod.nit:10338,5--10349:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*old_child*/ ==  NIT_NULL /*null*/) || (( variable0 /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*old_child*/,COLOR_kernel___Object_____eqeq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10340,9--32\n"); nit_exit(1);}
+  variable2 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+  variable2 = TAG_Bool((variable2 ==  variable0 /*old_child*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*old_child*/) /*PModule::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = TAG_Bool(( variable1 /*new_child*/ ==  NIT_NULL /*null*/) || (( variable1 /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*new_child*/,COLOR_kernel___Object_____eqeq))( variable1 /*new_child*/,  NIT_NULL /*null*/) /*PNode::==*/)))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+    } else { /*if*/
+      ((parser_prod___PNode___parent__eq_t)CALL( variable1 /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable1 /*new_child*/,  self) /*PNode::parent=*/;
+      variable2 = TAG_Bool(( variable1 /*new_child*/==NIT_NULL) || VAL_ISA( variable1 /*new_child*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
+      if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/parser//parser_prod.nit:10345,3--30\n"); nit_exit(1);}
+      ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/ =  variable1 /*new_child*/;
+    }
+    ((parser_prod___PNode___parent__eq_t)CALL( variable0 /*old_child*/,COLOR_parser_prod___PNode___parent__eq))( variable0 /*old_child*/,  NIT_NULL /*null*/) /*PNode::parent=*/;
+    goto return_label941;
+  }
+  return_label941: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Start___visit_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Start::visit_all (src/parser//parser_prod.nit:10353,5--10356:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PModule::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void parser_prod___Start___visit_all_reverse(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "parser_prod::Start::visit_all_reverse (src/parser//parser_prod.nit:10360,5--10363:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PModule::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_parser_nodes___Start____n_base( self) /*Start::_n_base*/;
+    ((parser_prod___Visitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable1) /*Visitor::visit*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/parser_prod._sep.h b/c_src/parser_prod._sep.h
new file mode 100644 (file)
index 0000000..691520c
--- /dev/null
@@ -0,0 +1,2232 @@
+#ifndef parser_prod__sep
+#define parser_prod__sep
+#include "lexer._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Visitor[];
+extern const int SFT_parser_prod[];
+#define COLOR_parser_prod___PNode____parent SFT_parser_prod[0]
+#define COLOR_parser_prod___PNode___parent SFT_parser_prod[1]
+#define COLOR_parser_prod___PNode___parent__eq SFT_parser_prod[2]
+#define COLOR_parser_prod___PNode___remove_child SFT_parser_prod[3]
+#define COLOR_parser_prod___PNode___replace_child SFT_parser_prod[4]
+#define COLOR_parser_prod___PNode___replace_with SFT_parser_prod[5]
+#define COLOR_parser_prod___PNode___visit_all SFT_parser_prod[6]
+#define COLOR_parser_prod___PNode___visit_all_reverse SFT_parser_prod[7]
+#define COLOR_parser_prod___PNode___locate SFT_parser_prod[8]
+#define COLOR_parser_prod___PNode___printl SFT_parser_prod[9]
+#define COLOR_parser_prod___Prod____first_token SFT_parser_prod[10]
+#define COLOR_parser_prod___Prod____last_token SFT_parser_prod[11]
+#define COLOR_parser_prod___Prod___first_token SFT_parser_prod[12]
+#define COLOR_parser_prod___Prod___first_token__eq SFT_parser_prod[13]
+#define COLOR_parser_prod___Prod___last_token SFT_parser_prod[14]
+#define COLOR_parser_prod___Prod___last_token__eq SFT_parser_prod[15]
+#define COLOR_SUPER_parser_prod___Prod___replace_with SFT_parser_prod[16]
+#define ID_Visitor SFT_parser_prod[17]
+#define COLOR_Visitor SFT_parser_prod[18]
+#define INIT_TABLE_POS_Visitor SFT_parser_prod[19]
+#define COLOR_parser_prod___Visitor___visit SFT_parser_prod[20]
+#define COLOR_parser_prod___AModule___empty_init SFT_parser_prod[21]
+#define COLOR_parser_prod___AModule___init_amodule SFT_parser_prod[22]
+#define COLOR_parser_prod___APackagedecl___empty_init SFT_parser_prod[23]
+#define COLOR_parser_prod___APackagedecl___init_apackagedecl SFT_parser_prod[24]
+#define COLOR_parser_prod___AImport___empty_init SFT_parser_prod[25]
+#define COLOR_parser_prod___AImport___init_aimport SFT_parser_prod[26]
+#define COLOR_parser_prod___ANoImport___empty_init SFT_parser_prod[27]
+#define COLOR_parser_prod___ANoImport___init_anoimport SFT_parser_prod[28]
+#define COLOR_parser_prod___APublicVisibility___empty_init SFT_parser_prod[29]
+#define COLOR_parser_prod___APublicVisibility___init_apublicvisibility SFT_parser_prod[30]
+#define COLOR_parser_prod___APrivateVisibility___empty_init SFT_parser_prod[31]
+#define COLOR_parser_prod___APrivateVisibility___init_aprivatevisibility SFT_parser_prod[32]
+#define COLOR_parser_prod___AProtectedVisibility___empty_init SFT_parser_prod[33]
+#define COLOR_parser_prod___AProtectedVisibility___init_aprotectedvisibility SFT_parser_prod[34]
+#define COLOR_parser_prod___AIntrudeVisibility___empty_init SFT_parser_prod[35]
+#define COLOR_parser_prod___AIntrudeVisibility___init_aintrudevisibility SFT_parser_prod[36]
+#define COLOR_parser_prod___AClassdef___empty_init SFT_parser_prod[37]
+#define COLOR_parser_prod___AClassdef___init_aclassdef SFT_parser_prod[38]
+#define COLOR_parser_prod___ATopClassdef___empty_init SFT_parser_prod[39]
+#define COLOR_parser_prod___ATopClassdef___init_atopclassdef SFT_parser_prod[40]
+#define COLOR_parser_prod___AMainClassdef___empty_init SFT_parser_prod[41]
+#define COLOR_parser_prod___AMainClassdef___init_amainclassdef SFT_parser_prod[42]
+#define COLOR_parser_prod___AConcreteClasskind___empty_init SFT_parser_prod[43]
+#define COLOR_parser_prod___AConcreteClasskind___init_aconcreteclasskind SFT_parser_prod[44]
+#define COLOR_parser_prod___AAbstractClasskind___empty_init SFT_parser_prod[45]
+#define COLOR_parser_prod___AAbstractClasskind___init_aabstractclasskind SFT_parser_prod[46]
+#define COLOR_parser_prod___AInterfaceClasskind___empty_init SFT_parser_prod[47]
+#define COLOR_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind SFT_parser_prod[48]
+#define COLOR_parser_prod___AUniversalClasskind___empty_init SFT_parser_prod[49]
+#define COLOR_parser_prod___AUniversalClasskind___init_auniversalclasskind SFT_parser_prod[50]
+#define COLOR_parser_prod___AFormaldef___empty_init SFT_parser_prod[51]
+#define COLOR_parser_prod___AFormaldef___init_aformaldef SFT_parser_prod[52]
+#define COLOR_parser_prod___ASuperclass___empty_init SFT_parser_prod[53]
+#define COLOR_parser_prod___ASuperclass___init_asuperclass SFT_parser_prod[54]
+#define COLOR_parser_prod___AAttrPropdef___empty_init SFT_parser_prod[55]
+#define COLOR_parser_prod___AAttrPropdef___init_aattrpropdef SFT_parser_prod[56]
+#define COLOR_parser_prod___AMethPropdef___empty_init SFT_parser_prod[57]
+#define COLOR_parser_prod___AMethPropdef___init_amethpropdef SFT_parser_prod[58]
+#define COLOR_parser_prod___ADeferredMethPropdef___empty_init SFT_parser_prod[59]
+#define COLOR_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef SFT_parser_prod[60]
+#define COLOR_parser_prod___AInternMethPropdef___empty_init SFT_parser_prod[61]
+#define COLOR_parser_prod___AInternMethPropdef___init_ainternmethpropdef SFT_parser_prod[62]
+#define COLOR_parser_prod___AExternMethPropdef___empty_init SFT_parser_prod[63]
+#define COLOR_parser_prod___AExternMethPropdef___init_aexternmethpropdef SFT_parser_prod[64]
+#define COLOR_parser_prod___AConcreteMethPropdef___empty_init SFT_parser_prod[65]
+#define COLOR_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef SFT_parser_prod[66]
+#define COLOR_parser_prod___AConcreteInitPropdef___empty_init SFT_parser_prod[67]
+#define COLOR_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef SFT_parser_prod[68]
+#define COLOR_parser_prod___AMainMethPropdef___empty_init SFT_parser_prod[69]
+#define COLOR_parser_prod___AMainMethPropdef___init_amainmethpropdef SFT_parser_prod[70]
+#define COLOR_parser_prod___ATypePropdef___empty_init SFT_parser_prod[71]
+#define COLOR_parser_prod___ATypePropdef___init_atypepropdef SFT_parser_prod[72]
+#define COLOR_parser_prod___AReadAble___empty_init SFT_parser_prod[73]
+#define COLOR_parser_prod___AReadAble___init_areadable SFT_parser_prod[74]
+#define COLOR_parser_prod___AWriteAble___empty_init SFT_parser_prod[75]
+#define COLOR_parser_prod___AWriteAble___init_awriteable SFT_parser_prod[76]
+#define COLOR_parser_prod___AIdMethid___empty_init SFT_parser_prod[77]
+#define COLOR_parser_prod___AIdMethid___init_aidmethid SFT_parser_prod[78]
+#define COLOR_parser_prod___APlusMethid___empty_init SFT_parser_prod[79]
+#define COLOR_parser_prod___APlusMethid___init_aplusmethid SFT_parser_prod[80]
+#define COLOR_parser_prod___AMinusMethid___empty_init SFT_parser_prod[81]
+#define COLOR_parser_prod___AMinusMethid___init_aminusmethid SFT_parser_prod[82]
+#define COLOR_parser_prod___AStarMethid___empty_init SFT_parser_prod[83]
+#define COLOR_parser_prod___AStarMethid___init_astarmethid SFT_parser_prod[84]
+#define COLOR_parser_prod___ASlashMethid___empty_init SFT_parser_prod[85]
+#define COLOR_parser_prod___ASlashMethid___init_aslashmethid SFT_parser_prod[86]
+#define COLOR_parser_prod___APercentMethid___empty_init SFT_parser_prod[87]
+#define COLOR_parser_prod___APercentMethid___init_apercentmethid SFT_parser_prod[88]
+#define COLOR_parser_prod___AEqMethid___empty_init SFT_parser_prod[89]
+#define COLOR_parser_prod___AEqMethid___init_aeqmethid SFT_parser_prod[90]
+#define COLOR_parser_prod___ANeMethid___empty_init SFT_parser_prod[91]
+#define COLOR_parser_prod___ANeMethid___init_anemethid SFT_parser_prod[92]
+#define COLOR_parser_prod___ALeMethid___empty_init SFT_parser_prod[93]
+#define COLOR_parser_prod___ALeMethid___init_alemethid SFT_parser_prod[94]
+#define COLOR_parser_prod___AGeMethid___empty_init SFT_parser_prod[95]
+#define COLOR_parser_prod___AGeMethid___init_agemethid SFT_parser_prod[96]
+#define COLOR_parser_prod___ALtMethid___empty_init SFT_parser_prod[97]
+#define COLOR_parser_prod___ALtMethid___init_altmethid SFT_parser_prod[98]
+#define COLOR_parser_prod___AGtMethid___empty_init SFT_parser_prod[99]
+#define COLOR_parser_prod___AGtMethid___init_agtmethid SFT_parser_prod[100]
+#define COLOR_parser_prod___ABraMethid___empty_init SFT_parser_prod[101]
+#define COLOR_parser_prod___ABraMethid___init_abramethid SFT_parser_prod[102]
+#define COLOR_parser_prod___AStarshipMethid___empty_init SFT_parser_prod[103]
+#define COLOR_parser_prod___AStarshipMethid___init_astarshipmethid SFT_parser_prod[104]
+#define COLOR_parser_prod___AAssignMethid___empty_init SFT_parser_prod[105]
+#define COLOR_parser_prod___AAssignMethid___init_aassignmethid SFT_parser_prod[106]
+#define COLOR_parser_prod___ABraassignMethid___empty_init SFT_parser_prod[107]
+#define COLOR_parser_prod___ABraassignMethid___init_abraassignmethid SFT_parser_prod[108]
+#define COLOR_parser_prod___ASignature___empty_init SFT_parser_prod[109]
+#define COLOR_parser_prod___ASignature___init_asignature SFT_parser_prod[110]
+#define COLOR_parser_prod___AParam___empty_init SFT_parser_prod[111]
+#define COLOR_parser_prod___AParam___init_aparam SFT_parser_prod[112]
+#define COLOR_parser_prod___AType___empty_init SFT_parser_prod[113]
+#define COLOR_parser_prod___AType___init_atype SFT_parser_prod[114]
+#define COLOR_parser_prod___ABlockExpr___empty_init SFT_parser_prod[115]
+#define COLOR_parser_prod___ABlockExpr___init_ablockexpr SFT_parser_prod[116]
+#define COLOR_parser_prod___AVardeclExpr___empty_init SFT_parser_prod[117]
+#define COLOR_parser_prod___AVardeclExpr___init_avardeclexpr SFT_parser_prod[118]
+#define COLOR_parser_prod___AReturnExpr___empty_init SFT_parser_prod[119]
+#define COLOR_parser_prod___AReturnExpr___init_areturnexpr SFT_parser_prod[120]
+#define COLOR_parser_prod___ABreakExpr___empty_init SFT_parser_prod[121]
+#define COLOR_parser_prod___ABreakExpr___init_abreakexpr SFT_parser_prod[122]
+#define COLOR_parser_prod___AAbortExpr___empty_init SFT_parser_prod[123]
+#define COLOR_parser_prod___AAbortExpr___init_aabortexpr SFT_parser_prod[124]
+#define COLOR_parser_prod___AContinueExpr___empty_init SFT_parser_prod[125]
+#define COLOR_parser_prod___AContinueExpr___init_acontinueexpr SFT_parser_prod[126]
+#define COLOR_parser_prod___ADoExpr___empty_init SFT_parser_prod[127]
+#define COLOR_parser_prod___ADoExpr___init_adoexpr SFT_parser_prod[128]
+#define COLOR_parser_prod___AIfExpr___empty_init SFT_parser_prod[129]
+#define COLOR_parser_prod___AIfExpr___init_aifexpr SFT_parser_prod[130]
+#define COLOR_parser_prod___AIfexprExpr___empty_init SFT_parser_prod[131]
+#define COLOR_parser_prod___AIfexprExpr___init_aifexprexpr SFT_parser_prod[132]
+#define COLOR_parser_prod___AWhileExpr___empty_init SFT_parser_prod[133]
+#define COLOR_parser_prod___AWhileExpr___init_awhileexpr SFT_parser_prod[134]
+#define COLOR_parser_prod___AForExpr___empty_init SFT_parser_prod[135]
+#define COLOR_parser_prod___AForExpr___init_aforexpr SFT_parser_prod[136]
+#define COLOR_parser_prod___AForVardeclExpr___empty_init SFT_parser_prod[137]
+#define COLOR_parser_prod___AForVardeclExpr___init_aforvardeclexpr SFT_parser_prod[138]
+#define COLOR_parser_prod___AAssertExpr___empty_init SFT_parser_prod[139]
+#define COLOR_parser_prod___AAssertExpr___init_aassertexpr SFT_parser_prod[140]
+#define COLOR_parser_prod___AOnceExpr___empty_init SFT_parser_prod[141]
+#define COLOR_parser_prod___AOnceExpr___init_aonceexpr SFT_parser_prod[142]
+#define COLOR_parser_prod___ASendExpr___empty_init SFT_parser_prod[143]
+#define COLOR_parser_prod___ASendExpr___init_asendexpr SFT_parser_prod[144]
+#define COLOR_parser_prod___ABinopExpr___empty_init SFT_parser_prod[145]
+#define COLOR_parser_prod___ABinopExpr___init_abinopexpr SFT_parser_prod[146]
+#define COLOR_parser_prod___AOrExpr___empty_init SFT_parser_prod[147]
+#define COLOR_parser_prod___AOrExpr___init_aorexpr SFT_parser_prod[148]
+#define COLOR_parser_prod___AAndExpr___empty_init SFT_parser_prod[149]
+#define COLOR_parser_prod___AAndExpr___init_aandexpr SFT_parser_prod[150]
+#define COLOR_parser_prod___ANotExpr___empty_init SFT_parser_prod[151]
+#define COLOR_parser_prod___ANotExpr___init_anotexpr SFT_parser_prod[152]
+#define COLOR_parser_prod___AEqExpr___empty_init SFT_parser_prod[153]
+#define COLOR_parser_prod___AEqExpr___init_aeqexpr SFT_parser_prod[154]
+#define COLOR_parser_prod___AEeExpr___empty_init SFT_parser_prod[155]
+#define COLOR_parser_prod___AEeExpr___init_aeeexpr SFT_parser_prod[156]
+#define COLOR_parser_prod___ANeExpr___empty_init SFT_parser_prod[157]
+#define COLOR_parser_prod___ANeExpr___init_aneexpr SFT_parser_prod[158]
+#define COLOR_parser_prod___ALtExpr___empty_init SFT_parser_prod[159]
+#define COLOR_parser_prod___ALtExpr___init_altexpr SFT_parser_prod[160]
+#define COLOR_parser_prod___ALeExpr___empty_init SFT_parser_prod[161]
+#define COLOR_parser_prod___ALeExpr___init_aleexpr SFT_parser_prod[162]
+#define COLOR_parser_prod___AGtExpr___empty_init SFT_parser_prod[163]
+#define COLOR_parser_prod___AGtExpr___init_agtexpr SFT_parser_prod[164]
+#define COLOR_parser_prod___AGeExpr___empty_init SFT_parser_prod[165]
+#define COLOR_parser_prod___AGeExpr___init_ageexpr SFT_parser_prod[166]
+#define COLOR_parser_prod___AIsaExpr___empty_init SFT_parser_prod[167]
+#define COLOR_parser_prod___AIsaExpr___init_aisaexpr SFT_parser_prod[168]
+#define COLOR_parser_prod___APlusExpr___empty_init SFT_parser_prod[169]
+#define COLOR_parser_prod___APlusExpr___init_aplusexpr SFT_parser_prod[170]
+#define COLOR_parser_prod___AMinusExpr___empty_init SFT_parser_prod[171]
+#define COLOR_parser_prod___AMinusExpr___init_aminusexpr SFT_parser_prod[172]
+#define COLOR_parser_prod___AStarshipExpr___empty_init SFT_parser_prod[173]
+#define COLOR_parser_prod___AStarshipExpr___init_astarshipexpr SFT_parser_prod[174]
+#define COLOR_parser_prod___AStarExpr___empty_init SFT_parser_prod[175]
+#define COLOR_parser_prod___AStarExpr___init_astarexpr SFT_parser_prod[176]
+#define COLOR_parser_prod___ASlashExpr___empty_init SFT_parser_prod[177]
+#define COLOR_parser_prod___ASlashExpr___init_aslashexpr SFT_parser_prod[178]
+#define COLOR_parser_prod___APercentExpr___empty_init SFT_parser_prod[179]
+#define COLOR_parser_prod___APercentExpr___init_apercentexpr SFT_parser_prod[180]
+#define COLOR_parser_prod___AUminusExpr___empty_init SFT_parser_prod[181]
+#define COLOR_parser_prod___AUminusExpr___init_auminusexpr SFT_parser_prod[182]
+#define COLOR_parser_prod___ANewExpr___empty_init SFT_parser_prod[183]
+#define COLOR_parser_prod___ANewExpr___init_anewexpr SFT_parser_prod[184]
+#define COLOR_parser_prod___AAttrExpr___empty_init SFT_parser_prod[185]
+#define COLOR_parser_prod___AAttrExpr___init_aattrexpr SFT_parser_prod[186]
+#define COLOR_parser_prod___AAttrAssignExpr___empty_init SFT_parser_prod[187]
+#define COLOR_parser_prod___AAttrAssignExpr___init_aattrassignexpr SFT_parser_prod[188]
+#define COLOR_parser_prod___AAttrReassignExpr___empty_init SFT_parser_prod[189]
+#define COLOR_parser_prod___AAttrReassignExpr___init_aattrreassignexpr SFT_parser_prod[190]
+#define COLOR_parser_prod___ACallExpr___empty_init SFT_parser_prod[191]
+#define COLOR_parser_prod___ACallExpr___init_acallexpr SFT_parser_prod[192]
+#define COLOR_parser_prod___ACallAssignExpr___empty_init SFT_parser_prod[193]
+#define COLOR_parser_prod___ACallAssignExpr___init_acallassignexpr SFT_parser_prod[194]
+#define COLOR_parser_prod___ACallReassignExpr___empty_init SFT_parser_prod[195]
+#define COLOR_parser_prod___ACallReassignExpr___init_acallreassignexpr SFT_parser_prod[196]
+#define COLOR_parser_prod___ASuperExpr___empty_init SFT_parser_prod[197]
+#define COLOR_parser_prod___ASuperExpr___init_asuperexpr SFT_parser_prod[198]
+#define COLOR_parser_prod___AInitExpr___empty_init SFT_parser_prod[199]
+#define COLOR_parser_prod___AInitExpr___init_ainitexpr SFT_parser_prod[200]
+#define COLOR_parser_prod___ABraExpr___empty_init SFT_parser_prod[201]
+#define COLOR_parser_prod___ABraExpr___init_abraexpr SFT_parser_prod[202]
+#define COLOR_parser_prod___ABraAssignExpr___empty_init SFT_parser_prod[203]
+#define COLOR_parser_prod___ABraAssignExpr___init_abraassignexpr SFT_parser_prod[204]
+#define COLOR_parser_prod___ABraReassignExpr___empty_init SFT_parser_prod[205]
+#define COLOR_parser_prod___ABraReassignExpr___init_abrareassignexpr SFT_parser_prod[206]
+#define COLOR_parser_prod___AVarExpr___empty_init SFT_parser_prod[207]
+#define COLOR_parser_prod___AVarExpr___init_avarexpr SFT_parser_prod[208]
+#define COLOR_parser_prod___AVarAssignExpr___empty_init SFT_parser_prod[209]
+#define COLOR_parser_prod___AVarAssignExpr___init_avarassignexpr SFT_parser_prod[210]
+#define COLOR_parser_prod___AVarReassignExpr___empty_init SFT_parser_prod[211]
+#define COLOR_parser_prod___AVarReassignExpr___init_avarreassignexpr SFT_parser_prod[212]
+#define COLOR_parser_prod___ARangeExpr___empty_init SFT_parser_prod[213]
+#define COLOR_parser_prod___ARangeExpr___init_arangeexpr SFT_parser_prod[214]
+#define COLOR_parser_prod___ACrangeExpr___empty_init SFT_parser_prod[215]
+#define COLOR_parser_prod___ACrangeExpr___init_acrangeexpr SFT_parser_prod[216]
+#define COLOR_parser_prod___AOrangeExpr___empty_init SFT_parser_prod[217]
+#define COLOR_parser_prod___AOrangeExpr___init_aorangeexpr SFT_parser_prod[218]
+#define COLOR_parser_prod___AArrayExpr___empty_init SFT_parser_prod[219]
+#define COLOR_parser_prod___AArrayExpr___init_aarrayexpr SFT_parser_prod[220]
+#define COLOR_parser_prod___ASelfExpr___empty_init SFT_parser_prod[221]
+#define COLOR_parser_prod___ASelfExpr___init_aselfexpr SFT_parser_prod[222]
+#define COLOR_parser_prod___AImplicitSelfExpr___empty_init SFT_parser_prod[223]
+#define COLOR_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr SFT_parser_prod[224]
+#define COLOR_parser_prod___ATrueExpr___empty_init SFT_parser_prod[225]
+#define COLOR_parser_prod___ATrueExpr___init_atrueexpr SFT_parser_prod[226]
+#define COLOR_parser_prod___AFalseExpr___empty_init SFT_parser_prod[227]
+#define COLOR_parser_prod___AFalseExpr___init_afalseexpr SFT_parser_prod[228]
+#define COLOR_parser_prod___ANullExpr___empty_init SFT_parser_prod[229]
+#define COLOR_parser_prod___ANullExpr___init_anullexpr SFT_parser_prod[230]
+#define COLOR_parser_prod___AIntExpr___empty_init SFT_parser_prod[231]
+#define COLOR_parser_prod___AIntExpr___init_aintexpr SFT_parser_prod[232]
+#define COLOR_parser_prod___AFloatExpr___empty_init SFT_parser_prod[233]
+#define COLOR_parser_prod___AFloatExpr___init_afloatexpr SFT_parser_prod[234]
+#define COLOR_parser_prod___ACharExpr___empty_init SFT_parser_prod[235]
+#define COLOR_parser_prod___ACharExpr___init_acharexpr SFT_parser_prod[236]
+#define COLOR_parser_prod___AStringExpr___empty_init SFT_parser_prod[237]
+#define COLOR_parser_prod___AStringExpr___init_astringexpr SFT_parser_prod[238]
+#define COLOR_parser_prod___AStartStringExpr___empty_init SFT_parser_prod[239]
+#define COLOR_parser_prod___AStartStringExpr___init_astartstringexpr SFT_parser_prod[240]
+#define COLOR_parser_prod___AMidStringExpr___empty_init SFT_parser_prod[241]
+#define COLOR_parser_prod___AMidStringExpr___init_amidstringexpr SFT_parser_prod[242]
+#define COLOR_parser_prod___AEndStringExpr___empty_init SFT_parser_prod[243]
+#define COLOR_parser_prod___AEndStringExpr___init_aendstringexpr SFT_parser_prod[244]
+#define COLOR_parser_prod___ASuperstringExpr___empty_init SFT_parser_prod[245]
+#define COLOR_parser_prod___ASuperstringExpr___init_asuperstringexpr SFT_parser_prod[246]
+#define COLOR_parser_prod___AParExpr___empty_init SFT_parser_prod[247]
+#define COLOR_parser_prod___AParExpr___init_aparexpr SFT_parser_prod[248]
+#define COLOR_parser_prod___APlusAssignOp___empty_init SFT_parser_prod[249]
+#define COLOR_parser_prod___APlusAssignOp___init_aplusassignop SFT_parser_prod[250]
+#define COLOR_parser_prod___AMinusAssignOp___empty_init SFT_parser_prod[251]
+#define COLOR_parser_prod___AMinusAssignOp___init_aminusassignop SFT_parser_prod[252]
+#define COLOR_parser_prod___AQualified___empty_init SFT_parser_prod[253]
+#define COLOR_parser_prod___AQualified___init_aqualified SFT_parser_prod[254]
+#define COLOR_parser_prod___ADoc___empty_init SFT_parser_prod[255]
+#define COLOR_parser_prod___ADoc___init_adoc SFT_parser_prod[256]
+#define COLOR_parser_prod___Start___init SFT_parser_prod[257]
+#define ATTR_parser_prod___PNode____parent(recv) ATTR(recv, COLOR_parser_prod___PNode____parent)
+typedef val_t (* parser_prod___PNode___parent_t)(val_t  self);
+val_t parser_prod___PNode___parent(val_t  self);
+typedef void (* parser_prod___PNode___parent__eq_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___parent__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___PNode___remove_child_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___remove_child(val_t  self, val_t  param0);
+typedef void (* parser_prod___PNode___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___PNode___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___PNode___replace_with_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___replace_with(val_t  self, val_t  param0);
+typedef void (* parser_prod___PNode___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___PNode___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___visit_all_reverse(val_t  self, val_t  param0);
+typedef val_t (* parser_prod___PNode___locate_t)(val_t  self);
+val_t parser_prod___PNode___locate(val_t  self);
+typedef void (* parser_prod___PNode___printl_t)(val_t  self, val_t  param0);
+void parser_prod___PNode___printl(val_t  self, val_t  param0);
+typedef void (* parser_prod___Token___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___Token___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___Token___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___Token___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___Token___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___Token___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* parser_prod___Token___locate_t)(val_t  self);
+val_t parser_prod___Token___locate(val_t  self);
+#define ATTR_parser_prod___Prod____first_token(recv) ATTR(recv, COLOR_parser_prod___Prod____first_token)
+typedef val_t (* parser_prod___Prod___first_token_t)(val_t  self);
+val_t parser_prod___Prod___first_token(val_t  self);
+typedef void (* parser_prod___Prod___first_token__eq_t)(val_t  self, val_t  param0);
+void parser_prod___Prod___first_token__eq(val_t  self, val_t  param0);
+#define ATTR_parser_prod___Prod____last_token(recv) ATTR(recv, COLOR_parser_prod___Prod____last_token)
+typedef val_t (* parser_prod___Prod___last_token_t)(val_t  self);
+val_t parser_prod___Prod___last_token(val_t  self);
+typedef void (* parser_prod___Prod___last_token__eq_t)(val_t  self, val_t  param0);
+void parser_prod___Prod___last_token__eq(val_t  self, val_t  param0);
+typedef val_t (* parser_prod___Prod___locate_t)(val_t  self);
+val_t parser_prod___Prod___locate(val_t  self);
+typedef void (* parser_prod___Prod___replace_with_t)(val_t  self, val_t  param0);
+void parser_prod___Prod___replace_with(val_t  self, val_t  param0);
+typedef void (* parser_prod___Visitor___visit_t)(val_t  self, val_t  param0);
+void parser_prod___Visitor___visit(val_t  self, val_t  param0);
+typedef void (* parser_prod___AModule___n_packagedecl__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AModule___n_packagedecl__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AModule___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AModule___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AModule___empty_init();
+typedef void (* parser_prod___AModule___init_amodule_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AModule___init_amodule(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AModule___init_amodule(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AModule___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AModule___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AModule___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AModule___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AModule___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AModule___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APackagedecl___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APackagedecl___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APackagedecl___n_kwpackage__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APackagedecl___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APackagedecl___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APackagedecl___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APackagedecl___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APackagedecl___empty_init();
+typedef void (* parser_prod___APackagedecl___init_apackagedecl_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___APackagedecl___init_apackagedecl(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___APackagedecl___init_apackagedecl(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___APackagedecl___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APackagedecl___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APackagedecl___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APackagedecl___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APackagedecl___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APackagedecl___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImport___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AImport___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AImport___n_kwimport__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImport___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AImport___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImport___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AImport___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AImport___empty_init();
+typedef void (* parser_prod___AImport___init_aimport_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AImport___init_aimport(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AImport___init_aimport(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AImport___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AImport___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AImport___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AImport___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImport___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AImport___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANoImport___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANoImport___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANoImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANoImport___n_kwimport__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANoImport___n_kwend__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANoImport___n_kwend__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANoImport___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANoImport___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANoImport___empty_init();
+typedef void (* parser_prod___ANoImport___init_anoimport_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___ANoImport___init_anoimport(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___ANoImport___init_anoimport(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___ANoImport___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANoImport___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANoImport___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANoImport___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANoImport___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANoImport___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APublicVisibility___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APublicVisibility___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APublicVisibility___empty_init();
+typedef void (* parser_prod___APublicVisibility___init_apublicvisibility_t)(val_t  self, int* init_table);
+void parser_prod___APublicVisibility___init_apublicvisibility(val_t  self, int* init_table);
+val_t NEW_parser_prod___APublicVisibility___init_apublicvisibility();
+typedef void (* parser_prod___APublicVisibility___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APublicVisibility___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APublicVisibility___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APublicVisibility___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APublicVisibility___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APublicVisibility___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APrivateVisibility___n_kwprivate__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APrivateVisibility___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APrivateVisibility___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APrivateVisibility___empty_init();
+typedef void (* parser_prod___APrivateVisibility___init_aprivatevisibility_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___APrivateVisibility___init_aprivatevisibility(val_t  param0);
+typedef void (* parser_prod___APrivateVisibility___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APrivateVisibility___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APrivateVisibility___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APrivateVisibility___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APrivateVisibility___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APrivateVisibility___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AProtectedVisibility___n_kwprotected__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AProtectedVisibility___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AProtectedVisibility___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AProtectedVisibility___empty_init();
+typedef void (* parser_prod___AProtectedVisibility___init_aprotectedvisibility_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t  param0);
+typedef void (* parser_prod___AProtectedVisibility___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AProtectedVisibility___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AProtectedVisibility___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AProtectedVisibility___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AProtectedVisibility___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AProtectedVisibility___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntrudeVisibility___n_kwintrude__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntrudeVisibility___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIntrudeVisibility___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIntrudeVisibility___empty_init();
+typedef void (* parser_prod___AIntrudeVisibility___init_aintrudevisibility_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t  param0);
+typedef void (* parser_prod___AIntrudeVisibility___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIntrudeVisibility___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIntrudeVisibility___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIntrudeVisibility___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntrudeVisibility___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___n_classkind__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___n_classkind__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AClassdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AClassdef___empty_init();
+typedef void (* parser_prod___AClassdef___init_aclassdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, int* init_table);
+void parser_prod___AClassdef___init_aclassdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, int* init_table);
+val_t NEW_parser_prod___AClassdef___init_aclassdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7);
+typedef void (* parser_prod___AClassdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AClassdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AClassdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AClassdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATopClassdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ATopClassdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ATopClassdef___empty_init();
+typedef void (* parser_prod___ATopClassdef___init_atopclassdef_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ATopClassdef___init_atopclassdef(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ATopClassdef___init_atopclassdef(val_t  param0);
+typedef void (* parser_prod___ATopClassdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ATopClassdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ATopClassdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ATopClassdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATopClassdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ATopClassdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainClassdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMainClassdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMainClassdef___empty_init();
+typedef void (* parser_prod___AMainClassdef___init_amainclassdef_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AMainClassdef___init_amainclassdef(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AMainClassdef___init_amainclassdef(val_t  param0);
+typedef void (* parser_prod___AMainClassdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMainClassdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMainClassdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMainClassdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainClassdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMainClassdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteClasskind___n_kwclass__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteClasskind___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AConcreteClasskind___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AConcreteClasskind___empty_init();
+typedef void (* parser_prod___AConcreteClasskind___init_aconcreteclasskind_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t  param0);
+typedef void (* parser_prod___AConcreteClasskind___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AConcreteClasskind___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AConcreteClasskind___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteClasskind___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteClasskind___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteClasskind___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbstractClasskind___n_kwabstract__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbstractClasskind___n_kwclass__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbstractClasskind___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAbstractClasskind___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAbstractClasskind___empty_init();
+typedef void (* parser_prod___AAbstractClasskind___init_aabstractclasskind_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAbstractClasskind___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAbstractClasskind___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAbstractClasskind___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAbstractClasskind___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbstractClasskind___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAbstractClasskind___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInterfaceClasskind___n_kwinterface__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInterfaceClasskind___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AInterfaceClasskind___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AInterfaceClasskind___empty_init();
+typedef void (* parser_prod___AInterfaceClasskind___init_ainterfaceclasskind_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t  param0);
+typedef void (* parser_prod___AInterfaceClasskind___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AInterfaceClasskind___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AInterfaceClasskind___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AInterfaceClasskind___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInterfaceClasskind___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUniversalClasskind___n_kwuniversal__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUniversalClasskind___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AUniversalClasskind___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AUniversalClasskind___empty_init();
+typedef void (* parser_prod___AUniversalClasskind___init_auniversalclasskind_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t  param0);
+typedef void (* parser_prod___AUniversalClasskind___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AUniversalClasskind___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AUniversalClasskind___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AUniversalClasskind___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUniversalClasskind___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AUniversalClasskind___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFormaldef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AFormaldef___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFormaldef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AFormaldef___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFormaldef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AFormaldef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AFormaldef___empty_init();
+typedef void (* parser_prod___AFormaldef___init_aformaldef_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AFormaldef___init_aformaldef(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AFormaldef___init_aformaldef(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AFormaldef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AFormaldef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AFormaldef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AFormaldef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFormaldef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AFormaldef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperclass___n_kwspecial__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperclass___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperclass___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperclass___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASuperclass___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASuperclass___empty_init();
+typedef void (* parser_prod___ASuperclass___init_asuperclass_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ASuperclass___init_asuperclass(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ASuperclass___init_asuperclass(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASuperclass___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASuperclass___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASuperclass___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperclass___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperclass___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperclass___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_readable__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_writable__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_kwattr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAttrPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAttrPropdef___empty_init();
+typedef void (* parser_prod___AAttrPropdef___init_aattrpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, val_t  param8, int* init_table);
+void parser_prod___AAttrPropdef___init_aattrpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, val_t  param8, int* init_table);
+val_t NEW_parser_prod___AAttrPropdef___init_aattrpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, val_t  param7, val_t  param8);
+typedef void (* parser_prod___AAttrPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAttrPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMethPropdef___empty_init();
+typedef void (* parser_prod___AMethPropdef___init_amethpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+void parser_prod___AMethPropdef___init_amethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+val_t NEW_parser_prod___AMethPropdef___init_amethpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* parser_prod___AMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ADeferredMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ADeferredMethPropdef___empty_init();
+typedef void (* parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+void parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+val_t NEW_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+typedef void (* parser_prod___ADeferredMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ADeferredMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADeferredMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AInternMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AInternMethPropdef___empty_init();
+typedef void (* parser_prod___AInternMethPropdef___init_ainternmethpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+void parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+val_t NEW_parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+typedef void (* parser_prod___AInternMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AInternMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInternMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AInternMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___n_extern__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AExternMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AExternMethPropdef___empty_init();
+typedef void (* parser_prod___AExternMethPropdef___init_aexternmethpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+void parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+val_t NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6);
+typedef void (* parser_prod___AExternMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AExternMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AExternMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AExternMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AConcreteMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AConcreteMethPropdef___empty_init();
+typedef void (* parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+void parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+val_t NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6);
+typedef void (* parser_prod___AConcreteMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AConcreteMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_kwinit__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_signature__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AConcreteInitPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AConcreteInitPropdef___empty_init();
+typedef void (* parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+void parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6, int* init_table);
+val_t NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6);
+typedef void (* parser_prod___AConcreteInitPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AConcreteInitPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AConcreteInitPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainMethPropdef___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMainMethPropdef___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainMethPropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMainMethPropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMainMethPropdef___empty_init();
+typedef void (* parser_prod___AMainMethPropdef___init_amainmethpropdef_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMainMethPropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMainMethPropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMainMethPropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMainMethPropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMainMethPropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMainMethPropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_doc__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_doc__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_kwtype__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ATypePropdef___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ATypePropdef___empty_init();
+typedef void (* parser_prod___ATypePropdef___init_atypepropdef_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+void parser_prod___ATypePropdef___init_atypepropdef(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+val_t NEW_parser_prod___ATypePropdef___init_atypepropdef(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+typedef void (* parser_prod___ATypePropdef___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ATypePropdef___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATypePropdef___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ATypePropdef___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReadAble___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AReadAble___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReadAble___n_kwreadable__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReadAble___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AReadAble___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AReadAble___empty_init();
+typedef void (* parser_prod___AReadAble___init_areadable_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AReadAble___init_areadable(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AReadAble___init_areadable(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AReadAble___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AReadAble___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AReadAble___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AReadAble___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReadAble___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AReadAble___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWriteAble___n_kwredef__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWriteAble___n_kwredef__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWriteAble___n_kwwritable__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWriteAble___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AWriteAble___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AWriteAble___empty_init();
+typedef void (* parser_prod___AWriteAble___init_awriteable_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AWriteAble___init_awriteable(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AWriteAble___init_awriteable(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AWriteAble___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AWriteAble___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AWriteAble___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AWriteAble___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWriteAble___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AWriteAble___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIdMethid___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIdMethid___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIdMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIdMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIdMethid___empty_init();
+typedef void (* parser_prod___AIdMethid___init_aidmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AIdMethid___init_aidmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AIdMethid___init_aidmethid(val_t  param0);
+typedef void (* parser_prod___AIdMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIdMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIdMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIdMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIdMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIdMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusMethid___n_plus__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APlusMethid___n_plus__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APlusMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APlusMethid___empty_init();
+typedef void (* parser_prod___APlusMethid___init_aplusmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___APlusMethid___init_aplusmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___APlusMethid___init_aplusmethid(val_t  param0);
+typedef void (* parser_prod___APlusMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APlusMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APlusMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APlusMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APlusMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusMethid___n_minus__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusMethid___n_minus__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMinusMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMinusMethid___empty_init();
+typedef void (* parser_prod___AMinusMethid___init_aminusmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AMinusMethid___init_aminusmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AMinusMethid___init_aminusmethid(val_t  param0);
+typedef void (* parser_prod___AMinusMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMinusMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMinusMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarMethid___n_star__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarMethid___n_star__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStarMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStarMethid___empty_init();
+typedef void (* parser_prod___AStarMethid___init_astarmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AStarMethid___init_astarmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AStarMethid___init_astarmethid(val_t  param0);
+typedef void (* parser_prod___AStarMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStarMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStarMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStarMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashMethid___n_slash__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashMethid___n_slash__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASlashMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASlashMethid___empty_init();
+typedef void (* parser_prod___ASlashMethid___init_aslashmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ASlashMethid___init_aslashmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ASlashMethid___init_aslashmethid(val_t  param0);
+typedef void (* parser_prod___ASlashMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASlashMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASlashMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentMethid___n_percent__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APercentMethid___n_percent__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APercentMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APercentMethid___empty_init();
+typedef void (* parser_prod___APercentMethid___init_apercentmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___APercentMethid___init_apercentmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___APercentMethid___init_apercentmethid(val_t  param0);
+typedef void (* parser_prod___APercentMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APercentMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APercentMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APercentMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APercentMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqMethid___n_eq__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEqMethid___n_eq__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AEqMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AEqMethid___empty_init();
+typedef void (* parser_prod___AEqMethid___init_aeqmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AEqMethid___init_aeqmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AEqMethid___init_aeqmethid(val_t  param0);
+typedef void (* parser_prod___AEqMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AEqMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEqMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AEqMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AEqMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeMethid___n_ne__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANeMethid___n_ne__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANeMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANeMethid___empty_init();
+typedef void (* parser_prod___ANeMethid___init_anemethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ANeMethid___init_anemethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ANeMethid___init_anemethid(val_t  param0);
+typedef void (* parser_prod___ANeMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANeMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANeMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANeMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANeMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeMethid___n_le__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALeMethid___n_le__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ALeMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ALeMethid___empty_init();
+typedef void (* parser_prod___ALeMethid___init_alemethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ALeMethid___init_alemethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ALeMethid___init_alemethid(val_t  param0);
+typedef void (* parser_prod___ALeMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ALeMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALeMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ALeMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ALeMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeMethid___n_ge__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGeMethid___n_ge__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AGeMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AGeMethid___empty_init();
+typedef void (* parser_prod___AGeMethid___init_agemethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AGeMethid___init_agemethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AGeMethid___init_agemethid(val_t  param0);
+typedef void (* parser_prod___AGeMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AGeMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGeMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AGeMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AGeMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtMethid___n_lt__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALtMethid___n_lt__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ALtMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ALtMethid___empty_init();
+typedef void (* parser_prod___ALtMethid___init_altmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ALtMethid___init_altmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ALtMethid___init_altmethid(val_t  param0);
+typedef void (* parser_prod___ALtMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ALtMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALtMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ALtMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ALtMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtMethid___n_gt__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGtMethid___n_gt__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AGtMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AGtMethid___empty_init();
+typedef void (* parser_prod___AGtMethid___init_agtmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AGtMethid___init_agtmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AGtMethid___init_agtmethid(val_t  param0);
+typedef void (* parser_prod___AGtMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AGtMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGtMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AGtMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AGtMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraMethid___n_obra__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraMethid___n_obra__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraMethid___n_cbra__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraMethid___n_cbra__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABraMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABraMethid___empty_init();
+typedef void (* parser_prod___ABraMethid___init_abramethid_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ABraMethid___init_abramethid(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ABraMethid___init_abramethid(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABraMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABraMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABraMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipMethid___n_starship__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStarshipMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStarshipMethid___empty_init();
+typedef void (* parser_prod___AStarshipMethid___init_astarshipmethid_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AStarshipMethid___init_astarshipmethid(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AStarshipMethid___init_astarshipmethid(val_t  param0);
+typedef void (* parser_prod___AStarshipMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStarshipMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarshipMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssignMethid___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAssignMethid___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssignMethid___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAssignMethid___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssignMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAssignMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAssignMethid___empty_init();
+typedef void (* parser_prod___AAssignMethid___init_aassignmethid_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AAssignMethid___init_aassignmethid(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AAssignMethid___init_aassignmethid(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAssignMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAssignMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAssignMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAssignMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssignMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAssignMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraassignMethid___n_obra__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraassignMethid___n_cbra__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraassignMethid___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraassignMethid___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABraassignMethid___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABraassignMethid___empty_init();
+typedef void (* parser_prod___ABraassignMethid___init_abraassignmethid_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___ABraassignMethid___init_abraassignmethid(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___ABraassignMethid___init_abraassignmethid(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___ABraassignMethid___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABraassignMethid___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraassignMethid___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABraassignMethid___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraassignMethid___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABraassignMethid___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASignature___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASignature___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASignature___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASignature___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASignature___empty_init();
+typedef void (* parser_prod___ASignature___init_asignature_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ASignature___init_asignature(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ASignature___init_asignature(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASignature___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASignature___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASignature___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASignature___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASignature___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASignature___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParam___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AParam___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParam___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AParam___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParam___n_dotdotdot__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AParam___n_dotdotdot__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParam___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AParam___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AParam___empty_init();
+typedef void (* parser_prod___AParam___init_aparam_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AParam___init_aparam(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AParam___init_aparam(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AParam___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AParam___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AParam___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AParam___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParam___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AParam___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AType___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AType___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AType___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AType___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AType___empty_init();
+typedef void (* parser_prod___AType___init_atype_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AType___init_atype(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AType___init_atype(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AType___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AType___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AType___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AType___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AType___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AType___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABlockExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABlockExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABlockExpr___empty_init();
+typedef void (* parser_prod___ABlockExpr___init_ablockexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ABlockExpr___init_ablockexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ABlockExpr___init_ablockexpr(val_t  param0);
+typedef void (* parser_prod___ABlockExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABlockExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABlockExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABlockExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABlockExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABlockExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___n_kwvar__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AVardeclExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AVardeclExpr___empty_init();
+typedef void (* parser_prod___AVardeclExpr___init_avardeclexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+void parser_prod___AVardeclExpr___init_avardeclexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+val_t NEW_parser_prod___AVardeclExpr___init_avardeclexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* parser_prod___AVardeclExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AVardeclExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVardeclExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AVardeclExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReturnExpr___n_kwreturn__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReturnExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AReturnExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReturnExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AReturnExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AReturnExpr___empty_init();
+typedef void (* parser_prod___AReturnExpr___init_areturnexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AReturnExpr___init_areturnexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AReturnExpr___init_areturnexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AReturnExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AReturnExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AReturnExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AReturnExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AReturnExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AReturnExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABreakExpr___n_kwbreak__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABreakExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABreakExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABreakExpr___empty_init();
+typedef void (* parser_prod___ABreakExpr___init_abreakexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ABreakExpr___init_abreakexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ABreakExpr___init_abreakexpr(val_t  param0);
+typedef void (* parser_prod___ABreakExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABreakExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABreakExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABreakExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABreakExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABreakExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbortExpr___n_kwabort__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbortExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAbortExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAbortExpr___empty_init();
+typedef void (* parser_prod___AAbortExpr___init_aabortexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AAbortExpr___init_aabortexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AAbortExpr___init_aabortexpr(val_t  param0);
+typedef void (* parser_prod___AAbortExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAbortExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAbortExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAbortExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAbortExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAbortExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AContinueExpr___n_kwcontinue__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AContinueExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AContinueExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AContinueExpr___empty_init();
+typedef void (* parser_prod___AContinueExpr___init_acontinueexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AContinueExpr___init_acontinueexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AContinueExpr___init_acontinueexpr(val_t  param0);
+typedef void (* parser_prod___AContinueExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AContinueExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AContinueExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AContinueExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AContinueExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AContinueExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ADoExpr___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ADoExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ADoExpr___empty_init();
+typedef void (* parser_prod___ADoExpr___init_adoexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ADoExpr___init_adoexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ADoExpr___init_adoexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ADoExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ADoExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ADoExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ADoExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ADoExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___n_kwif__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___n_then__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___n_then__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___n_else__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___n_else__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIfExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIfExpr___empty_init();
+typedef void (* parser_prod___AIfExpr___init_aifexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___AIfExpr___init_aifexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___AIfExpr___init_aifexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___AIfExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIfExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIfExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_kwthen__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_then__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_then__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_kwelse__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___n_else__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___n_else__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIfexprExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIfexprExpr___empty_init();
+typedef void (* parser_prod___AIfexprExpr___init_aifexprexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+void parser_prod___AIfexprExpr___init_aifexprexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, int* init_table);
+val_t NEW_parser_prod___AIfexprExpr___init_aifexprexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+typedef void (* parser_prod___AIfexprExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIfexprExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIfexprExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIfexprExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___n_kwwhile__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AWhileExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AWhileExpr___empty_init();
+typedef void (* parser_prod___AWhileExpr___init_awhileexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___AWhileExpr___init_awhileexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___AWhileExpr___init_awhileexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___AWhileExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AWhileExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AWhileExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AWhileExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForExpr___n_vardecl__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForExpr___n_vardecl__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForExpr___n_kwdo__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForExpr___n_block__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForExpr___n_block__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AForExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AForExpr___empty_init();
+typedef void (* parser_prod___AForExpr___init_aforexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AForExpr___init_aforexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AForExpr___init_aforexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AForExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AForExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AForExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AForExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AForExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForVardeclExpr___n_kwfor__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForVardeclExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForVardeclExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AForVardeclExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AForVardeclExpr___empty_init();
+typedef void (* parser_prod___AForVardeclExpr___init_aforvardeclexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AForVardeclExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AForVardeclExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AForVardeclExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AForVardeclExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AForVardeclExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AForVardeclExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssertExpr___n_kwassert__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssertExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAssertExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssertExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAssertExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssertExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAssertExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAssertExpr___empty_init();
+typedef void (* parser_prod___AAssertExpr___init_aassertexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AAssertExpr___init_aassertexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AAssertExpr___init_aassertexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AAssertExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAssertExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAssertExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAssertExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAssertExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAssertExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOnceExpr___n_kwonce__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOnceExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOnceExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOnceExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AOnceExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AOnceExpr___empty_init();
+typedef void (* parser_prod___AOnceExpr___init_aonceexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AOnceExpr___init_aonceexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AOnceExpr___init_aonceexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOnceExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AOnceExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOnceExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AOnceExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOnceExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AOnceExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASendExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASendExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASendExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASendExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASendExpr___empty_init();
+typedef void (* parser_prod___ASendExpr___init_asendexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ASendExpr___init_asendexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ASendExpr___init_asendexpr(val_t  param0);
+typedef void (* parser_prod___ASendExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASendExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASendExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASendExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASendExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASendExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABinopExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABinopExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABinopExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABinopExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABinopExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABinopExpr___empty_init();
+typedef void (* parser_prod___ABinopExpr___init_abinopexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ABinopExpr___init_abinopexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ABinopExpr___init_abinopexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABinopExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABinopExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABinopExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABinopExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABinopExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABinopExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOrExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOrExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AOrExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AOrExpr___empty_init();
+typedef void (* parser_prod___AOrExpr___init_aorexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AOrExpr___init_aorexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AOrExpr___init_aorexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOrExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AOrExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOrExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AOrExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AOrExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAndExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAndExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAndExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAndExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAndExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAndExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAndExpr___empty_init();
+typedef void (* parser_prod___AAndExpr___init_aandexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AAndExpr___init_aandexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AAndExpr___init_aandexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAndExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAndExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAndExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAndExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAndExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAndExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANotExpr___n_kwnot__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANotExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANotExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANotExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANotExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANotExpr___empty_init();
+typedef void (* parser_prod___ANotExpr___init_anotexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ANotExpr___init_anotexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ANotExpr___init_anotexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANotExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANotExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANotExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANotExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANotExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANotExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEqExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEqExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AEqExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AEqExpr___empty_init();
+typedef void (* parser_prod___AEqExpr___init_aeqexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AEqExpr___init_aeqexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AEqExpr___init_aeqexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEqExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AEqExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEqExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AEqExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEqExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AEqExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AEeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AEeExpr___empty_init();
+typedef void (* parser_prod___AEeExpr___init_aeeexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AEeExpr___init_aeeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AEeExpr___init_aeeexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AEeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AEeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AEeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANeExpr___empty_init();
+typedef void (* parser_prod___ANeExpr___init_aneexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ANeExpr___init_aneexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ANeExpr___init_aneexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALtExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALtExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ALtExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ALtExpr___empty_init();
+typedef void (* parser_prod___ALtExpr___init_altexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ALtExpr___init_altexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ALtExpr___init_altexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALtExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ALtExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALtExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ALtExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALtExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ALtExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ALeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ALeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ALeExpr___empty_init();
+typedef void (* parser_prod___ALeExpr___init_aleexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ALeExpr___init_aleexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ALeExpr___init_aleexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ALeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ALeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ALeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ALeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ALeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGtExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGtExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AGtExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AGtExpr___empty_init();
+typedef void (* parser_prod___AGtExpr___init_agtexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AGtExpr___init_agtexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AGtExpr___init_agtexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGtExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AGtExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGtExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AGtExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGtExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AGtExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AGeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AGeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AGeExpr___empty_init();
+typedef void (* parser_prod___AGeExpr___init_ageexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AGeExpr___init_ageexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AGeExpr___init_ageexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AGeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AGeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AGeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AGeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AGeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIsaExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIsaExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIsaExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIsaExpr___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIsaExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIsaExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIsaExpr___empty_init();
+typedef void (* parser_prod___AIsaExpr___init_aisaexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AIsaExpr___init_aisaexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AIsaExpr___init_aisaexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIsaExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIsaExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIsaExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIsaExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIsaExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIsaExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APlusExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APlusExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APlusExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APlusExpr___empty_init();
+typedef void (* parser_prod___APlusExpr___init_aplusexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___APlusExpr___init_aplusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___APlusExpr___init_aplusexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___APlusExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APlusExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APlusExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APlusExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APlusExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMinusExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMinusExpr___empty_init();
+typedef void (* parser_prod___AMinusExpr___init_aminusexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AMinusExpr___init_aminusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AMinusExpr___init_aminusexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMinusExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMinusExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMinusExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStarshipExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStarshipExpr___empty_init();
+typedef void (* parser_prod___AStarshipExpr___init_astarshipexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AStarshipExpr___init_astarshipexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AStarshipExpr___init_astarshipexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarshipExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStarshipExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarshipExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarshipExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStarshipExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStarExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStarExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStarExpr___empty_init();
+typedef void (* parser_prod___AStarExpr___init_astarexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AStarExpr___init_astarexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AStarExpr___init_astarexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStarExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStarExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStarExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStarExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStarExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASlashExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASlashExpr___empty_init();
+typedef void (* parser_prod___ASlashExpr___init_aslashexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ASlashExpr___init_aslashexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ASlashExpr___init_aslashexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASlashExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASlashExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASlashExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASlashExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASlashExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APercentExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APercentExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APercentExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APercentExpr___empty_init();
+typedef void (* parser_prod___APercentExpr___init_apercentexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___APercentExpr___init_apercentexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___APercentExpr___init_apercentexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___APercentExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APercentExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APercentExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APercentExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APercentExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APercentExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUminusExpr___n_minus__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AUminusExpr___n_minus__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUminusExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AUminusExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUminusExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AUminusExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AUminusExpr___empty_init();
+typedef void (* parser_prod___AUminusExpr___init_auminusexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AUminusExpr___init_auminusexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AUminusExpr___init_auminusexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AUminusExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AUminusExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AUminusExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AUminusExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AUminusExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AUminusExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANewExpr___n_kwnew__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANewExpr___n_type__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANewExpr___n_type__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANewExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANewExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANewExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANewExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANewExpr___empty_init();
+typedef void (* parser_prod___ANewExpr___init_anewexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___ANewExpr___init_anewexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___ANewExpr___init_anewexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___ANewExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANewExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANewExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANewExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANewExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAttrExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAttrExpr___empty_init();
+typedef void (* parser_prod___AAttrExpr___init_aattrexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AAttrExpr___init_aattrexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AAttrExpr___init_aattrexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAttrExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAttrExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAttrExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAttrAssignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAttrAssignExpr___empty_init();
+typedef void (* parser_prod___AAttrAssignExpr___init_aattrassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___AAttrAssignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAttrAssignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrAssignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AAttrReassignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AAttrReassignExpr___empty_init();
+typedef void (* parser_prod___AAttrReassignExpr___init_aattrreassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___AAttrReassignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AAttrReassignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AAttrReassignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ACallExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ACallExpr___empty_init();
+typedef void (* parser_prod___ACallExpr___init_acallexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___ACallExpr___init_acallexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___ACallExpr___init_acallexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___ACallExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ACallExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACallExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ACallExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ACallExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ACallAssignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ACallAssignExpr___empty_init();
+typedef void (* parser_prod___ACallAssignExpr___init_acallassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+void parser_prod___ACallAssignExpr___init_acallassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+val_t NEW_parser_prod___ACallAssignExpr___init_acallassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* parser_prod___ACallAssignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACallAssignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallAssignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ACallAssignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ACallReassignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ACallReassignExpr___empty_init();
+typedef void (* parser_prod___ACallReassignExpr___init_acallreassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+void parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, int* init_table);
+val_t NEW_parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* parser_prod___ACallReassignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACallReassignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACallReassignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ACallReassignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperExpr___n_qualified__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperExpr___n_kwsuper__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASuperExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASuperExpr___empty_init();
+typedef void (* parser_prod___ASuperExpr___init_asuperexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___ASuperExpr___init_asuperexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___ASuperExpr___init_asuperexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___ASuperExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASuperExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASuperExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInitExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInitExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInitExpr___n_kwinit__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInitExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AInitExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AInitExpr___empty_init();
+typedef void (* parser_prod___AInitExpr___init_ainitexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AInitExpr___init_ainitexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AInitExpr___init_ainitexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AInitExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AInitExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AInitExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AInitExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AInitExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AInitExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABraExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABraExpr___empty_init();
+typedef void (* parser_prod___ABraExpr___init_abraexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ABraExpr___init_abraexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ABraExpr___init_abraexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABraExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABraExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABraExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraAssignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraAssignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraAssignExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraAssignExpr___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraAssignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraAssignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraAssignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABraAssignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABraAssignExpr___empty_init();
+typedef void (* parser_prod___ABraAssignExpr___init_abraassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___ABraAssignExpr___init_abraassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___ABraAssignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABraAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraAssignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABraAssignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraAssignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABraAssignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraReassignExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraReassignExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraReassignExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraReassignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ABraReassignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraReassignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ABraReassignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ABraReassignExpr___empty_init();
+typedef void (* parser_prod___ABraReassignExpr___init_abrareassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef void (* parser_prod___ABraReassignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ABraReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ABraReassignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ABraReassignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ABraReassignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ABraReassignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AVarExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AVarExpr___empty_init();
+typedef void (* parser_prod___AVarExpr___init_avarexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AVarExpr___init_avarexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AVarExpr___init_avarexpr(val_t  param0);
+typedef void (* parser_prod___AVarExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AVarExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AVarExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AVarExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AVarExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarAssignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarAssignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarAssignExpr___n_assign__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarAssignExpr___n_assign__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarAssignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarAssignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarAssignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AVarAssignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AVarAssignExpr___empty_init();
+typedef void (* parser_prod___AVarAssignExpr___init_avarassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AVarAssignExpr___init_avarassignexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AVarAssignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AVarAssignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AVarAssignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AVarAssignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarAssignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AVarAssignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarReassignExpr___n_id__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarReassignExpr___n_id__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarReassignExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarReassignExpr___n_value__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AVarReassignExpr___n_value__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarReassignExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AVarReassignExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AVarReassignExpr___empty_init();
+typedef void (* parser_prod___AVarReassignExpr___init_avarreassignexpr_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* parser_prod___AVarReassignExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AVarReassignExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AVarReassignExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AVarReassignExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AVarReassignExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AVarReassignExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ARangeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ARangeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ARangeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ARangeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ARangeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ARangeExpr___empty_init();
+typedef void (* parser_prod___ARangeExpr___init_arangeexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ARangeExpr___init_arangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ARangeExpr___init_arangeexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ARangeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ARangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ARangeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ARangeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ARangeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ARangeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACrangeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACrangeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACrangeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACrangeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACrangeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ACrangeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ACrangeExpr___empty_init();
+typedef void (* parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___ACrangeExpr___init_acrangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___ACrangeExpr___init_acrangeexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACrangeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ACrangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACrangeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ACrangeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACrangeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ACrangeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrangeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOrangeExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrangeExpr___n_expr2__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AOrangeExpr___n_expr2__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrangeExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AOrangeExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AOrangeExpr___empty_init();
+typedef void (* parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AOrangeExpr___init_aorangeexpr(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AOrangeExpr___init_aorangeexpr(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOrangeExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AOrangeExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AOrangeExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AOrangeExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AOrangeExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AOrangeExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AArrayExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AArrayExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AArrayExpr___empty_init();
+typedef void (* parser_prod___AArrayExpr___init_aarrayexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AArrayExpr___init_aarrayexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AArrayExpr___init_aarrayexpr(val_t  param0);
+typedef void (* parser_prod___AArrayExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AArrayExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AArrayExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AArrayExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AArrayExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AArrayExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASelfExpr___n_kwself__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASelfExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASelfExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASelfExpr___empty_init();
+typedef void (* parser_prod___ASelfExpr___init_aselfexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ASelfExpr___init_aselfexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ASelfExpr___init_aselfexpr(val_t  param0);
+typedef void (* parser_prod___ASelfExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASelfExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASelfExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASelfExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASelfExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASelfExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImplicitSelfExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AImplicitSelfExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AImplicitSelfExpr___empty_init();
+typedef void (* parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr_t)(val_t  self, int* init_table);
+void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t  self, int* init_table);
+val_t NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+typedef void (* parser_prod___AImplicitSelfExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AImplicitSelfExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AImplicitSelfExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AImplicitSelfExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AImplicitSelfExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AImplicitSelfExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATrueExpr___n_kwtrue__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATrueExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ATrueExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ATrueExpr___empty_init();
+typedef void (* parser_prod___ATrueExpr___init_atrueexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ATrueExpr___init_atrueexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ATrueExpr___init_atrueexpr(val_t  param0);
+typedef void (* parser_prod___ATrueExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ATrueExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ATrueExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ATrueExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ATrueExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ATrueExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFalseExpr___n_kwfalse__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFalseExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AFalseExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AFalseExpr___empty_init();
+typedef void (* parser_prod___AFalseExpr___init_afalseexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AFalseExpr___init_afalseexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AFalseExpr___init_afalseexpr(val_t  param0);
+typedef void (* parser_prod___AFalseExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AFalseExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AFalseExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AFalseExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFalseExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AFalseExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANullExpr___n_kwnull__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANullExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ANullExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ANullExpr___empty_init();
+typedef void (* parser_prod___ANullExpr___init_anullexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ANullExpr___init_anullexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ANullExpr___init_anullexpr(val_t  param0);
+typedef void (* parser_prod___ANullExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ANullExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ANullExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ANullExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ANullExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ANullExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntExpr___n_number__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AIntExpr___n_number__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AIntExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AIntExpr___empty_init();
+typedef void (* parser_prod___AIntExpr___init_aintexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AIntExpr___init_aintexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AIntExpr___init_aintexpr(val_t  param0);
+typedef void (* parser_prod___AIntExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AIntExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AIntExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AIntExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AIntExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AIntExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFloatExpr___n_float__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AFloatExpr___n_float__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFloatExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AFloatExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AFloatExpr___empty_init();
+typedef void (* parser_prod___AFloatExpr___init_afloatexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AFloatExpr___init_afloatexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AFloatExpr___init_afloatexpr(val_t  param0);
+typedef void (* parser_prod___AFloatExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AFloatExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AFloatExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AFloatExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AFloatExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AFloatExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACharExpr___n_char__eq_t)(val_t  self, val_t  param0);
+void parser_prod___ACharExpr___n_char__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACharExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ACharExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ACharExpr___empty_init();
+typedef void (* parser_prod___ACharExpr___init_acharexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ACharExpr___init_acharexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ACharExpr___init_acharexpr(val_t  param0);
+typedef void (* parser_prod___ACharExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ACharExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ACharExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ACharExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ACharExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ACharExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStringExpr___n_string__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStringExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStringExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStringExpr___empty_init();
+typedef void (* parser_prod___AStringExpr___init_astringexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AStringExpr___init_astringexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AStringExpr___init_astringexpr(val_t  param0);
+typedef void (* parser_prod___AStringExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStringExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStringExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStringExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStringExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStartStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AStartStringExpr___n_string__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStartStringExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AStartStringExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AStartStringExpr___empty_init();
+typedef void (* parser_prod___AStartStringExpr___init_astartstringexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AStartStringExpr___init_astartstringexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AStartStringExpr___init_astartstringexpr(val_t  param0);
+typedef void (* parser_prod___AStartStringExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AStartStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AStartStringExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AStartStringExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AStartStringExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AStartStringExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMidStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMidStringExpr___n_string__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMidStringExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMidStringExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMidStringExpr___empty_init();
+typedef void (* parser_prod___AMidStringExpr___init_amidstringexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AMidStringExpr___init_amidstringexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AMidStringExpr___init_amidstringexpr(val_t  param0);
+typedef void (* parser_prod___AMidStringExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMidStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMidStringExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMidStringExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMidStringExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMidStringExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEndStringExpr___n_string__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AEndStringExpr___n_string__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEndStringExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AEndStringExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AEndStringExpr___empty_init();
+typedef void (* parser_prod___AEndStringExpr___init_aendstringexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AEndStringExpr___init_aendstringexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AEndStringExpr___init_aendstringexpr(val_t  param0);
+typedef void (* parser_prod___AEndStringExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AEndStringExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AEndStringExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AEndStringExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AEndStringExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AEndStringExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperstringExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ASuperstringExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ASuperstringExpr___empty_init();
+typedef void (* parser_prod___ASuperstringExpr___init_asuperstringexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t  param0);
+typedef void (* parser_prod___ASuperstringExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ASuperstringExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ASuperstringExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperstringExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ASuperstringExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ASuperstringExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParExpr___n_expr__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AParExpr___n_expr__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParExpr___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AParExpr___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AParExpr___empty_init();
+typedef void (* parser_prod___AParExpr___init_aparexpr_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AParExpr___init_aparexpr(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AParExpr___init_aparexpr(val_t  param0);
+typedef void (* parser_prod___AParExpr___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AParExpr___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AParExpr___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AParExpr___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AParExpr___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AParExpr___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusAssignOp___n_pluseq__eq_t)(val_t  self, val_t  param0);
+void parser_prod___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusAssignOp___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___APlusAssignOp___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___APlusAssignOp___empty_init();
+typedef void (* parser_prod___APlusAssignOp___init_aplusassignop_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___APlusAssignOp___init_aplusassignop(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___APlusAssignOp___init_aplusassignop(val_t  param0);
+typedef void (* parser_prod___APlusAssignOp___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___APlusAssignOp___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___APlusAssignOp___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___APlusAssignOp___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___APlusAssignOp___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___APlusAssignOp___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusAssignOp___n_minuseq__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusAssignOp___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AMinusAssignOp___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AMinusAssignOp___empty_init();
+typedef void (* parser_prod___AMinusAssignOp___init_aminusassignop_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___AMinusAssignOp___init_aminusassignop(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___AMinusAssignOp___init_aminusassignop(val_t  param0);
+typedef void (* parser_prod___AMinusAssignOp___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AMinusAssignOp___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AMinusAssignOp___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusAssignOp___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AMinusAssignOp___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AMinusAssignOp___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___AQualified___n_classid__eq_t)(val_t  self, val_t  param0);
+void parser_prod___AQualified___n_classid__eq(val_t  self, val_t  param0);
+typedef void (* parser_prod___AQualified___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___AQualified___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___AQualified___empty_init();
+typedef void (* parser_prod___AQualified___init_aqualified_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___AQualified___init_aqualified(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___AQualified___init_aqualified(val_t  param0, val_t  param1);
+typedef void (* parser_prod___AQualified___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___AQualified___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___AQualified___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___AQualified___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___AQualified___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___AQualified___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoc___empty_init_t)(val_t  self, int* init_table);
+void parser_prod___ADoc___empty_init(val_t  self, int* init_table);
+val_t NEW_parser_prod___ADoc___empty_init();
+typedef void (* parser_prod___ADoc___init_adoc_t)(val_t  self, val_t  param0, int* init_table);
+void parser_prod___ADoc___init_adoc(val_t  self, val_t  param0, int* init_table);
+val_t NEW_parser_prod___ADoc___init_adoc(val_t  param0);
+typedef void (* parser_prod___ADoc___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___ADoc___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___ADoc___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___ADoc___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___ADoc___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___ADoc___visit_all_reverse(val_t  self, val_t  param0);
+typedef void (* parser_prod___Start___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void parser_prod___Start___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_parser_prod___Start___init(val_t  param0, val_t  param1);
+typedef void (* parser_prod___Start___replace_child_t)(val_t  self, val_t  param0, val_t  param1);
+void parser_prod___Start___replace_child(val_t  self, val_t  param0, val_t  param1);
+typedef void (* parser_prod___Start___visit_all_t)(val_t  self, val_t  param0);
+void parser_prod___Start___visit_all(val_t  self, val_t  param0);
+typedef void (* parser_prod___Start___visit_all_reverse_t)(val_t  self, val_t  param0);
+void parser_prod___Start___visit_all_reverse(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/parser_tables._sep.c b/c_src/parser_tables._sep.c
new file mode 100644 (file)
index 0000000..5b9018f
--- /dev/null
@@ -0,0 +1,40350 @@
+#include "parser_tables._sep.h"
+void parser_tables___Parser___build_action_table(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::build_action_table (src/parser//parser_tables.nit:8,2--1154:34)"};
+  val_t variable0;
+  static val_t once_value_variable0_1; static int once_bool_variable0_1;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+    val_t variable20;
+    val_t variable21;
+    val_t variable22;
+    val_t variable23;
+    val_t variable24;
+    val_t variable25;
+    val_t variable26;
+    val_t variable27;
+    val_t variable28;
+    val_t variable29;
+    val_t variable30;
+    val_t variable31;
+    val_t variable32;
+    val_t variable33;
+    val_t variable34;
+    val_t variable35;
+    val_t variable36;
+    val_t variable37;
+    val_t variable38;
+    val_t variable39;
+    val_t variable40;
+    val_t variable41;
+    val_t variable42;
+    val_t variable43;
+    val_t variable44;
+    val_t variable45;
+    val_t variable46;
+    val_t variable47;
+    val_t variable48;
+    val_t variable49;
+    val_t variable50;
+    val_t variable51;
+    val_t variable52;
+    val_t variable53;
+    val_t variable54;
+    val_t variable55;
+    val_t variable56;
+    val_t variable57;
+    val_t variable58;
+    val_t variable59;
+    val_t variable60;
+    val_t variable61;
+    val_t variable62;
+    val_t variable63;
+    val_t variable64;
+    val_t variable65;
+    val_t variable66;
+    val_t variable67;
+    val_t variable68;
+    val_t variable69;
+    val_t variable70;
+    val_t variable71;
+    val_t variable72;
+    val_t variable73;
+    val_t variable74;
+    val_t variable75;
+    val_t variable76;
+    val_t variable77;
+    val_t variable78;
+    val_t variable79;
+    val_t variable80;
+    val_t variable81;
+    val_t variable82;
+    val_t variable83;
+    val_t variable84;
+    val_t variable85;
+    val_t variable86;
+    val_t variable87;
+    val_t variable88;
+    val_t variable89;
+    val_t variable90;
+    val_t variable91;
+    val_t variable92;
+    val_t variable93;
+    val_t variable94;
+    val_t variable95;
+    val_t variable96;
+    val_t variable97;
+    val_t variable98;
+    val_t variable99;
+    val_t variable100;
+    val_t variable101;
+    val_t variable102;
+    val_t variable103;
+    val_t variable104;
+    val_t variable105;
+    val_t variable106;
+    val_t variable107;
+    val_t variable108;
+    val_t variable109;
+    val_t variable110;
+    val_t variable111;
+    val_t variable112;
+    val_t variable113;
+    val_t variable114;
+    val_t variable115;
+    val_t variable116;
+    val_t variable117;
+    val_t variable118;
+    val_t variable119;
+    val_t variable120;
+    val_t variable121;
+    val_t variable122;
+    val_t variable123;
+    val_t variable124;
+    val_t variable125;
+    val_t variable126;
+    val_t variable127;
+    val_t variable128;
+    val_t variable129;
+    val_t variable130;
+    val_t variable131;
+    val_t variable132;
+    val_t variable133;
+    val_t variable134;
+    val_t variable135;
+    val_t variable136;
+    val_t variable137;
+    val_t variable138;
+    val_t variable139;
+    val_t variable140;
+    val_t variable141;
+    val_t variable142;
+    val_t variable143;
+    val_t variable144;
+    val_t variable145;
+    val_t variable146;
+    val_t variable147;
+    val_t variable148;
+    val_t variable149;
+    val_t variable150;
+    val_t variable151;
+    val_t variable152;
+    val_t variable153;
+    val_t variable154;
+    val_t variable155;
+    val_t variable156;
+    val_t variable157;
+    val_t variable158;
+    val_t variable159;
+    val_t variable160;
+    val_t variable161;
+    val_t variable162;
+    val_t variable163;
+    val_t variable164;
+    val_t variable165;
+    val_t variable166;
+    val_t variable167;
+    val_t variable168;
+    val_t variable169;
+    val_t variable170;
+    val_t variable171;
+    val_t variable172;
+    val_t variable173;
+    val_t variable174;
+    val_t variable175;
+    val_t variable176;
+    val_t variable177;
+    val_t variable178;
+    val_t variable179;
+    val_t variable180;
+    val_t variable181;
+    val_t variable182;
+    val_t variable183;
+    val_t variable184;
+    val_t variable185;
+    val_t variable186;
+    val_t variable187;
+    val_t variable188;
+    val_t variable189;
+    val_t variable190;
+    val_t variable191;
+    val_t variable192;
+    val_t variable193;
+    val_t variable194;
+    val_t variable195;
+    val_t variable196;
+    val_t variable197;
+    val_t variable198;
+    val_t variable199;
+    val_t variable200;
+    val_t variable201;
+    val_t variable202;
+    val_t variable203;
+    val_t variable204;
+    val_t variable205;
+    val_t variable206;
+    val_t variable207;
+    val_t variable208;
+    val_t variable209;
+    val_t variable210;
+    val_t variable211;
+    val_t variable212;
+    val_t variable213;
+    val_t variable214;
+    val_t variable215;
+    val_t variable216;
+    val_t variable217;
+    val_t variable218;
+    val_t variable219;
+    val_t variable220;
+    val_t variable221;
+    val_t variable222;
+    val_t variable223;
+    val_t variable224;
+    val_t variable225;
+    val_t variable226;
+    val_t variable227;
+    val_t variable228;
+    val_t variable229;
+    val_t variable230;
+    val_t variable231;
+    val_t variable232;
+    val_t variable233;
+    val_t variable234;
+    val_t variable235;
+    val_t variable236;
+    val_t variable237;
+    val_t variable238;
+    val_t variable239;
+    val_t variable240;
+    val_t variable241;
+    val_t variable242;
+    val_t variable243;
+    val_t variable244;
+    val_t variable245;
+    val_t variable246;
+    val_t variable247;
+    val_t variable248;
+    val_t variable249;
+    val_t variable250;
+    val_t variable251;
+    val_t variable252;
+    val_t variable253;
+    val_t variable254;
+    val_t variable255;
+    val_t variable256;
+    val_t variable257;
+    val_t variable258;
+    val_t variable259;
+    val_t variable260;
+    val_t variable261;
+    val_t variable262;
+    val_t variable263;
+    val_t variable264;
+    val_t variable265;
+    val_t variable266;
+    val_t variable267;
+    val_t variable268;
+    val_t variable269;
+    val_t variable270;
+    val_t variable271;
+    val_t variable272;
+    val_t variable273;
+    val_t variable274;
+    val_t variable275;
+    val_t variable276;
+    val_t variable277;
+    val_t variable278;
+    val_t variable279;
+    val_t variable280;
+    val_t variable281;
+    val_t variable282;
+    val_t variable283;
+    val_t variable284;
+    val_t variable285;
+    val_t variable286;
+    val_t variable287;
+    val_t variable288;
+    val_t variable289;
+    val_t variable290;
+    val_t variable291;
+    val_t variable292;
+    val_t variable293;
+    val_t variable294;
+    val_t variable295;
+    val_t variable296;
+    val_t variable297;
+    val_t variable298;
+    val_t variable299;
+    val_t variable300;
+    val_t variable301;
+    val_t variable302;
+    val_t variable303;
+    val_t variable304;
+    val_t variable305;
+    val_t variable306;
+    val_t variable307;
+    val_t variable308;
+    val_t variable309;
+    val_t variable310;
+    val_t variable311;
+    val_t variable312;
+    val_t variable313;
+    val_t variable314;
+    val_t variable315;
+    val_t variable316;
+    val_t variable317;
+    val_t variable318;
+    val_t variable319;
+    val_t variable320;
+    val_t variable321;
+    val_t variable322;
+    val_t variable323;
+    val_t variable324;
+    val_t variable325;
+    val_t variable326;
+    val_t variable327;
+    val_t variable328;
+    val_t variable329;
+    val_t variable330;
+    val_t variable331;
+    val_t variable332;
+    val_t variable333;
+    val_t variable334;
+    val_t variable335;
+    val_t variable336;
+    val_t variable337;
+    val_t variable338;
+    val_t variable339;
+    val_t variable340;
+    val_t variable341;
+    val_t variable342;
+    val_t variable343;
+    val_t variable344;
+    val_t variable345;
+    val_t variable346;
+    val_t variable347;
+    val_t variable348;
+    val_t variable349;
+    val_t variable350;
+    val_t variable351;
+    val_t variable352;
+    val_t variable353;
+    val_t variable354;
+    val_t variable355;
+    val_t variable356;
+    val_t variable357;
+    val_t variable358;
+    val_t variable359;
+    val_t variable360;
+    val_t variable361;
+    val_t variable362;
+    val_t variable363;
+    val_t variable364;
+    val_t variable365;
+    val_t variable366;
+    val_t variable367;
+    val_t variable368;
+    val_t variable369;
+    val_t variable370;
+    val_t variable371;
+    val_t variable372;
+    val_t variable373;
+    val_t variable374;
+    val_t variable375;
+    val_t variable376;
+    val_t variable377;
+    val_t variable378;
+    val_t variable379;
+    val_t variable380;
+    val_t variable381;
+    val_t variable382;
+    val_t variable383;
+    val_t variable384;
+    val_t variable385;
+    val_t variable386;
+    val_t variable387;
+    val_t variable388;
+    val_t variable389;
+    val_t variable390;
+    val_t variable391;
+    val_t variable392;
+    val_t variable393;
+    val_t variable394;
+    val_t variable395;
+    val_t variable396;
+    val_t variable397;
+    val_t variable398;
+    val_t variable399;
+    val_t variable400;
+    val_t variable401;
+    val_t variable402;
+    val_t variable403;
+    val_t variable404;
+    val_t variable405;
+    val_t variable406;
+    val_t variable407;
+    val_t variable408;
+    val_t variable409;
+    val_t variable410;
+    val_t variable411;
+    val_t variable412;
+    val_t variable413;
+    val_t variable414;
+    val_t variable415;
+    val_t variable416;
+    val_t variable417;
+    val_t variable418;
+    val_t variable419;
+    val_t variable420;
+    val_t variable421;
+    val_t variable422;
+    val_t variable423;
+    val_t variable424;
+    val_t variable425;
+    val_t variable426;
+    val_t variable427;
+    val_t variable428;
+    val_t variable429;
+    val_t variable430;
+    val_t variable431;
+    val_t variable432;
+    val_t variable433;
+    val_t variable434;
+    val_t variable435;
+    val_t variable436;
+    val_t variable437;
+    val_t variable438;
+    val_t variable439;
+    val_t variable440;
+    val_t variable441;
+    val_t variable442;
+    val_t variable443;
+    val_t variable444;
+    val_t variable445;
+    val_t variable446;
+    val_t variable447;
+    val_t variable448;
+    val_t variable449;
+    val_t variable450;
+    val_t variable451;
+    val_t variable452;
+    val_t variable453;
+    val_t variable454;
+    val_t variable455;
+    val_t variable456;
+    val_t variable457;
+    val_t variable458;
+    val_t variable459;
+    val_t variable460;
+    val_t variable461;
+    val_t variable462;
+    val_t variable463;
+    val_t variable464;
+    val_t variable465;
+    val_t variable466;
+    val_t variable467;
+    val_t variable468;
+    val_t variable469;
+    val_t variable470;
+    val_t variable471;
+    val_t variable472;
+    val_t variable473;
+    val_t variable474;
+    val_t variable475;
+    val_t variable476;
+    val_t variable477;
+    val_t variable478;
+    val_t variable479;
+    val_t variable480;
+    val_t variable481;
+    val_t variable482;
+    val_t variable483;
+    val_t variable484;
+    val_t variable485;
+    val_t variable486;
+    val_t variable487;
+    val_t variable488;
+    val_t variable489;
+    val_t variable490;
+    val_t variable491;
+    val_t variable492;
+    val_t variable493;
+    val_t variable494;
+    val_t variable495;
+    val_t variable496;
+    val_t variable497;
+    val_t variable498;
+    val_t variable499;
+    val_t variable500;
+    val_t variable501;
+    val_t variable502;
+    val_t variable503;
+    val_t variable504;
+    val_t variable505;
+    val_t variable506;
+    val_t variable507;
+    val_t variable508;
+    val_t variable509;
+    val_t variable510;
+    val_t variable511;
+    val_t variable512;
+    val_t variable513;
+    val_t variable514;
+    val_t variable515;
+    val_t variable516;
+    val_t variable517;
+    val_t variable518;
+    val_t variable519;
+    val_t variable520;
+    val_t variable521;
+    val_t variable522;
+    val_t variable523;
+    val_t variable524;
+    val_t variable525;
+    val_t variable526;
+    val_t variable527;
+    val_t variable528;
+    val_t variable529;
+    val_t variable530;
+    val_t variable531;
+    val_t variable532;
+    val_t variable533;
+    val_t variable534;
+    val_t variable535;
+    val_t variable536;
+    val_t variable537;
+    val_t variable538;
+    val_t variable539;
+    val_t variable540;
+    val_t variable541;
+    val_t variable542;
+    val_t variable543;
+    val_t variable544;
+    val_t variable545;
+    val_t variable546;
+    val_t variable547;
+    val_t variable548;
+    val_t variable549;
+    val_t variable550;
+    val_t variable551;
+    val_t variable552;
+    val_t variable553;
+    val_t variable554;
+    val_t variable555;
+    val_t variable556;
+    val_t variable557;
+    val_t variable558;
+    val_t variable559;
+    val_t variable560;
+    val_t variable561;
+    val_t variable562;
+    val_t variable563;
+    val_t variable564;
+    val_t variable565;
+    val_t variable566;
+    val_t variable567;
+    val_t variable568;
+    val_t variable569;
+    val_t variable570;
+    val_t variable571;
+    val_t variable572;
+    val_t variable573;
+    val_t variable574;
+    val_t variable575;
+    val_t variable576;
+    val_t variable577;
+    val_t variable578;
+    val_t variable579;
+    val_t variable580;
+    val_t variable581;
+    val_t variable582;
+    val_t variable583;
+    val_t variable584;
+    val_t variable585;
+    val_t variable586;
+    val_t variable587;
+    val_t variable588;
+    val_t variable589;
+    val_t variable590;
+    val_t variable591;
+    val_t variable592;
+    val_t variable593;
+    val_t variable594;
+    val_t variable595;
+    val_t variable596;
+    val_t variable597;
+    val_t variable598;
+    val_t variable599;
+    val_t variable600;
+    val_t variable601;
+    val_t variable602;
+    val_t variable603;
+    val_t variable604;
+    val_t variable605;
+    val_t variable606;
+    val_t variable607;
+    val_t variable608;
+    val_t variable609;
+    val_t variable610;
+    val_t variable611;
+    val_t variable612;
+    val_t variable613;
+    val_t variable614;
+    val_t variable615;
+    val_t variable616;
+    val_t variable617;
+    val_t variable618;
+    val_t variable619;
+    val_t variable620;
+    val_t variable621;
+    val_t variable622;
+    val_t variable623;
+    val_t variable624;
+    val_t variable625;
+    val_t variable626;
+    val_t variable627;
+    val_t variable628;
+    val_t variable629;
+    val_t variable630;
+    val_t variable631;
+    val_t variable632;
+    val_t variable633;
+    val_t variable634;
+    val_t variable635;
+    val_t variable636;
+    val_t variable637;
+    val_t variable638;
+    val_t variable639;
+    val_t variable640;
+    val_t variable641;
+    val_t variable642;
+    val_t variable643;
+    val_t variable644;
+    val_t variable645;
+    val_t variable646;
+    val_t variable647;
+    val_t variable648;
+    val_t variable649;
+    val_t variable650;
+    val_t variable651;
+    val_t variable652;
+    val_t variable653;
+    val_t variable654;
+    val_t variable655;
+    val_t variable656;
+    val_t variable657;
+    val_t variable658;
+    val_t variable659;
+    val_t variable660;
+    val_t variable661;
+    val_t variable662;
+    val_t variable663;
+    val_t variable664;
+    val_t variable665;
+    val_t variable666;
+    val_t variable667;
+    val_t variable668;
+    val_t variable669;
+    val_t variable670;
+    val_t variable671;
+    val_t variable672;
+    val_t variable673;
+    val_t variable674;
+    val_t variable675;
+    val_t variable676;
+    val_t variable677;
+    val_t variable678;
+    val_t variable679;
+    val_t variable680;
+    val_t variable681;
+    val_t variable682;
+    val_t variable683;
+    val_t variable684;
+    val_t variable685;
+    val_t variable686;
+    val_t variable687;
+    val_t variable688;
+    val_t variable689;
+    val_t variable690;
+    val_t variable691;
+    val_t variable692;
+    val_t variable693;
+    val_t variable694;
+    val_t variable695;
+    val_t variable696;
+    val_t variable697;
+    val_t variable698;
+    val_t variable699;
+    val_t variable700;
+    val_t variable701;
+    val_t variable702;
+    val_t variable703;
+    val_t variable704;
+    val_t variable705;
+    val_t variable706;
+    val_t variable707;
+    val_t variable708;
+    val_t variable709;
+    val_t variable710;
+    val_t variable711;
+    val_t variable712;
+    val_t variable713;
+    val_t variable714;
+    val_t variable715;
+    val_t variable716;
+    val_t variable717;
+    val_t variable718;
+    val_t variable719;
+    val_t variable720;
+    val_t variable721;
+    val_t variable722;
+    val_t variable723;
+    val_t variable724;
+    val_t variable725;
+    val_t variable726;
+    val_t variable727;
+    val_t variable728;
+    val_t variable729;
+    val_t variable730;
+    val_t variable731;
+    val_t variable732;
+    val_t variable733;
+    val_t variable734;
+    val_t variable735;
+    val_t variable736;
+    val_t variable737;
+    val_t variable738;
+    val_t variable739;
+    val_t variable740;
+    val_t variable741;
+    val_t variable742;
+    val_t variable743;
+    val_t variable744;
+    val_t variable745;
+    val_t variable746;
+    val_t variable747;
+    val_t variable748;
+    val_t variable749;
+    val_t variable750;
+    val_t variable751;
+    val_t variable752;
+    val_t variable753;
+    val_t variable754;
+    val_t variable755;
+    val_t variable756;
+    val_t variable757;
+    val_t variable758;
+    val_t variable759;
+    val_t variable760;
+    val_t variable761;
+    val_t variable762;
+    val_t variable763;
+    val_t variable764;
+    val_t variable765;
+    val_t variable766;
+    val_t variable767;
+    val_t variable768;
+    val_t variable769;
+    val_t variable770;
+    val_t variable771;
+    val_t variable772;
+    val_t variable773;
+    val_t variable774;
+    val_t variable775;
+    val_t variable776;
+    val_t variable777;
+    val_t variable778;
+    val_t variable779;
+    val_t variable780;
+    val_t variable781;
+    val_t variable782;
+    val_t variable783;
+    val_t variable784;
+    val_t variable785;
+    val_t variable786;
+    val_t variable787;
+    val_t variable788;
+    val_t variable789;
+    val_t variable790;
+    val_t variable791;
+    val_t variable792;
+    val_t variable793;
+    val_t variable794;
+    val_t variable795;
+    val_t variable796;
+    val_t variable797;
+    val_t variable798;
+    val_t variable799;
+    val_t variable800;
+    val_t variable801;
+    val_t variable802;
+    val_t variable803;
+    val_t variable804;
+    val_t variable805;
+    val_t variable806;
+    val_t variable807;
+    val_t variable808;
+    val_t variable809;
+    val_t variable810;
+    val_t variable811;
+    val_t variable812;
+    val_t variable813;
+    val_t variable814;
+    val_t variable815;
+    val_t variable816;
+    val_t variable817;
+    val_t variable818;
+    val_t variable819;
+    val_t variable820;
+    val_t variable821;
+    val_t variable822;
+    val_t variable823;
+    val_t variable824;
+    val_t variable825;
+    val_t variable826;
+    val_t variable827;
+    val_t variable828;
+    val_t variable829;
+    val_t variable830;
+    val_t variable831;
+    val_t variable832;
+    val_t variable833;
+    val_t variable834;
+    val_t variable835;
+    val_t variable836;
+    val_t variable837;
+    val_t variable838;
+    val_t variable839;
+    val_t variable840;
+    val_t variable841;
+    val_t variable842;
+    val_t variable843;
+    val_t variable844;
+    val_t variable845;
+    val_t variable846;
+    val_t variable847;
+    val_t variable848;
+    val_t variable849;
+    val_t variable850;
+    val_t variable851;
+    val_t variable852;
+    val_t variable853;
+    val_t variable854;
+    val_t variable855;
+    val_t variable856;
+    val_t variable857;
+    val_t variable858;
+    val_t variable859;
+    val_t variable860;
+    val_t variable861;
+    val_t variable862;
+    val_t variable863;
+    val_t variable864;
+    val_t variable865;
+    val_t variable866;
+    val_t variable867;
+    val_t variable868;
+    val_t variable869;
+    val_t variable870;
+    val_t variable871;
+    val_t variable872;
+    val_t variable873;
+    val_t variable874;
+    val_t variable875;
+    val_t variable876;
+    val_t variable877;
+    val_t variable878;
+    val_t variable879;
+    val_t variable880;
+    val_t variable881;
+    val_t variable882;
+    val_t variable883;
+    val_t variable884;
+    val_t variable885;
+    val_t variable886;
+    val_t variable887;
+    val_t variable888;
+    val_t variable889;
+    val_t variable890;
+    val_t variable891;
+    val_t variable892;
+    val_t variable893;
+    val_t variable894;
+    val_t variable895;
+    val_t variable896;
+    val_t variable897;
+    val_t variable898;
+    val_t variable899;
+    val_t variable900;
+    val_t variable901;
+    val_t variable902;
+    val_t variable903;
+    val_t variable904;
+    val_t variable905;
+    val_t variable906;
+    val_t variable907;
+    val_t variable908;
+    val_t variable909;
+    val_t variable910;
+    val_t variable911;
+    val_t variable912;
+    val_t variable913;
+    val_t variable914;
+    val_t variable915;
+    val_t variable916;
+    val_t variable917;
+    val_t variable918;
+    val_t variable919;
+    val_t variable920;
+    val_t variable921;
+    val_t variable922;
+    val_t variable923;
+    val_t variable924;
+    val_t variable925;
+    val_t variable926;
+    val_t variable927;
+    val_t variable928;
+    val_t variable929;
+    val_t variable930;
+    val_t variable931;
+    val_t variable932;
+    val_t variable933;
+    val_t variable934;
+    val_t variable935;
+    val_t variable936;
+    val_t variable937;
+    val_t variable938;
+    val_t variable939;
+    val_t variable940;
+    val_t variable941;
+    val_t variable942;
+    val_t variable943;
+    val_t variable944;
+    val_t variable945;
+    val_t variable946;
+    val_t variable947;
+    val_t variable948;
+    val_t variable949;
+    val_t variable950;
+    val_t variable951;
+    val_t variable952;
+    val_t variable953;
+    val_t variable954;
+    val_t variable955;
+    val_t variable956;
+    val_t variable957;
+    val_t variable958;
+    val_t variable959;
+    val_t variable960;
+    val_t variable961;
+    val_t variable962;
+    val_t variable963;
+    val_t variable964;
+    val_t variable965;
+    val_t variable966;
+    val_t variable967;
+    val_t variable968;
+    val_t variable969;
+    val_t variable970;
+    val_t variable971;
+    val_t variable972;
+    val_t variable973;
+    val_t variable974;
+    val_t variable975;
+    val_t variable976;
+    val_t variable977;
+    val_t variable978;
+    val_t variable979;
+    val_t variable980;
+    val_t variable981;
+    val_t variable982;
+    val_t variable983;
+    val_t variable984;
+    val_t variable985;
+    val_t variable986;
+    val_t variable987;
+    val_t variable988;
+    val_t variable989;
+    val_t variable990;
+    val_t variable991;
+    val_t variable992;
+    val_t variable993;
+    val_t variable994;
+    val_t variable995;
+    val_t variable996;
+    val_t variable997;
+    val_t variable998;
+    val_t variable999;
+    val_t variable1000;
+    val_t variable1001;
+    val_t variable1002;
+    val_t variable1003;
+    val_t variable1004;
+    val_t variable1005;
+    val_t variable1006;
+    val_t variable1007;
+    val_t variable1008;
+    val_t variable1009;
+    val_t variable1010;
+    val_t variable1011;
+    val_t variable1012;
+    val_t variable1013;
+    val_t variable1014;
+    val_t variable1015;
+    val_t variable1016;
+    val_t variable1017;
+    val_t variable1018;
+    val_t variable1019;
+    val_t variable1020;
+    val_t variable1021;
+    val_t variable1022;
+    val_t variable1023;
+    val_t variable1024;
+    val_t variable1025;
+    val_t variable1026;
+    val_t variable1027;
+    val_t variable1028;
+    val_t variable1029;
+    val_t variable1030;
+    val_t variable1031;
+    val_t variable1032;
+    val_t variable1033;
+    val_t variable1034;
+    val_t variable1035;
+    val_t variable1036;
+    val_t variable1037;
+    val_t variable1038;
+    val_t variable1039;
+    val_t variable1040;
+    val_t variable1041;
+    val_t variable1042;
+    val_t variable1043;
+    val_t variable1044;
+    val_t variable1045;
+    val_t variable1046;
+    val_t variable1047;
+    val_t variable1048;
+    val_t variable1049;
+    val_t variable1050;
+    val_t variable1051;
+    val_t variable1052;
+    val_t variable1053;
+    val_t variable1054;
+    val_t variable1055;
+    val_t variable1056;
+    val_t variable1057;
+    val_t variable1058;
+    val_t variable1059;
+    val_t variable1060;
+    val_t variable1061;
+    val_t variable1062;
+    val_t variable1063;
+    val_t variable1064;
+    val_t variable1065;
+    val_t variable1066;
+    val_t variable1067;
+    val_t variable1068;
+    val_t variable1069;
+    val_t variable1070;
+    val_t variable1071;
+    val_t variable1072;
+    val_t variable1073;
+    val_t variable1074;
+    val_t variable1075;
+    val_t variable1076;
+    val_t variable1077;
+    val_t variable1078;
+    val_t variable1079;
+    val_t variable1080;
+    val_t variable1081;
+    val_t variable1082;
+    val_t variable1083;
+    val_t variable1084;
+    val_t variable1085;
+    val_t variable1086;
+    val_t variable1087;
+    val_t variable1088;
+    val_t variable1089;
+    val_t variable1090;
+    val_t variable1091;
+    val_t variable1092;
+    val_t variable1093;
+    val_t variable1094;
+    val_t variable1095;
+    val_t variable1096;
+    val_t variable1097;
+    val_t variable1098;
+    val_t variable1099;
+    val_t variable1100;
+    val_t variable1101;
+    val_t variable1102;
+    val_t variable1103;
+    val_t variable1104;
+    val_t variable1105;
+    val_t variable1106;
+    val_t variable1107;
+    val_t variable1108;
+    val_t variable1109;
+    val_t variable1110;
+    val_t variable1111;
+    val_t variable1112;
+    val_t variable1113;
+    val_t variable1114;
+    val_t variable1115;
+    val_t variable1116;
+    val_t variable1117;
+    val_t variable1118;
+    val_t variable1119;
+    val_t variable1120;
+    val_t variable1121;
+    val_t variable1122;
+    val_t variable1123;
+    val_t variable1124;
+    val_t variable1125;
+    val_t variable1126;
+    val_t variable1127;
+    val_t variable1128;
+    val_t variable1129;
+    val_t variable1130;
+    val_t variable1131;
+    val_t variable1132;
+    val_t variable1133;
+    val_t variable1134;
+    val_t variable1135;
+    val_t variable1136;
+    val_t variable1137;
+    val_t variable1138;
+    val_t variable1139;
+    val_t variable1140;
+    val_t variable1141;
+    val_t variable1142;
+    val_t variable1143;
+    val_t variable1144;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_1) variable0 = once_value_variable0_1;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(1144)); /*new Array[Array[Int]]*/
+    variable1 = ((parser_tables___Parser___action_table_row1_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1))( self) /*Parser::action_table_row1*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    variable2 = ((parser_tables___Parser___action_table_row2_t)CALL( self,COLOR_parser_tables___Parser___action_table_row2))( self) /*Parser::action_table_row2*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+    variable3 = ((parser_tables___Parser___action_table_row3_t)CALL( self,COLOR_parser_tables___Parser___action_table_row3))( self) /*Parser::action_table_row3*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable3) /*Array::add*/;
+    variable4 = ((parser_tables___Parser___action_table_row4_t)CALL( self,COLOR_parser_tables___Parser___action_table_row4))( self) /*Parser::action_table_row4*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable4) /*Array::add*/;
+    variable5 = ((parser_tables___Parser___action_table_row5_t)CALL( self,COLOR_parser_tables___Parser___action_table_row5))( self) /*Parser::action_table_row5*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable5) /*Array::add*/;
+    variable6 = ((parser_tables___Parser___action_table_row6_t)CALL( self,COLOR_parser_tables___Parser___action_table_row6))( self) /*Parser::action_table_row6*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable6) /*Array::add*/;
+    variable7 = ((parser_tables___Parser___action_table_row7_t)CALL( self,COLOR_parser_tables___Parser___action_table_row7))( self) /*Parser::action_table_row7*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable7) /*Array::add*/;
+    variable8 = ((parser_tables___Parser___action_table_row8_t)CALL( self,COLOR_parser_tables___Parser___action_table_row8))( self) /*Parser::action_table_row8*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable8) /*Array::add*/;
+    variable9 = ((parser_tables___Parser___action_table_row9_t)CALL( self,COLOR_parser_tables___Parser___action_table_row9))( self) /*Parser::action_table_row9*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable9) /*Array::add*/;
+    variable10 = ((parser_tables___Parser___action_table_row10_t)CALL( self,COLOR_parser_tables___Parser___action_table_row10))( self) /*Parser::action_table_row10*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable10) /*Array::add*/;
+    variable11 = ((parser_tables___Parser___action_table_row11_t)CALL( self,COLOR_parser_tables___Parser___action_table_row11))( self) /*Parser::action_table_row11*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable11) /*Array::add*/;
+    variable12 = ((parser_tables___Parser___action_table_row12_t)CALL( self,COLOR_parser_tables___Parser___action_table_row12))( self) /*Parser::action_table_row12*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable12) /*Array::add*/;
+    variable13 = ((parser_tables___Parser___action_table_row13_t)CALL( self,COLOR_parser_tables___Parser___action_table_row13))( self) /*Parser::action_table_row13*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable13) /*Array::add*/;
+    variable14 = ((parser_tables___Parser___action_table_row14_t)CALL( self,COLOR_parser_tables___Parser___action_table_row14))( self) /*Parser::action_table_row14*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable14) /*Array::add*/;
+    variable15 = ((parser_tables___Parser___action_table_row15_t)CALL( self,COLOR_parser_tables___Parser___action_table_row15))( self) /*Parser::action_table_row15*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable15) /*Array::add*/;
+    variable16 = ((parser_tables___Parser___action_table_row16_t)CALL( self,COLOR_parser_tables___Parser___action_table_row16))( self) /*Parser::action_table_row16*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable16) /*Array::add*/;
+    variable17 = ((parser_tables___Parser___action_table_row17_t)CALL( self,COLOR_parser_tables___Parser___action_table_row17))( self) /*Parser::action_table_row17*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable17) /*Array::add*/;
+    variable18 = ((parser_tables___Parser___action_table_row18_t)CALL( self,COLOR_parser_tables___Parser___action_table_row18))( self) /*Parser::action_table_row18*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable18) /*Array::add*/;
+    variable19 = ((parser_tables___Parser___action_table_row19_t)CALL( self,COLOR_parser_tables___Parser___action_table_row19))( self) /*Parser::action_table_row19*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable19) /*Array::add*/;
+    variable20 = ((parser_tables___Parser___action_table_row20_t)CALL( self,COLOR_parser_tables___Parser___action_table_row20))( self) /*Parser::action_table_row20*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable20) /*Array::add*/;
+    variable21 = ((parser_tables___Parser___action_table_row21_t)CALL( self,COLOR_parser_tables___Parser___action_table_row21))( self) /*Parser::action_table_row21*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable21) /*Array::add*/;
+    variable22 = ((parser_tables___Parser___action_table_row22_t)CALL( self,COLOR_parser_tables___Parser___action_table_row22))( self) /*Parser::action_table_row22*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable22) /*Array::add*/;
+    variable23 = ((parser_tables___Parser___action_table_row23_t)CALL( self,COLOR_parser_tables___Parser___action_table_row23))( self) /*Parser::action_table_row23*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable23) /*Array::add*/;
+    variable24 = ((parser_tables___Parser___action_table_row24_t)CALL( self,COLOR_parser_tables___Parser___action_table_row24))( self) /*Parser::action_table_row24*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable24) /*Array::add*/;
+    variable25 = ((parser_tables___Parser___action_table_row25_t)CALL( self,COLOR_parser_tables___Parser___action_table_row25))( self) /*Parser::action_table_row25*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable25) /*Array::add*/;
+    variable26 = ((parser_tables___Parser___action_table_row26_t)CALL( self,COLOR_parser_tables___Parser___action_table_row26))( self) /*Parser::action_table_row26*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable26) /*Array::add*/;
+    variable27 = ((parser_tables___Parser___action_table_row27_t)CALL( self,COLOR_parser_tables___Parser___action_table_row27))( self) /*Parser::action_table_row27*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable27) /*Array::add*/;
+    variable28 = ((parser_tables___Parser___action_table_row28_t)CALL( self,COLOR_parser_tables___Parser___action_table_row28))( self) /*Parser::action_table_row28*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable28) /*Array::add*/;
+    variable29 = ((parser_tables___Parser___action_table_row29_t)CALL( self,COLOR_parser_tables___Parser___action_table_row29))( self) /*Parser::action_table_row29*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable29) /*Array::add*/;
+    variable30 = ((parser_tables___Parser___action_table_row30_t)CALL( self,COLOR_parser_tables___Parser___action_table_row30))( self) /*Parser::action_table_row30*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable30) /*Array::add*/;
+    variable31 = ((parser_tables___Parser___action_table_row31_t)CALL( self,COLOR_parser_tables___Parser___action_table_row31))( self) /*Parser::action_table_row31*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable31) /*Array::add*/;
+    variable32 = ((parser_tables___Parser___action_table_row32_t)CALL( self,COLOR_parser_tables___Parser___action_table_row32))( self) /*Parser::action_table_row32*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable32) /*Array::add*/;
+    variable33 = ((parser_tables___Parser___action_table_row33_t)CALL( self,COLOR_parser_tables___Parser___action_table_row33))( self) /*Parser::action_table_row33*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable33) /*Array::add*/;
+    variable34 = ((parser_tables___Parser___action_table_row34_t)CALL( self,COLOR_parser_tables___Parser___action_table_row34))( self) /*Parser::action_table_row34*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable34) /*Array::add*/;
+    variable35 = ((parser_tables___Parser___action_table_row35_t)CALL( self,COLOR_parser_tables___Parser___action_table_row35))( self) /*Parser::action_table_row35*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable35) /*Array::add*/;
+    variable36 = ((parser_tables___Parser___action_table_row36_t)CALL( self,COLOR_parser_tables___Parser___action_table_row36))( self) /*Parser::action_table_row36*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable36) /*Array::add*/;
+    variable37 = ((parser_tables___Parser___action_table_row37_t)CALL( self,COLOR_parser_tables___Parser___action_table_row37))( self) /*Parser::action_table_row37*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable37) /*Array::add*/;
+    variable38 = ((parser_tables___Parser___action_table_row38_t)CALL( self,COLOR_parser_tables___Parser___action_table_row38))( self) /*Parser::action_table_row38*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable38) /*Array::add*/;
+    variable39 = ((parser_tables___Parser___action_table_row39_t)CALL( self,COLOR_parser_tables___Parser___action_table_row39))( self) /*Parser::action_table_row39*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable39) /*Array::add*/;
+    variable40 = ((parser_tables___Parser___action_table_row40_t)CALL( self,COLOR_parser_tables___Parser___action_table_row40))( self) /*Parser::action_table_row40*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable40) /*Array::add*/;
+    variable41 = ((parser_tables___Parser___action_table_row41_t)CALL( self,COLOR_parser_tables___Parser___action_table_row41))( self) /*Parser::action_table_row41*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable41) /*Array::add*/;
+    variable42 = ((parser_tables___Parser___action_table_row42_t)CALL( self,COLOR_parser_tables___Parser___action_table_row42))( self) /*Parser::action_table_row42*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable42) /*Array::add*/;
+    variable43 = ((parser_tables___Parser___action_table_row43_t)CALL( self,COLOR_parser_tables___Parser___action_table_row43))( self) /*Parser::action_table_row43*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable43) /*Array::add*/;
+    variable44 = ((parser_tables___Parser___action_table_row44_t)CALL( self,COLOR_parser_tables___Parser___action_table_row44))( self) /*Parser::action_table_row44*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable44) /*Array::add*/;
+    variable45 = ((parser_tables___Parser___action_table_row45_t)CALL( self,COLOR_parser_tables___Parser___action_table_row45))( self) /*Parser::action_table_row45*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable45) /*Array::add*/;
+    variable46 = ((parser_tables___Parser___action_table_row46_t)CALL( self,COLOR_parser_tables___Parser___action_table_row46))( self) /*Parser::action_table_row46*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable46) /*Array::add*/;
+    variable47 = ((parser_tables___Parser___action_table_row47_t)CALL( self,COLOR_parser_tables___Parser___action_table_row47))( self) /*Parser::action_table_row47*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable47) /*Array::add*/;
+    variable48 = ((parser_tables___Parser___action_table_row48_t)CALL( self,COLOR_parser_tables___Parser___action_table_row48))( self) /*Parser::action_table_row48*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable48) /*Array::add*/;
+    variable49 = ((parser_tables___Parser___action_table_row49_t)CALL( self,COLOR_parser_tables___Parser___action_table_row49))( self) /*Parser::action_table_row49*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable49) /*Array::add*/;
+    variable50 = ((parser_tables___Parser___action_table_row50_t)CALL( self,COLOR_parser_tables___Parser___action_table_row50))( self) /*Parser::action_table_row50*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable50) /*Array::add*/;
+    variable51 = ((parser_tables___Parser___action_table_row51_t)CALL( self,COLOR_parser_tables___Parser___action_table_row51))( self) /*Parser::action_table_row51*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable51) /*Array::add*/;
+    variable52 = ((parser_tables___Parser___action_table_row52_t)CALL( self,COLOR_parser_tables___Parser___action_table_row52))( self) /*Parser::action_table_row52*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable52) /*Array::add*/;
+    variable53 = ((parser_tables___Parser___action_table_row53_t)CALL( self,COLOR_parser_tables___Parser___action_table_row53))( self) /*Parser::action_table_row53*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable53) /*Array::add*/;
+    variable54 = ((parser_tables___Parser___action_table_row54_t)CALL( self,COLOR_parser_tables___Parser___action_table_row54))( self) /*Parser::action_table_row54*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable54) /*Array::add*/;
+    variable55 = ((parser_tables___Parser___action_table_row55_t)CALL( self,COLOR_parser_tables___Parser___action_table_row55))( self) /*Parser::action_table_row55*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable55) /*Array::add*/;
+    variable56 = ((parser_tables___Parser___action_table_row56_t)CALL( self,COLOR_parser_tables___Parser___action_table_row56))( self) /*Parser::action_table_row56*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable56) /*Array::add*/;
+    variable57 = ((parser_tables___Parser___action_table_row57_t)CALL( self,COLOR_parser_tables___Parser___action_table_row57))( self) /*Parser::action_table_row57*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable57) /*Array::add*/;
+    variable58 = ((parser_tables___Parser___action_table_row58_t)CALL( self,COLOR_parser_tables___Parser___action_table_row58))( self) /*Parser::action_table_row58*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable58) /*Array::add*/;
+    variable59 = ((parser_tables___Parser___action_table_row59_t)CALL( self,COLOR_parser_tables___Parser___action_table_row59))( self) /*Parser::action_table_row59*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable59) /*Array::add*/;
+    variable60 = ((parser_tables___Parser___action_table_row60_t)CALL( self,COLOR_parser_tables___Parser___action_table_row60))( self) /*Parser::action_table_row60*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable60) /*Array::add*/;
+    variable61 = ((parser_tables___Parser___action_table_row61_t)CALL( self,COLOR_parser_tables___Parser___action_table_row61))( self) /*Parser::action_table_row61*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable61) /*Array::add*/;
+    variable62 = ((parser_tables___Parser___action_table_row62_t)CALL( self,COLOR_parser_tables___Parser___action_table_row62))( self) /*Parser::action_table_row62*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable62) /*Array::add*/;
+    variable63 = ((parser_tables___Parser___action_table_row63_t)CALL( self,COLOR_parser_tables___Parser___action_table_row63))( self) /*Parser::action_table_row63*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable63) /*Array::add*/;
+    variable64 = ((parser_tables___Parser___action_table_row64_t)CALL( self,COLOR_parser_tables___Parser___action_table_row64))( self) /*Parser::action_table_row64*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable64) /*Array::add*/;
+    variable65 = ((parser_tables___Parser___action_table_row65_t)CALL( self,COLOR_parser_tables___Parser___action_table_row65))( self) /*Parser::action_table_row65*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable65) /*Array::add*/;
+    variable66 = ((parser_tables___Parser___action_table_row66_t)CALL( self,COLOR_parser_tables___Parser___action_table_row66))( self) /*Parser::action_table_row66*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable66) /*Array::add*/;
+    variable67 = ((parser_tables___Parser___action_table_row67_t)CALL( self,COLOR_parser_tables___Parser___action_table_row67))( self) /*Parser::action_table_row67*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable67) /*Array::add*/;
+    variable68 = ((parser_tables___Parser___action_table_row68_t)CALL( self,COLOR_parser_tables___Parser___action_table_row68))( self) /*Parser::action_table_row68*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable68) /*Array::add*/;
+    variable69 = ((parser_tables___Parser___action_table_row69_t)CALL( self,COLOR_parser_tables___Parser___action_table_row69))( self) /*Parser::action_table_row69*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable69) /*Array::add*/;
+    variable70 = ((parser_tables___Parser___action_table_row70_t)CALL( self,COLOR_parser_tables___Parser___action_table_row70))( self) /*Parser::action_table_row70*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable70) /*Array::add*/;
+    variable71 = ((parser_tables___Parser___action_table_row71_t)CALL( self,COLOR_parser_tables___Parser___action_table_row71))( self) /*Parser::action_table_row71*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable71) /*Array::add*/;
+    variable72 = ((parser_tables___Parser___action_table_row72_t)CALL( self,COLOR_parser_tables___Parser___action_table_row72))( self) /*Parser::action_table_row72*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable72) /*Array::add*/;
+    variable73 = ((parser_tables___Parser___action_table_row73_t)CALL( self,COLOR_parser_tables___Parser___action_table_row73))( self) /*Parser::action_table_row73*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable73) /*Array::add*/;
+    variable74 = ((parser_tables___Parser___action_table_row74_t)CALL( self,COLOR_parser_tables___Parser___action_table_row74))( self) /*Parser::action_table_row74*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable74) /*Array::add*/;
+    variable75 = ((parser_tables___Parser___action_table_row75_t)CALL( self,COLOR_parser_tables___Parser___action_table_row75))( self) /*Parser::action_table_row75*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable75) /*Array::add*/;
+    variable76 = ((parser_tables___Parser___action_table_row76_t)CALL( self,COLOR_parser_tables___Parser___action_table_row76))( self) /*Parser::action_table_row76*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable76) /*Array::add*/;
+    variable77 = ((parser_tables___Parser___action_table_row77_t)CALL( self,COLOR_parser_tables___Parser___action_table_row77))( self) /*Parser::action_table_row77*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable77) /*Array::add*/;
+    variable78 = ((parser_tables___Parser___action_table_row78_t)CALL( self,COLOR_parser_tables___Parser___action_table_row78))( self) /*Parser::action_table_row78*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable78) /*Array::add*/;
+    variable79 = ((parser_tables___Parser___action_table_row79_t)CALL( self,COLOR_parser_tables___Parser___action_table_row79))( self) /*Parser::action_table_row79*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable79) /*Array::add*/;
+    variable80 = ((parser_tables___Parser___action_table_row80_t)CALL( self,COLOR_parser_tables___Parser___action_table_row80))( self) /*Parser::action_table_row80*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable80) /*Array::add*/;
+    variable81 = ((parser_tables___Parser___action_table_row81_t)CALL( self,COLOR_parser_tables___Parser___action_table_row81))( self) /*Parser::action_table_row81*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable81) /*Array::add*/;
+    variable82 = ((parser_tables___Parser___action_table_row82_t)CALL( self,COLOR_parser_tables___Parser___action_table_row82))( self) /*Parser::action_table_row82*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable82) /*Array::add*/;
+    variable83 = ((parser_tables___Parser___action_table_row83_t)CALL( self,COLOR_parser_tables___Parser___action_table_row83))( self) /*Parser::action_table_row83*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable83) /*Array::add*/;
+    variable84 = ((parser_tables___Parser___action_table_row84_t)CALL( self,COLOR_parser_tables___Parser___action_table_row84))( self) /*Parser::action_table_row84*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable84) /*Array::add*/;
+    variable85 = ((parser_tables___Parser___action_table_row85_t)CALL( self,COLOR_parser_tables___Parser___action_table_row85))( self) /*Parser::action_table_row85*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable85) /*Array::add*/;
+    variable86 = ((parser_tables___Parser___action_table_row86_t)CALL( self,COLOR_parser_tables___Parser___action_table_row86))( self) /*Parser::action_table_row86*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable86) /*Array::add*/;
+    variable87 = ((parser_tables___Parser___action_table_row87_t)CALL( self,COLOR_parser_tables___Parser___action_table_row87))( self) /*Parser::action_table_row87*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable87) /*Array::add*/;
+    variable88 = ((parser_tables___Parser___action_table_row88_t)CALL( self,COLOR_parser_tables___Parser___action_table_row88))( self) /*Parser::action_table_row88*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable88) /*Array::add*/;
+    variable89 = ((parser_tables___Parser___action_table_row89_t)CALL( self,COLOR_parser_tables___Parser___action_table_row89))( self) /*Parser::action_table_row89*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable89) /*Array::add*/;
+    variable90 = ((parser_tables___Parser___action_table_row90_t)CALL( self,COLOR_parser_tables___Parser___action_table_row90))( self) /*Parser::action_table_row90*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable90) /*Array::add*/;
+    variable91 = ((parser_tables___Parser___action_table_row91_t)CALL( self,COLOR_parser_tables___Parser___action_table_row91))( self) /*Parser::action_table_row91*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable91) /*Array::add*/;
+    variable92 = ((parser_tables___Parser___action_table_row92_t)CALL( self,COLOR_parser_tables___Parser___action_table_row92))( self) /*Parser::action_table_row92*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable92) /*Array::add*/;
+    variable93 = ((parser_tables___Parser___action_table_row93_t)CALL( self,COLOR_parser_tables___Parser___action_table_row93))( self) /*Parser::action_table_row93*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable93) /*Array::add*/;
+    variable94 = ((parser_tables___Parser___action_table_row94_t)CALL( self,COLOR_parser_tables___Parser___action_table_row94))( self) /*Parser::action_table_row94*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable94) /*Array::add*/;
+    variable95 = ((parser_tables___Parser___action_table_row95_t)CALL( self,COLOR_parser_tables___Parser___action_table_row95))( self) /*Parser::action_table_row95*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable95) /*Array::add*/;
+    variable96 = ((parser_tables___Parser___action_table_row96_t)CALL( self,COLOR_parser_tables___Parser___action_table_row96))( self) /*Parser::action_table_row96*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable96) /*Array::add*/;
+    variable97 = ((parser_tables___Parser___action_table_row97_t)CALL( self,COLOR_parser_tables___Parser___action_table_row97))( self) /*Parser::action_table_row97*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable97) /*Array::add*/;
+    variable98 = ((parser_tables___Parser___action_table_row98_t)CALL( self,COLOR_parser_tables___Parser___action_table_row98))( self) /*Parser::action_table_row98*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable98) /*Array::add*/;
+    variable99 = ((parser_tables___Parser___action_table_row99_t)CALL( self,COLOR_parser_tables___Parser___action_table_row99))( self) /*Parser::action_table_row99*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable99) /*Array::add*/;
+    variable100 = ((parser_tables___Parser___action_table_row100_t)CALL( self,COLOR_parser_tables___Parser___action_table_row100))( self) /*Parser::action_table_row100*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable100) /*Array::add*/;
+    variable101 = ((parser_tables___Parser___action_table_row101_t)CALL( self,COLOR_parser_tables___Parser___action_table_row101))( self) /*Parser::action_table_row101*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable101) /*Array::add*/;
+    variable102 = ((parser_tables___Parser___action_table_row102_t)CALL( self,COLOR_parser_tables___Parser___action_table_row102))( self) /*Parser::action_table_row102*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable102) /*Array::add*/;
+    variable103 = ((parser_tables___Parser___action_table_row103_t)CALL( self,COLOR_parser_tables___Parser___action_table_row103))( self) /*Parser::action_table_row103*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable103) /*Array::add*/;
+    variable104 = ((parser_tables___Parser___action_table_row104_t)CALL( self,COLOR_parser_tables___Parser___action_table_row104))( self) /*Parser::action_table_row104*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable104) /*Array::add*/;
+    variable105 = ((parser_tables___Parser___action_table_row105_t)CALL( self,COLOR_parser_tables___Parser___action_table_row105))( self) /*Parser::action_table_row105*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable105) /*Array::add*/;
+    variable106 = ((parser_tables___Parser___action_table_row106_t)CALL( self,COLOR_parser_tables___Parser___action_table_row106))( self) /*Parser::action_table_row106*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable106) /*Array::add*/;
+    variable107 = ((parser_tables___Parser___action_table_row107_t)CALL( self,COLOR_parser_tables___Parser___action_table_row107))( self) /*Parser::action_table_row107*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable107) /*Array::add*/;
+    variable108 = ((parser_tables___Parser___action_table_row108_t)CALL( self,COLOR_parser_tables___Parser___action_table_row108))( self) /*Parser::action_table_row108*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable108) /*Array::add*/;
+    variable109 = ((parser_tables___Parser___action_table_row109_t)CALL( self,COLOR_parser_tables___Parser___action_table_row109))( self) /*Parser::action_table_row109*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable109) /*Array::add*/;
+    variable110 = ((parser_tables___Parser___action_table_row110_t)CALL( self,COLOR_parser_tables___Parser___action_table_row110))( self) /*Parser::action_table_row110*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable110) /*Array::add*/;
+    variable111 = ((parser_tables___Parser___action_table_row111_t)CALL( self,COLOR_parser_tables___Parser___action_table_row111))( self) /*Parser::action_table_row111*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable111) /*Array::add*/;
+    variable112 = ((parser_tables___Parser___action_table_row112_t)CALL( self,COLOR_parser_tables___Parser___action_table_row112))( self) /*Parser::action_table_row112*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable112) /*Array::add*/;
+    variable113 = ((parser_tables___Parser___action_table_row113_t)CALL( self,COLOR_parser_tables___Parser___action_table_row113))( self) /*Parser::action_table_row113*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable113) /*Array::add*/;
+    variable114 = ((parser_tables___Parser___action_table_row114_t)CALL( self,COLOR_parser_tables___Parser___action_table_row114))( self) /*Parser::action_table_row114*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable114) /*Array::add*/;
+    variable115 = ((parser_tables___Parser___action_table_row115_t)CALL( self,COLOR_parser_tables___Parser___action_table_row115))( self) /*Parser::action_table_row115*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable115) /*Array::add*/;
+    variable116 = ((parser_tables___Parser___action_table_row116_t)CALL( self,COLOR_parser_tables___Parser___action_table_row116))( self) /*Parser::action_table_row116*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable116) /*Array::add*/;
+    variable117 = ((parser_tables___Parser___action_table_row117_t)CALL( self,COLOR_parser_tables___Parser___action_table_row117))( self) /*Parser::action_table_row117*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable117) /*Array::add*/;
+    variable118 = ((parser_tables___Parser___action_table_row118_t)CALL( self,COLOR_parser_tables___Parser___action_table_row118))( self) /*Parser::action_table_row118*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable118) /*Array::add*/;
+    variable119 = ((parser_tables___Parser___action_table_row119_t)CALL( self,COLOR_parser_tables___Parser___action_table_row119))( self) /*Parser::action_table_row119*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable119) /*Array::add*/;
+    variable120 = ((parser_tables___Parser___action_table_row120_t)CALL( self,COLOR_parser_tables___Parser___action_table_row120))( self) /*Parser::action_table_row120*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable120) /*Array::add*/;
+    variable121 = ((parser_tables___Parser___action_table_row121_t)CALL( self,COLOR_parser_tables___Parser___action_table_row121))( self) /*Parser::action_table_row121*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable121) /*Array::add*/;
+    variable122 = ((parser_tables___Parser___action_table_row122_t)CALL( self,COLOR_parser_tables___Parser___action_table_row122))( self) /*Parser::action_table_row122*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable122) /*Array::add*/;
+    variable123 = ((parser_tables___Parser___action_table_row123_t)CALL( self,COLOR_parser_tables___Parser___action_table_row123))( self) /*Parser::action_table_row123*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable123) /*Array::add*/;
+    variable124 = ((parser_tables___Parser___action_table_row124_t)CALL( self,COLOR_parser_tables___Parser___action_table_row124))( self) /*Parser::action_table_row124*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable124) /*Array::add*/;
+    variable125 = ((parser_tables___Parser___action_table_row125_t)CALL( self,COLOR_parser_tables___Parser___action_table_row125))( self) /*Parser::action_table_row125*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable125) /*Array::add*/;
+    variable126 = ((parser_tables___Parser___action_table_row126_t)CALL( self,COLOR_parser_tables___Parser___action_table_row126))( self) /*Parser::action_table_row126*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable126) /*Array::add*/;
+    variable127 = ((parser_tables___Parser___action_table_row127_t)CALL( self,COLOR_parser_tables___Parser___action_table_row127))( self) /*Parser::action_table_row127*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable127) /*Array::add*/;
+    variable128 = ((parser_tables___Parser___action_table_row128_t)CALL( self,COLOR_parser_tables___Parser___action_table_row128))( self) /*Parser::action_table_row128*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable128) /*Array::add*/;
+    variable129 = ((parser_tables___Parser___action_table_row129_t)CALL( self,COLOR_parser_tables___Parser___action_table_row129))( self) /*Parser::action_table_row129*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable129) /*Array::add*/;
+    variable130 = ((parser_tables___Parser___action_table_row130_t)CALL( self,COLOR_parser_tables___Parser___action_table_row130))( self) /*Parser::action_table_row130*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable130) /*Array::add*/;
+    variable131 = ((parser_tables___Parser___action_table_row131_t)CALL( self,COLOR_parser_tables___Parser___action_table_row131))( self) /*Parser::action_table_row131*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable131) /*Array::add*/;
+    variable132 = ((parser_tables___Parser___action_table_row132_t)CALL( self,COLOR_parser_tables___Parser___action_table_row132))( self) /*Parser::action_table_row132*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable132) /*Array::add*/;
+    variable133 = ((parser_tables___Parser___action_table_row133_t)CALL( self,COLOR_parser_tables___Parser___action_table_row133))( self) /*Parser::action_table_row133*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable133) /*Array::add*/;
+    variable134 = ((parser_tables___Parser___action_table_row134_t)CALL( self,COLOR_parser_tables___Parser___action_table_row134))( self) /*Parser::action_table_row134*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable134) /*Array::add*/;
+    variable135 = ((parser_tables___Parser___action_table_row135_t)CALL( self,COLOR_parser_tables___Parser___action_table_row135))( self) /*Parser::action_table_row135*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable135) /*Array::add*/;
+    variable136 = ((parser_tables___Parser___action_table_row136_t)CALL( self,COLOR_parser_tables___Parser___action_table_row136))( self) /*Parser::action_table_row136*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable136) /*Array::add*/;
+    variable137 = ((parser_tables___Parser___action_table_row137_t)CALL( self,COLOR_parser_tables___Parser___action_table_row137))( self) /*Parser::action_table_row137*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable137) /*Array::add*/;
+    variable138 = ((parser_tables___Parser___action_table_row138_t)CALL( self,COLOR_parser_tables___Parser___action_table_row138))( self) /*Parser::action_table_row138*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable138) /*Array::add*/;
+    variable139 = ((parser_tables___Parser___action_table_row139_t)CALL( self,COLOR_parser_tables___Parser___action_table_row139))( self) /*Parser::action_table_row139*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable139) /*Array::add*/;
+    variable140 = ((parser_tables___Parser___action_table_row140_t)CALL( self,COLOR_parser_tables___Parser___action_table_row140))( self) /*Parser::action_table_row140*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable140) /*Array::add*/;
+    variable141 = ((parser_tables___Parser___action_table_row141_t)CALL( self,COLOR_parser_tables___Parser___action_table_row141))( self) /*Parser::action_table_row141*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable141) /*Array::add*/;
+    variable142 = ((parser_tables___Parser___action_table_row142_t)CALL( self,COLOR_parser_tables___Parser___action_table_row142))( self) /*Parser::action_table_row142*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable142) /*Array::add*/;
+    variable143 = ((parser_tables___Parser___action_table_row143_t)CALL( self,COLOR_parser_tables___Parser___action_table_row143))( self) /*Parser::action_table_row143*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable143) /*Array::add*/;
+    variable144 = ((parser_tables___Parser___action_table_row144_t)CALL( self,COLOR_parser_tables___Parser___action_table_row144))( self) /*Parser::action_table_row144*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable144) /*Array::add*/;
+    variable145 = ((parser_tables___Parser___action_table_row145_t)CALL( self,COLOR_parser_tables___Parser___action_table_row145))( self) /*Parser::action_table_row145*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable145) /*Array::add*/;
+    variable146 = ((parser_tables___Parser___action_table_row146_t)CALL( self,COLOR_parser_tables___Parser___action_table_row146))( self) /*Parser::action_table_row146*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable146) /*Array::add*/;
+    variable147 = ((parser_tables___Parser___action_table_row147_t)CALL( self,COLOR_parser_tables___Parser___action_table_row147))( self) /*Parser::action_table_row147*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable147) /*Array::add*/;
+    variable148 = ((parser_tables___Parser___action_table_row148_t)CALL( self,COLOR_parser_tables___Parser___action_table_row148))( self) /*Parser::action_table_row148*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable148) /*Array::add*/;
+    variable149 = ((parser_tables___Parser___action_table_row149_t)CALL( self,COLOR_parser_tables___Parser___action_table_row149))( self) /*Parser::action_table_row149*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable149) /*Array::add*/;
+    variable150 = ((parser_tables___Parser___action_table_row150_t)CALL( self,COLOR_parser_tables___Parser___action_table_row150))( self) /*Parser::action_table_row150*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable150) /*Array::add*/;
+    variable151 = ((parser_tables___Parser___action_table_row151_t)CALL( self,COLOR_parser_tables___Parser___action_table_row151))( self) /*Parser::action_table_row151*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable151) /*Array::add*/;
+    variable152 = ((parser_tables___Parser___action_table_row152_t)CALL( self,COLOR_parser_tables___Parser___action_table_row152))( self) /*Parser::action_table_row152*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable152) /*Array::add*/;
+    variable153 = ((parser_tables___Parser___action_table_row153_t)CALL( self,COLOR_parser_tables___Parser___action_table_row153))( self) /*Parser::action_table_row153*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable153) /*Array::add*/;
+    variable154 = ((parser_tables___Parser___action_table_row154_t)CALL( self,COLOR_parser_tables___Parser___action_table_row154))( self) /*Parser::action_table_row154*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable154) /*Array::add*/;
+    variable155 = ((parser_tables___Parser___action_table_row155_t)CALL( self,COLOR_parser_tables___Parser___action_table_row155))( self) /*Parser::action_table_row155*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable155) /*Array::add*/;
+    variable156 = ((parser_tables___Parser___action_table_row156_t)CALL( self,COLOR_parser_tables___Parser___action_table_row156))( self) /*Parser::action_table_row156*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable156) /*Array::add*/;
+    variable157 = ((parser_tables___Parser___action_table_row157_t)CALL( self,COLOR_parser_tables___Parser___action_table_row157))( self) /*Parser::action_table_row157*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable157) /*Array::add*/;
+    variable158 = ((parser_tables___Parser___action_table_row158_t)CALL( self,COLOR_parser_tables___Parser___action_table_row158))( self) /*Parser::action_table_row158*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable158) /*Array::add*/;
+    variable159 = ((parser_tables___Parser___action_table_row159_t)CALL( self,COLOR_parser_tables___Parser___action_table_row159))( self) /*Parser::action_table_row159*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable159) /*Array::add*/;
+    variable160 = ((parser_tables___Parser___action_table_row160_t)CALL( self,COLOR_parser_tables___Parser___action_table_row160))( self) /*Parser::action_table_row160*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable160) /*Array::add*/;
+    variable161 = ((parser_tables___Parser___action_table_row161_t)CALL( self,COLOR_parser_tables___Parser___action_table_row161))( self) /*Parser::action_table_row161*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable161) /*Array::add*/;
+    variable162 = ((parser_tables___Parser___action_table_row162_t)CALL( self,COLOR_parser_tables___Parser___action_table_row162))( self) /*Parser::action_table_row162*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable162) /*Array::add*/;
+    variable163 = ((parser_tables___Parser___action_table_row163_t)CALL( self,COLOR_parser_tables___Parser___action_table_row163))( self) /*Parser::action_table_row163*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable163) /*Array::add*/;
+    variable164 = ((parser_tables___Parser___action_table_row164_t)CALL( self,COLOR_parser_tables___Parser___action_table_row164))( self) /*Parser::action_table_row164*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable164) /*Array::add*/;
+    variable165 = ((parser_tables___Parser___action_table_row165_t)CALL( self,COLOR_parser_tables___Parser___action_table_row165))( self) /*Parser::action_table_row165*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable165) /*Array::add*/;
+    variable166 = ((parser_tables___Parser___action_table_row166_t)CALL( self,COLOR_parser_tables___Parser___action_table_row166))( self) /*Parser::action_table_row166*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable166) /*Array::add*/;
+    variable167 = ((parser_tables___Parser___action_table_row167_t)CALL( self,COLOR_parser_tables___Parser___action_table_row167))( self) /*Parser::action_table_row167*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable167) /*Array::add*/;
+    variable168 = ((parser_tables___Parser___action_table_row168_t)CALL( self,COLOR_parser_tables___Parser___action_table_row168))( self) /*Parser::action_table_row168*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable168) /*Array::add*/;
+    variable169 = ((parser_tables___Parser___action_table_row169_t)CALL( self,COLOR_parser_tables___Parser___action_table_row169))( self) /*Parser::action_table_row169*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable169) /*Array::add*/;
+    variable170 = ((parser_tables___Parser___action_table_row170_t)CALL( self,COLOR_parser_tables___Parser___action_table_row170))( self) /*Parser::action_table_row170*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable170) /*Array::add*/;
+    variable171 = ((parser_tables___Parser___action_table_row171_t)CALL( self,COLOR_parser_tables___Parser___action_table_row171))( self) /*Parser::action_table_row171*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable171) /*Array::add*/;
+    variable172 = ((parser_tables___Parser___action_table_row172_t)CALL( self,COLOR_parser_tables___Parser___action_table_row172))( self) /*Parser::action_table_row172*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable172) /*Array::add*/;
+    variable173 = ((parser_tables___Parser___action_table_row173_t)CALL( self,COLOR_parser_tables___Parser___action_table_row173))( self) /*Parser::action_table_row173*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable173) /*Array::add*/;
+    variable174 = ((parser_tables___Parser___action_table_row174_t)CALL( self,COLOR_parser_tables___Parser___action_table_row174))( self) /*Parser::action_table_row174*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable174) /*Array::add*/;
+    variable175 = ((parser_tables___Parser___action_table_row175_t)CALL( self,COLOR_parser_tables___Parser___action_table_row175))( self) /*Parser::action_table_row175*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable175) /*Array::add*/;
+    variable176 = ((parser_tables___Parser___action_table_row176_t)CALL( self,COLOR_parser_tables___Parser___action_table_row176))( self) /*Parser::action_table_row176*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable176) /*Array::add*/;
+    variable177 = ((parser_tables___Parser___action_table_row177_t)CALL( self,COLOR_parser_tables___Parser___action_table_row177))( self) /*Parser::action_table_row177*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable177) /*Array::add*/;
+    variable178 = ((parser_tables___Parser___action_table_row178_t)CALL( self,COLOR_parser_tables___Parser___action_table_row178))( self) /*Parser::action_table_row178*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable178) /*Array::add*/;
+    variable179 = ((parser_tables___Parser___action_table_row179_t)CALL( self,COLOR_parser_tables___Parser___action_table_row179))( self) /*Parser::action_table_row179*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable179) /*Array::add*/;
+    variable180 = ((parser_tables___Parser___action_table_row180_t)CALL( self,COLOR_parser_tables___Parser___action_table_row180))( self) /*Parser::action_table_row180*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable180) /*Array::add*/;
+    variable181 = ((parser_tables___Parser___action_table_row181_t)CALL( self,COLOR_parser_tables___Parser___action_table_row181))( self) /*Parser::action_table_row181*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable181) /*Array::add*/;
+    variable182 = ((parser_tables___Parser___action_table_row182_t)CALL( self,COLOR_parser_tables___Parser___action_table_row182))( self) /*Parser::action_table_row182*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable182) /*Array::add*/;
+    variable183 = ((parser_tables___Parser___action_table_row183_t)CALL( self,COLOR_parser_tables___Parser___action_table_row183))( self) /*Parser::action_table_row183*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable183) /*Array::add*/;
+    variable184 = ((parser_tables___Parser___action_table_row184_t)CALL( self,COLOR_parser_tables___Parser___action_table_row184))( self) /*Parser::action_table_row184*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable184) /*Array::add*/;
+    variable185 = ((parser_tables___Parser___action_table_row185_t)CALL( self,COLOR_parser_tables___Parser___action_table_row185))( self) /*Parser::action_table_row185*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable185) /*Array::add*/;
+    variable186 = ((parser_tables___Parser___action_table_row186_t)CALL( self,COLOR_parser_tables___Parser___action_table_row186))( self) /*Parser::action_table_row186*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable186) /*Array::add*/;
+    variable187 = ((parser_tables___Parser___action_table_row187_t)CALL( self,COLOR_parser_tables___Parser___action_table_row187))( self) /*Parser::action_table_row187*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable187) /*Array::add*/;
+    variable188 = ((parser_tables___Parser___action_table_row188_t)CALL( self,COLOR_parser_tables___Parser___action_table_row188))( self) /*Parser::action_table_row188*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable188) /*Array::add*/;
+    variable189 = ((parser_tables___Parser___action_table_row189_t)CALL( self,COLOR_parser_tables___Parser___action_table_row189))( self) /*Parser::action_table_row189*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable189) /*Array::add*/;
+    variable190 = ((parser_tables___Parser___action_table_row190_t)CALL( self,COLOR_parser_tables___Parser___action_table_row190))( self) /*Parser::action_table_row190*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable190) /*Array::add*/;
+    variable191 = ((parser_tables___Parser___action_table_row191_t)CALL( self,COLOR_parser_tables___Parser___action_table_row191))( self) /*Parser::action_table_row191*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable191) /*Array::add*/;
+    variable192 = ((parser_tables___Parser___action_table_row192_t)CALL( self,COLOR_parser_tables___Parser___action_table_row192))( self) /*Parser::action_table_row192*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable192) /*Array::add*/;
+    variable193 = ((parser_tables___Parser___action_table_row193_t)CALL( self,COLOR_parser_tables___Parser___action_table_row193))( self) /*Parser::action_table_row193*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable193) /*Array::add*/;
+    variable194 = ((parser_tables___Parser___action_table_row194_t)CALL( self,COLOR_parser_tables___Parser___action_table_row194))( self) /*Parser::action_table_row194*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable194) /*Array::add*/;
+    variable195 = ((parser_tables___Parser___action_table_row195_t)CALL( self,COLOR_parser_tables___Parser___action_table_row195))( self) /*Parser::action_table_row195*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable195) /*Array::add*/;
+    variable196 = ((parser_tables___Parser___action_table_row196_t)CALL( self,COLOR_parser_tables___Parser___action_table_row196))( self) /*Parser::action_table_row196*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable196) /*Array::add*/;
+    variable197 = ((parser_tables___Parser___action_table_row197_t)CALL( self,COLOR_parser_tables___Parser___action_table_row197))( self) /*Parser::action_table_row197*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable197) /*Array::add*/;
+    variable198 = ((parser_tables___Parser___action_table_row198_t)CALL( self,COLOR_parser_tables___Parser___action_table_row198))( self) /*Parser::action_table_row198*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable198) /*Array::add*/;
+    variable199 = ((parser_tables___Parser___action_table_row199_t)CALL( self,COLOR_parser_tables___Parser___action_table_row199))( self) /*Parser::action_table_row199*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable199) /*Array::add*/;
+    variable200 = ((parser_tables___Parser___action_table_row200_t)CALL( self,COLOR_parser_tables___Parser___action_table_row200))( self) /*Parser::action_table_row200*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable200) /*Array::add*/;
+    variable201 = ((parser_tables___Parser___action_table_row201_t)CALL( self,COLOR_parser_tables___Parser___action_table_row201))( self) /*Parser::action_table_row201*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable201) /*Array::add*/;
+    variable202 = ((parser_tables___Parser___action_table_row202_t)CALL( self,COLOR_parser_tables___Parser___action_table_row202))( self) /*Parser::action_table_row202*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable202) /*Array::add*/;
+    variable203 = ((parser_tables___Parser___action_table_row203_t)CALL( self,COLOR_parser_tables___Parser___action_table_row203))( self) /*Parser::action_table_row203*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable203) /*Array::add*/;
+    variable204 = ((parser_tables___Parser___action_table_row204_t)CALL( self,COLOR_parser_tables___Parser___action_table_row204))( self) /*Parser::action_table_row204*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable204) /*Array::add*/;
+    variable205 = ((parser_tables___Parser___action_table_row205_t)CALL( self,COLOR_parser_tables___Parser___action_table_row205))( self) /*Parser::action_table_row205*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable205) /*Array::add*/;
+    variable206 = ((parser_tables___Parser___action_table_row206_t)CALL( self,COLOR_parser_tables___Parser___action_table_row206))( self) /*Parser::action_table_row206*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable206) /*Array::add*/;
+    variable207 = ((parser_tables___Parser___action_table_row207_t)CALL( self,COLOR_parser_tables___Parser___action_table_row207))( self) /*Parser::action_table_row207*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable207) /*Array::add*/;
+    variable208 = ((parser_tables___Parser___action_table_row208_t)CALL( self,COLOR_parser_tables___Parser___action_table_row208))( self) /*Parser::action_table_row208*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable208) /*Array::add*/;
+    variable209 = ((parser_tables___Parser___action_table_row209_t)CALL( self,COLOR_parser_tables___Parser___action_table_row209))( self) /*Parser::action_table_row209*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable209) /*Array::add*/;
+    variable210 = ((parser_tables___Parser___action_table_row210_t)CALL( self,COLOR_parser_tables___Parser___action_table_row210))( self) /*Parser::action_table_row210*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable210) /*Array::add*/;
+    variable211 = ((parser_tables___Parser___action_table_row211_t)CALL( self,COLOR_parser_tables___Parser___action_table_row211))( self) /*Parser::action_table_row211*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable211) /*Array::add*/;
+    variable212 = ((parser_tables___Parser___action_table_row212_t)CALL( self,COLOR_parser_tables___Parser___action_table_row212))( self) /*Parser::action_table_row212*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable212) /*Array::add*/;
+    variable213 = ((parser_tables___Parser___action_table_row213_t)CALL( self,COLOR_parser_tables___Parser___action_table_row213))( self) /*Parser::action_table_row213*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable213) /*Array::add*/;
+    variable214 = ((parser_tables___Parser___action_table_row214_t)CALL( self,COLOR_parser_tables___Parser___action_table_row214))( self) /*Parser::action_table_row214*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable214) /*Array::add*/;
+    variable215 = ((parser_tables___Parser___action_table_row215_t)CALL( self,COLOR_parser_tables___Parser___action_table_row215))( self) /*Parser::action_table_row215*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable215) /*Array::add*/;
+    variable216 = ((parser_tables___Parser___action_table_row216_t)CALL( self,COLOR_parser_tables___Parser___action_table_row216))( self) /*Parser::action_table_row216*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable216) /*Array::add*/;
+    variable217 = ((parser_tables___Parser___action_table_row217_t)CALL( self,COLOR_parser_tables___Parser___action_table_row217))( self) /*Parser::action_table_row217*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable217) /*Array::add*/;
+    variable218 = ((parser_tables___Parser___action_table_row218_t)CALL( self,COLOR_parser_tables___Parser___action_table_row218))( self) /*Parser::action_table_row218*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable218) /*Array::add*/;
+    variable219 = ((parser_tables___Parser___action_table_row219_t)CALL( self,COLOR_parser_tables___Parser___action_table_row219))( self) /*Parser::action_table_row219*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable219) /*Array::add*/;
+    variable220 = ((parser_tables___Parser___action_table_row220_t)CALL( self,COLOR_parser_tables___Parser___action_table_row220))( self) /*Parser::action_table_row220*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable220) /*Array::add*/;
+    variable221 = ((parser_tables___Parser___action_table_row221_t)CALL( self,COLOR_parser_tables___Parser___action_table_row221))( self) /*Parser::action_table_row221*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable221) /*Array::add*/;
+    variable222 = ((parser_tables___Parser___action_table_row222_t)CALL( self,COLOR_parser_tables___Parser___action_table_row222))( self) /*Parser::action_table_row222*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable222) /*Array::add*/;
+    variable223 = ((parser_tables___Parser___action_table_row223_t)CALL( self,COLOR_parser_tables___Parser___action_table_row223))( self) /*Parser::action_table_row223*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable223) /*Array::add*/;
+    variable224 = ((parser_tables___Parser___action_table_row224_t)CALL( self,COLOR_parser_tables___Parser___action_table_row224))( self) /*Parser::action_table_row224*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable224) /*Array::add*/;
+    variable225 = ((parser_tables___Parser___action_table_row225_t)CALL( self,COLOR_parser_tables___Parser___action_table_row225))( self) /*Parser::action_table_row225*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable225) /*Array::add*/;
+    variable226 = ((parser_tables___Parser___action_table_row226_t)CALL( self,COLOR_parser_tables___Parser___action_table_row226))( self) /*Parser::action_table_row226*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable226) /*Array::add*/;
+    variable227 = ((parser_tables___Parser___action_table_row227_t)CALL( self,COLOR_parser_tables___Parser___action_table_row227))( self) /*Parser::action_table_row227*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable227) /*Array::add*/;
+    variable228 = ((parser_tables___Parser___action_table_row228_t)CALL( self,COLOR_parser_tables___Parser___action_table_row228))( self) /*Parser::action_table_row228*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable228) /*Array::add*/;
+    variable229 = ((parser_tables___Parser___action_table_row229_t)CALL( self,COLOR_parser_tables___Parser___action_table_row229))( self) /*Parser::action_table_row229*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable229) /*Array::add*/;
+    variable230 = ((parser_tables___Parser___action_table_row230_t)CALL( self,COLOR_parser_tables___Parser___action_table_row230))( self) /*Parser::action_table_row230*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable230) /*Array::add*/;
+    variable231 = ((parser_tables___Parser___action_table_row231_t)CALL( self,COLOR_parser_tables___Parser___action_table_row231))( self) /*Parser::action_table_row231*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable231) /*Array::add*/;
+    variable232 = ((parser_tables___Parser___action_table_row232_t)CALL( self,COLOR_parser_tables___Parser___action_table_row232))( self) /*Parser::action_table_row232*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable232) /*Array::add*/;
+    variable233 = ((parser_tables___Parser___action_table_row233_t)CALL( self,COLOR_parser_tables___Parser___action_table_row233))( self) /*Parser::action_table_row233*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable233) /*Array::add*/;
+    variable234 = ((parser_tables___Parser___action_table_row234_t)CALL( self,COLOR_parser_tables___Parser___action_table_row234))( self) /*Parser::action_table_row234*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable234) /*Array::add*/;
+    variable235 = ((parser_tables___Parser___action_table_row235_t)CALL( self,COLOR_parser_tables___Parser___action_table_row235))( self) /*Parser::action_table_row235*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable235) /*Array::add*/;
+    variable236 = ((parser_tables___Parser___action_table_row236_t)CALL( self,COLOR_parser_tables___Parser___action_table_row236))( self) /*Parser::action_table_row236*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable236) /*Array::add*/;
+    variable237 = ((parser_tables___Parser___action_table_row237_t)CALL( self,COLOR_parser_tables___Parser___action_table_row237))( self) /*Parser::action_table_row237*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable237) /*Array::add*/;
+    variable238 = ((parser_tables___Parser___action_table_row238_t)CALL( self,COLOR_parser_tables___Parser___action_table_row238))( self) /*Parser::action_table_row238*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable238) /*Array::add*/;
+    variable239 = ((parser_tables___Parser___action_table_row239_t)CALL( self,COLOR_parser_tables___Parser___action_table_row239))( self) /*Parser::action_table_row239*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable239) /*Array::add*/;
+    variable240 = ((parser_tables___Parser___action_table_row240_t)CALL( self,COLOR_parser_tables___Parser___action_table_row240))( self) /*Parser::action_table_row240*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable240) /*Array::add*/;
+    variable241 = ((parser_tables___Parser___action_table_row241_t)CALL( self,COLOR_parser_tables___Parser___action_table_row241))( self) /*Parser::action_table_row241*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable241) /*Array::add*/;
+    variable242 = ((parser_tables___Parser___action_table_row242_t)CALL( self,COLOR_parser_tables___Parser___action_table_row242))( self) /*Parser::action_table_row242*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable242) /*Array::add*/;
+    variable243 = ((parser_tables___Parser___action_table_row243_t)CALL( self,COLOR_parser_tables___Parser___action_table_row243))( self) /*Parser::action_table_row243*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable243) /*Array::add*/;
+    variable244 = ((parser_tables___Parser___action_table_row244_t)CALL( self,COLOR_parser_tables___Parser___action_table_row244))( self) /*Parser::action_table_row244*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable244) /*Array::add*/;
+    variable245 = ((parser_tables___Parser___action_table_row245_t)CALL( self,COLOR_parser_tables___Parser___action_table_row245))( self) /*Parser::action_table_row245*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable245) /*Array::add*/;
+    variable246 = ((parser_tables___Parser___action_table_row246_t)CALL( self,COLOR_parser_tables___Parser___action_table_row246))( self) /*Parser::action_table_row246*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable246) /*Array::add*/;
+    variable247 = ((parser_tables___Parser___action_table_row247_t)CALL( self,COLOR_parser_tables___Parser___action_table_row247))( self) /*Parser::action_table_row247*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable247) /*Array::add*/;
+    variable248 = ((parser_tables___Parser___action_table_row248_t)CALL( self,COLOR_parser_tables___Parser___action_table_row248))( self) /*Parser::action_table_row248*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable248) /*Array::add*/;
+    variable249 = ((parser_tables___Parser___action_table_row249_t)CALL( self,COLOR_parser_tables___Parser___action_table_row249))( self) /*Parser::action_table_row249*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable249) /*Array::add*/;
+    variable250 = ((parser_tables___Parser___action_table_row250_t)CALL( self,COLOR_parser_tables___Parser___action_table_row250))( self) /*Parser::action_table_row250*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable250) /*Array::add*/;
+    variable251 = ((parser_tables___Parser___action_table_row251_t)CALL( self,COLOR_parser_tables___Parser___action_table_row251))( self) /*Parser::action_table_row251*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable251) /*Array::add*/;
+    variable252 = ((parser_tables___Parser___action_table_row252_t)CALL( self,COLOR_parser_tables___Parser___action_table_row252))( self) /*Parser::action_table_row252*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable252) /*Array::add*/;
+    variable253 = ((parser_tables___Parser___action_table_row253_t)CALL( self,COLOR_parser_tables___Parser___action_table_row253))( self) /*Parser::action_table_row253*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable253) /*Array::add*/;
+    variable254 = ((parser_tables___Parser___action_table_row254_t)CALL( self,COLOR_parser_tables___Parser___action_table_row254))( self) /*Parser::action_table_row254*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable254) /*Array::add*/;
+    variable255 = ((parser_tables___Parser___action_table_row255_t)CALL( self,COLOR_parser_tables___Parser___action_table_row255))( self) /*Parser::action_table_row255*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable255) /*Array::add*/;
+    variable256 = ((parser_tables___Parser___action_table_row256_t)CALL( self,COLOR_parser_tables___Parser___action_table_row256))( self) /*Parser::action_table_row256*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable256) /*Array::add*/;
+    variable257 = ((parser_tables___Parser___action_table_row257_t)CALL( self,COLOR_parser_tables___Parser___action_table_row257))( self) /*Parser::action_table_row257*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable257) /*Array::add*/;
+    variable258 = ((parser_tables___Parser___action_table_row258_t)CALL( self,COLOR_parser_tables___Parser___action_table_row258))( self) /*Parser::action_table_row258*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable258) /*Array::add*/;
+    variable259 = ((parser_tables___Parser___action_table_row259_t)CALL( self,COLOR_parser_tables___Parser___action_table_row259))( self) /*Parser::action_table_row259*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable259) /*Array::add*/;
+    variable260 = ((parser_tables___Parser___action_table_row260_t)CALL( self,COLOR_parser_tables___Parser___action_table_row260))( self) /*Parser::action_table_row260*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable260) /*Array::add*/;
+    variable261 = ((parser_tables___Parser___action_table_row261_t)CALL( self,COLOR_parser_tables___Parser___action_table_row261))( self) /*Parser::action_table_row261*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable261) /*Array::add*/;
+    variable262 = ((parser_tables___Parser___action_table_row262_t)CALL( self,COLOR_parser_tables___Parser___action_table_row262))( self) /*Parser::action_table_row262*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable262) /*Array::add*/;
+    variable263 = ((parser_tables___Parser___action_table_row263_t)CALL( self,COLOR_parser_tables___Parser___action_table_row263))( self) /*Parser::action_table_row263*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable263) /*Array::add*/;
+    variable264 = ((parser_tables___Parser___action_table_row264_t)CALL( self,COLOR_parser_tables___Parser___action_table_row264))( self) /*Parser::action_table_row264*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable264) /*Array::add*/;
+    variable265 = ((parser_tables___Parser___action_table_row265_t)CALL( self,COLOR_parser_tables___Parser___action_table_row265))( self) /*Parser::action_table_row265*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable265) /*Array::add*/;
+    variable266 = ((parser_tables___Parser___action_table_row266_t)CALL( self,COLOR_parser_tables___Parser___action_table_row266))( self) /*Parser::action_table_row266*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable266) /*Array::add*/;
+    variable267 = ((parser_tables___Parser___action_table_row267_t)CALL( self,COLOR_parser_tables___Parser___action_table_row267))( self) /*Parser::action_table_row267*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable267) /*Array::add*/;
+    variable268 = ((parser_tables___Parser___action_table_row268_t)CALL( self,COLOR_parser_tables___Parser___action_table_row268))( self) /*Parser::action_table_row268*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable268) /*Array::add*/;
+    variable269 = ((parser_tables___Parser___action_table_row269_t)CALL( self,COLOR_parser_tables___Parser___action_table_row269))( self) /*Parser::action_table_row269*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable269) /*Array::add*/;
+    variable270 = ((parser_tables___Parser___action_table_row270_t)CALL( self,COLOR_parser_tables___Parser___action_table_row270))( self) /*Parser::action_table_row270*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable270) /*Array::add*/;
+    variable271 = ((parser_tables___Parser___action_table_row271_t)CALL( self,COLOR_parser_tables___Parser___action_table_row271))( self) /*Parser::action_table_row271*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable271) /*Array::add*/;
+    variable272 = ((parser_tables___Parser___action_table_row272_t)CALL( self,COLOR_parser_tables___Parser___action_table_row272))( self) /*Parser::action_table_row272*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable272) /*Array::add*/;
+    variable273 = ((parser_tables___Parser___action_table_row273_t)CALL( self,COLOR_parser_tables___Parser___action_table_row273))( self) /*Parser::action_table_row273*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable273) /*Array::add*/;
+    variable274 = ((parser_tables___Parser___action_table_row274_t)CALL( self,COLOR_parser_tables___Parser___action_table_row274))( self) /*Parser::action_table_row274*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable274) /*Array::add*/;
+    variable275 = ((parser_tables___Parser___action_table_row275_t)CALL( self,COLOR_parser_tables___Parser___action_table_row275))( self) /*Parser::action_table_row275*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable275) /*Array::add*/;
+    variable276 = ((parser_tables___Parser___action_table_row276_t)CALL( self,COLOR_parser_tables___Parser___action_table_row276))( self) /*Parser::action_table_row276*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable276) /*Array::add*/;
+    variable277 = ((parser_tables___Parser___action_table_row277_t)CALL( self,COLOR_parser_tables___Parser___action_table_row277))( self) /*Parser::action_table_row277*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable277) /*Array::add*/;
+    variable278 = ((parser_tables___Parser___action_table_row278_t)CALL( self,COLOR_parser_tables___Parser___action_table_row278))( self) /*Parser::action_table_row278*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable278) /*Array::add*/;
+    variable279 = ((parser_tables___Parser___action_table_row279_t)CALL( self,COLOR_parser_tables___Parser___action_table_row279))( self) /*Parser::action_table_row279*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable279) /*Array::add*/;
+    variable280 = ((parser_tables___Parser___action_table_row280_t)CALL( self,COLOR_parser_tables___Parser___action_table_row280))( self) /*Parser::action_table_row280*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable280) /*Array::add*/;
+    variable281 = ((parser_tables___Parser___action_table_row281_t)CALL( self,COLOR_parser_tables___Parser___action_table_row281))( self) /*Parser::action_table_row281*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable281) /*Array::add*/;
+    variable282 = ((parser_tables___Parser___action_table_row282_t)CALL( self,COLOR_parser_tables___Parser___action_table_row282))( self) /*Parser::action_table_row282*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable282) /*Array::add*/;
+    variable283 = ((parser_tables___Parser___action_table_row283_t)CALL( self,COLOR_parser_tables___Parser___action_table_row283))( self) /*Parser::action_table_row283*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable283) /*Array::add*/;
+    variable284 = ((parser_tables___Parser___action_table_row284_t)CALL( self,COLOR_parser_tables___Parser___action_table_row284))( self) /*Parser::action_table_row284*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable284) /*Array::add*/;
+    variable285 = ((parser_tables___Parser___action_table_row285_t)CALL( self,COLOR_parser_tables___Parser___action_table_row285))( self) /*Parser::action_table_row285*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable285) /*Array::add*/;
+    variable286 = ((parser_tables___Parser___action_table_row286_t)CALL( self,COLOR_parser_tables___Parser___action_table_row286))( self) /*Parser::action_table_row286*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable286) /*Array::add*/;
+    variable287 = ((parser_tables___Parser___action_table_row287_t)CALL( self,COLOR_parser_tables___Parser___action_table_row287))( self) /*Parser::action_table_row287*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable287) /*Array::add*/;
+    variable288 = ((parser_tables___Parser___action_table_row288_t)CALL( self,COLOR_parser_tables___Parser___action_table_row288))( self) /*Parser::action_table_row288*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable288) /*Array::add*/;
+    variable289 = ((parser_tables___Parser___action_table_row289_t)CALL( self,COLOR_parser_tables___Parser___action_table_row289))( self) /*Parser::action_table_row289*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable289) /*Array::add*/;
+    variable290 = ((parser_tables___Parser___action_table_row290_t)CALL( self,COLOR_parser_tables___Parser___action_table_row290))( self) /*Parser::action_table_row290*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable290) /*Array::add*/;
+    variable291 = ((parser_tables___Parser___action_table_row291_t)CALL( self,COLOR_parser_tables___Parser___action_table_row291))( self) /*Parser::action_table_row291*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable291) /*Array::add*/;
+    variable292 = ((parser_tables___Parser___action_table_row292_t)CALL( self,COLOR_parser_tables___Parser___action_table_row292))( self) /*Parser::action_table_row292*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable292) /*Array::add*/;
+    variable293 = ((parser_tables___Parser___action_table_row293_t)CALL( self,COLOR_parser_tables___Parser___action_table_row293))( self) /*Parser::action_table_row293*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable293) /*Array::add*/;
+    variable294 = ((parser_tables___Parser___action_table_row294_t)CALL( self,COLOR_parser_tables___Parser___action_table_row294))( self) /*Parser::action_table_row294*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable294) /*Array::add*/;
+    variable295 = ((parser_tables___Parser___action_table_row295_t)CALL( self,COLOR_parser_tables___Parser___action_table_row295))( self) /*Parser::action_table_row295*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable295) /*Array::add*/;
+    variable296 = ((parser_tables___Parser___action_table_row296_t)CALL( self,COLOR_parser_tables___Parser___action_table_row296))( self) /*Parser::action_table_row296*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable296) /*Array::add*/;
+    variable297 = ((parser_tables___Parser___action_table_row297_t)CALL( self,COLOR_parser_tables___Parser___action_table_row297))( self) /*Parser::action_table_row297*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable297) /*Array::add*/;
+    variable298 = ((parser_tables___Parser___action_table_row298_t)CALL( self,COLOR_parser_tables___Parser___action_table_row298))( self) /*Parser::action_table_row298*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable298) /*Array::add*/;
+    variable299 = ((parser_tables___Parser___action_table_row299_t)CALL( self,COLOR_parser_tables___Parser___action_table_row299))( self) /*Parser::action_table_row299*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable299) /*Array::add*/;
+    variable300 = ((parser_tables___Parser___action_table_row300_t)CALL( self,COLOR_parser_tables___Parser___action_table_row300))( self) /*Parser::action_table_row300*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable300) /*Array::add*/;
+    variable301 = ((parser_tables___Parser___action_table_row301_t)CALL( self,COLOR_parser_tables___Parser___action_table_row301))( self) /*Parser::action_table_row301*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable301) /*Array::add*/;
+    variable302 = ((parser_tables___Parser___action_table_row302_t)CALL( self,COLOR_parser_tables___Parser___action_table_row302))( self) /*Parser::action_table_row302*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable302) /*Array::add*/;
+    variable303 = ((parser_tables___Parser___action_table_row303_t)CALL( self,COLOR_parser_tables___Parser___action_table_row303))( self) /*Parser::action_table_row303*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable303) /*Array::add*/;
+    variable304 = ((parser_tables___Parser___action_table_row304_t)CALL( self,COLOR_parser_tables___Parser___action_table_row304))( self) /*Parser::action_table_row304*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable304) /*Array::add*/;
+    variable305 = ((parser_tables___Parser___action_table_row305_t)CALL( self,COLOR_parser_tables___Parser___action_table_row305))( self) /*Parser::action_table_row305*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable305) /*Array::add*/;
+    variable306 = ((parser_tables___Parser___action_table_row306_t)CALL( self,COLOR_parser_tables___Parser___action_table_row306))( self) /*Parser::action_table_row306*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable306) /*Array::add*/;
+    variable307 = ((parser_tables___Parser___action_table_row307_t)CALL( self,COLOR_parser_tables___Parser___action_table_row307))( self) /*Parser::action_table_row307*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable307) /*Array::add*/;
+    variable308 = ((parser_tables___Parser___action_table_row308_t)CALL( self,COLOR_parser_tables___Parser___action_table_row308))( self) /*Parser::action_table_row308*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable308) /*Array::add*/;
+    variable309 = ((parser_tables___Parser___action_table_row309_t)CALL( self,COLOR_parser_tables___Parser___action_table_row309))( self) /*Parser::action_table_row309*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable309) /*Array::add*/;
+    variable310 = ((parser_tables___Parser___action_table_row310_t)CALL( self,COLOR_parser_tables___Parser___action_table_row310))( self) /*Parser::action_table_row310*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable310) /*Array::add*/;
+    variable311 = ((parser_tables___Parser___action_table_row311_t)CALL( self,COLOR_parser_tables___Parser___action_table_row311))( self) /*Parser::action_table_row311*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable311) /*Array::add*/;
+    variable312 = ((parser_tables___Parser___action_table_row312_t)CALL( self,COLOR_parser_tables___Parser___action_table_row312))( self) /*Parser::action_table_row312*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable312) /*Array::add*/;
+    variable313 = ((parser_tables___Parser___action_table_row313_t)CALL( self,COLOR_parser_tables___Parser___action_table_row313))( self) /*Parser::action_table_row313*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable313) /*Array::add*/;
+    variable314 = ((parser_tables___Parser___action_table_row314_t)CALL( self,COLOR_parser_tables___Parser___action_table_row314))( self) /*Parser::action_table_row314*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable314) /*Array::add*/;
+    variable315 = ((parser_tables___Parser___action_table_row315_t)CALL( self,COLOR_parser_tables___Parser___action_table_row315))( self) /*Parser::action_table_row315*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable315) /*Array::add*/;
+    variable316 = ((parser_tables___Parser___action_table_row316_t)CALL( self,COLOR_parser_tables___Parser___action_table_row316))( self) /*Parser::action_table_row316*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable316) /*Array::add*/;
+    variable317 = ((parser_tables___Parser___action_table_row317_t)CALL( self,COLOR_parser_tables___Parser___action_table_row317))( self) /*Parser::action_table_row317*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable317) /*Array::add*/;
+    variable318 = ((parser_tables___Parser___action_table_row318_t)CALL( self,COLOR_parser_tables___Parser___action_table_row318))( self) /*Parser::action_table_row318*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable318) /*Array::add*/;
+    variable319 = ((parser_tables___Parser___action_table_row319_t)CALL( self,COLOR_parser_tables___Parser___action_table_row319))( self) /*Parser::action_table_row319*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable319) /*Array::add*/;
+    variable320 = ((parser_tables___Parser___action_table_row320_t)CALL( self,COLOR_parser_tables___Parser___action_table_row320))( self) /*Parser::action_table_row320*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable320) /*Array::add*/;
+    variable321 = ((parser_tables___Parser___action_table_row321_t)CALL( self,COLOR_parser_tables___Parser___action_table_row321))( self) /*Parser::action_table_row321*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable321) /*Array::add*/;
+    variable322 = ((parser_tables___Parser___action_table_row322_t)CALL( self,COLOR_parser_tables___Parser___action_table_row322))( self) /*Parser::action_table_row322*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable322) /*Array::add*/;
+    variable323 = ((parser_tables___Parser___action_table_row323_t)CALL( self,COLOR_parser_tables___Parser___action_table_row323))( self) /*Parser::action_table_row323*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable323) /*Array::add*/;
+    variable324 = ((parser_tables___Parser___action_table_row324_t)CALL( self,COLOR_parser_tables___Parser___action_table_row324))( self) /*Parser::action_table_row324*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable324) /*Array::add*/;
+    variable325 = ((parser_tables___Parser___action_table_row325_t)CALL( self,COLOR_parser_tables___Parser___action_table_row325))( self) /*Parser::action_table_row325*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable325) /*Array::add*/;
+    variable326 = ((parser_tables___Parser___action_table_row326_t)CALL( self,COLOR_parser_tables___Parser___action_table_row326))( self) /*Parser::action_table_row326*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable326) /*Array::add*/;
+    variable327 = ((parser_tables___Parser___action_table_row327_t)CALL( self,COLOR_parser_tables___Parser___action_table_row327))( self) /*Parser::action_table_row327*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable327) /*Array::add*/;
+    variable328 = ((parser_tables___Parser___action_table_row328_t)CALL( self,COLOR_parser_tables___Parser___action_table_row328))( self) /*Parser::action_table_row328*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable328) /*Array::add*/;
+    variable329 = ((parser_tables___Parser___action_table_row329_t)CALL( self,COLOR_parser_tables___Parser___action_table_row329))( self) /*Parser::action_table_row329*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable329) /*Array::add*/;
+    variable330 = ((parser_tables___Parser___action_table_row330_t)CALL( self,COLOR_parser_tables___Parser___action_table_row330))( self) /*Parser::action_table_row330*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable330) /*Array::add*/;
+    variable331 = ((parser_tables___Parser___action_table_row331_t)CALL( self,COLOR_parser_tables___Parser___action_table_row331))( self) /*Parser::action_table_row331*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable331) /*Array::add*/;
+    variable332 = ((parser_tables___Parser___action_table_row332_t)CALL( self,COLOR_parser_tables___Parser___action_table_row332))( self) /*Parser::action_table_row332*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable332) /*Array::add*/;
+    variable333 = ((parser_tables___Parser___action_table_row333_t)CALL( self,COLOR_parser_tables___Parser___action_table_row333))( self) /*Parser::action_table_row333*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable333) /*Array::add*/;
+    variable334 = ((parser_tables___Parser___action_table_row334_t)CALL( self,COLOR_parser_tables___Parser___action_table_row334))( self) /*Parser::action_table_row334*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable334) /*Array::add*/;
+    variable335 = ((parser_tables___Parser___action_table_row335_t)CALL( self,COLOR_parser_tables___Parser___action_table_row335))( self) /*Parser::action_table_row335*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable335) /*Array::add*/;
+    variable336 = ((parser_tables___Parser___action_table_row336_t)CALL( self,COLOR_parser_tables___Parser___action_table_row336))( self) /*Parser::action_table_row336*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable336) /*Array::add*/;
+    variable337 = ((parser_tables___Parser___action_table_row337_t)CALL( self,COLOR_parser_tables___Parser___action_table_row337))( self) /*Parser::action_table_row337*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable337) /*Array::add*/;
+    variable338 = ((parser_tables___Parser___action_table_row338_t)CALL( self,COLOR_parser_tables___Parser___action_table_row338))( self) /*Parser::action_table_row338*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable338) /*Array::add*/;
+    variable339 = ((parser_tables___Parser___action_table_row339_t)CALL( self,COLOR_parser_tables___Parser___action_table_row339))( self) /*Parser::action_table_row339*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable339) /*Array::add*/;
+    variable340 = ((parser_tables___Parser___action_table_row340_t)CALL( self,COLOR_parser_tables___Parser___action_table_row340))( self) /*Parser::action_table_row340*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable340) /*Array::add*/;
+    variable341 = ((parser_tables___Parser___action_table_row341_t)CALL( self,COLOR_parser_tables___Parser___action_table_row341))( self) /*Parser::action_table_row341*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable341) /*Array::add*/;
+    variable342 = ((parser_tables___Parser___action_table_row342_t)CALL( self,COLOR_parser_tables___Parser___action_table_row342))( self) /*Parser::action_table_row342*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable342) /*Array::add*/;
+    variable343 = ((parser_tables___Parser___action_table_row343_t)CALL( self,COLOR_parser_tables___Parser___action_table_row343))( self) /*Parser::action_table_row343*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable343) /*Array::add*/;
+    variable344 = ((parser_tables___Parser___action_table_row344_t)CALL( self,COLOR_parser_tables___Parser___action_table_row344))( self) /*Parser::action_table_row344*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable344) /*Array::add*/;
+    variable345 = ((parser_tables___Parser___action_table_row345_t)CALL( self,COLOR_parser_tables___Parser___action_table_row345))( self) /*Parser::action_table_row345*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable345) /*Array::add*/;
+    variable346 = ((parser_tables___Parser___action_table_row346_t)CALL( self,COLOR_parser_tables___Parser___action_table_row346))( self) /*Parser::action_table_row346*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable346) /*Array::add*/;
+    variable347 = ((parser_tables___Parser___action_table_row347_t)CALL( self,COLOR_parser_tables___Parser___action_table_row347))( self) /*Parser::action_table_row347*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable347) /*Array::add*/;
+    variable348 = ((parser_tables___Parser___action_table_row348_t)CALL( self,COLOR_parser_tables___Parser___action_table_row348))( self) /*Parser::action_table_row348*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable348) /*Array::add*/;
+    variable349 = ((parser_tables___Parser___action_table_row349_t)CALL( self,COLOR_parser_tables___Parser___action_table_row349))( self) /*Parser::action_table_row349*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable349) /*Array::add*/;
+    variable350 = ((parser_tables___Parser___action_table_row350_t)CALL( self,COLOR_parser_tables___Parser___action_table_row350))( self) /*Parser::action_table_row350*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable350) /*Array::add*/;
+    variable351 = ((parser_tables___Parser___action_table_row351_t)CALL( self,COLOR_parser_tables___Parser___action_table_row351))( self) /*Parser::action_table_row351*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable351) /*Array::add*/;
+    variable352 = ((parser_tables___Parser___action_table_row352_t)CALL( self,COLOR_parser_tables___Parser___action_table_row352))( self) /*Parser::action_table_row352*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable352) /*Array::add*/;
+    variable353 = ((parser_tables___Parser___action_table_row353_t)CALL( self,COLOR_parser_tables___Parser___action_table_row353))( self) /*Parser::action_table_row353*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable353) /*Array::add*/;
+    variable354 = ((parser_tables___Parser___action_table_row354_t)CALL( self,COLOR_parser_tables___Parser___action_table_row354))( self) /*Parser::action_table_row354*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable354) /*Array::add*/;
+    variable355 = ((parser_tables___Parser___action_table_row355_t)CALL( self,COLOR_parser_tables___Parser___action_table_row355))( self) /*Parser::action_table_row355*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable355) /*Array::add*/;
+    variable356 = ((parser_tables___Parser___action_table_row356_t)CALL( self,COLOR_parser_tables___Parser___action_table_row356))( self) /*Parser::action_table_row356*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable356) /*Array::add*/;
+    variable357 = ((parser_tables___Parser___action_table_row357_t)CALL( self,COLOR_parser_tables___Parser___action_table_row357))( self) /*Parser::action_table_row357*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable357) /*Array::add*/;
+    variable358 = ((parser_tables___Parser___action_table_row358_t)CALL( self,COLOR_parser_tables___Parser___action_table_row358))( self) /*Parser::action_table_row358*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable358) /*Array::add*/;
+    variable359 = ((parser_tables___Parser___action_table_row359_t)CALL( self,COLOR_parser_tables___Parser___action_table_row359))( self) /*Parser::action_table_row359*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable359) /*Array::add*/;
+    variable360 = ((parser_tables___Parser___action_table_row360_t)CALL( self,COLOR_parser_tables___Parser___action_table_row360))( self) /*Parser::action_table_row360*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable360) /*Array::add*/;
+    variable361 = ((parser_tables___Parser___action_table_row361_t)CALL( self,COLOR_parser_tables___Parser___action_table_row361))( self) /*Parser::action_table_row361*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable361) /*Array::add*/;
+    variable362 = ((parser_tables___Parser___action_table_row362_t)CALL( self,COLOR_parser_tables___Parser___action_table_row362))( self) /*Parser::action_table_row362*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable362) /*Array::add*/;
+    variable363 = ((parser_tables___Parser___action_table_row363_t)CALL( self,COLOR_parser_tables___Parser___action_table_row363))( self) /*Parser::action_table_row363*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable363) /*Array::add*/;
+    variable364 = ((parser_tables___Parser___action_table_row364_t)CALL( self,COLOR_parser_tables___Parser___action_table_row364))( self) /*Parser::action_table_row364*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable364) /*Array::add*/;
+    variable365 = ((parser_tables___Parser___action_table_row365_t)CALL( self,COLOR_parser_tables___Parser___action_table_row365))( self) /*Parser::action_table_row365*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable365) /*Array::add*/;
+    variable366 = ((parser_tables___Parser___action_table_row366_t)CALL( self,COLOR_parser_tables___Parser___action_table_row366))( self) /*Parser::action_table_row366*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable366) /*Array::add*/;
+    variable367 = ((parser_tables___Parser___action_table_row367_t)CALL( self,COLOR_parser_tables___Parser___action_table_row367))( self) /*Parser::action_table_row367*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable367) /*Array::add*/;
+    variable368 = ((parser_tables___Parser___action_table_row368_t)CALL( self,COLOR_parser_tables___Parser___action_table_row368))( self) /*Parser::action_table_row368*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable368) /*Array::add*/;
+    variable369 = ((parser_tables___Parser___action_table_row369_t)CALL( self,COLOR_parser_tables___Parser___action_table_row369))( self) /*Parser::action_table_row369*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable369) /*Array::add*/;
+    variable370 = ((parser_tables___Parser___action_table_row370_t)CALL( self,COLOR_parser_tables___Parser___action_table_row370))( self) /*Parser::action_table_row370*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable370) /*Array::add*/;
+    variable371 = ((parser_tables___Parser___action_table_row371_t)CALL( self,COLOR_parser_tables___Parser___action_table_row371))( self) /*Parser::action_table_row371*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable371) /*Array::add*/;
+    variable372 = ((parser_tables___Parser___action_table_row372_t)CALL( self,COLOR_parser_tables___Parser___action_table_row372))( self) /*Parser::action_table_row372*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable372) /*Array::add*/;
+    variable373 = ((parser_tables___Parser___action_table_row373_t)CALL( self,COLOR_parser_tables___Parser___action_table_row373))( self) /*Parser::action_table_row373*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable373) /*Array::add*/;
+    variable374 = ((parser_tables___Parser___action_table_row374_t)CALL( self,COLOR_parser_tables___Parser___action_table_row374))( self) /*Parser::action_table_row374*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable374) /*Array::add*/;
+    variable375 = ((parser_tables___Parser___action_table_row375_t)CALL( self,COLOR_parser_tables___Parser___action_table_row375))( self) /*Parser::action_table_row375*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable375) /*Array::add*/;
+    variable376 = ((parser_tables___Parser___action_table_row376_t)CALL( self,COLOR_parser_tables___Parser___action_table_row376))( self) /*Parser::action_table_row376*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable376) /*Array::add*/;
+    variable377 = ((parser_tables___Parser___action_table_row377_t)CALL( self,COLOR_parser_tables___Parser___action_table_row377))( self) /*Parser::action_table_row377*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable377) /*Array::add*/;
+    variable378 = ((parser_tables___Parser___action_table_row378_t)CALL( self,COLOR_parser_tables___Parser___action_table_row378))( self) /*Parser::action_table_row378*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable378) /*Array::add*/;
+    variable379 = ((parser_tables___Parser___action_table_row379_t)CALL( self,COLOR_parser_tables___Parser___action_table_row379))( self) /*Parser::action_table_row379*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable379) /*Array::add*/;
+    variable380 = ((parser_tables___Parser___action_table_row380_t)CALL( self,COLOR_parser_tables___Parser___action_table_row380))( self) /*Parser::action_table_row380*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable380) /*Array::add*/;
+    variable381 = ((parser_tables___Parser___action_table_row381_t)CALL( self,COLOR_parser_tables___Parser___action_table_row381))( self) /*Parser::action_table_row381*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable381) /*Array::add*/;
+    variable382 = ((parser_tables___Parser___action_table_row382_t)CALL( self,COLOR_parser_tables___Parser___action_table_row382))( self) /*Parser::action_table_row382*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable382) /*Array::add*/;
+    variable383 = ((parser_tables___Parser___action_table_row383_t)CALL( self,COLOR_parser_tables___Parser___action_table_row383))( self) /*Parser::action_table_row383*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable383) /*Array::add*/;
+    variable384 = ((parser_tables___Parser___action_table_row384_t)CALL( self,COLOR_parser_tables___Parser___action_table_row384))( self) /*Parser::action_table_row384*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable384) /*Array::add*/;
+    variable385 = ((parser_tables___Parser___action_table_row385_t)CALL( self,COLOR_parser_tables___Parser___action_table_row385))( self) /*Parser::action_table_row385*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable385) /*Array::add*/;
+    variable386 = ((parser_tables___Parser___action_table_row386_t)CALL( self,COLOR_parser_tables___Parser___action_table_row386))( self) /*Parser::action_table_row386*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable386) /*Array::add*/;
+    variable387 = ((parser_tables___Parser___action_table_row387_t)CALL( self,COLOR_parser_tables___Parser___action_table_row387))( self) /*Parser::action_table_row387*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable387) /*Array::add*/;
+    variable388 = ((parser_tables___Parser___action_table_row388_t)CALL( self,COLOR_parser_tables___Parser___action_table_row388))( self) /*Parser::action_table_row388*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable388) /*Array::add*/;
+    variable389 = ((parser_tables___Parser___action_table_row389_t)CALL( self,COLOR_parser_tables___Parser___action_table_row389))( self) /*Parser::action_table_row389*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable389) /*Array::add*/;
+    variable390 = ((parser_tables___Parser___action_table_row390_t)CALL( self,COLOR_parser_tables___Parser___action_table_row390))( self) /*Parser::action_table_row390*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable390) /*Array::add*/;
+    variable391 = ((parser_tables___Parser___action_table_row391_t)CALL( self,COLOR_parser_tables___Parser___action_table_row391))( self) /*Parser::action_table_row391*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable391) /*Array::add*/;
+    variable392 = ((parser_tables___Parser___action_table_row392_t)CALL( self,COLOR_parser_tables___Parser___action_table_row392))( self) /*Parser::action_table_row392*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable392) /*Array::add*/;
+    variable393 = ((parser_tables___Parser___action_table_row393_t)CALL( self,COLOR_parser_tables___Parser___action_table_row393))( self) /*Parser::action_table_row393*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable393) /*Array::add*/;
+    variable394 = ((parser_tables___Parser___action_table_row394_t)CALL( self,COLOR_parser_tables___Parser___action_table_row394))( self) /*Parser::action_table_row394*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable394) /*Array::add*/;
+    variable395 = ((parser_tables___Parser___action_table_row395_t)CALL( self,COLOR_parser_tables___Parser___action_table_row395))( self) /*Parser::action_table_row395*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable395) /*Array::add*/;
+    variable396 = ((parser_tables___Parser___action_table_row396_t)CALL( self,COLOR_parser_tables___Parser___action_table_row396))( self) /*Parser::action_table_row396*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable396) /*Array::add*/;
+    variable397 = ((parser_tables___Parser___action_table_row397_t)CALL( self,COLOR_parser_tables___Parser___action_table_row397))( self) /*Parser::action_table_row397*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable397) /*Array::add*/;
+    variable398 = ((parser_tables___Parser___action_table_row398_t)CALL( self,COLOR_parser_tables___Parser___action_table_row398))( self) /*Parser::action_table_row398*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable398) /*Array::add*/;
+    variable399 = ((parser_tables___Parser___action_table_row399_t)CALL( self,COLOR_parser_tables___Parser___action_table_row399))( self) /*Parser::action_table_row399*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable399) /*Array::add*/;
+    variable400 = ((parser_tables___Parser___action_table_row400_t)CALL( self,COLOR_parser_tables___Parser___action_table_row400))( self) /*Parser::action_table_row400*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable400) /*Array::add*/;
+    variable401 = ((parser_tables___Parser___action_table_row401_t)CALL( self,COLOR_parser_tables___Parser___action_table_row401))( self) /*Parser::action_table_row401*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable401) /*Array::add*/;
+    variable402 = ((parser_tables___Parser___action_table_row402_t)CALL( self,COLOR_parser_tables___Parser___action_table_row402))( self) /*Parser::action_table_row402*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable402) /*Array::add*/;
+    variable403 = ((parser_tables___Parser___action_table_row403_t)CALL( self,COLOR_parser_tables___Parser___action_table_row403))( self) /*Parser::action_table_row403*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable403) /*Array::add*/;
+    variable404 = ((parser_tables___Parser___action_table_row404_t)CALL( self,COLOR_parser_tables___Parser___action_table_row404))( self) /*Parser::action_table_row404*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable404) /*Array::add*/;
+    variable405 = ((parser_tables___Parser___action_table_row405_t)CALL( self,COLOR_parser_tables___Parser___action_table_row405))( self) /*Parser::action_table_row405*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable405) /*Array::add*/;
+    variable406 = ((parser_tables___Parser___action_table_row406_t)CALL( self,COLOR_parser_tables___Parser___action_table_row406))( self) /*Parser::action_table_row406*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable406) /*Array::add*/;
+    variable407 = ((parser_tables___Parser___action_table_row407_t)CALL( self,COLOR_parser_tables___Parser___action_table_row407))( self) /*Parser::action_table_row407*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable407) /*Array::add*/;
+    variable408 = ((parser_tables___Parser___action_table_row408_t)CALL( self,COLOR_parser_tables___Parser___action_table_row408))( self) /*Parser::action_table_row408*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable408) /*Array::add*/;
+    variable409 = ((parser_tables___Parser___action_table_row409_t)CALL( self,COLOR_parser_tables___Parser___action_table_row409))( self) /*Parser::action_table_row409*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable409) /*Array::add*/;
+    variable410 = ((parser_tables___Parser___action_table_row410_t)CALL( self,COLOR_parser_tables___Parser___action_table_row410))( self) /*Parser::action_table_row410*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable410) /*Array::add*/;
+    variable411 = ((parser_tables___Parser___action_table_row411_t)CALL( self,COLOR_parser_tables___Parser___action_table_row411))( self) /*Parser::action_table_row411*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable411) /*Array::add*/;
+    variable412 = ((parser_tables___Parser___action_table_row412_t)CALL( self,COLOR_parser_tables___Parser___action_table_row412))( self) /*Parser::action_table_row412*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable412) /*Array::add*/;
+    variable413 = ((parser_tables___Parser___action_table_row413_t)CALL( self,COLOR_parser_tables___Parser___action_table_row413))( self) /*Parser::action_table_row413*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable413) /*Array::add*/;
+    variable414 = ((parser_tables___Parser___action_table_row414_t)CALL( self,COLOR_parser_tables___Parser___action_table_row414))( self) /*Parser::action_table_row414*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable414) /*Array::add*/;
+    variable415 = ((parser_tables___Parser___action_table_row415_t)CALL( self,COLOR_parser_tables___Parser___action_table_row415))( self) /*Parser::action_table_row415*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable415) /*Array::add*/;
+    variable416 = ((parser_tables___Parser___action_table_row416_t)CALL( self,COLOR_parser_tables___Parser___action_table_row416))( self) /*Parser::action_table_row416*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable416) /*Array::add*/;
+    variable417 = ((parser_tables___Parser___action_table_row417_t)CALL( self,COLOR_parser_tables___Parser___action_table_row417))( self) /*Parser::action_table_row417*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable417) /*Array::add*/;
+    variable418 = ((parser_tables___Parser___action_table_row418_t)CALL( self,COLOR_parser_tables___Parser___action_table_row418))( self) /*Parser::action_table_row418*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable418) /*Array::add*/;
+    variable419 = ((parser_tables___Parser___action_table_row419_t)CALL( self,COLOR_parser_tables___Parser___action_table_row419))( self) /*Parser::action_table_row419*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable419) /*Array::add*/;
+    variable420 = ((parser_tables___Parser___action_table_row420_t)CALL( self,COLOR_parser_tables___Parser___action_table_row420))( self) /*Parser::action_table_row420*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable420) /*Array::add*/;
+    variable421 = ((parser_tables___Parser___action_table_row421_t)CALL( self,COLOR_parser_tables___Parser___action_table_row421))( self) /*Parser::action_table_row421*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable421) /*Array::add*/;
+    variable422 = ((parser_tables___Parser___action_table_row422_t)CALL( self,COLOR_parser_tables___Parser___action_table_row422))( self) /*Parser::action_table_row422*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable422) /*Array::add*/;
+    variable423 = ((parser_tables___Parser___action_table_row423_t)CALL( self,COLOR_parser_tables___Parser___action_table_row423))( self) /*Parser::action_table_row423*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable423) /*Array::add*/;
+    variable424 = ((parser_tables___Parser___action_table_row424_t)CALL( self,COLOR_parser_tables___Parser___action_table_row424))( self) /*Parser::action_table_row424*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable424) /*Array::add*/;
+    variable425 = ((parser_tables___Parser___action_table_row425_t)CALL( self,COLOR_parser_tables___Parser___action_table_row425))( self) /*Parser::action_table_row425*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable425) /*Array::add*/;
+    variable426 = ((parser_tables___Parser___action_table_row426_t)CALL( self,COLOR_parser_tables___Parser___action_table_row426))( self) /*Parser::action_table_row426*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable426) /*Array::add*/;
+    variable427 = ((parser_tables___Parser___action_table_row427_t)CALL( self,COLOR_parser_tables___Parser___action_table_row427))( self) /*Parser::action_table_row427*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable427) /*Array::add*/;
+    variable428 = ((parser_tables___Parser___action_table_row428_t)CALL( self,COLOR_parser_tables___Parser___action_table_row428))( self) /*Parser::action_table_row428*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable428) /*Array::add*/;
+    variable429 = ((parser_tables___Parser___action_table_row429_t)CALL( self,COLOR_parser_tables___Parser___action_table_row429))( self) /*Parser::action_table_row429*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable429) /*Array::add*/;
+    variable430 = ((parser_tables___Parser___action_table_row430_t)CALL( self,COLOR_parser_tables___Parser___action_table_row430))( self) /*Parser::action_table_row430*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable430) /*Array::add*/;
+    variable431 = ((parser_tables___Parser___action_table_row431_t)CALL( self,COLOR_parser_tables___Parser___action_table_row431))( self) /*Parser::action_table_row431*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable431) /*Array::add*/;
+    variable432 = ((parser_tables___Parser___action_table_row432_t)CALL( self,COLOR_parser_tables___Parser___action_table_row432))( self) /*Parser::action_table_row432*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable432) /*Array::add*/;
+    variable433 = ((parser_tables___Parser___action_table_row433_t)CALL( self,COLOR_parser_tables___Parser___action_table_row433))( self) /*Parser::action_table_row433*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable433) /*Array::add*/;
+    variable434 = ((parser_tables___Parser___action_table_row434_t)CALL( self,COLOR_parser_tables___Parser___action_table_row434))( self) /*Parser::action_table_row434*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable434) /*Array::add*/;
+    variable435 = ((parser_tables___Parser___action_table_row435_t)CALL( self,COLOR_parser_tables___Parser___action_table_row435))( self) /*Parser::action_table_row435*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable435) /*Array::add*/;
+    variable436 = ((parser_tables___Parser___action_table_row436_t)CALL( self,COLOR_parser_tables___Parser___action_table_row436))( self) /*Parser::action_table_row436*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable436) /*Array::add*/;
+    variable437 = ((parser_tables___Parser___action_table_row437_t)CALL( self,COLOR_parser_tables___Parser___action_table_row437))( self) /*Parser::action_table_row437*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable437) /*Array::add*/;
+    variable438 = ((parser_tables___Parser___action_table_row438_t)CALL( self,COLOR_parser_tables___Parser___action_table_row438))( self) /*Parser::action_table_row438*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable438) /*Array::add*/;
+    variable439 = ((parser_tables___Parser___action_table_row439_t)CALL( self,COLOR_parser_tables___Parser___action_table_row439))( self) /*Parser::action_table_row439*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable439) /*Array::add*/;
+    variable440 = ((parser_tables___Parser___action_table_row440_t)CALL( self,COLOR_parser_tables___Parser___action_table_row440))( self) /*Parser::action_table_row440*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable440) /*Array::add*/;
+    variable441 = ((parser_tables___Parser___action_table_row441_t)CALL( self,COLOR_parser_tables___Parser___action_table_row441))( self) /*Parser::action_table_row441*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable441) /*Array::add*/;
+    variable442 = ((parser_tables___Parser___action_table_row442_t)CALL( self,COLOR_parser_tables___Parser___action_table_row442))( self) /*Parser::action_table_row442*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable442) /*Array::add*/;
+    variable443 = ((parser_tables___Parser___action_table_row443_t)CALL( self,COLOR_parser_tables___Parser___action_table_row443))( self) /*Parser::action_table_row443*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable443) /*Array::add*/;
+    variable444 = ((parser_tables___Parser___action_table_row444_t)CALL( self,COLOR_parser_tables___Parser___action_table_row444))( self) /*Parser::action_table_row444*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable444) /*Array::add*/;
+    variable445 = ((parser_tables___Parser___action_table_row445_t)CALL( self,COLOR_parser_tables___Parser___action_table_row445))( self) /*Parser::action_table_row445*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable445) /*Array::add*/;
+    variable446 = ((parser_tables___Parser___action_table_row446_t)CALL( self,COLOR_parser_tables___Parser___action_table_row446))( self) /*Parser::action_table_row446*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable446) /*Array::add*/;
+    variable447 = ((parser_tables___Parser___action_table_row447_t)CALL( self,COLOR_parser_tables___Parser___action_table_row447))( self) /*Parser::action_table_row447*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable447) /*Array::add*/;
+    variable448 = ((parser_tables___Parser___action_table_row448_t)CALL( self,COLOR_parser_tables___Parser___action_table_row448))( self) /*Parser::action_table_row448*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable448) /*Array::add*/;
+    variable449 = ((parser_tables___Parser___action_table_row449_t)CALL( self,COLOR_parser_tables___Parser___action_table_row449))( self) /*Parser::action_table_row449*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable449) /*Array::add*/;
+    variable450 = ((parser_tables___Parser___action_table_row450_t)CALL( self,COLOR_parser_tables___Parser___action_table_row450))( self) /*Parser::action_table_row450*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable450) /*Array::add*/;
+    variable451 = ((parser_tables___Parser___action_table_row451_t)CALL( self,COLOR_parser_tables___Parser___action_table_row451))( self) /*Parser::action_table_row451*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable451) /*Array::add*/;
+    variable452 = ((parser_tables___Parser___action_table_row452_t)CALL( self,COLOR_parser_tables___Parser___action_table_row452))( self) /*Parser::action_table_row452*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable452) /*Array::add*/;
+    variable453 = ((parser_tables___Parser___action_table_row453_t)CALL( self,COLOR_parser_tables___Parser___action_table_row453))( self) /*Parser::action_table_row453*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable453) /*Array::add*/;
+    variable454 = ((parser_tables___Parser___action_table_row454_t)CALL( self,COLOR_parser_tables___Parser___action_table_row454))( self) /*Parser::action_table_row454*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable454) /*Array::add*/;
+    variable455 = ((parser_tables___Parser___action_table_row455_t)CALL( self,COLOR_parser_tables___Parser___action_table_row455))( self) /*Parser::action_table_row455*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable455) /*Array::add*/;
+    variable456 = ((parser_tables___Parser___action_table_row456_t)CALL( self,COLOR_parser_tables___Parser___action_table_row456))( self) /*Parser::action_table_row456*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable456) /*Array::add*/;
+    variable457 = ((parser_tables___Parser___action_table_row457_t)CALL( self,COLOR_parser_tables___Parser___action_table_row457))( self) /*Parser::action_table_row457*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable457) /*Array::add*/;
+    variable458 = ((parser_tables___Parser___action_table_row458_t)CALL( self,COLOR_parser_tables___Parser___action_table_row458))( self) /*Parser::action_table_row458*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable458) /*Array::add*/;
+    variable459 = ((parser_tables___Parser___action_table_row459_t)CALL( self,COLOR_parser_tables___Parser___action_table_row459))( self) /*Parser::action_table_row459*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable459) /*Array::add*/;
+    variable460 = ((parser_tables___Parser___action_table_row460_t)CALL( self,COLOR_parser_tables___Parser___action_table_row460))( self) /*Parser::action_table_row460*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable460) /*Array::add*/;
+    variable461 = ((parser_tables___Parser___action_table_row461_t)CALL( self,COLOR_parser_tables___Parser___action_table_row461))( self) /*Parser::action_table_row461*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable461) /*Array::add*/;
+    variable462 = ((parser_tables___Parser___action_table_row462_t)CALL( self,COLOR_parser_tables___Parser___action_table_row462))( self) /*Parser::action_table_row462*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable462) /*Array::add*/;
+    variable463 = ((parser_tables___Parser___action_table_row463_t)CALL( self,COLOR_parser_tables___Parser___action_table_row463))( self) /*Parser::action_table_row463*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable463) /*Array::add*/;
+    variable464 = ((parser_tables___Parser___action_table_row464_t)CALL( self,COLOR_parser_tables___Parser___action_table_row464))( self) /*Parser::action_table_row464*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable464) /*Array::add*/;
+    variable465 = ((parser_tables___Parser___action_table_row465_t)CALL( self,COLOR_parser_tables___Parser___action_table_row465))( self) /*Parser::action_table_row465*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable465) /*Array::add*/;
+    variable466 = ((parser_tables___Parser___action_table_row466_t)CALL( self,COLOR_parser_tables___Parser___action_table_row466))( self) /*Parser::action_table_row466*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable466) /*Array::add*/;
+    variable467 = ((parser_tables___Parser___action_table_row467_t)CALL( self,COLOR_parser_tables___Parser___action_table_row467))( self) /*Parser::action_table_row467*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable467) /*Array::add*/;
+    variable468 = ((parser_tables___Parser___action_table_row468_t)CALL( self,COLOR_parser_tables___Parser___action_table_row468))( self) /*Parser::action_table_row468*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable468) /*Array::add*/;
+    variable469 = ((parser_tables___Parser___action_table_row469_t)CALL( self,COLOR_parser_tables___Parser___action_table_row469))( self) /*Parser::action_table_row469*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable469) /*Array::add*/;
+    variable470 = ((parser_tables___Parser___action_table_row470_t)CALL( self,COLOR_parser_tables___Parser___action_table_row470))( self) /*Parser::action_table_row470*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable470) /*Array::add*/;
+    variable471 = ((parser_tables___Parser___action_table_row471_t)CALL( self,COLOR_parser_tables___Parser___action_table_row471))( self) /*Parser::action_table_row471*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable471) /*Array::add*/;
+    variable472 = ((parser_tables___Parser___action_table_row472_t)CALL( self,COLOR_parser_tables___Parser___action_table_row472))( self) /*Parser::action_table_row472*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable472) /*Array::add*/;
+    variable473 = ((parser_tables___Parser___action_table_row473_t)CALL( self,COLOR_parser_tables___Parser___action_table_row473))( self) /*Parser::action_table_row473*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable473) /*Array::add*/;
+    variable474 = ((parser_tables___Parser___action_table_row474_t)CALL( self,COLOR_parser_tables___Parser___action_table_row474))( self) /*Parser::action_table_row474*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable474) /*Array::add*/;
+    variable475 = ((parser_tables___Parser___action_table_row475_t)CALL( self,COLOR_parser_tables___Parser___action_table_row475))( self) /*Parser::action_table_row475*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable475) /*Array::add*/;
+    variable476 = ((parser_tables___Parser___action_table_row476_t)CALL( self,COLOR_parser_tables___Parser___action_table_row476))( self) /*Parser::action_table_row476*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable476) /*Array::add*/;
+    variable477 = ((parser_tables___Parser___action_table_row477_t)CALL( self,COLOR_parser_tables___Parser___action_table_row477))( self) /*Parser::action_table_row477*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable477) /*Array::add*/;
+    variable478 = ((parser_tables___Parser___action_table_row478_t)CALL( self,COLOR_parser_tables___Parser___action_table_row478))( self) /*Parser::action_table_row478*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable478) /*Array::add*/;
+    variable479 = ((parser_tables___Parser___action_table_row479_t)CALL( self,COLOR_parser_tables___Parser___action_table_row479))( self) /*Parser::action_table_row479*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable479) /*Array::add*/;
+    variable480 = ((parser_tables___Parser___action_table_row480_t)CALL( self,COLOR_parser_tables___Parser___action_table_row480))( self) /*Parser::action_table_row480*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable480) /*Array::add*/;
+    variable481 = ((parser_tables___Parser___action_table_row481_t)CALL( self,COLOR_parser_tables___Parser___action_table_row481))( self) /*Parser::action_table_row481*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable481) /*Array::add*/;
+    variable482 = ((parser_tables___Parser___action_table_row482_t)CALL( self,COLOR_parser_tables___Parser___action_table_row482))( self) /*Parser::action_table_row482*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable482) /*Array::add*/;
+    variable483 = ((parser_tables___Parser___action_table_row483_t)CALL( self,COLOR_parser_tables___Parser___action_table_row483))( self) /*Parser::action_table_row483*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable483) /*Array::add*/;
+    variable484 = ((parser_tables___Parser___action_table_row484_t)CALL( self,COLOR_parser_tables___Parser___action_table_row484))( self) /*Parser::action_table_row484*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable484) /*Array::add*/;
+    variable485 = ((parser_tables___Parser___action_table_row485_t)CALL( self,COLOR_parser_tables___Parser___action_table_row485))( self) /*Parser::action_table_row485*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable485) /*Array::add*/;
+    variable486 = ((parser_tables___Parser___action_table_row486_t)CALL( self,COLOR_parser_tables___Parser___action_table_row486))( self) /*Parser::action_table_row486*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable486) /*Array::add*/;
+    variable487 = ((parser_tables___Parser___action_table_row487_t)CALL( self,COLOR_parser_tables___Parser___action_table_row487))( self) /*Parser::action_table_row487*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable487) /*Array::add*/;
+    variable488 = ((parser_tables___Parser___action_table_row488_t)CALL( self,COLOR_parser_tables___Parser___action_table_row488))( self) /*Parser::action_table_row488*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable488) /*Array::add*/;
+    variable489 = ((parser_tables___Parser___action_table_row489_t)CALL( self,COLOR_parser_tables___Parser___action_table_row489))( self) /*Parser::action_table_row489*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable489) /*Array::add*/;
+    variable490 = ((parser_tables___Parser___action_table_row490_t)CALL( self,COLOR_parser_tables___Parser___action_table_row490))( self) /*Parser::action_table_row490*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable490) /*Array::add*/;
+    variable491 = ((parser_tables___Parser___action_table_row491_t)CALL( self,COLOR_parser_tables___Parser___action_table_row491))( self) /*Parser::action_table_row491*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable491) /*Array::add*/;
+    variable492 = ((parser_tables___Parser___action_table_row492_t)CALL( self,COLOR_parser_tables___Parser___action_table_row492))( self) /*Parser::action_table_row492*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable492) /*Array::add*/;
+    variable493 = ((parser_tables___Parser___action_table_row493_t)CALL( self,COLOR_parser_tables___Parser___action_table_row493))( self) /*Parser::action_table_row493*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable493) /*Array::add*/;
+    variable494 = ((parser_tables___Parser___action_table_row494_t)CALL( self,COLOR_parser_tables___Parser___action_table_row494))( self) /*Parser::action_table_row494*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable494) /*Array::add*/;
+    variable495 = ((parser_tables___Parser___action_table_row495_t)CALL( self,COLOR_parser_tables___Parser___action_table_row495))( self) /*Parser::action_table_row495*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable495) /*Array::add*/;
+    variable496 = ((parser_tables___Parser___action_table_row496_t)CALL( self,COLOR_parser_tables___Parser___action_table_row496))( self) /*Parser::action_table_row496*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable496) /*Array::add*/;
+    variable497 = ((parser_tables___Parser___action_table_row497_t)CALL( self,COLOR_parser_tables___Parser___action_table_row497))( self) /*Parser::action_table_row497*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable497) /*Array::add*/;
+    variable498 = ((parser_tables___Parser___action_table_row498_t)CALL( self,COLOR_parser_tables___Parser___action_table_row498))( self) /*Parser::action_table_row498*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable498) /*Array::add*/;
+    variable499 = ((parser_tables___Parser___action_table_row499_t)CALL( self,COLOR_parser_tables___Parser___action_table_row499))( self) /*Parser::action_table_row499*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable499) /*Array::add*/;
+    variable500 = ((parser_tables___Parser___action_table_row500_t)CALL( self,COLOR_parser_tables___Parser___action_table_row500))( self) /*Parser::action_table_row500*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable500) /*Array::add*/;
+    variable501 = ((parser_tables___Parser___action_table_row501_t)CALL( self,COLOR_parser_tables___Parser___action_table_row501))( self) /*Parser::action_table_row501*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable501) /*Array::add*/;
+    variable502 = ((parser_tables___Parser___action_table_row502_t)CALL( self,COLOR_parser_tables___Parser___action_table_row502))( self) /*Parser::action_table_row502*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable502) /*Array::add*/;
+    variable503 = ((parser_tables___Parser___action_table_row503_t)CALL( self,COLOR_parser_tables___Parser___action_table_row503))( self) /*Parser::action_table_row503*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable503) /*Array::add*/;
+    variable504 = ((parser_tables___Parser___action_table_row504_t)CALL( self,COLOR_parser_tables___Parser___action_table_row504))( self) /*Parser::action_table_row504*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable504) /*Array::add*/;
+    variable505 = ((parser_tables___Parser___action_table_row505_t)CALL( self,COLOR_parser_tables___Parser___action_table_row505))( self) /*Parser::action_table_row505*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable505) /*Array::add*/;
+    variable506 = ((parser_tables___Parser___action_table_row506_t)CALL( self,COLOR_parser_tables___Parser___action_table_row506))( self) /*Parser::action_table_row506*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable506) /*Array::add*/;
+    variable507 = ((parser_tables___Parser___action_table_row507_t)CALL( self,COLOR_parser_tables___Parser___action_table_row507))( self) /*Parser::action_table_row507*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable507) /*Array::add*/;
+    variable508 = ((parser_tables___Parser___action_table_row508_t)CALL( self,COLOR_parser_tables___Parser___action_table_row508))( self) /*Parser::action_table_row508*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable508) /*Array::add*/;
+    variable509 = ((parser_tables___Parser___action_table_row509_t)CALL( self,COLOR_parser_tables___Parser___action_table_row509))( self) /*Parser::action_table_row509*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable509) /*Array::add*/;
+    variable510 = ((parser_tables___Parser___action_table_row510_t)CALL( self,COLOR_parser_tables___Parser___action_table_row510))( self) /*Parser::action_table_row510*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable510) /*Array::add*/;
+    variable511 = ((parser_tables___Parser___action_table_row511_t)CALL( self,COLOR_parser_tables___Parser___action_table_row511))( self) /*Parser::action_table_row511*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable511) /*Array::add*/;
+    variable512 = ((parser_tables___Parser___action_table_row512_t)CALL( self,COLOR_parser_tables___Parser___action_table_row512))( self) /*Parser::action_table_row512*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable512) /*Array::add*/;
+    variable513 = ((parser_tables___Parser___action_table_row513_t)CALL( self,COLOR_parser_tables___Parser___action_table_row513))( self) /*Parser::action_table_row513*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable513) /*Array::add*/;
+    variable514 = ((parser_tables___Parser___action_table_row514_t)CALL( self,COLOR_parser_tables___Parser___action_table_row514))( self) /*Parser::action_table_row514*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable514) /*Array::add*/;
+    variable515 = ((parser_tables___Parser___action_table_row515_t)CALL( self,COLOR_parser_tables___Parser___action_table_row515))( self) /*Parser::action_table_row515*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable515) /*Array::add*/;
+    variable516 = ((parser_tables___Parser___action_table_row516_t)CALL( self,COLOR_parser_tables___Parser___action_table_row516))( self) /*Parser::action_table_row516*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable516) /*Array::add*/;
+    variable517 = ((parser_tables___Parser___action_table_row517_t)CALL( self,COLOR_parser_tables___Parser___action_table_row517))( self) /*Parser::action_table_row517*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable517) /*Array::add*/;
+    variable518 = ((parser_tables___Parser___action_table_row518_t)CALL( self,COLOR_parser_tables___Parser___action_table_row518))( self) /*Parser::action_table_row518*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable518) /*Array::add*/;
+    variable519 = ((parser_tables___Parser___action_table_row519_t)CALL( self,COLOR_parser_tables___Parser___action_table_row519))( self) /*Parser::action_table_row519*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable519) /*Array::add*/;
+    variable520 = ((parser_tables___Parser___action_table_row520_t)CALL( self,COLOR_parser_tables___Parser___action_table_row520))( self) /*Parser::action_table_row520*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable520) /*Array::add*/;
+    variable521 = ((parser_tables___Parser___action_table_row521_t)CALL( self,COLOR_parser_tables___Parser___action_table_row521))( self) /*Parser::action_table_row521*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable521) /*Array::add*/;
+    variable522 = ((parser_tables___Parser___action_table_row522_t)CALL( self,COLOR_parser_tables___Parser___action_table_row522))( self) /*Parser::action_table_row522*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable522) /*Array::add*/;
+    variable523 = ((parser_tables___Parser___action_table_row523_t)CALL( self,COLOR_parser_tables___Parser___action_table_row523))( self) /*Parser::action_table_row523*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable523) /*Array::add*/;
+    variable524 = ((parser_tables___Parser___action_table_row524_t)CALL( self,COLOR_parser_tables___Parser___action_table_row524))( self) /*Parser::action_table_row524*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable524) /*Array::add*/;
+    variable525 = ((parser_tables___Parser___action_table_row525_t)CALL( self,COLOR_parser_tables___Parser___action_table_row525))( self) /*Parser::action_table_row525*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable525) /*Array::add*/;
+    variable526 = ((parser_tables___Parser___action_table_row526_t)CALL( self,COLOR_parser_tables___Parser___action_table_row526))( self) /*Parser::action_table_row526*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable526) /*Array::add*/;
+    variable527 = ((parser_tables___Parser___action_table_row527_t)CALL( self,COLOR_parser_tables___Parser___action_table_row527))( self) /*Parser::action_table_row527*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable527) /*Array::add*/;
+    variable528 = ((parser_tables___Parser___action_table_row528_t)CALL( self,COLOR_parser_tables___Parser___action_table_row528))( self) /*Parser::action_table_row528*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable528) /*Array::add*/;
+    variable529 = ((parser_tables___Parser___action_table_row529_t)CALL( self,COLOR_parser_tables___Parser___action_table_row529))( self) /*Parser::action_table_row529*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable529) /*Array::add*/;
+    variable530 = ((parser_tables___Parser___action_table_row530_t)CALL( self,COLOR_parser_tables___Parser___action_table_row530))( self) /*Parser::action_table_row530*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable530) /*Array::add*/;
+    variable531 = ((parser_tables___Parser___action_table_row531_t)CALL( self,COLOR_parser_tables___Parser___action_table_row531))( self) /*Parser::action_table_row531*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable531) /*Array::add*/;
+    variable532 = ((parser_tables___Parser___action_table_row532_t)CALL( self,COLOR_parser_tables___Parser___action_table_row532))( self) /*Parser::action_table_row532*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable532) /*Array::add*/;
+    variable533 = ((parser_tables___Parser___action_table_row533_t)CALL( self,COLOR_parser_tables___Parser___action_table_row533))( self) /*Parser::action_table_row533*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable533) /*Array::add*/;
+    variable534 = ((parser_tables___Parser___action_table_row534_t)CALL( self,COLOR_parser_tables___Parser___action_table_row534))( self) /*Parser::action_table_row534*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable534) /*Array::add*/;
+    variable535 = ((parser_tables___Parser___action_table_row535_t)CALL( self,COLOR_parser_tables___Parser___action_table_row535))( self) /*Parser::action_table_row535*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable535) /*Array::add*/;
+    variable536 = ((parser_tables___Parser___action_table_row536_t)CALL( self,COLOR_parser_tables___Parser___action_table_row536))( self) /*Parser::action_table_row536*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable536) /*Array::add*/;
+    variable537 = ((parser_tables___Parser___action_table_row537_t)CALL( self,COLOR_parser_tables___Parser___action_table_row537))( self) /*Parser::action_table_row537*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable537) /*Array::add*/;
+    variable538 = ((parser_tables___Parser___action_table_row538_t)CALL( self,COLOR_parser_tables___Parser___action_table_row538))( self) /*Parser::action_table_row538*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable538) /*Array::add*/;
+    variable539 = ((parser_tables___Parser___action_table_row539_t)CALL( self,COLOR_parser_tables___Parser___action_table_row539))( self) /*Parser::action_table_row539*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable539) /*Array::add*/;
+    variable540 = ((parser_tables___Parser___action_table_row540_t)CALL( self,COLOR_parser_tables___Parser___action_table_row540))( self) /*Parser::action_table_row540*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable540) /*Array::add*/;
+    variable541 = ((parser_tables___Parser___action_table_row541_t)CALL( self,COLOR_parser_tables___Parser___action_table_row541))( self) /*Parser::action_table_row541*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable541) /*Array::add*/;
+    variable542 = ((parser_tables___Parser___action_table_row542_t)CALL( self,COLOR_parser_tables___Parser___action_table_row542))( self) /*Parser::action_table_row542*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable542) /*Array::add*/;
+    variable543 = ((parser_tables___Parser___action_table_row543_t)CALL( self,COLOR_parser_tables___Parser___action_table_row543))( self) /*Parser::action_table_row543*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable543) /*Array::add*/;
+    variable544 = ((parser_tables___Parser___action_table_row544_t)CALL( self,COLOR_parser_tables___Parser___action_table_row544))( self) /*Parser::action_table_row544*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable544) /*Array::add*/;
+    variable545 = ((parser_tables___Parser___action_table_row545_t)CALL( self,COLOR_parser_tables___Parser___action_table_row545))( self) /*Parser::action_table_row545*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable545) /*Array::add*/;
+    variable546 = ((parser_tables___Parser___action_table_row546_t)CALL( self,COLOR_parser_tables___Parser___action_table_row546))( self) /*Parser::action_table_row546*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable546) /*Array::add*/;
+    variable547 = ((parser_tables___Parser___action_table_row547_t)CALL( self,COLOR_parser_tables___Parser___action_table_row547))( self) /*Parser::action_table_row547*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable547) /*Array::add*/;
+    variable548 = ((parser_tables___Parser___action_table_row548_t)CALL( self,COLOR_parser_tables___Parser___action_table_row548))( self) /*Parser::action_table_row548*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable548) /*Array::add*/;
+    variable549 = ((parser_tables___Parser___action_table_row549_t)CALL( self,COLOR_parser_tables___Parser___action_table_row549))( self) /*Parser::action_table_row549*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable549) /*Array::add*/;
+    variable550 = ((parser_tables___Parser___action_table_row550_t)CALL( self,COLOR_parser_tables___Parser___action_table_row550))( self) /*Parser::action_table_row550*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable550) /*Array::add*/;
+    variable551 = ((parser_tables___Parser___action_table_row551_t)CALL( self,COLOR_parser_tables___Parser___action_table_row551))( self) /*Parser::action_table_row551*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable551) /*Array::add*/;
+    variable552 = ((parser_tables___Parser___action_table_row552_t)CALL( self,COLOR_parser_tables___Parser___action_table_row552))( self) /*Parser::action_table_row552*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable552) /*Array::add*/;
+    variable553 = ((parser_tables___Parser___action_table_row553_t)CALL( self,COLOR_parser_tables___Parser___action_table_row553))( self) /*Parser::action_table_row553*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable553) /*Array::add*/;
+    variable554 = ((parser_tables___Parser___action_table_row554_t)CALL( self,COLOR_parser_tables___Parser___action_table_row554))( self) /*Parser::action_table_row554*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable554) /*Array::add*/;
+    variable555 = ((parser_tables___Parser___action_table_row555_t)CALL( self,COLOR_parser_tables___Parser___action_table_row555))( self) /*Parser::action_table_row555*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable555) /*Array::add*/;
+    variable556 = ((parser_tables___Parser___action_table_row556_t)CALL( self,COLOR_parser_tables___Parser___action_table_row556))( self) /*Parser::action_table_row556*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable556) /*Array::add*/;
+    variable557 = ((parser_tables___Parser___action_table_row557_t)CALL( self,COLOR_parser_tables___Parser___action_table_row557))( self) /*Parser::action_table_row557*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable557) /*Array::add*/;
+    variable558 = ((parser_tables___Parser___action_table_row558_t)CALL( self,COLOR_parser_tables___Parser___action_table_row558))( self) /*Parser::action_table_row558*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable558) /*Array::add*/;
+    variable559 = ((parser_tables___Parser___action_table_row559_t)CALL( self,COLOR_parser_tables___Parser___action_table_row559))( self) /*Parser::action_table_row559*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable559) /*Array::add*/;
+    variable560 = ((parser_tables___Parser___action_table_row560_t)CALL( self,COLOR_parser_tables___Parser___action_table_row560))( self) /*Parser::action_table_row560*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable560) /*Array::add*/;
+    variable561 = ((parser_tables___Parser___action_table_row561_t)CALL( self,COLOR_parser_tables___Parser___action_table_row561))( self) /*Parser::action_table_row561*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable561) /*Array::add*/;
+    variable562 = ((parser_tables___Parser___action_table_row562_t)CALL( self,COLOR_parser_tables___Parser___action_table_row562))( self) /*Parser::action_table_row562*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable562) /*Array::add*/;
+    variable563 = ((parser_tables___Parser___action_table_row563_t)CALL( self,COLOR_parser_tables___Parser___action_table_row563))( self) /*Parser::action_table_row563*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable563) /*Array::add*/;
+    variable564 = ((parser_tables___Parser___action_table_row564_t)CALL( self,COLOR_parser_tables___Parser___action_table_row564))( self) /*Parser::action_table_row564*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable564) /*Array::add*/;
+    variable565 = ((parser_tables___Parser___action_table_row565_t)CALL( self,COLOR_parser_tables___Parser___action_table_row565))( self) /*Parser::action_table_row565*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable565) /*Array::add*/;
+    variable566 = ((parser_tables___Parser___action_table_row566_t)CALL( self,COLOR_parser_tables___Parser___action_table_row566))( self) /*Parser::action_table_row566*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable566) /*Array::add*/;
+    variable567 = ((parser_tables___Parser___action_table_row567_t)CALL( self,COLOR_parser_tables___Parser___action_table_row567))( self) /*Parser::action_table_row567*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable567) /*Array::add*/;
+    variable568 = ((parser_tables___Parser___action_table_row568_t)CALL( self,COLOR_parser_tables___Parser___action_table_row568))( self) /*Parser::action_table_row568*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable568) /*Array::add*/;
+    variable569 = ((parser_tables___Parser___action_table_row569_t)CALL( self,COLOR_parser_tables___Parser___action_table_row569))( self) /*Parser::action_table_row569*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable569) /*Array::add*/;
+    variable570 = ((parser_tables___Parser___action_table_row570_t)CALL( self,COLOR_parser_tables___Parser___action_table_row570))( self) /*Parser::action_table_row570*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable570) /*Array::add*/;
+    variable571 = ((parser_tables___Parser___action_table_row571_t)CALL( self,COLOR_parser_tables___Parser___action_table_row571))( self) /*Parser::action_table_row571*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable571) /*Array::add*/;
+    variable572 = ((parser_tables___Parser___action_table_row572_t)CALL( self,COLOR_parser_tables___Parser___action_table_row572))( self) /*Parser::action_table_row572*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable572) /*Array::add*/;
+    variable573 = ((parser_tables___Parser___action_table_row573_t)CALL( self,COLOR_parser_tables___Parser___action_table_row573))( self) /*Parser::action_table_row573*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable573) /*Array::add*/;
+    variable574 = ((parser_tables___Parser___action_table_row574_t)CALL( self,COLOR_parser_tables___Parser___action_table_row574))( self) /*Parser::action_table_row574*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable574) /*Array::add*/;
+    variable575 = ((parser_tables___Parser___action_table_row575_t)CALL( self,COLOR_parser_tables___Parser___action_table_row575))( self) /*Parser::action_table_row575*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable575) /*Array::add*/;
+    variable576 = ((parser_tables___Parser___action_table_row576_t)CALL( self,COLOR_parser_tables___Parser___action_table_row576))( self) /*Parser::action_table_row576*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable576) /*Array::add*/;
+    variable577 = ((parser_tables___Parser___action_table_row577_t)CALL( self,COLOR_parser_tables___Parser___action_table_row577))( self) /*Parser::action_table_row577*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable577) /*Array::add*/;
+    variable578 = ((parser_tables___Parser___action_table_row578_t)CALL( self,COLOR_parser_tables___Parser___action_table_row578))( self) /*Parser::action_table_row578*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable578) /*Array::add*/;
+    variable579 = ((parser_tables___Parser___action_table_row579_t)CALL( self,COLOR_parser_tables___Parser___action_table_row579))( self) /*Parser::action_table_row579*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable579) /*Array::add*/;
+    variable580 = ((parser_tables___Parser___action_table_row580_t)CALL( self,COLOR_parser_tables___Parser___action_table_row580))( self) /*Parser::action_table_row580*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable580) /*Array::add*/;
+    variable581 = ((parser_tables___Parser___action_table_row581_t)CALL( self,COLOR_parser_tables___Parser___action_table_row581))( self) /*Parser::action_table_row581*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable581) /*Array::add*/;
+    variable582 = ((parser_tables___Parser___action_table_row582_t)CALL( self,COLOR_parser_tables___Parser___action_table_row582))( self) /*Parser::action_table_row582*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable582) /*Array::add*/;
+    variable583 = ((parser_tables___Parser___action_table_row583_t)CALL( self,COLOR_parser_tables___Parser___action_table_row583))( self) /*Parser::action_table_row583*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable583) /*Array::add*/;
+    variable584 = ((parser_tables___Parser___action_table_row584_t)CALL( self,COLOR_parser_tables___Parser___action_table_row584))( self) /*Parser::action_table_row584*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable584) /*Array::add*/;
+    variable585 = ((parser_tables___Parser___action_table_row585_t)CALL( self,COLOR_parser_tables___Parser___action_table_row585))( self) /*Parser::action_table_row585*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable585) /*Array::add*/;
+    variable586 = ((parser_tables___Parser___action_table_row586_t)CALL( self,COLOR_parser_tables___Parser___action_table_row586))( self) /*Parser::action_table_row586*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable586) /*Array::add*/;
+    variable587 = ((parser_tables___Parser___action_table_row587_t)CALL( self,COLOR_parser_tables___Parser___action_table_row587))( self) /*Parser::action_table_row587*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable587) /*Array::add*/;
+    variable588 = ((parser_tables___Parser___action_table_row588_t)CALL( self,COLOR_parser_tables___Parser___action_table_row588))( self) /*Parser::action_table_row588*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable588) /*Array::add*/;
+    variable589 = ((parser_tables___Parser___action_table_row589_t)CALL( self,COLOR_parser_tables___Parser___action_table_row589))( self) /*Parser::action_table_row589*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable589) /*Array::add*/;
+    variable590 = ((parser_tables___Parser___action_table_row590_t)CALL( self,COLOR_parser_tables___Parser___action_table_row590))( self) /*Parser::action_table_row590*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable590) /*Array::add*/;
+    variable591 = ((parser_tables___Parser___action_table_row591_t)CALL( self,COLOR_parser_tables___Parser___action_table_row591))( self) /*Parser::action_table_row591*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable591) /*Array::add*/;
+    variable592 = ((parser_tables___Parser___action_table_row592_t)CALL( self,COLOR_parser_tables___Parser___action_table_row592))( self) /*Parser::action_table_row592*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable592) /*Array::add*/;
+    variable593 = ((parser_tables___Parser___action_table_row593_t)CALL( self,COLOR_parser_tables___Parser___action_table_row593))( self) /*Parser::action_table_row593*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable593) /*Array::add*/;
+    variable594 = ((parser_tables___Parser___action_table_row594_t)CALL( self,COLOR_parser_tables___Parser___action_table_row594))( self) /*Parser::action_table_row594*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable594) /*Array::add*/;
+    variable595 = ((parser_tables___Parser___action_table_row595_t)CALL( self,COLOR_parser_tables___Parser___action_table_row595))( self) /*Parser::action_table_row595*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable595) /*Array::add*/;
+    variable596 = ((parser_tables___Parser___action_table_row596_t)CALL( self,COLOR_parser_tables___Parser___action_table_row596))( self) /*Parser::action_table_row596*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable596) /*Array::add*/;
+    variable597 = ((parser_tables___Parser___action_table_row597_t)CALL( self,COLOR_parser_tables___Parser___action_table_row597))( self) /*Parser::action_table_row597*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable597) /*Array::add*/;
+    variable598 = ((parser_tables___Parser___action_table_row598_t)CALL( self,COLOR_parser_tables___Parser___action_table_row598))( self) /*Parser::action_table_row598*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable598) /*Array::add*/;
+    variable599 = ((parser_tables___Parser___action_table_row599_t)CALL( self,COLOR_parser_tables___Parser___action_table_row599))( self) /*Parser::action_table_row599*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable599) /*Array::add*/;
+    variable600 = ((parser_tables___Parser___action_table_row600_t)CALL( self,COLOR_parser_tables___Parser___action_table_row600))( self) /*Parser::action_table_row600*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable600) /*Array::add*/;
+    variable601 = ((parser_tables___Parser___action_table_row601_t)CALL( self,COLOR_parser_tables___Parser___action_table_row601))( self) /*Parser::action_table_row601*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable601) /*Array::add*/;
+    variable602 = ((parser_tables___Parser___action_table_row602_t)CALL( self,COLOR_parser_tables___Parser___action_table_row602))( self) /*Parser::action_table_row602*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable602) /*Array::add*/;
+    variable603 = ((parser_tables___Parser___action_table_row603_t)CALL( self,COLOR_parser_tables___Parser___action_table_row603))( self) /*Parser::action_table_row603*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable603) /*Array::add*/;
+    variable604 = ((parser_tables___Parser___action_table_row604_t)CALL( self,COLOR_parser_tables___Parser___action_table_row604))( self) /*Parser::action_table_row604*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable604) /*Array::add*/;
+    variable605 = ((parser_tables___Parser___action_table_row605_t)CALL( self,COLOR_parser_tables___Parser___action_table_row605))( self) /*Parser::action_table_row605*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable605) /*Array::add*/;
+    variable606 = ((parser_tables___Parser___action_table_row606_t)CALL( self,COLOR_parser_tables___Parser___action_table_row606))( self) /*Parser::action_table_row606*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable606) /*Array::add*/;
+    variable607 = ((parser_tables___Parser___action_table_row607_t)CALL( self,COLOR_parser_tables___Parser___action_table_row607))( self) /*Parser::action_table_row607*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable607) /*Array::add*/;
+    variable608 = ((parser_tables___Parser___action_table_row608_t)CALL( self,COLOR_parser_tables___Parser___action_table_row608))( self) /*Parser::action_table_row608*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable608) /*Array::add*/;
+    variable609 = ((parser_tables___Parser___action_table_row609_t)CALL( self,COLOR_parser_tables___Parser___action_table_row609))( self) /*Parser::action_table_row609*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable609) /*Array::add*/;
+    variable610 = ((parser_tables___Parser___action_table_row610_t)CALL( self,COLOR_parser_tables___Parser___action_table_row610))( self) /*Parser::action_table_row610*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable610) /*Array::add*/;
+    variable611 = ((parser_tables___Parser___action_table_row611_t)CALL( self,COLOR_parser_tables___Parser___action_table_row611))( self) /*Parser::action_table_row611*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable611) /*Array::add*/;
+    variable612 = ((parser_tables___Parser___action_table_row612_t)CALL( self,COLOR_parser_tables___Parser___action_table_row612))( self) /*Parser::action_table_row612*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable612) /*Array::add*/;
+    variable613 = ((parser_tables___Parser___action_table_row613_t)CALL( self,COLOR_parser_tables___Parser___action_table_row613))( self) /*Parser::action_table_row613*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable613) /*Array::add*/;
+    variable614 = ((parser_tables___Parser___action_table_row614_t)CALL( self,COLOR_parser_tables___Parser___action_table_row614))( self) /*Parser::action_table_row614*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable614) /*Array::add*/;
+    variable615 = ((parser_tables___Parser___action_table_row615_t)CALL( self,COLOR_parser_tables___Parser___action_table_row615))( self) /*Parser::action_table_row615*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable615) /*Array::add*/;
+    variable616 = ((parser_tables___Parser___action_table_row616_t)CALL( self,COLOR_parser_tables___Parser___action_table_row616))( self) /*Parser::action_table_row616*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable616) /*Array::add*/;
+    variable617 = ((parser_tables___Parser___action_table_row617_t)CALL( self,COLOR_parser_tables___Parser___action_table_row617))( self) /*Parser::action_table_row617*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable617) /*Array::add*/;
+    variable618 = ((parser_tables___Parser___action_table_row618_t)CALL( self,COLOR_parser_tables___Parser___action_table_row618))( self) /*Parser::action_table_row618*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable618) /*Array::add*/;
+    variable619 = ((parser_tables___Parser___action_table_row619_t)CALL( self,COLOR_parser_tables___Parser___action_table_row619))( self) /*Parser::action_table_row619*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable619) /*Array::add*/;
+    variable620 = ((parser_tables___Parser___action_table_row620_t)CALL( self,COLOR_parser_tables___Parser___action_table_row620))( self) /*Parser::action_table_row620*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable620) /*Array::add*/;
+    variable621 = ((parser_tables___Parser___action_table_row621_t)CALL( self,COLOR_parser_tables___Parser___action_table_row621))( self) /*Parser::action_table_row621*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable621) /*Array::add*/;
+    variable622 = ((parser_tables___Parser___action_table_row622_t)CALL( self,COLOR_parser_tables___Parser___action_table_row622))( self) /*Parser::action_table_row622*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable622) /*Array::add*/;
+    variable623 = ((parser_tables___Parser___action_table_row623_t)CALL( self,COLOR_parser_tables___Parser___action_table_row623))( self) /*Parser::action_table_row623*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable623) /*Array::add*/;
+    variable624 = ((parser_tables___Parser___action_table_row624_t)CALL( self,COLOR_parser_tables___Parser___action_table_row624))( self) /*Parser::action_table_row624*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable624) /*Array::add*/;
+    variable625 = ((parser_tables___Parser___action_table_row625_t)CALL( self,COLOR_parser_tables___Parser___action_table_row625))( self) /*Parser::action_table_row625*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable625) /*Array::add*/;
+    variable626 = ((parser_tables___Parser___action_table_row626_t)CALL( self,COLOR_parser_tables___Parser___action_table_row626))( self) /*Parser::action_table_row626*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable626) /*Array::add*/;
+    variable627 = ((parser_tables___Parser___action_table_row627_t)CALL( self,COLOR_parser_tables___Parser___action_table_row627))( self) /*Parser::action_table_row627*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable627) /*Array::add*/;
+    variable628 = ((parser_tables___Parser___action_table_row628_t)CALL( self,COLOR_parser_tables___Parser___action_table_row628))( self) /*Parser::action_table_row628*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable628) /*Array::add*/;
+    variable629 = ((parser_tables___Parser___action_table_row629_t)CALL( self,COLOR_parser_tables___Parser___action_table_row629))( self) /*Parser::action_table_row629*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable629) /*Array::add*/;
+    variable630 = ((parser_tables___Parser___action_table_row630_t)CALL( self,COLOR_parser_tables___Parser___action_table_row630))( self) /*Parser::action_table_row630*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable630) /*Array::add*/;
+    variable631 = ((parser_tables___Parser___action_table_row631_t)CALL( self,COLOR_parser_tables___Parser___action_table_row631))( self) /*Parser::action_table_row631*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable631) /*Array::add*/;
+    variable632 = ((parser_tables___Parser___action_table_row632_t)CALL( self,COLOR_parser_tables___Parser___action_table_row632))( self) /*Parser::action_table_row632*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable632) /*Array::add*/;
+    variable633 = ((parser_tables___Parser___action_table_row633_t)CALL( self,COLOR_parser_tables___Parser___action_table_row633))( self) /*Parser::action_table_row633*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable633) /*Array::add*/;
+    variable634 = ((parser_tables___Parser___action_table_row634_t)CALL( self,COLOR_parser_tables___Parser___action_table_row634))( self) /*Parser::action_table_row634*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable634) /*Array::add*/;
+    variable635 = ((parser_tables___Parser___action_table_row635_t)CALL( self,COLOR_parser_tables___Parser___action_table_row635))( self) /*Parser::action_table_row635*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable635) /*Array::add*/;
+    variable636 = ((parser_tables___Parser___action_table_row636_t)CALL( self,COLOR_parser_tables___Parser___action_table_row636))( self) /*Parser::action_table_row636*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable636) /*Array::add*/;
+    variable637 = ((parser_tables___Parser___action_table_row637_t)CALL( self,COLOR_parser_tables___Parser___action_table_row637))( self) /*Parser::action_table_row637*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable637) /*Array::add*/;
+    variable638 = ((parser_tables___Parser___action_table_row638_t)CALL( self,COLOR_parser_tables___Parser___action_table_row638))( self) /*Parser::action_table_row638*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable638) /*Array::add*/;
+    variable639 = ((parser_tables___Parser___action_table_row639_t)CALL( self,COLOR_parser_tables___Parser___action_table_row639))( self) /*Parser::action_table_row639*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable639) /*Array::add*/;
+    variable640 = ((parser_tables___Parser___action_table_row640_t)CALL( self,COLOR_parser_tables___Parser___action_table_row640))( self) /*Parser::action_table_row640*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable640) /*Array::add*/;
+    variable641 = ((parser_tables___Parser___action_table_row641_t)CALL( self,COLOR_parser_tables___Parser___action_table_row641))( self) /*Parser::action_table_row641*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable641) /*Array::add*/;
+    variable642 = ((parser_tables___Parser___action_table_row642_t)CALL( self,COLOR_parser_tables___Parser___action_table_row642))( self) /*Parser::action_table_row642*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable642) /*Array::add*/;
+    variable643 = ((parser_tables___Parser___action_table_row643_t)CALL( self,COLOR_parser_tables___Parser___action_table_row643))( self) /*Parser::action_table_row643*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable643) /*Array::add*/;
+    variable644 = ((parser_tables___Parser___action_table_row644_t)CALL( self,COLOR_parser_tables___Parser___action_table_row644))( self) /*Parser::action_table_row644*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable644) /*Array::add*/;
+    variable645 = ((parser_tables___Parser___action_table_row645_t)CALL( self,COLOR_parser_tables___Parser___action_table_row645))( self) /*Parser::action_table_row645*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable645) /*Array::add*/;
+    variable646 = ((parser_tables___Parser___action_table_row646_t)CALL( self,COLOR_parser_tables___Parser___action_table_row646))( self) /*Parser::action_table_row646*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable646) /*Array::add*/;
+    variable647 = ((parser_tables___Parser___action_table_row647_t)CALL( self,COLOR_parser_tables___Parser___action_table_row647))( self) /*Parser::action_table_row647*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable647) /*Array::add*/;
+    variable648 = ((parser_tables___Parser___action_table_row648_t)CALL( self,COLOR_parser_tables___Parser___action_table_row648))( self) /*Parser::action_table_row648*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable648) /*Array::add*/;
+    variable649 = ((parser_tables___Parser___action_table_row649_t)CALL( self,COLOR_parser_tables___Parser___action_table_row649))( self) /*Parser::action_table_row649*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable649) /*Array::add*/;
+    variable650 = ((parser_tables___Parser___action_table_row650_t)CALL( self,COLOR_parser_tables___Parser___action_table_row650))( self) /*Parser::action_table_row650*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable650) /*Array::add*/;
+    variable651 = ((parser_tables___Parser___action_table_row651_t)CALL( self,COLOR_parser_tables___Parser___action_table_row651))( self) /*Parser::action_table_row651*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable651) /*Array::add*/;
+    variable652 = ((parser_tables___Parser___action_table_row652_t)CALL( self,COLOR_parser_tables___Parser___action_table_row652))( self) /*Parser::action_table_row652*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable652) /*Array::add*/;
+    variable653 = ((parser_tables___Parser___action_table_row653_t)CALL( self,COLOR_parser_tables___Parser___action_table_row653))( self) /*Parser::action_table_row653*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable653) /*Array::add*/;
+    variable654 = ((parser_tables___Parser___action_table_row654_t)CALL( self,COLOR_parser_tables___Parser___action_table_row654))( self) /*Parser::action_table_row654*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable654) /*Array::add*/;
+    variable655 = ((parser_tables___Parser___action_table_row655_t)CALL( self,COLOR_parser_tables___Parser___action_table_row655))( self) /*Parser::action_table_row655*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable655) /*Array::add*/;
+    variable656 = ((parser_tables___Parser___action_table_row656_t)CALL( self,COLOR_parser_tables___Parser___action_table_row656))( self) /*Parser::action_table_row656*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable656) /*Array::add*/;
+    variable657 = ((parser_tables___Parser___action_table_row657_t)CALL( self,COLOR_parser_tables___Parser___action_table_row657))( self) /*Parser::action_table_row657*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable657) /*Array::add*/;
+    variable658 = ((parser_tables___Parser___action_table_row658_t)CALL( self,COLOR_parser_tables___Parser___action_table_row658))( self) /*Parser::action_table_row658*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable658) /*Array::add*/;
+    variable659 = ((parser_tables___Parser___action_table_row659_t)CALL( self,COLOR_parser_tables___Parser___action_table_row659))( self) /*Parser::action_table_row659*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable659) /*Array::add*/;
+    variable660 = ((parser_tables___Parser___action_table_row660_t)CALL( self,COLOR_parser_tables___Parser___action_table_row660))( self) /*Parser::action_table_row660*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable660) /*Array::add*/;
+    variable661 = ((parser_tables___Parser___action_table_row661_t)CALL( self,COLOR_parser_tables___Parser___action_table_row661))( self) /*Parser::action_table_row661*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable661) /*Array::add*/;
+    variable662 = ((parser_tables___Parser___action_table_row662_t)CALL( self,COLOR_parser_tables___Parser___action_table_row662))( self) /*Parser::action_table_row662*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable662) /*Array::add*/;
+    variable663 = ((parser_tables___Parser___action_table_row663_t)CALL( self,COLOR_parser_tables___Parser___action_table_row663))( self) /*Parser::action_table_row663*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable663) /*Array::add*/;
+    variable664 = ((parser_tables___Parser___action_table_row664_t)CALL( self,COLOR_parser_tables___Parser___action_table_row664))( self) /*Parser::action_table_row664*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable664) /*Array::add*/;
+    variable665 = ((parser_tables___Parser___action_table_row665_t)CALL( self,COLOR_parser_tables___Parser___action_table_row665))( self) /*Parser::action_table_row665*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable665) /*Array::add*/;
+    variable666 = ((parser_tables___Parser___action_table_row666_t)CALL( self,COLOR_parser_tables___Parser___action_table_row666))( self) /*Parser::action_table_row666*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable666) /*Array::add*/;
+    variable667 = ((parser_tables___Parser___action_table_row667_t)CALL( self,COLOR_parser_tables___Parser___action_table_row667))( self) /*Parser::action_table_row667*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable667) /*Array::add*/;
+    variable668 = ((parser_tables___Parser___action_table_row668_t)CALL( self,COLOR_parser_tables___Parser___action_table_row668))( self) /*Parser::action_table_row668*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable668) /*Array::add*/;
+    variable669 = ((parser_tables___Parser___action_table_row669_t)CALL( self,COLOR_parser_tables___Parser___action_table_row669))( self) /*Parser::action_table_row669*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable669) /*Array::add*/;
+    variable670 = ((parser_tables___Parser___action_table_row670_t)CALL( self,COLOR_parser_tables___Parser___action_table_row670))( self) /*Parser::action_table_row670*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable670) /*Array::add*/;
+    variable671 = ((parser_tables___Parser___action_table_row671_t)CALL( self,COLOR_parser_tables___Parser___action_table_row671))( self) /*Parser::action_table_row671*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable671) /*Array::add*/;
+    variable672 = ((parser_tables___Parser___action_table_row672_t)CALL( self,COLOR_parser_tables___Parser___action_table_row672))( self) /*Parser::action_table_row672*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable672) /*Array::add*/;
+    variable673 = ((parser_tables___Parser___action_table_row673_t)CALL( self,COLOR_parser_tables___Parser___action_table_row673))( self) /*Parser::action_table_row673*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable673) /*Array::add*/;
+    variable674 = ((parser_tables___Parser___action_table_row674_t)CALL( self,COLOR_parser_tables___Parser___action_table_row674))( self) /*Parser::action_table_row674*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable674) /*Array::add*/;
+    variable675 = ((parser_tables___Parser___action_table_row675_t)CALL( self,COLOR_parser_tables___Parser___action_table_row675))( self) /*Parser::action_table_row675*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable675) /*Array::add*/;
+    variable676 = ((parser_tables___Parser___action_table_row676_t)CALL( self,COLOR_parser_tables___Parser___action_table_row676))( self) /*Parser::action_table_row676*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable676) /*Array::add*/;
+    variable677 = ((parser_tables___Parser___action_table_row677_t)CALL( self,COLOR_parser_tables___Parser___action_table_row677))( self) /*Parser::action_table_row677*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable677) /*Array::add*/;
+    variable678 = ((parser_tables___Parser___action_table_row678_t)CALL( self,COLOR_parser_tables___Parser___action_table_row678))( self) /*Parser::action_table_row678*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable678) /*Array::add*/;
+    variable679 = ((parser_tables___Parser___action_table_row679_t)CALL( self,COLOR_parser_tables___Parser___action_table_row679))( self) /*Parser::action_table_row679*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable679) /*Array::add*/;
+    variable680 = ((parser_tables___Parser___action_table_row680_t)CALL( self,COLOR_parser_tables___Parser___action_table_row680))( self) /*Parser::action_table_row680*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable680) /*Array::add*/;
+    variable681 = ((parser_tables___Parser___action_table_row681_t)CALL( self,COLOR_parser_tables___Parser___action_table_row681))( self) /*Parser::action_table_row681*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable681) /*Array::add*/;
+    variable682 = ((parser_tables___Parser___action_table_row682_t)CALL( self,COLOR_parser_tables___Parser___action_table_row682))( self) /*Parser::action_table_row682*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable682) /*Array::add*/;
+    variable683 = ((parser_tables___Parser___action_table_row683_t)CALL( self,COLOR_parser_tables___Parser___action_table_row683))( self) /*Parser::action_table_row683*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable683) /*Array::add*/;
+    variable684 = ((parser_tables___Parser___action_table_row684_t)CALL( self,COLOR_parser_tables___Parser___action_table_row684))( self) /*Parser::action_table_row684*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable684) /*Array::add*/;
+    variable685 = ((parser_tables___Parser___action_table_row685_t)CALL( self,COLOR_parser_tables___Parser___action_table_row685))( self) /*Parser::action_table_row685*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable685) /*Array::add*/;
+    variable686 = ((parser_tables___Parser___action_table_row686_t)CALL( self,COLOR_parser_tables___Parser___action_table_row686))( self) /*Parser::action_table_row686*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable686) /*Array::add*/;
+    variable687 = ((parser_tables___Parser___action_table_row687_t)CALL( self,COLOR_parser_tables___Parser___action_table_row687))( self) /*Parser::action_table_row687*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable687) /*Array::add*/;
+    variable688 = ((parser_tables___Parser___action_table_row688_t)CALL( self,COLOR_parser_tables___Parser___action_table_row688))( self) /*Parser::action_table_row688*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable688) /*Array::add*/;
+    variable689 = ((parser_tables___Parser___action_table_row689_t)CALL( self,COLOR_parser_tables___Parser___action_table_row689))( self) /*Parser::action_table_row689*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable689) /*Array::add*/;
+    variable690 = ((parser_tables___Parser___action_table_row690_t)CALL( self,COLOR_parser_tables___Parser___action_table_row690))( self) /*Parser::action_table_row690*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable690) /*Array::add*/;
+    variable691 = ((parser_tables___Parser___action_table_row691_t)CALL( self,COLOR_parser_tables___Parser___action_table_row691))( self) /*Parser::action_table_row691*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable691) /*Array::add*/;
+    variable692 = ((parser_tables___Parser___action_table_row692_t)CALL( self,COLOR_parser_tables___Parser___action_table_row692))( self) /*Parser::action_table_row692*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable692) /*Array::add*/;
+    variable693 = ((parser_tables___Parser___action_table_row693_t)CALL( self,COLOR_parser_tables___Parser___action_table_row693))( self) /*Parser::action_table_row693*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable693) /*Array::add*/;
+    variable694 = ((parser_tables___Parser___action_table_row694_t)CALL( self,COLOR_parser_tables___Parser___action_table_row694))( self) /*Parser::action_table_row694*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable694) /*Array::add*/;
+    variable695 = ((parser_tables___Parser___action_table_row695_t)CALL( self,COLOR_parser_tables___Parser___action_table_row695))( self) /*Parser::action_table_row695*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable695) /*Array::add*/;
+    variable696 = ((parser_tables___Parser___action_table_row696_t)CALL( self,COLOR_parser_tables___Parser___action_table_row696))( self) /*Parser::action_table_row696*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable696) /*Array::add*/;
+    variable697 = ((parser_tables___Parser___action_table_row697_t)CALL( self,COLOR_parser_tables___Parser___action_table_row697))( self) /*Parser::action_table_row697*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable697) /*Array::add*/;
+    variable698 = ((parser_tables___Parser___action_table_row698_t)CALL( self,COLOR_parser_tables___Parser___action_table_row698))( self) /*Parser::action_table_row698*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable698) /*Array::add*/;
+    variable699 = ((parser_tables___Parser___action_table_row699_t)CALL( self,COLOR_parser_tables___Parser___action_table_row699))( self) /*Parser::action_table_row699*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable699) /*Array::add*/;
+    variable700 = ((parser_tables___Parser___action_table_row700_t)CALL( self,COLOR_parser_tables___Parser___action_table_row700))( self) /*Parser::action_table_row700*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable700) /*Array::add*/;
+    variable701 = ((parser_tables___Parser___action_table_row701_t)CALL( self,COLOR_parser_tables___Parser___action_table_row701))( self) /*Parser::action_table_row701*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable701) /*Array::add*/;
+    variable702 = ((parser_tables___Parser___action_table_row702_t)CALL( self,COLOR_parser_tables___Parser___action_table_row702))( self) /*Parser::action_table_row702*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable702) /*Array::add*/;
+    variable703 = ((parser_tables___Parser___action_table_row703_t)CALL( self,COLOR_parser_tables___Parser___action_table_row703))( self) /*Parser::action_table_row703*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable703) /*Array::add*/;
+    variable704 = ((parser_tables___Parser___action_table_row704_t)CALL( self,COLOR_parser_tables___Parser___action_table_row704))( self) /*Parser::action_table_row704*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable704) /*Array::add*/;
+    variable705 = ((parser_tables___Parser___action_table_row705_t)CALL( self,COLOR_parser_tables___Parser___action_table_row705))( self) /*Parser::action_table_row705*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable705) /*Array::add*/;
+    variable706 = ((parser_tables___Parser___action_table_row706_t)CALL( self,COLOR_parser_tables___Parser___action_table_row706))( self) /*Parser::action_table_row706*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable706) /*Array::add*/;
+    variable707 = ((parser_tables___Parser___action_table_row707_t)CALL( self,COLOR_parser_tables___Parser___action_table_row707))( self) /*Parser::action_table_row707*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable707) /*Array::add*/;
+    variable708 = ((parser_tables___Parser___action_table_row708_t)CALL( self,COLOR_parser_tables___Parser___action_table_row708))( self) /*Parser::action_table_row708*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable708) /*Array::add*/;
+    variable709 = ((parser_tables___Parser___action_table_row709_t)CALL( self,COLOR_parser_tables___Parser___action_table_row709))( self) /*Parser::action_table_row709*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable709) /*Array::add*/;
+    variable710 = ((parser_tables___Parser___action_table_row710_t)CALL( self,COLOR_parser_tables___Parser___action_table_row710))( self) /*Parser::action_table_row710*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable710) /*Array::add*/;
+    variable711 = ((parser_tables___Parser___action_table_row711_t)CALL( self,COLOR_parser_tables___Parser___action_table_row711))( self) /*Parser::action_table_row711*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable711) /*Array::add*/;
+    variable712 = ((parser_tables___Parser___action_table_row712_t)CALL( self,COLOR_parser_tables___Parser___action_table_row712))( self) /*Parser::action_table_row712*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable712) /*Array::add*/;
+    variable713 = ((parser_tables___Parser___action_table_row713_t)CALL( self,COLOR_parser_tables___Parser___action_table_row713))( self) /*Parser::action_table_row713*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable713) /*Array::add*/;
+    variable714 = ((parser_tables___Parser___action_table_row714_t)CALL( self,COLOR_parser_tables___Parser___action_table_row714))( self) /*Parser::action_table_row714*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable714) /*Array::add*/;
+    variable715 = ((parser_tables___Parser___action_table_row715_t)CALL( self,COLOR_parser_tables___Parser___action_table_row715))( self) /*Parser::action_table_row715*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable715) /*Array::add*/;
+    variable716 = ((parser_tables___Parser___action_table_row716_t)CALL( self,COLOR_parser_tables___Parser___action_table_row716))( self) /*Parser::action_table_row716*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable716) /*Array::add*/;
+    variable717 = ((parser_tables___Parser___action_table_row717_t)CALL( self,COLOR_parser_tables___Parser___action_table_row717))( self) /*Parser::action_table_row717*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable717) /*Array::add*/;
+    variable718 = ((parser_tables___Parser___action_table_row718_t)CALL( self,COLOR_parser_tables___Parser___action_table_row718))( self) /*Parser::action_table_row718*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable718) /*Array::add*/;
+    variable719 = ((parser_tables___Parser___action_table_row719_t)CALL( self,COLOR_parser_tables___Parser___action_table_row719))( self) /*Parser::action_table_row719*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable719) /*Array::add*/;
+    variable720 = ((parser_tables___Parser___action_table_row720_t)CALL( self,COLOR_parser_tables___Parser___action_table_row720))( self) /*Parser::action_table_row720*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable720) /*Array::add*/;
+    variable721 = ((parser_tables___Parser___action_table_row721_t)CALL( self,COLOR_parser_tables___Parser___action_table_row721))( self) /*Parser::action_table_row721*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable721) /*Array::add*/;
+    variable722 = ((parser_tables___Parser___action_table_row722_t)CALL( self,COLOR_parser_tables___Parser___action_table_row722))( self) /*Parser::action_table_row722*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable722) /*Array::add*/;
+    variable723 = ((parser_tables___Parser___action_table_row723_t)CALL( self,COLOR_parser_tables___Parser___action_table_row723))( self) /*Parser::action_table_row723*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable723) /*Array::add*/;
+    variable724 = ((parser_tables___Parser___action_table_row724_t)CALL( self,COLOR_parser_tables___Parser___action_table_row724))( self) /*Parser::action_table_row724*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable724) /*Array::add*/;
+    variable725 = ((parser_tables___Parser___action_table_row725_t)CALL( self,COLOR_parser_tables___Parser___action_table_row725))( self) /*Parser::action_table_row725*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable725) /*Array::add*/;
+    variable726 = ((parser_tables___Parser___action_table_row726_t)CALL( self,COLOR_parser_tables___Parser___action_table_row726))( self) /*Parser::action_table_row726*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable726) /*Array::add*/;
+    variable727 = ((parser_tables___Parser___action_table_row727_t)CALL( self,COLOR_parser_tables___Parser___action_table_row727))( self) /*Parser::action_table_row727*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable727) /*Array::add*/;
+    variable728 = ((parser_tables___Parser___action_table_row728_t)CALL( self,COLOR_parser_tables___Parser___action_table_row728))( self) /*Parser::action_table_row728*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable728) /*Array::add*/;
+    variable729 = ((parser_tables___Parser___action_table_row729_t)CALL( self,COLOR_parser_tables___Parser___action_table_row729))( self) /*Parser::action_table_row729*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable729) /*Array::add*/;
+    variable730 = ((parser_tables___Parser___action_table_row730_t)CALL( self,COLOR_parser_tables___Parser___action_table_row730))( self) /*Parser::action_table_row730*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable730) /*Array::add*/;
+    variable731 = ((parser_tables___Parser___action_table_row731_t)CALL( self,COLOR_parser_tables___Parser___action_table_row731))( self) /*Parser::action_table_row731*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable731) /*Array::add*/;
+    variable732 = ((parser_tables___Parser___action_table_row732_t)CALL( self,COLOR_parser_tables___Parser___action_table_row732))( self) /*Parser::action_table_row732*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable732) /*Array::add*/;
+    variable733 = ((parser_tables___Parser___action_table_row733_t)CALL( self,COLOR_parser_tables___Parser___action_table_row733))( self) /*Parser::action_table_row733*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable733) /*Array::add*/;
+    variable734 = ((parser_tables___Parser___action_table_row734_t)CALL( self,COLOR_parser_tables___Parser___action_table_row734))( self) /*Parser::action_table_row734*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable734) /*Array::add*/;
+    variable735 = ((parser_tables___Parser___action_table_row735_t)CALL( self,COLOR_parser_tables___Parser___action_table_row735))( self) /*Parser::action_table_row735*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable735) /*Array::add*/;
+    variable736 = ((parser_tables___Parser___action_table_row736_t)CALL( self,COLOR_parser_tables___Parser___action_table_row736))( self) /*Parser::action_table_row736*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable736) /*Array::add*/;
+    variable737 = ((parser_tables___Parser___action_table_row737_t)CALL( self,COLOR_parser_tables___Parser___action_table_row737))( self) /*Parser::action_table_row737*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable737) /*Array::add*/;
+    variable738 = ((parser_tables___Parser___action_table_row738_t)CALL( self,COLOR_parser_tables___Parser___action_table_row738))( self) /*Parser::action_table_row738*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable738) /*Array::add*/;
+    variable739 = ((parser_tables___Parser___action_table_row739_t)CALL( self,COLOR_parser_tables___Parser___action_table_row739))( self) /*Parser::action_table_row739*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable739) /*Array::add*/;
+    variable740 = ((parser_tables___Parser___action_table_row740_t)CALL( self,COLOR_parser_tables___Parser___action_table_row740))( self) /*Parser::action_table_row740*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable740) /*Array::add*/;
+    variable741 = ((parser_tables___Parser___action_table_row741_t)CALL( self,COLOR_parser_tables___Parser___action_table_row741))( self) /*Parser::action_table_row741*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable741) /*Array::add*/;
+    variable742 = ((parser_tables___Parser___action_table_row742_t)CALL( self,COLOR_parser_tables___Parser___action_table_row742))( self) /*Parser::action_table_row742*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable742) /*Array::add*/;
+    variable743 = ((parser_tables___Parser___action_table_row743_t)CALL( self,COLOR_parser_tables___Parser___action_table_row743))( self) /*Parser::action_table_row743*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable743) /*Array::add*/;
+    variable744 = ((parser_tables___Parser___action_table_row744_t)CALL( self,COLOR_parser_tables___Parser___action_table_row744))( self) /*Parser::action_table_row744*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable744) /*Array::add*/;
+    variable745 = ((parser_tables___Parser___action_table_row745_t)CALL( self,COLOR_parser_tables___Parser___action_table_row745))( self) /*Parser::action_table_row745*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable745) /*Array::add*/;
+    variable746 = ((parser_tables___Parser___action_table_row746_t)CALL( self,COLOR_parser_tables___Parser___action_table_row746))( self) /*Parser::action_table_row746*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable746) /*Array::add*/;
+    variable747 = ((parser_tables___Parser___action_table_row747_t)CALL( self,COLOR_parser_tables___Parser___action_table_row747))( self) /*Parser::action_table_row747*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable747) /*Array::add*/;
+    variable748 = ((parser_tables___Parser___action_table_row748_t)CALL( self,COLOR_parser_tables___Parser___action_table_row748))( self) /*Parser::action_table_row748*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable748) /*Array::add*/;
+    variable749 = ((parser_tables___Parser___action_table_row749_t)CALL( self,COLOR_parser_tables___Parser___action_table_row749))( self) /*Parser::action_table_row749*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable749) /*Array::add*/;
+    variable750 = ((parser_tables___Parser___action_table_row750_t)CALL( self,COLOR_parser_tables___Parser___action_table_row750))( self) /*Parser::action_table_row750*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable750) /*Array::add*/;
+    variable751 = ((parser_tables___Parser___action_table_row751_t)CALL( self,COLOR_parser_tables___Parser___action_table_row751))( self) /*Parser::action_table_row751*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable751) /*Array::add*/;
+    variable752 = ((parser_tables___Parser___action_table_row752_t)CALL( self,COLOR_parser_tables___Parser___action_table_row752))( self) /*Parser::action_table_row752*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable752) /*Array::add*/;
+    variable753 = ((parser_tables___Parser___action_table_row753_t)CALL( self,COLOR_parser_tables___Parser___action_table_row753))( self) /*Parser::action_table_row753*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable753) /*Array::add*/;
+    variable754 = ((parser_tables___Parser___action_table_row754_t)CALL( self,COLOR_parser_tables___Parser___action_table_row754))( self) /*Parser::action_table_row754*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable754) /*Array::add*/;
+    variable755 = ((parser_tables___Parser___action_table_row755_t)CALL( self,COLOR_parser_tables___Parser___action_table_row755))( self) /*Parser::action_table_row755*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable755) /*Array::add*/;
+    variable756 = ((parser_tables___Parser___action_table_row756_t)CALL( self,COLOR_parser_tables___Parser___action_table_row756))( self) /*Parser::action_table_row756*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable756) /*Array::add*/;
+    variable757 = ((parser_tables___Parser___action_table_row757_t)CALL( self,COLOR_parser_tables___Parser___action_table_row757))( self) /*Parser::action_table_row757*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable757) /*Array::add*/;
+    variable758 = ((parser_tables___Parser___action_table_row758_t)CALL( self,COLOR_parser_tables___Parser___action_table_row758))( self) /*Parser::action_table_row758*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable758) /*Array::add*/;
+    variable759 = ((parser_tables___Parser___action_table_row759_t)CALL( self,COLOR_parser_tables___Parser___action_table_row759))( self) /*Parser::action_table_row759*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable759) /*Array::add*/;
+    variable760 = ((parser_tables___Parser___action_table_row760_t)CALL( self,COLOR_parser_tables___Parser___action_table_row760))( self) /*Parser::action_table_row760*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable760) /*Array::add*/;
+    variable761 = ((parser_tables___Parser___action_table_row761_t)CALL( self,COLOR_parser_tables___Parser___action_table_row761))( self) /*Parser::action_table_row761*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable761) /*Array::add*/;
+    variable762 = ((parser_tables___Parser___action_table_row762_t)CALL( self,COLOR_parser_tables___Parser___action_table_row762))( self) /*Parser::action_table_row762*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable762) /*Array::add*/;
+    variable763 = ((parser_tables___Parser___action_table_row763_t)CALL( self,COLOR_parser_tables___Parser___action_table_row763))( self) /*Parser::action_table_row763*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable763) /*Array::add*/;
+    variable764 = ((parser_tables___Parser___action_table_row764_t)CALL( self,COLOR_parser_tables___Parser___action_table_row764))( self) /*Parser::action_table_row764*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable764) /*Array::add*/;
+    variable765 = ((parser_tables___Parser___action_table_row765_t)CALL( self,COLOR_parser_tables___Parser___action_table_row765))( self) /*Parser::action_table_row765*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable765) /*Array::add*/;
+    variable766 = ((parser_tables___Parser___action_table_row766_t)CALL( self,COLOR_parser_tables___Parser___action_table_row766))( self) /*Parser::action_table_row766*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable766) /*Array::add*/;
+    variable767 = ((parser_tables___Parser___action_table_row767_t)CALL( self,COLOR_parser_tables___Parser___action_table_row767))( self) /*Parser::action_table_row767*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable767) /*Array::add*/;
+    variable768 = ((parser_tables___Parser___action_table_row768_t)CALL( self,COLOR_parser_tables___Parser___action_table_row768))( self) /*Parser::action_table_row768*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable768) /*Array::add*/;
+    variable769 = ((parser_tables___Parser___action_table_row769_t)CALL( self,COLOR_parser_tables___Parser___action_table_row769))( self) /*Parser::action_table_row769*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable769) /*Array::add*/;
+    variable770 = ((parser_tables___Parser___action_table_row770_t)CALL( self,COLOR_parser_tables___Parser___action_table_row770))( self) /*Parser::action_table_row770*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable770) /*Array::add*/;
+    variable771 = ((parser_tables___Parser___action_table_row771_t)CALL( self,COLOR_parser_tables___Parser___action_table_row771))( self) /*Parser::action_table_row771*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable771) /*Array::add*/;
+    variable772 = ((parser_tables___Parser___action_table_row772_t)CALL( self,COLOR_parser_tables___Parser___action_table_row772))( self) /*Parser::action_table_row772*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable772) /*Array::add*/;
+    variable773 = ((parser_tables___Parser___action_table_row773_t)CALL( self,COLOR_parser_tables___Parser___action_table_row773))( self) /*Parser::action_table_row773*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable773) /*Array::add*/;
+    variable774 = ((parser_tables___Parser___action_table_row774_t)CALL( self,COLOR_parser_tables___Parser___action_table_row774))( self) /*Parser::action_table_row774*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable774) /*Array::add*/;
+    variable775 = ((parser_tables___Parser___action_table_row775_t)CALL( self,COLOR_parser_tables___Parser___action_table_row775))( self) /*Parser::action_table_row775*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable775) /*Array::add*/;
+    variable776 = ((parser_tables___Parser___action_table_row776_t)CALL( self,COLOR_parser_tables___Parser___action_table_row776))( self) /*Parser::action_table_row776*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable776) /*Array::add*/;
+    variable777 = ((parser_tables___Parser___action_table_row777_t)CALL( self,COLOR_parser_tables___Parser___action_table_row777))( self) /*Parser::action_table_row777*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable777) /*Array::add*/;
+    variable778 = ((parser_tables___Parser___action_table_row778_t)CALL( self,COLOR_parser_tables___Parser___action_table_row778))( self) /*Parser::action_table_row778*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable778) /*Array::add*/;
+    variable779 = ((parser_tables___Parser___action_table_row779_t)CALL( self,COLOR_parser_tables___Parser___action_table_row779))( self) /*Parser::action_table_row779*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable779) /*Array::add*/;
+    variable780 = ((parser_tables___Parser___action_table_row780_t)CALL( self,COLOR_parser_tables___Parser___action_table_row780))( self) /*Parser::action_table_row780*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable780) /*Array::add*/;
+    variable781 = ((parser_tables___Parser___action_table_row781_t)CALL( self,COLOR_parser_tables___Parser___action_table_row781))( self) /*Parser::action_table_row781*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable781) /*Array::add*/;
+    variable782 = ((parser_tables___Parser___action_table_row782_t)CALL( self,COLOR_parser_tables___Parser___action_table_row782))( self) /*Parser::action_table_row782*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable782) /*Array::add*/;
+    variable783 = ((parser_tables___Parser___action_table_row783_t)CALL( self,COLOR_parser_tables___Parser___action_table_row783))( self) /*Parser::action_table_row783*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable783) /*Array::add*/;
+    variable784 = ((parser_tables___Parser___action_table_row784_t)CALL( self,COLOR_parser_tables___Parser___action_table_row784))( self) /*Parser::action_table_row784*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable784) /*Array::add*/;
+    variable785 = ((parser_tables___Parser___action_table_row785_t)CALL( self,COLOR_parser_tables___Parser___action_table_row785))( self) /*Parser::action_table_row785*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable785) /*Array::add*/;
+    variable786 = ((parser_tables___Parser___action_table_row786_t)CALL( self,COLOR_parser_tables___Parser___action_table_row786))( self) /*Parser::action_table_row786*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable786) /*Array::add*/;
+    variable787 = ((parser_tables___Parser___action_table_row787_t)CALL( self,COLOR_parser_tables___Parser___action_table_row787))( self) /*Parser::action_table_row787*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable787) /*Array::add*/;
+    variable788 = ((parser_tables___Parser___action_table_row788_t)CALL( self,COLOR_parser_tables___Parser___action_table_row788))( self) /*Parser::action_table_row788*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable788) /*Array::add*/;
+    variable789 = ((parser_tables___Parser___action_table_row789_t)CALL( self,COLOR_parser_tables___Parser___action_table_row789))( self) /*Parser::action_table_row789*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable789) /*Array::add*/;
+    variable790 = ((parser_tables___Parser___action_table_row790_t)CALL( self,COLOR_parser_tables___Parser___action_table_row790))( self) /*Parser::action_table_row790*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable790) /*Array::add*/;
+    variable791 = ((parser_tables___Parser___action_table_row791_t)CALL( self,COLOR_parser_tables___Parser___action_table_row791))( self) /*Parser::action_table_row791*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable791) /*Array::add*/;
+    variable792 = ((parser_tables___Parser___action_table_row792_t)CALL( self,COLOR_parser_tables___Parser___action_table_row792))( self) /*Parser::action_table_row792*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable792) /*Array::add*/;
+    variable793 = ((parser_tables___Parser___action_table_row793_t)CALL( self,COLOR_parser_tables___Parser___action_table_row793))( self) /*Parser::action_table_row793*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable793) /*Array::add*/;
+    variable794 = ((parser_tables___Parser___action_table_row794_t)CALL( self,COLOR_parser_tables___Parser___action_table_row794))( self) /*Parser::action_table_row794*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable794) /*Array::add*/;
+    variable795 = ((parser_tables___Parser___action_table_row795_t)CALL( self,COLOR_parser_tables___Parser___action_table_row795))( self) /*Parser::action_table_row795*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable795) /*Array::add*/;
+    variable796 = ((parser_tables___Parser___action_table_row796_t)CALL( self,COLOR_parser_tables___Parser___action_table_row796))( self) /*Parser::action_table_row796*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable796) /*Array::add*/;
+    variable797 = ((parser_tables___Parser___action_table_row797_t)CALL( self,COLOR_parser_tables___Parser___action_table_row797))( self) /*Parser::action_table_row797*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable797) /*Array::add*/;
+    variable798 = ((parser_tables___Parser___action_table_row798_t)CALL( self,COLOR_parser_tables___Parser___action_table_row798))( self) /*Parser::action_table_row798*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable798) /*Array::add*/;
+    variable799 = ((parser_tables___Parser___action_table_row799_t)CALL( self,COLOR_parser_tables___Parser___action_table_row799))( self) /*Parser::action_table_row799*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable799) /*Array::add*/;
+    variable800 = ((parser_tables___Parser___action_table_row800_t)CALL( self,COLOR_parser_tables___Parser___action_table_row800))( self) /*Parser::action_table_row800*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable800) /*Array::add*/;
+    variable801 = ((parser_tables___Parser___action_table_row801_t)CALL( self,COLOR_parser_tables___Parser___action_table_row801))( self) /*Parser::action_table_row801*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable801) /*Array::add*/;
+    variable802 = ((parser_tables___Parser___action_table_row802_t)CALL( self,COLOR_parser_tables___Parser___action_table_row802))( self) /*Parser::action_table_row802*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable802) /*Array::add*/;
+    variable803 = ((parser_tables___Parser___action_table_row803_t)CALL( self,COLOR_parser_tables___Parser___action_table_row803))( self) /*Parser::action_table_row803*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable803) /*Array::add*/;
+    variable804 = ((parser_tables___Parser___action_table_row804_t)CALL( self,COLOR_parser_tables___Parser___action_table_row804))( self) /*Parser::action_table_row804*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable804) /*Array::add*/;
+    variable805 = ((parser_tables___Parser___action_table_row805_t)CALL( self,COLOR_parser_tables___Parser___action_table_row805))( self) /*Parser::action_table_row805*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable805) /*Array::add*/;
+    variable806 = ((parser_tables___Parser___action_table_row806_t)CALL( self,COLOR_parser_tables___Parser___action_table_row806))( self) /*Parser::action_table_row806*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable806) /*Array::add*/;
+    variable807 = ((parser_tables___Parser___action_table_row807_t)CALL( self,COLOR_parser_tables___Parser___action_table_row807))( self) /*Parser::action_table_row807*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable807) /*Array::add*/;
+    variable808 = ((parser_tables___Parser___action_table_row808_t)CALL( self,COLOR_parser_tables___Parser___action_table_row808))( self) /*Parser::action_table_row808*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable808) /*Array::add*/;
+    variable809 = ((parser_tables___Parser___action_table_row809_t)CALL( self,COLOR_parser_tables___Parser___action_table_row809))( self) /*Parser::action_table_row809*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable809) /*Array::add*/;
+    variable810 = ((parser_tables___Parser___action_table_row810_t)CALL( self,COLOR_parser_tables___Parser___action_table_row810))( self) /*Parser::action_table_row810*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable810) /*Array::add*/;
+    variable811 = ((parser_tables___Parser___action_table_row811_t)CALL( self,COLOR_parser_tables___Parser___action_table_row811))( self) /*Parser::action_table_row811*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable811) /*Array::add*/;
+    variable812 = ((parser_tables___Parser___action_table_row812_t)CALL( self,COLOR_parser_tables___Parser___action_table_row812))( self) /*Parser::action_table_row812*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable812) /*Array::add*/;
+    variable813 = ((parser_tables___Parser___action_table_row813_t)CALL( self,COLOR_parser_tables___Parser___action_table_row813))( self) /*Parser::action_table_row813*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable813) /*Array::add*/;
+    variable814 = ((parser_tables___Parser___action_table_row814_t)CALL( self,COLOR_parser_tables___Parser___action_table_row814))( self) /*Parser::action_table_row814*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable814) /*Array::add*/;
+    variable815 = ((parser_tables___Parser___action_table_row815_t)CALL( self,COLOR_parser_tables___Parser___action_table_row815))( self) /*Parser::action_table_row815*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable815) /*Array::add*/;
+    variable816 = ((parser_tables___Parser___action_table_row816_t)CALL( self,COLOR_parser_tables___Parser___action_table_row816))( self) /*Parser::action_table_row816*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable816) /*Array::add*/;
+    variable817 = ((parser_tables___Parser___action_table_row817_t)CALL( self,COLOR_parser_tables___Parser___action_table_row817))( self) /*Parser::action_table_row817*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable817) /*Array::add*/;
+    variable818 = ((parser_tables___Parser___action_table_row818_t)CALL( self,COLOR_parser_tables___Parser___action_table_row818))( self) /*Parser::action_table_row818*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable818) /*Array::add*/;
+    variable819 = ((parser_tables___Parser___action_table_row819_t)CALL( self,COLOR_parser_tables___Parser___action_table_row819))( self) /*Parser::action_table_row819*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable819) /*Array::add*/;
+    variable820 = ((parser_tables___Parser___action_table_row820_t)CALL( self,COLOR_parser_tables___Parser___action_table_row820))( self) /*Parser::action_table_row820*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable820) /*Array::add*/;
+    variable821 = ((parser_tables___Parser___action_table_row821_t)CALL( self,COLOR_parser_tables___Parser___action_table_row821))( self) /*Parser::action_table_row821*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable821) /*Array::add*/;
+    variable822 = ((parser_tables___Parser___action_table_row822_t)CALL( self,COLOR_parser_tables___Parser___action_table_row822))( self) /*Parser::action_table_row822*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable822) /*Array::add*/;
+    variable823 = ((parser_tables___Parser___action_table_row823_t)CALL( self,COLOR_parser_tables___Parser___action_table_row823))( self) /*Parser::action_table_row823*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable823) /*Array::add*/;
+    variable824 = ((parser_tables___Parser___action_table_row824_t)CALL( self,COLOR_parser_tables___Parser___action_table_row824))( self) /*Parser::action_table_row824*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable824) /*Array::add*/;
+    variable825 = ((parser_tables___Parser___action_table_row825_t)CALL( self,COLOR_parser_tables___Parser___action_table_row825))( self) /*Parser::action_table_row825*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable825) /*Array::add*/;
+    variable826 = ((parser_tables___Parser___action_table_row826_t)CALL( self,COLOR_parser_tables___Parser___action_table_row826))( self) /*Parser::action_table_row826*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable826) /*Array::add*/;
+    variable827 = ((parser_tables___Parser___action_table_row827_t)CALL( self,COLOR_parser_tables___Parser___action_table_row827))( self) /*Parser::action_table_row827*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable827) /*Array::add*/;
+    variable828 = ((parser_tables___Parser___action_table_row828_t)CALL( self,COLOR_parser_tables___Parser___action_table_row828))( self) /*Parser::action_table_row828*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable828) /*Array::add*/;
+    variable829 = ((parser_tables___Parser___action_table_row829_t)CALL( self,COLOR_parser_tables___Parser___action_table_row829))( self) /*Parser::action_table_row829*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable829) /*Array::add*/;
+    variable830 = ((parser_tables___Parser___action_table_row830_t)CALL( self,COLOR_parser_tables___Parser___action_table_row830))( self) /*Parser::action_table_row830*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable830) /*Array::add*/;
+    variable831 = ((parser_tables___Parser___action_table_row831_t)CALL( self,COLOR_parser_tables___Parser___action_table_row831))( self) /*Parser::action_table_row831*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable831) /*Array::add*/;
+    variable832 = ((parser_tables___Parser___action_table_row832_t)CALL( self,COLOR_parser_tables___Parser___action_table_row832))( self) /*Parser::action_table_row832*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable832) /*Array::add*/;
+    variable833 = ((parser_tables___Parser___action_table_row833_t)CALL( self,COLOR_parser_tables___Parser___action_table_row833))( self) /*Parser::action_table_row833*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable833) /*Array::add*/;
+    variable834 = ((parser_tables___Parser___action_table_row834_t)CALL( self,COLOR_parser_tables___Parser___action_table_row834))( self) /*Parser::action_table_row834*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable834) /*Array::add*/;
+    variable835 = ((parser_tables___Parser___action_table_row835_t)CALL( self,COLOR_parser_tables___Parser___action_table_row835))( self) /*Parser::action_table_row835*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable835) /*Array::add*/;
+    variable836 = ((parser_tables___Parser___action_table_row836_t)CALL( self,COLOR_parser_tables___Parser___action_table_row836))( self) /*Parser::action_table_row836*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable836) /*Array::add*/;
+    variable837 = ((parser_tables___Parser___action_table_row837_t)CALL( self,COLOR_parser_tables___Parser___action_table_row837))( self) /*Parser::action_table_row837*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable837) /*Array::add*/;
+    variable838 = ((parser_tables___Parser___action_table_row838_t)CALL( self,COLOR_parser_tables___Parser___action_table_row838))( self) /*Parser::action_table_row838*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable838) /*Array::add*/;
+    variable839 = ((parser_tables___Parser___action_table_row839_t)CALL( self,COLOR_parser_tables___Parser___action_table_row839))( self) /*Parser::action_table_row839*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable839) /*Array::add*/;
+    variable840 = ((parser_tables___Parser___action_table_row840_t)CALL( self,COLOR_parser_tables___Parser___action_table_row840))( self) /*Parser::action_table_row840*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable840) /*Array::add*/;
+    variable841 = ((parser_tables___Parser___action_table_row841_t)CALL( self,COLOR_parser_tables___Parser___action_table_row841))( self) /*Parser::action_table_row841*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable841) /*Array::add*/;
+    variable842 = ((parser_tables___Parser___action_table_row842_t)CALL( self,COLOR_parser_tables___Parser___action_table_row842))( self) /*Parser::action_table_row842*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable842) /*Array::add*/;
+    variable843 = ((parser_tables___Parser___action_table_row843_t)CALL( self,COLOR_parser_tables___Parser___action_table_row843))( self) /*Parser::action_table_row843*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable843) /*Array::add*/;
+    variable844 = ((parser_tables___Parser___action_table_row844_t)CALL( self,COLOR_parser_tables___Parser___action_table_row844))( self) /*Parser::action_table_row844*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable844) /*Array::add*/;
+    variable845 = ((parser_tables___Parser___action_table_row845_t)CALL( self,COLOR_parser_tables___Parser___action_table_row845))( self) /*Parser::action_table_row845*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable845) /*Array::add*/;
+    variable846 = ((parser_tables___Parser___action_table_row846_t)CALL( self,COLOR_parser_tables___Parser___action_table_row846))( self) /*Parser::action_table_row846*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable846) /*Array::add*/;
+    variable847 = ((parser_tables___Parser___action_table_row847_t)CALL( self,COLOR_parser_tables___Parser___action_table_row847))( self) /*Parser::action_table_row847*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable847) /*Array::add*/;
+    variable848 = ((parser_tables___Parser___action_table_row848_t)CALL( self,COLOR_parser_tables___Parser___action_table_row848))( self) /*Parser::action_table_row848*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable848) /*Array::add*/;
+    variable849 = ((parser_tables___Parser___action_table_row849_t)CALL( self,COLOR_parser_tables___Parser___action_table_row849))( self) /*Parser::action_table_row849*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable849) /*Array::add*/;
+    variable850 = ((parser_tables___Parser___action_table_row850_t)CALL( self,COLOR_parser_tables___Parser___action_table_row850))( self) /*Parser::action_table_row850*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable850) /*Array::add*/;
+    variable851 = ((parser_tables___Parser___action_table_row851_t)CALL( self,COLOR_parser_tables___Parser___action_table_row851))( self) /*Parser::action_table_row851*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable851) /*Array::add*/;
+    variable852 = ((parser_tables___Parser___action_table_row852_t)CALL( self,COLOR_parser_tables___Parser___action_table_row852))( self) /*Parser::action_table_row852*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable852) /*Array::add*/;
+    variable853 = ((parser_tables___Parser___action_table_row853_t)CALL( self,COLOR_parser_tables___Parser___action_table_row853))( self) /*Parser::action_table_row853*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable853) /*Array::add*/;
+    variable854 = ((parser_tables___Parser___action_table_row854_t)CALL( self,COLOR_parser_tables___Parser___action_table_row854))( self) /*Parser::action_table_row854*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable854) /*Array::add*/;
+    variable855 = ((parser_tables___Parser___action_table_row855_t)CALL( self,COLOR_parser_tables___Parser___action_table_row855))( self) /*Parser::action_table_row855*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable855) /*Array::add*/;
+    variable856 = ((parser_tables___Parser___action_table_row856_t)CALL( self,COLOR_parser_tables___Parser___action_table_row856))( self) /*Parser::action_table_row856*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable856) /*Array::add*/;
+    variable857 = ((parser_tables___Parser___action_table_row857_t)CALL( self,COLOR_parser_tables___Parser___action_table_row857))( self) /*Parser::action_table_row857*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable857) /*Array::add*/;
+    variable858 = ((parser_tables___Parser___action_table_row858_t)CALL( self,COLOR_parser_tables___Parser___action_table_row858))( self) /*Parser::action_table_row858*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable858) /*Array::add*/;
+    variable859 = ((parser_tables___Parser___action_table_row859_t)CALL( self,COLOR_parser_tables___Parser___action_table_row859))( self) /*Parser::action_table_row859*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable859) /*Array::add*/;
+    variable860 = ((parser_tables___Parser___action_table_row860_t)CALL( self,COLOR_parser_tables___Parser___action_table_row860))( self) /*Parser::action_table_row860*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable860) /*Array::add*/;
+    variable861 = ((parser_tables___Parser___action_table_row861_t)CALL( self,COLOR_parser_tables___Parser___action_table_row861))( self) /*Parser::action_table_row861*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable861) /*Array::add*/;
+    variable862 = ((parser_tables___Parser___action_table_row862_t)CALL( self,COLOR_parser_tables___Parser___action_table_row862))( self) /*Parser::action_table_row862*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable862) /*Array::add*/;
+    variable863 = ((parser_tables___Parser___action_table_row863_t)CALL( self,COLOR_parser_tables___Parser___action_table_row863))( self) /*Parser::action_table_row863*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable863) /*Array::add*/;
+    variable864 = ((parser_tables___Parser___action_table_row864_t)CALL( self,COLOR_parser_tables___Parser___action_table_row864))( self) /*Parser::action_table_row864*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable864) /*Array::add*/;
+    variable865 = ((parser_tables___Parser___action_table_row865_t)CALL( self,COLOR_parser_tables___Parser___action_table_row865))( self) /*Parser::action_table_row865*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable865) /*Array::add*/;
+    variable866 = ((parser_tables___Parser___action_table_row866_t)CALL( self,COLOR_parser_tables___Parser___action_table_row866))( self) /*Parser::action_table_row866*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable866) /*Array::add*/;
+    variable867 = ((parser_tables___Parser___action_table_row867_t)CALL( self,COLOR_parser_tables___Parser___action_table_row867))( self) /*Parser::action_table_row867*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable867) /*Array::add*/;
+    variable868 = ((parser_tables___Parser___action_table_row868_t)CALL( self,COLOR_parser_tables___Parser___action_table_row868))( self) /*Parser::action_table_row868*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable868) /*Array::add*/;
+    variable869 = ((parser_tables___Parser___action_table_row869_t)CALL( self,COLOR_parser_tables___Parser___action_table_row869))( self) /*Parser::action_table_row869*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable869) /*Array::add*/;
+    variable870 = ((parser_tables___Parser___action_table_row870_t)CALL( self,COLOR_parser_tables___Parser___action_table_row870))( self) /*Parser::action_table_row870*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable870) /*Array::add*/;
+    variable871 = ((parser_tables___Parser___action_table_row871_t)CALL( self,COLOR_parser_tables___Parser___action_table_row871))( self) /*Parser::action_table_row871*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable871) /*Array::add*/;
+    variable872 = ((parser_tables___Parser___action_table_row872_t)CALL( self,COLOR_parser_tables___Parser___action_table_row872))( self) /*Parser::action_table_row872*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable872) /*Array::add*/;
+    variable873 = ((parser_tables___Parser___action_table_row873_t)CALL( self,COLOR_parser_tables___Parser___action_table_row873))( self) /*Parser::action_table_row873*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable873) /*Array::add*/;
+    variable874 = ((parser_tables___Parser___action_table_row874_t)CALL( self,COLOR_parser_tables___Parser___action_table_row874))( self) /*Parser::action_table_row874*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable874) /*Array::add*/;
+    variable875 = ((parser_tables___Parser___action_table_row875_t)CALL( self,COLOR_parser_tables___Parser___action_table_row875))( self) /*Parser::action_table_row875*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable875) /*Array::add*/;
+    variable876 = ((parser_tables___Parser___action_table_row876_t)CALL( self,COLOR_parser_tables___Parser___action_table_row876))( self) /*Parser::action_table_row876*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable876) /*Array::add*/;
+    variable877 = ((parser_tables___Parser___action_table_row877_t)CALL( self,COLOR_parser_tables___Parser___action_table_row877))( self) /*Parser::action_table_row877*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable877) /*Array::add*/;
+    variable878 = ((parser_tables___Parser___action_table_row878_t)CALL( self,COLOR_parser_tables___Parser___action_table_row878))( self) /*Parser::action_table_row878*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable878) /*Array::add*/;
+    variable879 = ((parser_tables___Parser___action_table_row879_t)CALL( self,COLOR_parser_tables___Parser___action_table_row879))( self) /*Parser::action_table_row879*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable879) /*Array::add*/;
+    variable880 = ((parser_tables___Parser___action_table_row880_t)CALL( self,COLOR_parser_tables___Parser___action_table_row880))( self) /*Parser::action_table_row880*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable880) /*Array::add*/;
+    variable881 = ((parser_tables___Parser___action_table_row881_t)CALL( self,COLOR_parser_tables___Parser___action_table_row881))( self) /*Parser::action_table_row881*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable881) /*Array::add*/;
+    variable882 = ((parser_tables___Parser___action_table_row882_t)CALL( self,COLOR_parser_tables___Parser___action_table_row882))( self) /*Parser::action_table_row882*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable882) /*Array::add*/;
+    variable883 = ((parser_tables___Parser___action_table_row883_t)CALL( self,COLOR_parser_tables___Parser___action_table_row883))( self) /*Parser::action_table_row883*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable883) /*Array::add*/;
+    variable884 = ((parser_tables___Parser___action_table_row884_t)CALL( self,COLOR_parser_tables___Parser___action_table_row884))( self) /*Parser::action_table_row884*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable884) /*Array::add*/;
+    variable885 = ((parser_tables___Parser___action_table_row885_t)CALL( self,COLOR_parser_tables___Parser___action_table_row885))( self) /*Parser::action_table_row885*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable885) /*Array::add*/;
+    variable886 = ((parser_tables___Parser___action_table_row886_t)CALL( self,COLOR_parser_tables___Parser___action_table_row886))( self) /*Parser::action_table_row886*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable886) /*Array::add*/;
+    variable887 = ((parser_tables___Parser___action_table_row887_t)CALL( self,COLOR_parser_tables___Parser___action_table_row887))( self) /*Parser::action_table_row887*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable887) /*Array::add*/;
+    variable888 = ((parser_tables___Parser___action_table_row888_t)CALL( self,COLOR_parser_tables___Parser___action_table_row888))( self) /*Parser::action_table_row888*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable888) /*Array::add*/;
+    variable889 = ((parser_tables___Parser___action_table_row889_t)CALL( self,COLOR_parser_tables___Parser___action_table_row889))( self) /*Parser::action_table_row889*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable889) /*Array::add*/;
+    variable890 = ((parser_tables___Parser___action_table_row890_t)CALL( self,COLOR_parser_tables___Parser___action_table_row890))( self) /*Parser::action_table_row890*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable890) /*Array::add*/;
+    variable891 = ((parser_tables___Parser___action_table_row891_t)CALL( self,COLOR_parser_tables___Parser___action_table_row891))( self) /*Parser::action_table_row891*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable891) /*Array::add*/;
+    variable892 = ((parser_tables___Parser___action_table_row892_t)CALL( self,COLOR_parser_tables___Parser___action_table_row892))( self) /*Parser::action_table_row892*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable892) /*Array::add*/;
+    variable893 = ((parser_tables___Parser___action_table_row893_t)CALL( self,COLOR_parser_tables___Parser___action_table_row893))( self) /*Parser::action_table_row893*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable893) /*Array::add*/;
+    variable894 = ((parser_tables___Parser___action_table_row894_t)CALL( self,COLOR_parser_tables___Parser___action_table_row894))( self) /*Parser::action_table_row894*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable894) /*Array::add*/;
+    variable895 = ((parser_tables___Parser___action_table_row895_t)CALL( self,COLOR_parser_tables___Parser___action_table_row895))( self) /*Parser::action_table_row895*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable895) /*Array::add*/;
+    variable896 = ((parser_tables___Parser___action_table_row896_t)CALL( self,COLOR_parser_tables___Parser___action_table_row896))( self) /*Parser::action_table_row896*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable896) /*Array::add*/;
+    variable897 = ((parser_tables___Parser___action_table_row897_t)CALL( self,COLOR_parser_tables___Parser___action_table_row897))( self) /*Parser::action_table_row897*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable897) /*Array::add*/;
+    variable898 = ((parser_tables___Parser___action_table_row898_t)CALL( self,COLOR_parser_tables___Parser___action_table_row898))( self) /*Parser::action_table_row898*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable898) /*Array::add*/;
+    variable899 = ((parser_tables___Parser___action_table_row899_t)CALL( self,COLOR_parser_tables___Parser___action_table_row899))( self) /*Parser::action_table_row899*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable899) /*Array::add*/;
+    variable900 = ((parser_tables___Parser___action_table_row900_t)CALL( self,COLOR_parser_tables___Parser___action_table_row900))( self) /*Parser::action_table_row900*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable900) /*Array::add*/;
+    variable901 = ((parser_tables___Parser___action_table_row901_t)CALL( self,COLOR_parser_tables___Parser___action_table_row901))( self) /*Parser::action_table_row901*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable901) /*Array::add*/;
+    variable902 = ((parser_tables___Parser___action_table_row902_t)CALL( self,COLOR_parser_tables___Parser___action_table_row902))( self) /*Parser::action_table_row902*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable902) /*Array::add*/;
+    variable903 = ((parser_tables___Parser___action_table_row903_t)CALL( self,COLOR_parser_tables___Parser___action_table_row903))( self) /*Parser::action_table_row903*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable903) /*Array::add*/;
+    variable904 = ((parser_tables___Parser___action_table_row904_t)CALL( self,COLOR_parser_tables___Parser___action_table_row904))( self) /*Parser::action_table_row904*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable904) /*Array::add*/;
+    variable905 = ((parser_tables___Parser___action_table_row905_t)CALL( self,COLOR_parser_tables___Parser___action_table_row905))( self) /*Parser::action_table_row905*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable905) /*Array::add*/;
+    variable906 = ((parser_tables___Parser___action_table_row906_t)CALL( self,COLOR_parser_tables___Parser___action_table_row906))( self) /*Parser::action_table_row906*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable906) /*Array::add*/;
+    variable907 = ((parser_tables___Parser___action_table_row907_t)CALL( self,COLOR_parser_tables___Parser___action_table_row907))( self) /*Parser::action_table_row907*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable907) /*Array::add*/;
+    variable908 = ((parser_tables___Parser___action_table_row908_t)CALL( self,COLOR_parser_tables___Parser___action_table_row908))( self) /*Parser::action_table_row908*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable908) /*Array::add*/;
+    variable909 = ((parser_tables___Parser___action_table_row909_t)CALL( self,COLOR_parser_tables___Parser___action_table_row909))( self) /*Parser::action_table_row909*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable909) /*Array::add*/;
+    variable910 = ((parser_tables___Parser___action_table_row910_t)CALL( self,COLOR_parser_tables___Parser___action_table_row910))( self) /*Parser::action_table_row910*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable910) /*Array::add*/;
+    variable911 = ((parser_tables___Parser___action_table_row911_t)CALL( self,COLOR_parser_tables___Parser___action_table_row911))( self) /*Parser::action_table_row911*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable911) /*Array::add*/;
+    variable912 = ((parser_tables___Parser___action_table_row912_t)CALL( self,COLOR_parser_tables___Parser___action_table_row912))( self) /*Parser::action_table_row912*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable912) /*Array::add*/;
+    variable913 = ((parser_tables___Parser___action_table_row913_t)CALL( self,COLOR_parser_tables___Parser___action_table_row913))( self) /*Parser::action_table_row913*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable913) /*Array::add*/;
+    variable914 = ((parser_tables___Parser___action_table_row914_t)CALL( self,COLOR_parser_tables___Parser___action_table_row914))( self) /*Parser::action_table_row914*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable914) /*Array::add*/;
+    variable915 = ((parser_tables___Parser___action_table_row915_t)CALL( self,COLOR_parser_tables___Parser___action_table_row915))( self) /*Parser::action_table_row915*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable915) /*Array::add*/;
+    variable916 = ((parser_tables___Parser___action_table_row916_t)CALL( self,COLOR_parser_tables___Parser___action_table_row916))( self) /*Parser::action_table_row916*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable916) /*Array::add*/;
+    variable917 = ((parser_tables___Parser___action_table_row917_t)CALL( self,COLOR_parser_tables___Parser___action_table_row917))( self) /*Parser::action_table_row917*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable917) /*Array::add*/;
+    variable918 = ((parser_tables___Parser___action_table_row918_t)CALL( self,COLOR_parser_tables___Parser___action_table_row918))( self) /*Parser::action_table_row918*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable918) /*Array::add*/;
+    variable919 = ((parser_tables___Parser___action_table_row919_t)CALL( self,COLOR_parser_tables___Parser___action_table_row919))( self) /*Parser::action_table_row919*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable919) /*Array::add*/;
+    variable920 = ((parser_tables___Parser___action_table_row920_t)CALL( self,COLOR_parser_tables___Parser___action_table_row920))( self) /*Parser::action_table_row920*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable920) /*Array::add*/;
+    variable921 = ((parser_tables___Parser___action_table_row921_t)CALL( self,COLOR_parser_tables___Parser___action_table_row921))( self) /*Parser::action_table_row921*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable921) /*Array::add*/;
+    variable922 = ((parser_tables___Parser___action_table_row922_t)CALL( self,COLOR_parser_tables___Parser___action_table_row922))( self) /*Parser::action_table_row922*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable922) /*Array::add*/;
+    variable923 = ((parser_tables___Parser___action_table_row923_t)CALL( self,COLOR_parser_tables___Parser___action_table_row923))( self) /*Parser::action_table_row923*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable923) /*Array::add*/;
+    variable924 = ((parser_tables___Parser___action_table_row924_t)CALL( self,COLOR_parser_tables___Parser___action_table_row924))( self) /*Parser::action_table_row924*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable924) /*Array::add*/;
+    variable925 = ((parser_tables___Parser___action_table_row925_t)CALL( self,COLOR_parser_tables___Parser___action_table_row925))( self) /*Parser::action_table_row925*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable925) /*Array::add*/;
+    variable926 = ((parser_tables___Parser___action_table_row926_t)CALL( self,COLOR_parser_tables___Parser___action_table_row926))( self) /*Parser::action_table_row926*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable926) /*Array::add*/;
+    variable927 = ((parser_tables___Parser___action_table_row927_t)CALL( self,COLOR_parser_tables___Parser___action_table_row927))( self) /*Parser::action_table_row927*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable927) /*Array::add*/;
+    variable928 = ((parser_tables___Parser___action_table_row928_t)CALL( self,COLOR_parser_tables___Parser___action_table_row928))( self) /*Parser::action_table_row928*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable928) /*Array::add*/;
+    variable929 = ((parser_tables___Parser___action_table_row929_t)CALL( self,COLOR_parser_tables___Parser___action_table_row929))( self) /*Parser::action_table_row929*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable929) /*Array::add*/;
+    variable930 = ((parser_tables___Parser___action_table_row930_t)CALL( self,COLOR_parser_tables___Parser___action_table_row930))( self) /*Parser::action_table_row930*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable930) /*Array::add*/;
+    variable931 = ((parser_tables___Parser___action_table_row931_t)CALL( self,COLOR_parser_tables___Parser___action_table_row931))( self) /*Parser::action_table_row931*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable931) /*Array::add*/;
+    variable932 = ((parser_tables___Parser___action_table_row932_t)CALL( self,COLOR_parser_tables___Parser___action_table_row932))( self) /*Parser::action_table_row932*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable932) /*Array::add*/;
+    variable933 = ((parser_tables___Parser___action_table_row933_t)CALL( self,COLOR_parser_tables___Parser___action_table_row933))( self) /*Parser::action_table_row933*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable933) /*Array::add*/;
+    variable934 = ((parser_tables___Parser___action_table_row934_t)CALL( self,COLOR_parser_tables___Parser___action_table_row934))( self) /*Parser::action_table_row934*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable934) /*Array::add*/;
+    variable935 = ((parser_tables___Parser___action_table_row935_t)CALL( self,COLOR_parser_tables___Parser___action_table_row935))( self) /*Parser::action_table_row935*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable935) /*Array::add*/;
+    variable936 = ((parser_tables___Parser___action_table_row936_t)CALL( self,COLOR_parser_tables___Parser___action_table_row936))( self) /*Parser::action_table_row936*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable936) /*Array::add*/;
+    variable937 = ((parser_tables___Parser___action_table_row937_t)CALL( self,COLOR_parser_tables___Parser___action_table_row937))( self) /*Parser::action_table_row937*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable937) /*Array::add*/;
+    variable938 = ((parser_tables___Parser___action_table_row938_t)CALL( self,COLOR_parser_tables___Parser___action_table_row938))( self) /*Parser::action_table_row938*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable938) /*Array::add*/;
+    variable939 = ((parser_tables___Parser___action_table_row939_t)CALL( self,COLOR_parser_tables___Parser___action_table_row939))( self) /*Parser::action_table_row939*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable939) /*Array::add*/;
+    variable940 = ((parser_tables___Parser___action_table_row940_t)CALL( self,COLOR_parser_tables___Parser___action_table_row940))( self) /*Parser::action_table_row940*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable940) /*Array::add*/;
+    variable941 = ((parser_tables___Parser___action_table_row941_t)CALL( self,COLOR_parser_tables___Parser___action_table_row941))( self) /*Parser::action_table_row941*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable941) /*Array::add*/;
+    variable942 = ((parser_tables___Parser___action_table_row942_t)CALL( self,COLOR_parser_tables___Parser___action_table_row942))( self) /*Parser::action_table_row942*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable942) /*Array::add*/;
+    variable943 = ((parser_tables___Parser___action_table_row943_t)CALL( self,COLOR_parser_tables___Parser___action_table_row943))( self) /*Parser::action_table_row943*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable943) /*Array::add*/;
+    variable944 = ((parser_tables___Parser___action_table_row944_t)CALL( self,COLOR_parser_tables___Parser___action_table_row944))( self) /*Parser::action_table_row944*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable944) /*Array::add*/;
+    variable945 = ((parser_tables___Parser___action_table_row945_t)CALL( self,COLOR_parser_tables___Parser___action_table_row945))( self) /*Parser::action_table_row945*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable945) /*Array::add*/;
+    variable946 = ((parser_tables___Parser___action_table_row946_t)CALL( self,COLOR_parser_tables___Parser___action_table_row946))( self) /*Parser::action_table_row946*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable946) /*Array::add*/;
+    variable947 = ((parser_tables___Parser___action_table_row947_t)CALL( self,COLOR_parser_tables___Parser___action_table_row947))( self) /*Parser::action_table_row947*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable947) /*Array::add*/;
+    variable948 = ((parser_tables___Parser___action_table_row948_t)CALL( self,COLOR_parser_tables___Parser___action_table_row948))( self) /*Parser::action_table_row948*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable948) /*Array::add*/;
+    variable949 = ((parser_tables___Parser___action_table_row949_t)CALL( self,COLOR_parser_tables___Parser___action_table_row949))( self) /*Parser::action_table_row949*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable949) /*Array::add*/;
+    variable950 = ((parser_tables___Parser___action_table_row950_t)CALL( self,COLOR_parser_tables___Parser___action_table_row950))( self) /*Parser::action_table_row950*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable950) /*Array::add*/;
+    variable951 = ((parser_tables___Parser___action_table_row951_t)CALL( self,COLOR_parser_tables___Parser___action_table_row951))( self) /*Parser::action_table_row951*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable951) /*Array::add*/;
+    variable952 = ((parser_tables___Parser___action_table_row952_t)CALL( self,COLOR_parser_tables___Parser___action_table_row952))( self) /*Parser::action_table_row952*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable952) /*Array::add*/;
+    variable953 = ((parser_tables___Parser___action_table_row953_t)CALL( self,COLOR_parser_tables___Parser___action_table_row953))( self) /*Parser::action_table_row953*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable953) /*Array::add*/;
+    variable954 = ((parser_tables___Parser___action_table_row954_t)CALL( self,COLOR_parser_tables___Parser___action_table_row954))( self) /*Parser::action_table_row954*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable954) /*Array::add*/;
+    variable955 = ((parser_tables___Parser___action_table_row955_t)CALL( self,COLOR_parser_tables___Parser___action_table_row955))( self) /*Parser::action_table_row955*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable955) /*Array::add*/;
+    variable956 = ((parser_tables___Parser___action_table_row956_t)CALL( self,COLOR_parser_tables___Parser___action_table_row956))( self) /*Parser::action_table_row956*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable956) /*Array::add*/;
+    variable957 = ((parser_tables___Parser___action_table_row957_t)CALL( self,COLOR_parser_tables___Parser___action_table_row957))( self) /*Parser::action_table_row957*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable957) /*Array::add*/;
+    variable958 = ((parser_tables___Parser___action_table_row958_t)CALL( self,COLOR_parser_tables___Parser___action_table_row958))( self) /*Parser::action_table_row958*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable958) /*Array::add*/;
+    variable959 = ((parser_tables___Parser___action_table_row959_t)CALL( self,COLOR_parser_tables___Parser___action_table_row959))( self) /*Parser::action_table_row959*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable959) /*Array::add*/;
+    variable960 = ((parser_tables___Parser___action_table_row960_t)CALL( self,COLOR_parser_tables___Parser___action_table_row960))( self) /*Parser::action_table_row960*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable960) /*Array::add*/;
+    variable961 = ((parser_tables___Parser___action_table_row961_t)CALL( self,COLOR_parser_tables___Parser___action_table_row961))( self) /*Parser::action_table_row961*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable961) /*Array::add*/;
+    variable962 = ((parser_tables___Parser___action_table_row962_t)CALL( self,COLOR_parser_tables___Parser___action_table_row962))( self) /*Parser::action_table_row962*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable962) /*Array::add*/;
+    variable963 = ((parser_tables___Parser___action_table_row963_t)CALL( self,COLOR_parser_tables___Parser___action_table_row963))( self) /*Parser::action_table_row963*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable963) /*Array::add*/;
+    variable964 = ((parser_tables___Parser___action_table_row964_t)CALL( self,COLOR_parser_tables___Parser___action_table_row964))( self) /*Parser::action_table_row964*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable964) /*Array::add*/;
+    variable965 = ((parser_tables___Parser___action_table_row965_t)CALL( self,COLOR_parser_tables___Parser___action_table_row965))( self) /*Parser::action_table_row965*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable965) /*Array::add*/;
+    variable966 = ((parser_tables___Parser___action_table_row966_t)CALL( self,COLOR_parser_tables___Parser___action_table_row966))( self) /*Parser::action_table_row966*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable966) /*Array::add*/;
+    variable967 = ((parser_tables___Parser___action_table_row967_t)CALL( self,COLOR_parser_tables___Parser___action_table_row967))( self) /*Parser::action_table_row967*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable967) /*Array::add*/;
+    variable968 = ((parser_tables___Parser___action_table_row968_t)CALL( self,COLOR_parser_tables___Parser___action_table_row968))( self) /*Parser::action_table_row968*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable968) /*Array::add*/;
+    variable969 = ((parser_tables___Parser___action_table_row969_t)CALL( self,COLOR_parser_tables___Parser___action_table_row969))( self) /*Parser::action_table_row969*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable969) /*Array::add*/;
+    variable970 = ((parser_tables___Parser___action_table_row970_t)CALL( self,COLOR_parser_tables___Parser___action_table_row970))( self) /*Parser::action_table_row970*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable970) /*Array::add*/;
+    variable971 = ((parser_tables___Parser___action_table_row971_t)CALL( self,COLOR_parser_tables___Parser___action_table_row971))( self) /*Parser::action_table_row971*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable971) /*Array::add*/;
+    variable972 = ((parser_tables___Parser___action_table_row972_t)CALL( self,COLOR_parser_tables___Parser___action_table_row972))( self) /*Parser::action_table_row972*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable972) /*Array::add*/;
+    variable973 = ((parser_tables___Parser___action_table_row973_t)CALL( self,COLOR_parser_tables___Parser___action_table_row973))( self) /*Parser::action_table_row973*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable973) /*Array::add*/;
+    variable974 = ((parser_tables___Parser___action_table_row974_t)CALL( self,COLOR_parser_tables___Parser___action_table_row974))( self) /*Parser::action_table_row974*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable974) /*Array::add*/;
+    variable975 = ((parser_tables___Parser___action_table_row975_t)CALL( self,COLOR_parser_tables___Parser___action_table_row975))( self) /*Parser::action_table_row975*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable975) /*Array::add*/;
+    variable976 = ((parser_tables___Parser___action_table_row976_t)CALL( self,COLOR_parser_tables___Parser___action_table_row976))( self) /*Parser::action_table_row976*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable976) /*Array::add*/;
+    variable977 = ((parser_tables___Parser___action_table_row977_t)CALL( self,COLOR_parser_tables___Parser___action_table_row977))( self) /*Parser::action_table_row977*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable977) /*Array::add*/;
+    variable978 = ((parser_tables___Parser___action_table_row978_t)CALL( self,COLOR_parser_tables___Parser___action_table_row978))( self) /*Parser::action_table_row978*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable978) /*Array::add*/;
+    variable979 = ((parser_tables___Parser___action_table_row979_t)CALL( self,COLOR_parser_tables___Parser___action_table_row979))( self) /*Parser::action_table_row979*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable979) /*Array::add*/;
+    variable980 = ((parser_tables___Parser___action_table_row980_t)CALL( self,COLOR_parser_tables___Parser___action_table_row980))( self) /*Parser::action_table_row980*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable980) /*Array::add*/;
+    variable981 = ((parser_tables___Parser___action_table_row981_t)CALL( self,COLOR_parser_tables___Parser___action_table_row981))( self) /*Parser::action_table_row981*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable981) /*Array::add*/;
+    variable982 = ((parser_tables___Parser___action_table_row982_t)CALL( self,COLOR_parser_tables___Parser___action_table_row982))( self) /*Parser::action_table_row982*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable982) /*Array::add*/;
+    variable983 = ((parser_tables___Parser___action_table_row983_t)CALL( self,COLOR_parser_tables___Parser___action_table_row983))( self) /*Parser::action_table_row983*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable983) /*Array::add*/;
+    variable984 = ((parser_tables___Parser___action_table_row984_t)CALL( self,COLOR_parser_tables___Parser___action_table_row984))( self) /*Parser::action_table_row984*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable984) /*Array::add*/;
+    variable985 = ((parser_tables___Parser___action_table_row985_t)CALL( self,COLOR_parser_tables___Parser___action_table_row985))( self) /*Parser::action_table_row985*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable985) /*Array::add*/;
+    variable986 = ((parser_tables___Parser___action_table_row986_t)CALL( self,COLOR_parser_tables___Parser___action_table_row986))( self) /*Parser::action_table_row986*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable986) /*Array::add*/;
+    variable987 = ((parser_tables___Parser___action_table_row987_t)CALL( self,COLOR_parser_tables___Parser___action_table_row987))( self) /*Parser::action_table_row987*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable987) /*Array::add*/;
+    variable988 = ((parser_tables___Parser___action_table_row988_t)CALL( self,COLOR_parser_tables___Parser___action_table_row988))( self) /*Parser::action_table_row988*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable988) /*Array::add*/;
+    variable989 = ((parser_tables___Parser___action_table_row989_t)CALL( self,COLOR_parser_tables___Parser___action_table_row989))( self) /*Parser::action_table_row989*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable989) /*Array::add*/;
+    variable990 = ((parser_tables___Parser___action_table_row990_t)CALL( self,COLOR_parser_tables___Parser___action_table_row990))( self) /*Parser::action_table_row990*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable990) /*Array::add*/;
+    variable991 = ((parser_tables___Parser___action_table_row991_t)CALL( self,COLOR_parser_tables___Parser___action_table_row991))( self) /*Parser::action_table_row991*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable991) /*Array::add*/;
+    variable992 = ((parser_tables___Parser___action_table_row992_t)CALL( self,COLOR_parser_tables___Parser___action_table_row992))( self) /*Parser::action_table_row992*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable992) /*Array::add*/;
+    variable993 = ((parser_tables___Parser___action_table_row993_t)CALL( self,COLOR_parser_tables___Parser___action_table_row993))( self) /*Parser::action_table_row993*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable993) /*Array::add*/;
+    variable994 = ((parser_tables___Parser___action_table_row994_t)CALL( self,COLOR_parser_tables___Parser___action_table_row994))( self) /*Parser::action_table_row994*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable994) /*Array::add*/;
+    variable995 = ((parser_tables___Parser___action_table_row995_t)CALL( self,COLOR_parser_tables___Parser___action_table_row995))( self) /*Parser::action_table_row995*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable995) /*Array::add*/;
+    variable996 = ((parser_tables___Parser___action_table_row996_t)CALL( self,COLOR_parser_tables___Parser___action_table_row996))( self) /*Parser::action_table_row996*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable996) /*Array::add*/;
+    variable997 = ((parser_tables___Parser___action_table_row997_t)CALL( self,COLOR_parser_tables___Parser___action_table_row997))( self) /*Parser::action_table_row997*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable997) /*Array::add*/;
+    variable998 = ((parser_tables___Parser___action_table_row998_t)CALL( self,COLOR_parser_tables___Parser___action_table_row998))( self) /*Parser::action_table_row998*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable998) /*Array::add*/;
+    variable999 = ((parser_tables___Parser___action_table_row999_t)CALL( self,COLOR_parser_tables___Parser___action_table_row999))( self) /*Parser::action_table_row999*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable999) /*Array::add*/;
+    variable1000 = ((parser_tables___Parser___action_table_row1000_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1000))( self) /*Parser::action_table_row1000*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1000) /*Array::add*/;
+    variable1001 = ((parser_tables___Parser___action_table_row1001_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1001))( self) /*Parser::action_table_row1001*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1001) /*Array::add*/;
+    variable1002 = ((parser_tables___Parser___action_table_row1002_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1002))( self) /*Parser::action_table_row1002*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1002) /*Array::add*/;
+    variable1003 = ((parser_tables___Parser___action_table_row1003_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1003))( self) /*Parser::action_table_row1003*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1003) /*Array::add*/;
+    variable1004 = ((parser_tables___Parser___action_table_row1004_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1004))( self) /*Parser::action_table_row1004*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1004) /*Array::add*/;
+    variable1005 = ((parser_tables___Parser___action_table_row1005_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1005))( self) /*Parser::action_table_row1005*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1005) /*Array::add*/;
+    variable1006 = ((parser_tables___Parser___action_table_row1006_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1006))( self) /*Parser::action_table_row1006*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1006) /*Array::add*/;
+    variable1007 = ((parser_tables___Parser___action_table_row1007_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1007))( self) /*Parser::action_table_row1007*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1007) /*Array::add*/;
+    variable1008 = ((parser_tables___Parser___action_table_row1008_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1008))( self) /*Parser::action_table_row1008*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1008) /*Array::add*/;
+    variable1009 = ((parser_tables___Parser___action_table_row1009_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1009))( self) /*Parser::action_table_row1009*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1009) /*Array::add*/;
+    variable1010 = ((parser_tables___Parser___action_table_row1010_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1010))( self) /*Parser::action_table_row1010*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1010) /*Array::add*/;
+    variable1011 = ((parser_tables___Parser___action_table_row1011_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1011))( self) /*Parser::action_table_row1011*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1011) /*Array::add*/;
+    variable1012 = ((parser_tables___Parser___action_table_row1012_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1012))( self) /*Parser::action_table_row1012*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1012) /*Array::add*/;
+    variable1013 = ((parser_tables___Parser___action_table_row1013_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1013))( self) /*Parser::action_table_row1013*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1013) /*Array::add*/;
+    variable1014 = ((parser_tables___Parser___action_table_row1014_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1014))( self) /*Parser::action_table_row1014*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1014) /*Array::add*/;
+    variable1015 = ((parser_tables___Parser___action_table_row1015_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1015))( self) /*Parser::action_table_row1015*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1015) /*Array::add*/;
+    variable1016 = ((parser_tables___Parser___action_table_row1016_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1016))( self) /*Parser::action_table_row1016*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1016) /*Array::add*/;
+    variable1017 = ((parser_tables___Parser___action_table_row1017_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1017))( self) /*Parser::action_table_row1017*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1017) /*Array::add*/;
+    variable1018 = ((parser_tables___Parser___action_table_row1018_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1018))( self) /*Parser::action_table_row1018*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1018) /*Array::add*/;
+    variable1019 = ((parser_tables___Parser___action_table_row1019_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1019))( self) /*Parser::action_table_row1019*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1019) /*Array::add*/;
+    variable1020 = ((parser_tables___Parser___action_table_row1020_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1020))( self) /*Parser::action_table_row1020*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1020) /*Array::add*/;
+    variable1021 = ((parser_tables___Parser___action_table_row1021_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1021))( self) /*Parser::action_table_row1021*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1021) /*Array::add*/;
+    variable1022 = ((parser_tables___Parser___action_table_row1022_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1022))( self) /*Parser::action_table_row1022*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1022) /*Array::add*/;
+    variable1023 = ((parser_tables___Parser___action_table_row1023_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1023))( self) /*Parser::action_table_row1023*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1023) /*Array::add*/;
+    variable1024 = ((parser_tables___Parser___action_table_row1024_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1024))( self) /*Parser::action_table_row1024*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1024) /*Array::add*/;
+    variable1025 = ((parser_tables___Parser___action_table_row1025_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1025))( self) /*Parser::action_table_row1025*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1025) /*Array::add*/;
+    variable1026 = ((parser_tables___Parser___action_table_row1026_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1026))( self) /*Parser::action_table_row1026*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1026) /*Array::add*/;
+    variable1027 = ((parser_tables___Parser___action_table_row1027_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1027))( self) /*Parser::action_table_row1027*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1027) /*Array::add*/;
+    variable1028 = ((parser_tables___Parser___action_table_row1028_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1028))( self) /*Parser::action_table_row1028*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1028) /*Array::add*/;
+    variable1029 = ((parser_tables___Parser___action_table_row1029_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1029))( self) /*Parser::action_table_row1029*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1029) /*Array::add*/;
+    variable1030 = ((parser_tables___Parser___action_table_row1030_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1030))( self) /*Parser::action_table_row1030*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1030) /*Array::add*/;
+    variable1031 = ((parser_tables___Parser___action_table_row1031_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1031))( self) /*Parser::action_table_row1031*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1031) /*Array::add*/;
+    variable1032 = ((parser_tables___Parser___action_table_row1032_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1032))( self) /*Parser::action_table_row1032*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1032) /*Array::add*/;
+    variable1033 = ((parser_tables___Parser___action_table_row1033_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1033))( self) /*Parser::action_table_row1033*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1033) /*Array::add*/;
+    variable1034 = ((parser_tables___Parser___action_table_row1034_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1034))( self) /*Parser::action_table_row1034*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1034) /*Array::add*/;
+    variable1035 = ((parser_tables___Parser___action_table_row1035_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1035))( self) /*Parser::action_table_row1035*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1035) /*Array::add*/;
+    variable1036 = ((parser_tables___Parser___action_table_row1036_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1036))( self) /*Parser::action_table_row1036*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1036) /*Array::add*/;
+    variable1037 = ((parser_tables___Parser___action_table_row1037_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1037))( self) /*Parser::action_table_row1037*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1037) /*Array::add*/;
+    variable1038 = ((parser_tables___Parser___action_table_row1038_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1038))( self) /*Parser::action_table_row1038*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1038) /*Array::add*/;
+    variable1039 = ((parser_tables___Parser___action_table_row1039_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1039))( self) /*Parser::action_table_row1039*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1039) /*Array::add*/;
+    variable1040 = ((parser_tables___Parser___action_table_row1040_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1040))( self) /*Parser::action_table_row1040*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1040) /*Array::add*/;
+    variable1041 = ((parser_tables___Parser___action_table_row1041_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1041))( self) /*Parser::action_table_row1041*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1041) /*Array::add*/;
+    variable1042 = ((parser_tables___Parser___action_table_row1042_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1042))( self) /*Parser::action_table_row1042*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1042) /*Array::add*/;
+    variable1043 = ((parser_tables___Parser___action_table_row1043_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1043))( self) /*Parser::action_table_row1043*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1043) /*Array::add*/;
+    variable1044 = ((parser_tables___Parser___action_table_row1044_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1044))( self) /*Parser::action_table_row1044*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1044) /*Array::add*/;
+    variable1045 = ((parser_tables___Parser___action_table_row1045_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1045))( self) /*Parser::action_table_row1045*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1045) /*Array::add*/;
+    variable1046 = ((parser_tables___Parser___action_table_row1046_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1046))( self) /*Parser::action_table_row1046*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1046) /*Array::add*/;
+    variable1047 = ((parser_tables___Parser___action_table_row1047_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1047))( self) /*Parser::action_table_row1047*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1047) /*Array::add*/;
+    variable1048 = ((parser_tables___Parser___action_table_row1048_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1048))( self) /*Parser::action_table_row1048*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1048) /*Array::add*/;
+    variable1049 = ((parser_tables___Parser___action_table_row1049_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1049))( self) /*Parser::action_table_row1049*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1049) /*Array::add*/;
+    variable1050 = ((parser_tables___Parser___action_table_row1050_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1050))( self) /*Parser::action_table_row1050*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1050) /*Array::add*/;
+    variable1051 = ((parser_tables___Parser___action_table_row1051_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1051))( self) /*Parser::action_table_row1051*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1051) /*Array::add*/;
+    variable1052 = ((parser_tables___Parser___action_table_row1052_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1052))( self) /*Parser::action_table_row1052*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1052) /*Array::add*/;
+    variable1053 = ((parser_tables___Parser___action_table_row1053_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1053))( self) /*Parser::action_table_row1053*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1053) /*Array::add*/;
+    variable1054 = ((parser_tables___Parser___action_table_row1054_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1054))( self) /*Parser::action_table_row1054*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1054) /*Array::add*/;
+    variable1055 = ((parser_tables___Parser___action_table_row1055_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1055))( self) /*Parser::action_table_row1055*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1055) /*Array::add*/;
+    variable1056 = ((parser_tables___Parser___action_table_row1056_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1056))( self) /*Parser::action_table_row1056*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1056) /*Array::add*/;
+    variable1057 = ((parser_tables___Parser___action_table_row1057_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1057))( self) /*Parser::action_table_row1057*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1057) /*Array::add*/;
+    variable1058 = ((parser_tables___Parser___action_table_row1058_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1058))( self) /*Parser::action_table_row1058*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1058) /*Array::add*/;
+    variable1059 = ((parser_tables___Parser___action_table_row1059_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1059))( self) /*Parser::action_table_row1059*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1059) /*Array::add*/;
+    variable1060 = ((parser_tables___Parser___action_table_row1060_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1060))( self) /*Parser::action_table_row1060*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1060) /*Array::add*/;
+    variable1061 = ((parser_tables___Parser___action_table_row1061_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1061))( self) /*Parser::action_table_row1061*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1061) /*Array::add*/;
+    variable1062 = ((parser_tables___Parser___action_table_row1062_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1062))( self) /*Parser::action_table_row1062*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1062) /*Array::add*/;
+    variable1063 = ((parser_tables___Parser___action_table_row1063_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1063))( self) /*Parser::action_table_row1063*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1063) /*Array::add*/;
+    variable1064 = ((parser_tables___Parser___action_table_row1064_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1064))( self) /*Parser::action_table_row1064*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1064) /*Array::add*/;
+    variable1065 = ((parser_tables___Parser___action_table_row1065_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1065))( self) /*Parser::action_table_row1065*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1065) /*Array::add*/;
+    variable1066 = ((parser_tables___Parser___action_table_row1066_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1066))( self) /*Parser::action_table_row1066*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1066) /*Array::add*/;
+    variable1067 = ((parser_tables___Parser___action_table_row1067_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1067))( self) /*Parser::action_table_row1067*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1067) /*Array::add*/;
+    variable1068 = ((parser_tables___Parser___action_table_row1068_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1068))( self) /*Parser::action_table_row1068*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1068) /*Array::add*/;
+    variable1069 = ((parser_tables___Parser___action_table_row1069_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1069))( self) /*Parser::action_table_row1069*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1069) /*Array::add*/;
+    variable1070 = ((parser_tables___Parser___action_table_row1070_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1070))( self) /*Parser::action_table_row1070*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1070) /*Array::add*/;
+    variable1071 = ((parser_tables___Parser___action_table_row1071_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1071))( self) /*Parser::action_table_row1071*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1071) /*Array::add*/;
+    variable1072 = ((parser_tables___Parser___action_table_row1072_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1072))( self) /*Parser::action_table_row1072*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1072) /*Array::add*/;
+    variable1073 = ((parser_tables___Parser___action_table_row1073_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1073))( self) /*Parser::action_table_row1073*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1073) /*Array::add*/;
+    variable1074 = ((parser_tables___Parser___action_table_row1074_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1074))( self) /*Parser::action_table_row1074*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1074) /*Array::add*/;
+    variable1075 = ((parser_tables___Parser___action_table_row1075_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1075))( self) /*Parser::action_table_row1075*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1075) /*Array::add*/;
+    variable1076 = ((parser_tables___Parser___action_table_row1076_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1076))( self) /*Parser::action_table_row1076*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1076) /*Array::add*/;
+    variable1077 = ((parser_tables___Parser___action_table_row1077_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1077))( self) /*Parser::action_table_row1077*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1077) /*Array::add*/;
+    variable1078 = ((parser_tables___Parser___action_table_row1078_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1078))( self) /*Parser::action_table_row1078*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1078) /*Array::add*/;
+    variable1079 = ((parser_tables___Parser___action_table_row1079_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1079))( self) /*Parser::action_table_row1079*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1079) /*Array::add*/;
+    variable1080 = ((parser_tables___Parser___action_table_row1080_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1080))( self) /*Parser::action_table_row1080*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1080) /*Array::add*/;
+    variable1081 = ((parser_tables___Parser___action_table_row1081_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1081))( self) /*Parser::action_table_row1081*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1081) /*Array::add*/;
+    variable1082 = ((parser_tables___Parser___action_table_row1082_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1082))( self) /*Parser::action_table_row1082*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1082) /*Array::add*/;
+    variable1083 = ((parser_tables___Parser___action_table_row1083_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1083))( self) /*Parser::action_table_row1083*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1083) /*Array::add*/;
+    variable1084 = ((parser_tables___Parser___action_table_row1084_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1084))( self) /*Parser::action_table_row1084*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1084) /*Array::add*/;
+    variable1085 = ((parser_tables___Parser___action_table_row1085_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1085))( self) /*Parser::action_table_row1085*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1085) /*Array::add*/;
+    variable1086 = ((parser_tables___Parser___action_table_row1086_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1086))( self) /*Parser::action_table_row1086*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1086) /*Array::add*/;
+    variable1087 = ((parser_tables___Parser___action_table_row1087_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1087))( self) /*Parser::action_table_row1087*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1087) /*Array::add*/;
+    variable1088 = ((parser_tables___Parser___action_table_row1088_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1088))( self) /*Parser::action_table_row1088*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1088) /*Array::add*/;
+    variable1089 = ((parser_tables___Parser___action_table_row1089_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1089))( self) /*Parser::action_table_row1089*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1089) /*Array::add*/;
+    variable1090 = ((parser_tables___Parser___action_table_row1090_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1090))( self) /*Parser::action_table_row1090*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1090) /*Array::add*/;
+    variable1091 = ((parser_tables___Parser___action_table_row1091_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1091))( self) /*Parser::action_table_row1091*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1091) /*Array::add*/;
+    variable1092 = ((parser_tables___Parser___action_table_row1092_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1092))( self) /*Parser::action_table_row1092*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1092) /*Array::add*/;
+    variable1093 = ((parser_tables___Parser___action_table_row1093_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1093))( self) /*Parser::action_table_row1093*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1093) /*Array::add*/;
+    variable1094 = ((parser_tables___Parser___action_table_row1094_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1094))( self) /*Parser::action_table_row1094*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1094) /*Array::add*/;
+    variable1095 = ((parser_tables___Parser___action_table_row1095_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1095))( self) /*Parser::action_table_row1095*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1095) /*Array::add*/;
+    variable1096 = ((parser_tables___Parser___action_table_row1096_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1096))( self) /*Parser::action_table_row1096*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1096) /*Array::add*/;
+    variable1097 = ((parser_tables___Parser___action_table_row1097_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1097))( self) /*Parser::action_table_row1097*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1097) /*Array::add*/;
+    variable1098 = ((parser_tables___Parser___action_table_row1098_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1098))( self) /*Parser::action_table_row1098*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1098) /*Array::add*/;
+    variable1099 = ((parser_tables___Parser___action_table_row1099_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1099))( self) /*Parser::action_table_row1099*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1099) /*Array::add*/;
+    variable1100 = ((parser_tables___Parser___action_table_row1100_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1100))( self) /*Parser::action_table_row1100*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1100) /*Array::add*/;
+    variable1101 = ((parser_tables___Parser___action_table_row1101_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1101))( self) /*Parser::action_table_row1101*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1101) /*Array::add*/;
+    variable1102 = ((parser_tables___Parser___action_table_row1102_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1102))( self) /*Parser::action_table_row1102*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1102) /*Array::add*/;
+    variable1103 = ((parser_tables___Parser___action_table_row1103_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1103))( self) /*Parser::action_table_row1103*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1103) /*Array::add*/;
+    variable1104 = ((parser_tables___Parser___action_table_row1104_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1104))( self) /*Parser::action_table_row1104*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1104) /*Array::add*/;
+    variable1105 = ((parser_tables___Parser___action_table_row1105_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1105))( self) /*Parser::action_table_row1105*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1105) /*Array::add*/;
+    variable1106 = ((parser_tables___Parser___action_table_row1106_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1106))( self) /*Parser::action_table_row1106*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1106) /*Array::add*/;
+    variable1107 = ((parser_tables___Parser___action_table_row1107_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1107))( self) /*Parser::action_table_row1107*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1107) /*Array::add*/;
+    variable1108 = ((parser_tables___Parser___action_table_row1108_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1108))( self) /*Parser::action_table_row1108*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1108) /*Array::add*/;
+    variable1109 = ((parser_tables___Parser___action_table_row1109_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1109))( self) /*Parser::action_table_row1109*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1109) /*Array::add*/;
+    variable1110 = ((parser_tables___Parser___action_table_row1110_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1110))( self) /*Parser::action_table_row1110*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1110) /*Array::add*/;
+    variable1111 = ((parser_tables___Parser___action_table_row1111_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1111))( self) /*Parser::action_table_row1111*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1111) /*Array::add*/;
+    variable1112 = ((parser_tables___Parser___action_table_row1112_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1112))( self) /*Parser::action_table_row1112*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1112) /*Array::add*/;
+    variable1113 = ((parser_tables___Parser___action_table_row1113_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1113))( self) /*Parser::action_table_row1113*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1113) /*Array::add*/;
+    variable1114 = ((parser_tables___Parser___action_table_row1114_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1114))( self) /*Parser::action_table_row1114*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1114) /*Array::add*/;
+    variable1115 = ((parser_tables___Parser___action_table_row1115_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1115))( self) /*Parser::action_table_row1115*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1115) /*Array::add*/;
+    variable1116 = ((parser_tables___Parser___action_table_row1116_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1116))( self) /*Parser::action_table_row1116*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1116) /*Array::add*/;
+    variable1117 = ((parser_tables___Parser___action_table_row1117_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1117))( self) /*Parser::action_table_row1117*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1117) /*Array::add*/;
+    variable1118 = ((parser_tables___Parser___action_table_row1118_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1118))( self) /*Parser::action_table_row1118*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1118) /*Array::add*/;
+    variable1119 = ((parser_tables___Parser___action_table_row1119_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1119))( self) /*Parser::action_table_row1119*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1119) /*Array::add*/;
+    variable1120 = ((parser_tables___Parser___action_table_row1120_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1120))( self) /*Parser::action_table_row1120*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1120) /*Array::add*/;
+    variable1121 = ((parser_tables___Parser___action_table_row1121_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1121))( self) /*Parser::action_table_row1121*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1121) /*Array::add*/;
+    variable1122 = ((parser_tables___Parser___action_table_row1122_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1122))( self) /*Parser::action_table_row1122*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1122) /*Array::add*/;
+    variable1123 = ((parser_tables___Parser___action_table_row1123_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1123))( self) /*Parser::action_table_row1123*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1123) /*Array::add*/;
+    variable1124 = ((parser_tables___Parser___action_table_row1124_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1124))( self) /*Parser::action_table_row1124*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1124) /*Array::add*/;
+    variable1125 = ((parser_tables___Parser___action_table_row1125_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1125))( self) /*Parser::action_table_row1125*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1125) /*Array::add*/;
+    variable1126 = ((parser_tables___Parser___action_table_row1126_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1126))( self) /*Parser::action_table_row1126*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1126) /*Array::add*/;
+    variable1127 = ((parser_tables___Parser___action_table_row1127_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1127))( self) /*Parser::action_table_row1127*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1127) /*Array::add*/;
+    variable1128 = ((parser_tables___Parser___action_table_row1128_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1128))( self) /*Parser::action_table_row1128*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1128) /*Array::add*/;
+    variable1129 = ((parser_tables___Parser___action_table_row1129_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1129))( self) /*Parser::action_table_row1129*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1129) /*Array::add*/;
+    variable1130 = ((parser_tables___Parser___action_table_row1130_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1130))( self) /*Parser::action_table_row1130*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1130) /*Array::add*/;
+    variable1131 = ((parser_tables___Parser___action_table_row1131_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1131))( self) /*Parser::action_table_row1131*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1131) /*Array::add*/;
+    variable1132 = ((parser_tables___Parser___action_table_row1132_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1132))( self) /*Parser::action_table_row1132*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1132) /*Array::add*/;
+    variable1133 = ((parser_tables___Parser___action_table_row1133_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1133))( self) /*Parser::action_table_row1133*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1133) /*Array::add*/;
+    variable1134 = ((parser_tables___Parser___action_table_row1134_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1134))( self) /*Parser::action_table_row1134*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1134) /*Array::add*/;
+    variable1135 = ((parser_tables___Parser___action_table_row1135_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1135))( self) /*Parser::action_table_row1135*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1135) /*Array::add*/;
+    variable1136 = ((parser_tables___Parser___action_table_row1136_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1136))( self) /*Parser::action_table_row1136*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1136) /*Array::add*/;
+    variable1137 = ((parser_tables___Parser___action_table_row1137_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1137))( self) /*Parser::action_table_row1137*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1137) /*Array::add*/;
+    variable1138 = ((parser_tables___Parser___action_table_row1138_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1138))( self) /*Parser::action_table_row1138*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1138) /*Array::add*/;
+    variable1139 = ((parser_tables___Parser___action_table_row1139_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1139))( self) /*Parser::action_table_row1139*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1139) /*Array::add*/;
+    variable1140 = ((parser_tables___Parser___action_table_row1140_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1140))( self) /*Parser::action_table_row1140*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1140) /*Array::add*/;
+    variable1141 = ((parser_tables___Parser___action_table_row1141_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1141))( self) /*Parser::action_table_row1141*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1141) /*Array::add*/;
+    variable1142 = ((parser_tables___Parser___action_table_row1142_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1142))( self) /*Parser::action_table_row1142*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1142) /*Array::add*/;
+    variable1143 = ((parser_tables___Parser___action_table_row1143_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1143))( self) /*Parser::action_table_row1143*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1143) /*Array::add*/;
+    variable1144 = ((parser_tables___Parser___action_table_row1144_t)CALL( self,COLOR_parser_tables___Parser___action_table_row1144))( self) /*Parser::action_table_row1144*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1144) /*Array::add*/;
+    once_value_variable0_1 = variable0;
+    once_bool_variable0_1 = true;
+  }
+  ATTR_parser_tables___Parser____action_table( self) /*Parser::_action_table*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_tables___Parser___action_table_row1(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1 (src/parser//parser_tables.nit:1158,2--1164:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row2(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row2 (src/parser//parser_tables.nit:1167,2--1170:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(567)) /*Array::add*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row3(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row3 (src/parser//parser_tables.nit:1173,2--1176:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(565)) /*Array::add*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row4(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row4 (src/parser//parser_tables.nit:1179,2--1183:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row5(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row5 (src/parser//parser_tables.nit:1186,2--1192:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row6(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row6 (src/parser//parser_tables.nit:1195,2--1198:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row7(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row7 (src/parser//parser_tables.nit:1201,2--1204:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row8(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row8 (src/parser//parser_tables.nit:1207,2--1210:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row9(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row9 (src/parser//parser_tables.nit:1213,2--1216:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row10(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row10 (src/parser//parser_tables.nit:1219,2--1224:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row11(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row11 (src/parser//parser_tables.nit:1227,2--1231:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(365)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row12(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row12 (src/parser//parser_tables.nit:1234,2--1269:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(99)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row13(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row13 (src/parser//parser_tables.nit:1272,2--1276:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(363)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row14(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row14 (src/parser//parser_tables.nit:1279,2--1285:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row15(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row15 (src/parser//parser_tables.nit:1288,2--1294:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row16(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row16 (src/parser//parser_tables.nit:1297,2--1302:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(361)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(85)) /*Array::add*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row17(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row17 (src/parser//parser_tables.nit:1305,2--1309:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(368)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row18(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row18 (src/parser//parser_tables.nit:1312,2--1315:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row19(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row19 (src/parser//parser_tables.nit:1318,2--1323:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row20(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row20 (src/parser//parser_tables.nit:1326,2--1360:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row21(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row21 (src/parser//parser_tables.nit:1363,2--1369:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row22(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row22 (src/parser//parser_tables.nit:1372,2--1378:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row23(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row23 (src/parser//parser_tables.nit:1381,2--1384:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(360)) /*Array::add*/;
+  goto return_label24;
+  return_label24: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row24(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row24 (src/parser//parser_tables.nit:1387,2--1390:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(359)) /*Array::add*/;
+  goto return_label25;
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row25(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row25 (src/parser//parser_tables.nit:1393,2--1399:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row26(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row26 (src/parser//parser_tables.nit:1402,2--1407:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row27(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row27 (src/parser//parser_tables.nit:1410,2--1435:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row28(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row28 (src/parser//parser_tables.nit:1438,2--1444:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label29;
+  return_label29: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row29(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row29 (src/parser//parser_tables.nit:1447,2--1480:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row30(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row30 (src/parser//parser_tables.nit:1483,2--1487:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+  goto return_label31;
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row31(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row31 (src/parser//parser_tables.nit:1490,2--1495:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row32(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row32 (src/parser//parser_tables.nit:1498,2--1503:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row33(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row33 (src/parser//parser_tables.nit:1506,2--1511:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row34(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row34 (src/parser//parser_tables.nit:1514,2--1519:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row35(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row35 (src/parser//parser_tables.nit:1522,2--1527:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label36;
+  return_label36: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row36(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row36 (src/parser//parser_tables.nit:1530,2--1535:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row37(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row37 (src/parser//parser_tables.nit:1538,2--1562:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(236)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label38;
+  return_label38: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row38(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row38 (src/parser//parser_tables.nit:1565,2--1568:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(240)) /*Array::add*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row39(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row39 (src/parser//parser_tables.nit:1571,2--1574:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row40(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row40 (src/parser//parser_tables.nit:1577,2--1580:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row41(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row41 (src/parser//parser_tables.nit:1583,2--1607:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(163)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row42(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row42 (src/parser//parser_tables.nit:1610,2--1615:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label43;
+  return_label43: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row43(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row43 (src/parser//parser_tables.nit:1618,2--1643:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label44;
+  return_label44: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row44(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row44 (src/parser//parser_tables.nit:1646,2--1649:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(325)) /*Array::add*/;
+  goto return_label45;
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row45(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row45 (src/parser//parser_tables.nit:1652,2--1655:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(326)) /*Array::add*/;
+  goto return_label46;
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row46(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row46 (src/parser//parser_tables.nit:1658,2--1661:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(327)) /*Array::add*/;
+  goto return_label47;
+  return_label47: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row47(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row47 (src/parser//parser_tables.nit:1664,2--1667:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(328)) /*Array::add*/;
+  goto return_label48;
+  return_label48: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row48(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row48 (src/parser//parser_tables.nit:1670,2--1694:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row49(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row49 (src/parser//parser_tables.nit:1697,2--1702:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row50(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row50 (src/parser//parser_tables.nit:1705,2--1709:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(171)) /*Array::add*/;
+  goto return_label51;
+  return_label51: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row51(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row51 (src/parser//parser_tables.nit:1712,2--1740:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(78)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  goto return_label52;
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row52(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row52 (src/parser//parser_tables.nit:1743,2--1749:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(175)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  goto return_label53;
+  return_label53: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row53(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row53 (src/parser//parser_tables.nit:1752,2--1755:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(329)) /*Array::add*/;
+  goto return_label54;
+  return_label54: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row54(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row54 (src/parser//parser_tables.nit:1758,2--1761:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(330)) /*Array::add*/;
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row55(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row55 (src/parser//parser_tables.nit:1764,2--1767:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(331)) /*Array::add*/;
+  goto return_label56;
+  return_label56: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row56(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row56 (src/parser//parser_tables.nit:1770,2--1773:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(332)) /*Array::add*/;
+  goto return_label57;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row57(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row57 (src/parser//parser_tables.nit:1776,2--1779:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(338)) /*Array::add*/;
+  goto return_label58;
+  return_label58: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row58(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row58 (src/parser//parser_tables.nit:1782,2--1791:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(21)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(179)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(180)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(181)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(6)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(182)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(7)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(183)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(184)) /*Array::add*/;
+  goto return_label59;
+  return_label59: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row59(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row59 (src/parser//parser_tables.nit:1794,2--1799:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label60;
+  return_label60: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row60(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row60 (src/parser//parser_tables.nit:1802,2--1805:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(234)) /*Array::add*/;
+  goto return_label61;
+  return_label61: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row61(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row61 (src/parser//parser_tables.nit:1808,2--1811:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(235)) /*Array::add*/;
+  goto return_label62;
+  return_label62: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row62(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row62 (src/parser//parser_tables.nit:1814,2--1817:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(241)) /*Array::add*/;
+  goto return_label63;
+  return_label63: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row63(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row63 (src/parser//parser_tables.nit:1820,2--1823:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(242)) /*Array::add*/;
+  goto return_label64;
+  return_label64: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row64(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row64 (src/parser//parser_tables.nit:1826,2--1829:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(243)) /*Array::add*/;
+  goto return_label65;
+  return_label65: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row65(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row65 (src/parser//parser_tables.nit:1832,2--1835:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(244)) /*Array::add*/;
+  goto return_label66;
+  return_label66: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row66(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row66 (src/parser//parser_tables.nit:1838,2--1843:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label67;
+  return_label67: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row67(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row67 (src/parser//parser_tables.nit:1846,2--1849:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(245)) /*Array::add*/;
+  goto return_label68;
+  return_label68: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row68(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row68 (src/parser//parser_tables.nit:1852,2--1857:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(192)) /*Array::add*/;
+  goto return_label69;
+  return_label69: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row69(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row69 (src/parser//parser_tables.nit:1860,2--1863:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(333)) /*Array::add*/;
+  goto return_label70;
+  return_label70: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row70(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row70 (src/parser//parser_tables.nit:1866,2--1871:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(80)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(194)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(81)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(195)) /*Array::add*/;
+  goto return_label71;
+  return_label71: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row71(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row71 (src/parser//parser_tables.nit:1874,2--1879:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label72;
+  return_label72: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row72(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row72 (src/parser//parser_tables.nit:1882,2--1885:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(324)) /*Array::add*/;
+  goto return_label73;
+  return_label73: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row73(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row73 (src/parser//parser_tables.nit:1888,2--1892:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(201)) /*Array::add*/;
+  goto return_label74;
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row74(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row74 (src/parser//parser_tables.nit:1895,2--1898:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(563)) /*Array::add*/;
+  goto return_label75;
+  return_label75: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row75(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row75 (src/parser//parser_tables.nit:1901,2--1904:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(354)) /*Array::add*/;
+  goto return_label76;
+  return_label76: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row76(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row76 (src/parser//parser_tables.nit:1907,2--1912:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(356)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(202)) /*Array::add*/;
+  goto return_label77;
+  return_label77: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row77(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row77 (src/parser//parser_tables.nit:1915,2--1920:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(362)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(85)) /*Array::add*/;
+  goto return_label78;
+  return_label78: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row78(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row78 (src/parser//parser_tables.nit:1923,2--1926:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  goto return_label79;
+  return_label79: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row79(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row79 (src/parser//parser_tables.nit:1929,2--1932:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  goto return_label80;
+  return_label80: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row80(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row80 (src/parser//parser_tables.nit:1935,2--1940:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label81;
+  return_label81: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row81(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row81 (src/parser//parser_tables.nit:1943,2--1949:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(6)) /*Array::add*/;
+  goto return_label82;
+  return_label82: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row82(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row82 (src/parser//parser_tables.nit:1952,2--1955:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  goto return_label83;
+  return_label83: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row83(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row83 (src/parser//parser_tables.nit:1958,2--1961:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  goto return_label84;
+  return_label84: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row84(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row84 (src/parser//parser_tables.nit:1964,2--1969:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label85;
+  return_label85: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row85(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row85 (src/parser//parser_tables.nit:1972,2--2006:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label86;
+  return_label86: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row86(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row86 (src/parser//parser_tables.nit:2009,2--2012:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(566)) /*Array::add*/;
+  goto return_label87;
+  return_label87: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row87(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row87 (src/parser//parser_tables.nit:2015,2--2019:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(366)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+  goto return_label88;
+  return_label88: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row88(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row88 (src/parser//parser_tables.nit:2022,2--2025:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(568)) /*Array::add*/;
+  goto return_label89;
+  return_label89: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row89(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row89 (src/parser//parser_tables.nit:2028,2--2034:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  goto return_label90;
+  return_label90: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row90(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row90 (src/parser//parser_tables.nit:2037,2--2040:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  goto return_label91;
+  return_label91: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row91(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row91 (src/parser//parser_tables.nit:2043,2--2048:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label92;
+  return_label92: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row92(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row92 (src/parser//parser_tables.nit:2051,2--2057:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(7)) /*Array::add*/;
+  goto return_label93;
+  return_label93: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row93(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row93 (src/parser//parser_tables.nit:2060,2--2063:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  goto return_label94;
+  return_label94: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row94(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row94 (src/parser//parser_tables.nit:2066,2--2071:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(93)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label95;
+  return_label95: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row95(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row95 (src/parser//parser_tables.nit:2074,2--2077:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label96;
+  return_label96: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row96(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row96 (src/parser//parser_tables.nit:2080,2--2083:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(551)) /*Array::add*/;
+  goto return_label97;
+  return_label97: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row97(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row97 (src/parser//parser_tables.nit:2086,2--2091:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label98;
+  return_label98: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row98(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row98 (src/parser//parser_tables.nit:2094,2--2128:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(218)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label99;
+  return_label99: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row99(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row99 (src/parser//parser_tables.nit:2131,2--2137:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  goto return_label100;
+  return_label100: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row100(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row100 (src/parser//parser_tables.nit:2140,2--2143:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(365)) /*Array::add*/;
+  goto return_label101;
+  return_label101: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row101(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row101 (src/parser//parser_tables.nit:2146,2--2150:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(100)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(222)) /*Array::add*/;
+  goto return_label102;
+  return_label102: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row102(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row102 (src/parser//parser_tables.nit:2153,2--2157:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label103;
+  return_label103: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row103(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row103 (src/parser//parser_tables.nit:2160,2--2165:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label104;
+  return_label104: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row104(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row104 (src/parser//parser_tables.nit:2168,2--2173:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label105;
+  return_label105: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row105(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row105 (src/parser//parser_tables.nit:2176,2--2181:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label106;
+  return_label106: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row106(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row106 (src/parser//parser_tables.nit:2184,2--2189:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label107;
+  return_label107: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row107(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row107 (src/parser//parser_tables.nit:2192,2--2196:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label108;
+  return_label108: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row108(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row108 (src/parser//parser_tables.nit:2199,2--2202:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(485)) /*Array::add*/;
+  goto return_label109;
+  return_label109: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row109(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row109 (src/parser//parser_tables.nit:2205,2--2208:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(486)) /*Array::add*/;
+  goto return_label110;
+  return_label110: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row110(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row110 (src/parser//parser_tables.nit:2211,2--2214:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(487)) /*Array::add*/;
+  goto return_label111;
+  return_label111: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row111(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row111 (src/parser//parser_tables.nit:2217,2--2220:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(488)) /*Array::add*/;
+  goto return_label112;
+  return_label112: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row112(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row112 (src/parser//parser_tables.nit:2223,2--2228:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label113;
+  return_label113: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row113(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row113 (src/parser//parser_tables.nit:2231,2--2236:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label114;
+  return_label114: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row114(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row114 (src/parser//parser_tables.nit:2239,2--2244:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label115;
+  return_label115: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row115(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row115 (src/parser//parser_tables.nit:2247,2--2250:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(477)) /*Array::add*/;
+  goto return_label116;
+  return_label116: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row116(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row116 (src/parser//parser_tables.nit:2253,2--2256:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(489)) /*Array::add*/;
+  goto return_label117;
+  return_label117: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row117(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row117 (src/parser//parser_tables.nit:2259,2--2262:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(490)) /*Array::add*/;
+  goto return_label118;
+  return_label118: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row118(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row118 (src/parser//parser_tables.nit:2265,2--2268:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(491)) /*Array::add*/;
+  goto return_label119;
+  return_label119: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row119(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row119 (src/parser//parser_tables.nit:2271,2--2274:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(492)) /*Array::add*/;
+  goto return_label120;
+  return_label120: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row120(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row120 (src/parser//parser_tables.nit:2277,2--2280:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label121;
+  return_label121: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row121(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row121 (src/parser//parser_tables.nit:2283,2--2286:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(319)) /*Array::add*/;
+  goto return_label122;
+  return_label122: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row122(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row122 (src/parser//parser_tables.nit:2289,2--2292:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(251)) /*Array::add*/;
+  goto return_label123;
+  return_label123: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row123(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row123 (src/parser//parser_tables.nit:2295,2--2299:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(233)) /*Array::add*/;
+  goto return_label124;
+  return_label124: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row124(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row124 (src/parser//parser_tables.nit:2302,2--2305:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(348)) /*Array::add*/;
+  goto return_label125;
+  return_label125: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row125(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row125 (src/parser//parser_tables.nit:2308,2--2313:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(447)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(234)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(235)) /*Array::add*/;
+  goto return_label126;
+  return_label126: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row126(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row126 (src/parser//parser_tables.nit:2316,2--2319:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(449)) /*Array::add*/;
+  goto return_label127;
+  return_label127: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row127(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row127 (src/parser//parser_tables.nit:2322,2--2325:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(452)) /*Array::add*/;
+  goto return_label128;
+  return_label128: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row128(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row128 (src/parser//parser_tables.nit:2328,2--2342:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(454)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(236)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(237)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(240)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(241)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(242)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(243)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(244)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(245)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(246)) /*Array::add*/;
+  goto return_label129;
+  return_label129: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row129(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row129 (src/parser//parser_tables.nit:2345,2--2351:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(464)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(247)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(248)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(249)) /*Array::add*/;
+  goto return_label130;
+  return_label130: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row130(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row130 (src/parser//parser_tables.nit:2354,2--2357:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(467)) /*Array::add*/;
+  goto return_label131;
+  return_label131: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row131(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row131 (src/parser//parser_tables.nit:2360,2--2363:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(471)) /*Array::add*/;
+  goto return_label132;
+  return_label132: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row132(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row132 (src/parser//parser_tables.nit:2366,2--2370:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(474)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(250)) /*Array::add*/;
+  goto return_label133;
+  return_label133: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row133(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row133 (src/parser//parser_tables.nit:2373,2--2381:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(180)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(181)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(6)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(182)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(7)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(183)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(251)) /*Array::add*/;
+  goto return_label134;
+  return_label134: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row134(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row134 (src/parser//parser_tables.nit:2384,2--2387:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(232)) /*Array::add*/;
+  goto return_label135;
+  return_label135: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row135(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row135 (src/parser//parser_tables.nit:2390,2--2393:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(268)) /*Array::add*/;
+  goto return_label136;
+  return_label136: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row136(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row136 (src/parser//parser_tables.nit:2396,2--2399:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(228)) /*Array::add*/;
+  goto return_label137;
+  return_label137: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row137(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row137 (src/parser//parser_tables.nit:2402,2--2433:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(136)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(253)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label138;
+  return_label138: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row138(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row138 (src/parser//parser_tables.nit:2436,2--2441:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(252)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(256)) /*Array::add*/;
+  goto return_label139;
+  return_label139: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row139(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row139 (src/parser//parser_tables.nit:2444,2--2447:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(193)) /*Array::add*/;
+  goto return_label140;
+  return_label140: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row140(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row140 (src/parser//parser_tables.nit:2450,2--2453:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(192)) /*Array::add*/;
+  goto return_label141;
+  return_label141: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row141(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row141 (src/parser//parser_tables.nit:2456,2--2459:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(194)) /*Array::add*/;
+  goto return_label142;
+  return_label142: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row142(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row142 (src/parser//parser_tables.nit:2462,2--2486:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(141)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label143;
+  return_label143: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row143(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row143 (src/parser//parser_tables.nit:2489,2--2513:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label144;
+  return_label144: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row144(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row144 (src/parser//parser_tables.nit:2516,2--2520:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(260)) /*Array::add*/;
+  goto return_label145;
+  return_label145: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row145(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row145 (src/parser//parser_tables.nit:2523,2--2527:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label146;
+  return_label146: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row146(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row146 (src/parser//parser_tables.nit:2530,2--2535:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label147;
+  return_label147: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row147(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row147 (src/parser//parser_tables.nit:2538,2--2543:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label148;
+  return_label148: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row148(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row148 (src/parser//parser_tables.nit:2546,2--2551:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label149;
+  return_label149: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row149(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row149 (src/parser//parser_tables.nit:2554,2--2559:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label150;
+  return_label150: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row150(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row150 (src/parser//parser_tables.nit:2562,2--2566:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label151;
+  return_label151: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row151(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row151 (src/parser//parser_tables.nit:2569,2--2574:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label152;
+  return_label152: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row152(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row152 (src/parser//parser_tables.nit:2577,2--2582:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label153;
+  return_label153: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row153(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row153 (src/parser//parser_tables.nit:2585,2--2588:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label154;
+  return_label154: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row154(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row154 (src/parser//parser_tables.nit:2591,2--2594:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(237)) /*Array::add*/;
+  goto return_label155;
+  return_label155: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row155(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row155 (src/parser//parser_tables.nit:2597,2--2602:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(283)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(267)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(268)) /*Array::add*/;
+  goto return_label156;
+  return_label156: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row156(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row156 (src/parser//parser_tables.nit:2605,2--2608:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(285)) /*Array::add*/;
+  goto return_label157;
+  return_label157: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row157(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row157 (src/parser//parser_tables.nit:2611,2--2614:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label158;
+  return_label158: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row158(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row158 (src/parser//parser_tables.nit:2617,2--2631:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(290)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(269)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(270)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(273)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(274)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(275)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(276)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(277)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(278)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(279)) /*Array::add*/;
+  goto return_label159;
+  return_label159: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row159(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row159 (src/parser//parser_tables.nit:2634,2--2640:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(280)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(281)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(282)) /*Array::add*/;
+  goto return_label160;
+  return_label160: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row160(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row160 (src/parser//parser_tables.nit:2643,2--2646:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  goto return_label161;
+  return_label161: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row161(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row161 (src/parser//parser_tables.nit:2649,2--2652:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  goto return_label162;
+  return_label162: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row162(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row162 (src/parser//parser_tables.nit:2655,2--2660:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(283)) /*Array::add*/;
+  goto return_label163;
+  return_label163: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row163(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row163 (src/parser//parser_tables.nit:2663,2--2667:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(162)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(285)) /*Array::add*/;
+  goto return_label164;
+  return_label164: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row164(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row164 (src/parser//parser_tables.nit:2670,2--2676:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(286)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label165;
+  return_label165: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row165(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row165 (src/parser//parser_tables.nit:2679,2--2703:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(164)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label166;
+  return_label166: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row166(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row166 (src/parser//parser_tables.nit:2706,2--2709:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(280)) /*Array::add*/;
+  goto return_label167;
+  return_label167: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row167(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row167 (src/parser//parser_tables.nit:2712,2--2716:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(166)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label168;
+  return_label168: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row168(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row168 (src/parser//parser_tables.nit:2719,2--2722:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(316)) /*Array::add*/;
+  goto return_label169;
+  return_label169: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row169(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row169 (src/parser//parser_tables.nit:2725,2--2728:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(248)) /*Array::add*/;
+  goto return_label170;
+  return_label170: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row170(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row170 (src/parser//parser_tables.nit:2731,2--2735:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(169)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(290)) /*Array::add*/;
+  goto return_label171;
+  return_label171: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row171(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row171 (src/parser//parser_tables.nit:2738,2--2762:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(170)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label172;
+  return_label172: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row172(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row172 (src/parser//parser_tables.nit:2765,2--2770:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label173;
+  return_label173: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row173(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row173 (src/parser//parser_tables.nit:2773,2--2778:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label174;
+  return_label174: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row174(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row174 (src/parser//parser_tables.nit:2781,2--2787:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(315)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(294)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  goto return_label175;
+  return_label175: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row175(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row175 (src/parser//parser_tables.nit:2790,2--2793:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(247)) /*Array::add*/;
+  goto return_label176;
+  return_label176: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row176(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row176 (src/parser//parser_tables.nit:2796,2--2820:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(175)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label177;
+  return_label177: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row177(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row177 (src/parser//parser_tables.nit:2823,2--2826:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(266)) /*Array::add*/;
+  goto return_label178;
+  return_label178: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row178(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row178 (src/parser//parser_tables.nit:2829,2--2832:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(267)) /*Array::add*/;
+  goto return_label179;
+  return_label179: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row179(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row179 (src/parser//parser_tables.nit:2835,2--2859:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(178)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label180;
+  return_label180: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row180(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row180 (src/parser//parser_tables.nit:2862,2--2867:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label181;
+  return_label181: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row181(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row181 (src/parser//parser_tables.nit:2870,2--2873:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  goto return_label182;
+  return_label182: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row182(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row182 (src/parser//parser_tables.nit:2876,2--2880:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(181)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(299)) /*Array::add*/;
+  goto return_label183;
+  return_label183: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row183(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row183 (src/parser//parser_tables.nit:2883,2--2886:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(81)) /*Array::add*/;
+  goto return_label184;
+  return_label184: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row184(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row184 (src/parser//parser_tables.nit:2889,2--2892:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  goto return_label185;
+  return_label185: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row185(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row185 (src/parser//parser_tables.nit:2895,2--2912:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(184)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label186;
+  return_label186: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row186(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row186 (src/parser//parser_tables.nit:2915,2--2920:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label187;
+  return_label187: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row187(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row187 (src/parser//parser_tables.nit:2923,2--2926:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(557)) /*Array::add*/;
+  goto return_label188;
+  return_label188: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row188(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row188 (src/parser//parser_tables.nit:2929,2--2959:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(84)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(365)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label189;
+  return_label189: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row189(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row189 (src/parser//parser_tables.nit:2962,2--2965:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  goto return_label190;
+  return_label190: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row190(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row190 (src/parser//parser_tables.nit:2968,2--2973:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label191;
+  return_label191: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row191(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row191 (src/parser//parser_tables.nit:2976,2--2980:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(190)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(319)) /*Array::add*/;
+  goto return_label192;
+  return_label192: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row192(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row192 (src/parser//parser_tables.nit:2983,2--2988:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label193;
+  return_label193: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row193(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row193 (src/parser//parser_tables.nit:2991,2--2996:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label194;
+  return_label194: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row194(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row194 (src/parser//parser_tables.nit:2999,2--3005:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(320)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(322)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  goto return_label195;
+  return_label195: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row195(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row195 (src/parser//parser_tables.nit:3008,2--3011:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(340)) /*Array::add*/;
+  goto return_label196;
+  return_label196: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row196(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row196 (src/parser//parser_tables.nit:3014,2--3017:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(341)) /*Array::add*/;
+  goto return_label197;
+  return_label197: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row197(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row197 (src/parser//parser_tables.nit:3020,2--3023:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(559)) /*Array::add*/;
+  goto return_label198;
+  return_label198: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row198(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row198 (src/parser//parser_tables.nit:3026,2--3031:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label199;
+  return_label199: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row199(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row199 (src/parser//parser_tables.nit:3034,2--3037:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(335)) /*Array::add*/;
+  goto return_label200;
+  return_label200: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row200(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row200 (src/parser//parser_tables.nit:3040,2--3045:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(199)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(80)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(194)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(81)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(195)) /*Array::add*/;
+  goto return_label201;
+  return_label201: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row201(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row201 (src/parser//parser_tables.nit:3048,2--3072:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(200)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label202;
+  return_label202: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row202(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row202 (src/parser//parser_tables.nit:3075,2--3100:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label203;
+  return_label203: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row203(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row203 (src/parser//parser_tables.nit:3103,2--3107:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(202)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label204;
+  return_label204: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row204(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row204 (src/parser//parser_tables.nit:3110,2--3113:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(564)) /*Array::add*/;
+  goto return_label205;
+  return_label205: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row205(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row205 (src/parser//parser_tables.nit:3116,2--3119:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(355)) /*Array::add*/;
+  goto return_label206;
+  return_label206: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row206(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row206 (src/parser//parser_tables.nit:3122,2--3126:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(367)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+  goto return_label207;
+  return_label207: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row207(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row207 (src/parser//parser_tables.nit:3129,2--3135:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  goto return_label208;
+  return_label208: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row208(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row208 (src/parser//parser_tables.nit:3138,2--3141:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  goto return_label209;
+  return_label209: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row209(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row209 (src/parser//parser_tables.nit:3144,2--3149:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(208)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label210;
+  return_label210: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row210(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row210 (src/parser//parser_tables.nit:3152,2--3158:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  goto return_label211;
+  return_label211: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row211(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row211 (src/parser//parser_tables.nit:3161,2--3169:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(210)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(180)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(181)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(6)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(182)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(7)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(183)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(184)) /*Array::add*/;
+  goto return_label212;
+  return_label212: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row212(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row212 (src/parser//parser_tables.nit:3172,2--3175:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  goto return_label213;
+  return_label213: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row213(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row213 (src/parser//parser_tables.nit:3178,2--3184:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+  goto return_label214;
+  return_label214: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row214(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row214 (src/parser//parser_tables.nit:3187,2--3193:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  goto return_label215;
+  return_label215: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row215(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row215 (src/parser//parser_tables.nit:3196,2--3199:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  goto return_label216;
+  return_label216: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row216(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row216 (src/parser//parser_tables.nit:3202,2--3207:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(215)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label217;
+  return_label217: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row217(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row217 (src/parser//parser_tables.nit:3210,2--3216:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  goto return_label218;
+  return_label218: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row218(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row218 (src/parser//parser_tables.nit:3219,2--3222:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(184)) /*Array::add*/;
+  goto return_label219;
+  return_label219: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row219(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row219 (src/parser//parser_tables.nit:3225,2--3231:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label220;
+  return_label220: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row220(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row220 (src/parser//parser_tables.nit:3234,2--3238:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(219)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(184)) /*Array::add*/;
+  goto return_label221;
+  return_label221: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row221(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row221 (src/parser//parser_tables.nit:3241,2--3244:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  goto return_label222;
+  return_label222: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row222(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row222 (src/parser//parser_tables.nit:3247,2--3250:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(552)) /*Array::add*/;
+  goto return_label223;
+  return_label223: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row223(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row223 (src/parser//parser_tables.nit:3253,2--3258:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(222)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label224;
+  return_label224: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row224(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row224 (src/parser//parser_tables.nit:3261,2--3266:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label225;
+  return_label225: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row225(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row225 (src/parser//parser_tables.nit:3269,2--3272:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(483)) /*Array::add*/;
+  goto return_label226;
+  return_label226: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row226(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row226 (src/parser//parser_tables.nit:3275,2--3299:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(225)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label227;
+  return_label227: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row227(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row227 (src/parser//parser_tables.nit:3302,2--3323:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(226)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label228;
+  return_label228: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row228(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row228 (src/parser//parser_tables.nit:3326,2--3330:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(227)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  goto return_label229;
+  return_label229: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row229(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row229 (src/parser//parser_tables.nit:3333,2--3353:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(228)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label230;
+  return_label230: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row230(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row230 (src/parser//parser_tables.nit:3356,2--3359:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(480)) /*Array::add*/;
+  goto return_label231;
+  return_label231: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row231(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row231 (src/parser//parser_tables.nit:3362,2--3387:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(230)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label232;
+  return_label232: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row232(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row232 (src/parser//parser_tables.nit:3390,2--3410:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(231)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label233;
+  return_label233: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row233(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row233 (src/parser//parser_tables.nit:3413,2--3416:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(479)) /*Array::add*/;
+  goto return_label234;
+  return_label234: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row234(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row234 (src/parser//parser_tables.nit:3419,2--3423:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label235;
+  return_label235: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row235(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row235 (src/parser//parser_tables.nit:3426,2--3431:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label236;
+  return_label236: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row236(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row236 (src/parser//parser_tables.nit:3434,2--3439:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label237;
+  return_label237: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row237(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row237 (src/parser//parser_tables.nit:3442,2--3447:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label238;
+  return_label238: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row238(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row238 (src/parser//parser_tables.nit:3450,2--3455:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label239;
+  return_label239: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row239(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row239 (src/parser//parser_tables.nit:3458,2--3463:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label240;
+  return_label240: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row240(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row240 (src/parser//parser_tables.nit:3466,2--3471:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label241;
+  return_label241: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row241(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row241 (src/parser//parser_tables.nit:3474,2--3479:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label242;
+  return_label242: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row242(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row242 (src/parser//parser_tables.nit:3482,2--3487:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label243;
+  return_label243: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row243(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row243 (src/parser//parser_tables.nit:3490,2--3495:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label244;
+  return_label244: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row244(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row244 (src/parser//parser_tables.nit:3498,2--3503:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label245;
+  return_label245: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row245(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row245 (src/parser//parser_tables.nit:3506,2--3511:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label246;
+  return_label246: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row246(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row246 (src/parser//parser_tables.nit:3514,2--3519:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label247;
+  return_label247: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row247(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row247 (src/parser//parser_tables.nit:3522,2--3527:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label248;
+  return_label248: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row248(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row248 (src/parser//parser_tables.nit:3530,2--3535:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label249;
+  return_label249: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row249(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row249 (src/parser//parser_tables.nit:3538,2--3543:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label250;
+  return_label250: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row250(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row250 (src/parser//parser_tables.nit:3546,2--3551:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label251;
+  return_label251: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row251(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row251 (src/parser//parser_tables.nit:3554,2--3559:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label252;
+  return_label252: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row252(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row252 (src/parser//parser_tables.nit:3562,2--3579:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(251)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label253;
+  return_label253: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row253(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row253 (src/parser//parser_tables.nit:3582,2--3587:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label254;
+  return_label254: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row254(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row254 (src/parser//parser_tables.nit:3590,2--3593:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(231)) /*Array::add*/;
+  goto return_label255;
+  return_label255: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row255(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row255 (src/parser//parser_tables.nit:3596,2--3601:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(254)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label256;
+  return_label256: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row256(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row256 (src/parser//parser_tables.nit:3604,2--3609:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label257;
+  return_label257: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row257(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row257 (src/parser//parser_tables.nit:3612,2--3617:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label258;
+  return_label258: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row258(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row258 (src/parser//parser_tables.nit:3620,2--3624:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(253)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(376)) /*Array::add*/;
+  goto return_label259;
+  return_label259: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row259(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row259 (src/parser//parser_tables.nit:3627,2--3632:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label260;
+  return_label260: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row260(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row260 (src/parser//parser_tables.nit:3635,2--3640:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label261;
+  return_label261: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row261(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row261 (src/parser//parser_tables.nit:3643,2--3648:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label262;
+  return_label262: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row262(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row262 (src/parser//parser_tables.nit:3651,2--3675:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(261)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label263;
+  return_label263: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row263(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row263 (src/parser//parser_tables.nit:3678,2--3701:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(262)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label264;
+  return_label264: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row264(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row264 (src/parser//parser_tables.nit:3704,2--3708:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(263)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label265;
+  return_label265: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row265(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row265 (src/parser//parser_tables.nit:3711,2--3733:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(264)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label266;
+  return_label266: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row266(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row266 (src/parser//parser_tables.nit:3736,2--3758:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(265)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label267;
+  return_label267: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row267(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row267 (src/parser//parser_tables.nit:3761,2--3764:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(315)) /*Array::add*/;
+  goto return_label268;
+  return_label268: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row268(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row268 (src/parser//parser_tables.nit:3767,2--3772:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label269;
+  return_label269: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row269(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row269 (src/parser//parser_tables.nit:3775,2--3780:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label270;
+  return_label270: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row270(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row270 (src/parser//parser_tables.nit:3783,2--3788:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label271;
+  return_label271: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row271(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row271 (src/parser//parser_tables.nit:3791,2--3796:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label272;
+  return_label272: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row272(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row272 (src/parser//parser_tables.nit:3799,2--3804:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label273;
+  return_label273: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row273(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row273 (src/parser//parser_tables.nit:3807,2--3812:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label274;
+  return_label274: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row274(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row274 (src/parser//parser_tables.nit:3815,2--3820:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label275;
+  return_label275: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row275(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row275 (src/parser//parser_tables.nit:3823,2--3828:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label276;
+  return_label276: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row276(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row276 (src/parser//parser_tables.nit:3831,2--3836:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label277;
+  return_label277: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row277(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row277 (src/parser//parser_tables.nit:3839,2--3844:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label278;
+  return_label278: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row278(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row278 (src/parser//parser_tables.nit:3847,2--3852:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label279;
+  return_label279: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row279(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row279 (src/parser//parser_tables.nit:3855,2--3860:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label280;
+  return_label280: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row280(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row280 (src/parser//parser_tables.nit:3863,2--3868:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label281;
+  return_label281: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row281(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row281 (src/parser//parser_tables.nit:3871,2--3876:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label282;
+  return_label282: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row282(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row282 (src/parser//parser_tables.nit:3879,2--3884:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label283;
+  return_label283: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row283(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row283 (src/parser//parser_tables.nit:3887,2--3892:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label284;
+  return_label284: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row284(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row284 (src/parser//parser_tables.nit:3895,2--3900:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label285;
+  return_label285: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row285(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row285 (src/parser//parser_tables.nit:3903,2--3906:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(320)) /*Array::add*/;
+  goto return_label286;
+  return_label286: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row286(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row286 (src/parser//parser_tables.nit:3909,2--3913:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label287;
+  return_label287: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row287(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row287 (src/parser//parser_tables.nit:3916,2--3919:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(282)) /*Array::add*/;
+  goto return_label288;
+  return_label288: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row288(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row288 (src/parser//parser_tables.nit:3922,2--3925:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(281)) /*Array::add*/;
+  goto return_label289;
+  return_label289: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row289(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row289 (src/parser//parser_tables.nit:3928,2--3932:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(222)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(402)) /*Array::add*/;
+  goto return_label290;
+  return_label290: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row290(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row290 (src/parser//parser_tables.nit:3935,2--3939:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(289)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(403)) /*Array::add*/;
+  goto return_label291;
+  return_label291: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row291(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row291 (src/parser//parser_tables.nit:3942,2--3945:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(334)) /*Array::add*/;
+  goto return_label292;
+  return_label292: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row292(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row292 (src/parser//parser_tables.nit:3948,2--3953:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label293;
+  return_label293: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row293(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row293 (src/parser//parser_tables.nit:3956,2--3959:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(358)) /*Array::add*/;
+  goto return_label294;
+  return_label294: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row294(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row294 (src/parser//parser_tables.nit:3962,2--3965:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(357)) /*Array::add*/;
+  goto return_label295;
+  return_label295: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row295(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row295 (src/parser//parser_tables.nit:3968,2--3992:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(294)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label296;
+  return_label296: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row296(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row296 (src/parser//parser_tables.nit:3995,2--4019:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(295)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label297;
+  return_label297: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row297(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row297 (src/parser//parser_tables.nit:4022,2--4025:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(257)) /*Array::add*/;
+  goto return_label298;
+  return_label298: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row298(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row298 (src/parser//parser_tables.nit:4028,2--4031:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(262)) /*Array::add*/;
+  goto return_label299;
+  return_label299: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row299(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row299 (src/parser//parser_tables.nit:4034,2--4039:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(298)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(407)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(408)) /*Array::add*/;
+  goto return_label300;
+  return_label300: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row300(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row300 (src/parser//parser_tables.nit:4042,2--4045:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(80)) /*Array::add*/;
+  goto return_label301;
+  return_label301: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row301(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row301 (src/parser//parser_tables.nit:4048,2--4052:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(409)) /*Array::add*/;
+  goto return_label302;
+  return_label302: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row302(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row302 (src/parser//parser_tables.nit:4055,2--4058:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(196)) /*Array::add*/;
+  goto return_label303;
+  return_label303: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row303(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row303 (src/parser//parser_tables.nit:4061,2--4064:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(197)) /*Array::add*/;
+  goto return_label304;
+  return_label304: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row304(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row304 (src/parser//parser_tables.nit:4067,2--4070:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(198)) /*Array::add*/;
+  goto return_label305;
+  return_label305: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row305(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row305 (src/parser//parser_tables.nit:4073,2--4076:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(199)) /*Array::add*/;
+  goto return_label306;
+  return_label306: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row306(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row306 (src/parser//parser_tables.nit:4079,2--4082:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(200)) /*Array::add*/;
+  goto return_label307;
+  return_label307: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row307(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row307 (src/parser//parser_tables.nit:4085,2--4088:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(201)) /*Array::add*/;
+  goto return_label308;
+  return_label308: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row308(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row308 (src/parser//parser_tables.nit:4091,2--4094:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(202)) /*Array::add*/;
+  goto return_label309;
+  return_label309: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row309(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row309 (src/parser//parser_tables.nit:4097,2--4100:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(205)) /*Array::add*/;
+  goto return_label310;
+  return_label310: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row310(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row310 (src/parser//parser_tables.nit:4103,2--4106:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(203)) /*Array::add*/;
+  goto return_label311;
+  return_label311: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row311(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row311 (src/parser//parser_tables.nit:4109,2--4112:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(206)) /*Array::add*/;
+  goto return_label312;
+  return_label312: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row312(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row312 (src/parser//parser_tables.nit:4115,2--4118:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(204)) /*Array::add*/;
+  goto return_label313;
+  return_label313: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row313(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row313 (src/parser//parser_tables.nit:4121,2--4124:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(208)) /*Array::add*/;
+  goto return_label314;
+  return_label314: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row314(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row314 (src/parser//parser_tables.nit:4127,2--4131:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(195)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(410)) /*Array::add*/;
+  goto return_label315;
+  return_label315: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row315(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row315 (src/parser//parser_tables.nit:4134,2--4139:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label316;
+  return_label316: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row316(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row316 (src/parser//parser_tables.nit:4142,2--4146:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(315)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(415)) /*Array::add*/;
+  goto return_label317;
+  return_label317: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row317(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row317 (src/parser//parser_tables.nit:4149,2--4152:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(233)) /*Array::add*/;
+  goto return_label318;
+  return_label318: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row318(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row318 (src/parser//parser_tables.nit:4155,2--4158:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(558)) /*Array::add*/;
+  goto return_label319;
+  return_label319: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row319(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row319 (src/parser//parser_tables.nit:4161,2--4164:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  goto return_label320;
+  return_label320: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row320(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row320 (src/parser//parser_tables.nit:4167,2--4200:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(319)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label321;
+  return_label321: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row321(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row321 (src/parser//parser_tables.nit:4203,2--4227:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(320)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label322;
+  return_label322: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row322(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row322 (src/parser//parser_tables.nit:4230,2--4236:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(321)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(418)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(419)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(420)) /*Array::add*/;
+  goto return_label323;
+  return_label323: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row323(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row323 (src/parser//parser_tables.nit:4239,2--4263:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(322)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label324;
+  return_label324: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row324(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row324 (src/parser//parser_tables.nit:4266,2--4290:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(323)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label325;
+  return_label325: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row325(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row325 (src/parser//parser_tables.nit:4293,2--4317:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(324)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label326;
+  return_label326: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row326(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row326 (src/parser//parser_tables.nit:4320,2--4323:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(560)) /*Array::add*/;
+  goto return_label327;
+  return_label327: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row327(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row327 (src/parser//parser_tables.nit:4326,2--4329:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(336)) /*Array::add*/;
+  goto return_label328;
+  return_label328: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row328(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row328 (src/parser//parser_tables.nit:4332,2--4337:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label329;
+  return_label329: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row329(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row329 (src/parser//parser_tables.nit:4340,2--4343:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(317)) /*Array::add*/;
+  goto return_label330;
+  return_label330: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row330(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row330 (src/parser//parser_tables.nit:4346,2--4349:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(249)) /*Array::add*/;
+  goto return_label331;
+  return_label331: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row331(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row331 (src/parser//parser_tables.nit:4352,2--4355:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  goto return_label332;
+  return_label332: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row332(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row332 (src/parser//parser_tables.nit:4358,2--4364:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  goto return_label333;
+  return_label333: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row333(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row333 (src/parser//parser_tables.nit:4367,2--4373:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+  goto return_label334;
+  return_label334: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row334(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row334 (src/parser//parser_tables.nit:4376,2--4379:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  goto return_label335;
+  return_label335: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row335(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row335 (src/parser//parser_tables.nit:4382,2--4388:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  goto return_label336;
+  return_label336: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row336(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row336 (src/parser//parser_tables.nit:4391,2--4394:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  goto return_label337;
+  return_label337: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row337(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row337 (src/parser//parser_tables.nit:4397,2--4400:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  goto return_label338;
+  return_label338: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row338(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row338 (src/parser//parser_tables.nit:4403,2--4409:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  goto return_label339;
+  return_label339: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row339(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row339 (src/parser//parser_tables.nit:4412,2--4418:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  goto return_label340;
+  return_label340: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row340(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row340 (src/parser//parser_tables.nit:4421,2--4424:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  goto return_label341;
+  return_label341: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row341(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row341 (src/parser//parser_tables.nit:4427,2--4433:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  goto return_label342;
+  return_label342: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row342(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row342 (src/parser//parser_tables.nit:4436,2--4440:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(341)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(251)) /*Array::add*/;
+  goto return_label343;
+  return_label343: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row343(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row343 (src/parser//parser_tables.nit:4443,2--4446:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  goto return_label344;
+  return_label344: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row344(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row344 (src/parser//parser_tables.nit:4449,2--4474:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(343)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(433)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label345;
+  return_label345: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row345(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row345 (src/parser//parser_tables.nit:4477,2--4482:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label346;
+  return_label346: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row346(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row346 (src/parser//parser_tables.nit:4485,2--4488:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(453)) /*Array::add*/;
+  goto return_label347;
+  return_label347: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row347(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row347 (src/parser//parser_tables.nit:4491,2--4495:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(445)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(436)) /*Array::add*/;
+  goto return_label348;
+  return_label348: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row348(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row348 (src/parser//parser_tables.nit:4498,2--4503:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(437)) /*Array::add*/;
+  goto return_label349;
+  return_label349: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row349(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row349 (src/parser//parser_tables.nit:4506,2--4509:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(473)) /*Array::add*/;
+  goto return_label350;
+  return_label350: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row350(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row350 (src/parser//parser_tables.nit:4512,2--4520:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(344)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(349)) /*Array::add*/;
+  goto return_label351;
+  return_label351: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row351(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row351 (src/parser//parser_tables.nit:4523,2--4528:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label352;
+  return_label352: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row352(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row352 (src/parser//parser_tables.nit:4531,2--4534:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(472)) /*Array::add*/;
+  goto return_label353;
+  return_label353: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row353(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row353 (src/parser//parser_tables.nit:4537,2--4540:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(481)) /*Array::add*/;
+  goto return_label354;
+  return_label354: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row354(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row354 (src/parser//parser_tables.nit:4543,2--4564:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(353)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label355;
+  return_label355: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row355(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row355 (src/parser//parser_tables.nit:4567,2--4588:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(354)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label356;
+  return_label356: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row356(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row356 (src/parser//parser_tables.nit:4591,2--4611:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(355)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label357;
+  return_label357: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row357(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row357 (src/parser//parser_tables.nit:4614,2--4618:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(356)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  goto return_label358;
+  return_label358: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row358(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row358 (src/parser//parser_tables.nit:4621,2--4641:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(357)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label359;
+  return_label359: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row359(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row359 (src/parser//parser_tables.nit:4644,2--4664:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(358)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label360;
+  return_label360: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row360(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row360 (src/parser//parser_tables.nit:4667,2--4687:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(359)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label361;
+  return_label361: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row361(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row361 (src/parser//parser_tables.nit:4690,2--4710:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(360)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label362;
+  return_label362: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row362(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row362 (src/parser//parser_tables.nit:4713,2--4733:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(361)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label363;
+  return_label363: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row363(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row363 (src/parser//parser_tables.nit:4736,2--4756:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(362)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label364;
+  return_label364: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row364(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row364 (src/parser//parser_tables.nit:4759,2--4779:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(363)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label365;
+  return_label365: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row365(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row365 (src/parser//parser_tables.nit:4782,2--4802:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label366;
+  return_label366: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row366(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row366 (src/parser//parser_tables.nit:4805,2--4825:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(365)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label367;
+  return_label367: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row367(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row367 (src/parser//parser_tables.nit:4828,2--4848:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(366)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label368;
+  return_label368: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row368(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row368 (src/parser//parser_tables.nit:4851,2--4871:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(367)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label369;
+  return_label369: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row369(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row369 (src/parser//parser_tables.nit:4874,2--4894:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(368)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label370;
+  return_label370: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row370(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row370 (src/parser//parser_tables.nit:4897,2--4903:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(369)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(456)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(457)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(458)) /*Array::add*/;
+  goto return_label371;
+  return_label371: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row371(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row371 (src/parser//parser_tables.nit:4906,2--4911:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label372;
+  return_label372: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row372(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row372 (src/parser//parser_tables.nit:4914,2--4918:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(371)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(460)) /*Array::add*/;
+  goto return_label373;
+  return_label373: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row373(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row373 (src/parser//parser_tables.nit:4921,2--4952:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(372)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(461)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label374;
+  return_label374: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row374(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row374 (src/parser//parser_tables.nit:4955,2--4960:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(373)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label375;
+  return_label375: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row375(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row375 (src/parser//parser_tables.nit:4963,2--4967:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(374)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label376;
+  return_label376: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row376(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row376 (src/parser//parser_tables.nit:4970,2--4994:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(375)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label377;
+  return_label377: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row377(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row377 (src/parser//parser_tables.nit:4997,2--5002:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label378;
+  return_label378: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row378(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row378 (src/parser//parser_tables.nit:5005,2--5009:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(377)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(466)) /*Array::add*/;
+  goto return_label379;
+  return_label379: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row379(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row379 (src/parser//parser_tables.nit:5012,2--5016:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(378)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(467)) /*Array::add*/;
+  goto return_label380;
+  return_label380: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row380(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row380 (src/parser//parser_tables.nit:5019,2--5023:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(379)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(468)) /*Array::add*/;
+  goto return_label381;
+  return_label381: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row381(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row381 (src/parser//parser_tables.nit:5026,2--5031:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label382;
+  return_label382: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row382(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row382 (src/parser//parser_tables.nit:5034,2--5037:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(289)) /*Array::add*/;
+  goto return_label383;
+  return_label383: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row383(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row383 (src/parser//parser_tables.nit:5040,2--5045:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(403)) /*Array::add*/;
+  goto return_label384;
+  return_label384: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row384(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row384 (src/parser//parser_tables.nit:5048,2--5051:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  goto return_label385;
+  return_label385: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row385(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row385 (src/parser//parser_tables.nit:5054,2--5057:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  goto return_label386;
+  return_label386: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row386(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row386 (src/parser//parser_tables.nit:5060,2--5083:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(385)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label387;
+  return_label387: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row387(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row387 (src/parser//parser_tables.nit:5086,2--5109:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(386)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label388;
+  return_label388: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row388(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row388 (src/parser//parser_tables.nit:5112,2--5134:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(387)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label389;
+  return_label389: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row389(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row389 (src/parser//parser_tables.nit:5137,2--5141:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(388)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label390;
+  return_label390: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row390(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row390 (src/parser//parser_tables.nit:5144,2--5166:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(389)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label391;
+  return_label391: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row391(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row391 (src/parser//parser_tables.nit:5169,2--5191:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(390)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label392;
+  return_label392: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row392(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row392 (src/parser//parser_tables.nit:5194,2--5216:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(391)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label393;
+  return_label393: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row393(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row393 (src/parser//parser_tables.nit:5219,2--5241:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(392)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label394;
+  return_label394: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row394(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row394 (src/parser//parser_tables.nit:5244,2--5266:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(393)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label395;
+  return_label395: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row395(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row395 (src/parser//parser_tables.nit:5269,2--5291:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(394)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label396;
+  return_label396: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row396(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row396 (src/parser//parser_tables.nit:5294,2--5316:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(395)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label397;
+  return_label397: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row397(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row397 (src/parser//parser_tables.nit:5319,2--5341:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(396)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label398;
+  return_label398: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row398(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row398 (src/parser//parser_tables.nit:5344,2--5366:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(397)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label399;
+  return_label399: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row399(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row399 (src/parser//parser_tables.nit:5369,2--5391:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(398)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label400;
+  return_label400: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row400(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row400 (src/parser//parser_tables.nit:5394,2--5416:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(399)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label401;
+  return_label401: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row401(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row401 (src/parser//parser_tables.nit:5419,2--5441:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(400)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label402;
+  return_label402: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row402(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row402 (src/parser//parser_tables.nit:5444,2--5450:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(401)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(487)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(488)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(489)) /*Array::add*/;
+  goto return_label403;
+  return_label403: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row403(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row403 (src/parser//parser_tables.nit:5453,2--5458:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label404;
+  return_label404: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row404(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row404 (src/parser//parser_tables.nit:5461,2--5466:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label405;
+  return_label405: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row405(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row405 (src/parser//parser_tables.nit:5469,2--5475:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(404)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(492)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(58)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(494)) /*Array::add*/;
+  goto return_label406;
+  return_label406: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row406(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row406 (src/parser//parser_tables.nit:5478,2--5481:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(259)) /*Array::add*/;
+  goto return_label407;
+  return_label407: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row407(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row407 (src/parser//parser_tables.nit:5484,2--5487:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(264)) /*Array::add*/;
+  goto return_label408;
+  return_label408: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row408(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row408 (src/parser//parser_tables.nit:5490,2--5495:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(407)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label409;
+  return_label409: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row409(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row409 (src/parser//parser_tables.nit:5498,2--5503:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(408)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label410;
+  return_label410: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row410(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row410 (src/parser//parser_tables.nit:5506,2--5510:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(207)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(499)) /*Array::add*/;
+  goto return_label411;
+  return_label411: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row411(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row411 (src/parser//parser_tables.nit:5513,2--5516:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(209)) /*Array::add*/;
+  goto return_label412;
+  return_label412: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row412(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row412 (src/parser//parser_tables.nit:5519,2--5524:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label413;
+  return_label413: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row413(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row413 (src/parser//parser_tables.nit:5527,2--5533:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(501)) /*Array::add*/;
+  goto return_label414;
+  return_label414: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row414(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row414 (src/parser//parser_tables.nit:5536,2--5540:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(212)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label415;
+  return_label415: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row415(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row415 (src/parser//parser_tables.nit:5543,2--5546:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(213)) /*Array::add*/;
+  goto return_label416;
+  return_label416: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row416(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row416 (src/parser//parser_tables.nit:5549,2--5555:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(504)) /*Array::add*/;
+  goto return_label417;
+  return_label417: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row417(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row417 (src/parser//parser_tables.nit:5558,2--5561:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(278)) /*Array::add*/;
+  goto return_label418;
+  return_label418: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row418(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row418 (src/parser//parser_tables.nit:5564,2--5569:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label419;
+  return_label419: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row419(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row419 (src/parser//parser_tables.nit:5572,2--5597:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label420;
+  return_label420: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row420(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row420 (src/parser//parser_tables.nit:5600,2--5627:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(75)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  goto return_label421;
+  return_label421: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row421(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row421 (src/parser//parser_tables.nit:5630,2--5636:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(515)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  goto return_label422;
+  return_label422: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row422(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row422 (src/parser//parser_tables.nit:5639,2--5642:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(260)) /*Array::add*/;
+  goto return_label423;
+  return_label423: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row423(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row423 (src/parser//parser_tables.nit:5645,2--5648:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(265)) /*Array::add*/;
+  goto return_label424;
+  return_label424: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row424(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row424 (src/parser//parser_tables.nit:5651,2--5656:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label425;
+  return_label425: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row425(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row425 (src/parser//parser_tables.nit:5659,2--5662:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(337)) /*Array::add*/;
+  goto return_label426;
+  return_label426: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row426(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row426 (src/parser//parser_tables.nit:5665,2--5668:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  goto return_label427;
+  return_label427: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row427(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row427 (src/parser//parser_tables.nit:5671,2--5674:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  goto return_label428;
+  return_label428: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row428(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row428 (src/parser//parser_tables.nit:5677,2--5683:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+  goto return_label429;
+  return_label429: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row429(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row429 (src/parser//parser_tables.nit:5686,2--5689:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  goto return_label430;
+  return_label430: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row430(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row430 (src/parser//parser_tables.nit:5692,2--5695:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  goto return_label431;
+  return_label431: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row431(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row431 (src/parser//parser_tables.nit:5698,2--5701:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  goto return_label432;
+  return_label432: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row432(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row432 (src/parser//parser_tables.nit:5704,2--5710:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label433;
+  return_label433: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row433(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row433 (src/parser//parser_tables.nit:5713,2--5716:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  goto return_label434;
+  return_label434: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row434(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row434 (src/parser//parser_tables.nit:5719,2--5722:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(344)) /*Array::add*/;
+  goto return_label435;
+  return_label435: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row435(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row435 (src/parser//parser_tables.nit:5725,2--5730:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label436;
+  return_label436: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row436(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row436 (src/parser//parser_tables.nit:5733,2--5737:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(435)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(521)) /*Array::add*/;
+  goto return_label437;
+  return_label437: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row437(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row437 (src/parser//parser_tables.nit:5740,2--5745:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label438;
+  return_label438: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row438(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row438 (src/parser//parser_tables.nit:5748,2--5753:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label439;
+  return_label439: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row439(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row439 (src/parser//parser_tables.nit:5756,2--5759:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(475)) /*Array::add*/;
+  goto return_label440;
+  return_label440: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row440(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row440 (src/parser//parser_tables.nit:5762,2--5767:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(439)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(524)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label441;
+  return_label441: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row441(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row441 (src/parser//parser_tables.nit:5770,2--5773:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(451)) /*Array::add*/;
+  goto return_label442;
+  return_label442: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row442(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row442 (src/parser//parser_tables.nit:5776,2--5779:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(450)) /*Array::add*/;
+  goto return_label443;
+  return_label443: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row443(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row443 (src/parser//parser_tables.nit:5782,2--5787:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(456)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label444;
+  return_label444: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row444(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row444 (src/parser//parser_tables.nit:5790,2--5793:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(463)) /*Array::add*/;
+  goto return_label445;
+  return_label445: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row445(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row445 (src/parser//parser_tables.nit:5796,2--5802:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(465)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(247)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(248)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(249)) /*Array::add*/;
+  goto return_label446;
+  return_label446: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row446(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row446 (src/parser//parser_tables.nit:5805,2--5811:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(466)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(247)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(248)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(249)) /*Array::add*/;
+  goto return_label447;
+  return_label447: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row447(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row447 (src/parser//parser_tables.nit:5814,2--5819:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(455)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label448;
+  return_label448: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row448(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row448 (src/parser//parser_tables.nit:5822,2--5827:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(457)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label449;
+  return_label449: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row449(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row449 (src/parser//parser_tables.nit:5830,2--5835:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(458)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label450;
+  return_label450: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row450(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row450 (src/parser//parser_tables.nit:5838,2--5843:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(459)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label451;
+  return_label451: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row451(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row451 (src/parser//parser_tables.nit:5846,2--5851:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(460)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label452;
+  return_label452: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row452(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row452 (src/parser//parser_tables.nit:5854,2--5859:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(461)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label453;
+  return_label453: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row453(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row453 (src/parser//parser_tables.nit:5862,2--5867:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(462)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  goto return_label454;
+  return_label454: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row454(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row454 (src/parser//parser_tables.nit:5870,2--5873:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(468)) /*Array::add*/;
+  goto return_label455;
+  return_label455: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row455(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row455 (src/parser//parser_tables.nit:5876,2--5879:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(469)) /*Array::add*/;
+  goto return_label456;
+  return_label456: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row456(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row456 (src/parser//parser_tables.nit:5882,2--5885:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(470)) /*Array::add*/;
+  goto return_label457;
+  return_label457: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row457(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row457 (src/parser//parser_tables.nit:5888,2--5892:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label458;
+  return_label458: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row458(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row458 (src/parser//parser_tables.nit:5895,2--5899:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label459;
+  return_label459: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row459(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row459 (src/parser//parser_tables.nit:5902,2--5905:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(476)) /*Array::add*/;
+  goto return_label460;
+  return_label460: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row460(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row460 (src/parser//parser_tables.nit:5908,2--5914:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(528)) /*Array::add*/;
+  goto return_label461;
+  return_label461: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row461(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row461 (src/parser//parser_tables.nit:5917,2--5923:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(504)) /*Array::add*/;
+  goto return_label462;
+  return_label462: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row462(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row462 (src/parser//parser_tables.nit:5926,2--5929:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(229)) /*Array::add*/;
+  goto return_label463;
+  return_label463: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row463(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row463 (src/parser//parser_tables.nit:5932,2--5963:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(462)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(534)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label464;
+  return_label464: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row464(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row464 (src/parser//parser_tables.nit:5966,2--5969:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(227)) /*Array::add*/;
+  goto return_label465;
+  return_label465: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row465(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row465 (src/parser//parser_tables.nit:5972,2--5975:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(254)) /*Array::add*/;
+  goto return_label466;
+  return_label466: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row466(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row466 (src/parser//parser_tables.nit:5978,2--6002:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(465)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label467;
+  return_label467: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row467(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row467 (src/parser//parser_tables.nit:6005,2--6039:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(466)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(536)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label468;
+  return_label468: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row468(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row468 (src/parser//parser_tables.nit:6042,2--6075:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(467)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label469;
+  return_label469: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row469(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row469 (src/parser//parser_tables.nit:6078,2--6083:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label470;
+  return_label470: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row470(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row470 (src/parser//parser_tables.nit:6086,2--6090:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(469)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(564)) /*Array::add*/;
+  goto return_label471;
+  return_label471: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row471(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row471 (src/parser//parser_tables.nit:6093,2--6096:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  goto return_label472;
+  return_label472: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row472(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row472 (src/parser//parser_tables.nit:6099,2--6102:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(287)) /*Array::add*/;
+  goto return_label473;
+  return_label473: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row473(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row473 (src/parser//parser_tables.nit:6105,2--6108:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(286)) /*Array::add*/;
+  goto return_label474;
+  return_label474: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row474(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row474 (src/parser//parser_tables.nit:6111,2--6116:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(292)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label475;
+  return_label475: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row475(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row475 (src/parser//parser_tables.nit:6119,2--6122:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(299)) /*Array::add*/;
+  goto return_label476;
+  return_label476: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row476(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row476 (src/parser//parser_tables.nit:6125,2--6131:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(280)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(281)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(282)) /*Array::add*/;
+  goto return_label477;
+  return_label477: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row477(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row477 (src/parser//parser_tables.nit:6134,2--6140:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(280)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(281)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(282)) /*Array::add*/;
+  goto return_label478;
+  return_label478: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row478(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row478 (src/parser//parser_tables.nit:6143,2--6148:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(291)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label479;
+  return_label479: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row479(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row479 (src/parser//parser_tables.nit:6151,2--6156:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(293)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label480;
+  return_label480: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row480(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row480 (src/parser//parser_tables.nit:6159,2--6164:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(294)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label481;
+  return_label481: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row481(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row481 (src/parser//parser_tables.nit:6167,2--6172:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(295)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label482;
+  return_label482: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row482(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row482 (src/parser//parser_tables.nit:6175,2--6180:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(296)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label483;
+  return_label483: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row483(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row483 (src/parser//parser_tables.nit:6183,2--6188:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(297)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label484;
+  return_label484: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row484(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row484 (src/parser//parser_tables.nit:6191,2--6196:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(298)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label485;
+  return_label485: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row485(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row485 (src/parser//parser_tables.nit:6199,2--6202:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  goto return_label486;
+  return_label486: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row486(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row486 (src/parser//parser_tables.nit:6205,2--6208:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  goto return_label487;
+  return_label487: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row487(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row487 (src/parser//parser_tables.nit:6211,2--6214:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  goto return_label488;
+  return_label488: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row488(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row488 (src/parser//parser_tables.nit:6217,2--6221:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label489;
+  return_label489: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row489(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row489 (src/parser//parser_tables.nit:6224,2--6228:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label490;
+  return_label490: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row490(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row490 (src/parser//parser_tables.nit:6231,2--6234:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  goto return_label491;
+  return_label491: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row491(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row491 (src/parser//parser_tables.nit:6237,2--6241:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(490)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label492;
+  return_label492: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row492(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row492 (src/parser//parser_tables.nit:6244,2--6248:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(491)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(568)) /*Array::add*/;
+  goto return_label493;
+  return_label493: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row493(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row493 (src/parser//parser_tables.nit:6251,2--6254:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(351)) /*Array::add*/;
+  goto return_label494;
+  return_label494: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row494(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row494 (src/parser//parser_tables.nit:6257,2--6262:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label495;
+  return_label495: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row495(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row495 (src/parser//parser_tables.nit:6265,2--6270:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label496;
+  return_label496: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row496(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row496 (src/parser//parser_tables.nit:6273,2--6276:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(561)) /*Array::add*/;
+  goto return_label497;
+  return_label497: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row497(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row497 (src/parser//parser_tables.nit:6279,2--6284:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(496)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(571)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label498;
+  return_label498: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row498(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row498 (src/parser//parser_tables.nit:6287,2--6290:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  goto return_label499;
+  return_label499: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row499(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row499 (src/parser//parser_tables.nit:6293,2--6296:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  goto return_label500;
+  return_label500: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row500(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row500 (src/parser//parser_tables.nit:6299,2--6302:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(210)) /*Array::add*/;
+  goto return_label501;
+  return_label501: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row501(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row501 (src/parser//parser_tables.nit:6305,2--6310:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(500)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(573)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(574)) /*Array::add*/;
+  goto return_label502;
+  return_label502: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row502(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row502 (src/parser//parser_tables.nit:6313,2--6317:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(501)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(576)) /*Array::add*/;
+  goto return_label503;
+  return_label503: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row503(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row503 (src/parser//parser_tables.nit:6320,2--6324:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(502)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(577)) /*Array::add*/;
+  goto return_label504;
+  return_label504: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row504(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row504 (src/parser//parser_tables.nit:6327,2--6330:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(214)) /*Array::add*/;
+  goto return_label505;
+  return_label505: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row505(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row505 (src/parser//parser_tables.nit:6333,2--6338:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label506;
+  return_label506: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row506(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row506 (src/parser//parser_tables.nit:6341,2--6346:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label507;
+  return_label507: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row507(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row507 (src/parser//parser_tables.nit:6349,2--6352:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  goto return_label508;
+  return_label508: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row508(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row508 (src/parser//parser_tables.nit:6355,2--6360:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(507)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label509;
+  return_label509: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row509(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row509 (src/parser//parser_tables.nit:6363,2--6374:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(584)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label510;
+  return_label510: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row510(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row510 (src/parser//parser_tables.nit:6377,2--6382:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label511;
+  return_label511: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row511(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row511 (src/parser//parser_tables.nit:6385,2--6390:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(510)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(492)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label512;
+  return_label512: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row512(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row512 (src/parser//parser_tables.nit:6393,2--6396:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(318)) /*Array::add*/;
+  goto return_label513;
+  return_label513: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row513(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row513 (src/parser//parser_tables.nit:6399,2--6402:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(250)) /*Array::add*/;
+  goto return_label514;
+  return_label514: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row514(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row514 (src/parser//parser_tables.nit:6405,2--6411:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(314)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(592)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  goto return_label515;
+  return_label515: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row515(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row515 (src/parser//parser_tables.nit:6414,2--6417:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(246)) /*Array::add*/;
+  goto return_label516;
+  return_label516: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row516(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row516 (src/parser//parser_tables.nit:6420,2--6444:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(515)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label517;
+  return_label517: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row517(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row517 (src/parser//parser_tables.nit:6447,2--6471:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(516)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label518;
+  return_label518: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row518(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row518 (src/parser//parser_tables.nit:6474,2--6477:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(339)) /*Array::add*/;
+  goto return_label519;
+  return_label519: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row519(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row519 (src/parser//parser_tables.nit:6480,2--6483:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  goto return_label520;
+  return_label520: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row520(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row520 (src/parser//parser_tables.nit:6486,2--6489:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  goto return_label521;
+  return_label521: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row521(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row521 (src/parser//parser_tables.nit:6492,2--6497:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(520)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(596)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label522;
+  return_label522: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row522(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row522 (src/parser//parser_tables.nit:6500,2--6505:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label523;
+  return_label523: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row523(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row523 (src/parser//parser_tables.nit:6508,2--6512:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(522)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label524;
+  return_label524: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row524(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row524 (src/parser//parser_tables.nit:6515,2--6519:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(523)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(600)) /*Array::add*/;
+  goto return_label525;
+  return_label525: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row525(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row525 (src/parser//parser_tables.nit:6522,2--6530:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(342)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(346)) /*Array::add*/;
+  goto return_label526;
+  return_label526: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row526(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row526 (src/parser//parser_tables.nit:6533,2--6538:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(525)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(601)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label527;
+  return_label527: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row527(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row527 (src/parser//parser_tables.nit:6541,2--6544:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(482)) /*Array::add*/;
+  goto return_label528;
+  return_label528: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row528(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row528 (src/parser//parser_tables.nit:6547,2--6550:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(478)) /*Array::add*/;
+  goto return_label529;
+  return_label529: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row529(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row529 (src/parser//parser_tables.nit:6553,2--6557:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(528)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(602)) /*Array::add*/;
+  goto return_label530;
+  return_label530: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row530(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row530 (src/parser//parser_tables.nit:6560,2--6564:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(529)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(603)) /*Array::add*/;
+  goto return_label531;
+  return_label531: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row531(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row531 (src/parser//parser_tables.nit:6567,2--6572:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label532;
+  return_label532: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row532(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row532 (src/parser//parser_tables.nit:6575,2--6580:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(531)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label533;
+  return_label533: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row533(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row533 (src/parser//parser_tables.nit:6583,2--6594:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(608)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label534;
+  return_label534: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row534(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row534 (src/parser//parser_tables.nit:6597,2--6602:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label535;
+  return_label535: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row535(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row535 (src/parser//parser_tables.nit:6605,2--6608:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(230)) /*Array::add*/;
+  goto return_label536;
+  return_label536: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row536(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row536 (src/parser//parser_tables.nit:6611,2--6614:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label537;
+  return_label537: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row537(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row537 (src/parser//parser_tables.nit:6617,2--6620:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(276)) /*Array::add*/;
+  goto return_label538;
+  return_label538: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row538(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row538 (src/parser//parser_tables.nit:6623,2--6648:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label539;
+  return_label539: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row539(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row539 (src/parser//parser_tables.nit:6651,2--6684:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(612)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label540;
+  return_label540: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row540(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row540 (src/parser//parser_tables.nit:6687,2--6692:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label541;
+  return_label541: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row541(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row541 (src/parser//parser_tables.nit:6695,2--6728:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label542;
+  return_label542: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row542(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row542 (src/parser//parser_tables.nit:6731,2--6736:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label543;
+  return_label543: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row543(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row543 (src/parser//parser_tables.nit:6739,2--6764:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(236)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(425)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label544;
+  return_label544: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row544(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row544 (src/parser//parser_tables.nit:6767,2--6771:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(240)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(429)) /*Array::add*/;
+  goto return_label545;
+  return_label545: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row545(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row545 (src/parser//parser_tables.nit:6774,2--6778:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(238)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(427)) /*Array::add*/;
+  goto return_label546;
+  return_label546: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row546(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row546 (src/parser//parser_tables.nit:6781,2--6785:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(239)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(428)) /*Array::add*/;
+  goto return_label547;
+  return_label547: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row547(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row547 (src/parser//parser_tables.nit:6788,2--6813:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label548;
+  return_label548: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row548(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row548 (src/parser//parser_tables.nit:6816,2--6845:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(81)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  goto return_label549;
+  return_label549: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row549(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row549 (src/parser//parser_tables.nit:6848,2--6851:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(270)) /*Array::add*/;
+  goto return_label550;
+  return_label550: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row550(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row550 (src/parser//parser_tables.nit:6854,2--6858:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(234)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(423)) /*Array::add*/;
+  goto return_label551;
+  return_label551: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row551(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row551 (src/parser//parser_tables.nit:6861,2--6865:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(235)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(424)) /*Array::add*/;
+  goto return_label552;
+  return_label552: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row552(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row552 (src/parser//parser_tables.nit:6868,2--6871:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(273)) /*Array::add*/;
+  goto return_label553;
+  return_label553: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row553(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row553 (src/parser//parser_tables.nit:6874,2--6879:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label554;
+  return_label554: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row554(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row554 (src/parser//parser_tables.nit:6882,2--6886:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(245)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(434)) /*Array::add*/;
+  goto return_label555;
+  return_label555: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row555(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row555 (src/parser//parser_tables.nit:6889,2--6894:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(554)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(623)) /*Array::add*/;
+  goto return_label556;
+  return_label556: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row556(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row556 (src/parser//parser_tables.nit:6897,2--6901:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(555)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(624)) /*Array::add*/;
+  goto return_label557;
+  return_label557: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row557(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row557 (src/parser//parser_tables.nit:6904,2--6936:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(556)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(536)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label558;
+  return_label558: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row558(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row558 (src/parser//parser_tables.nit:6939,2--6943:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(557)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(627)) /*Array::add*/;
+  goto return_label559;
+  return_label559: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row559(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row559 (src/parser//parser_tables.nit:6946,2--6949:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(430)) /*Array::add*/;
+  goto return_label560;
+  return_label560: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row560(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row560 (src/parser//parser_tables.nit:6952,2--6955:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(431)) /*Array::add*/;
+  goto return_label561;
+  return_label561: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row561(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row561 (src/parser//parser_tables.nit:6958,2--6961:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(432)) /*Array::add*/;
+  goto return_label562;
+  return_label562: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row562(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row562 (src/parser//parser_tables.nit:6964,2--6967:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(433)) /*Array::add*/;
+  goto return_label563;
+  return_label563: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row563(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row563 (src/parser//parser_tables.nit:6970,2--6973:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(277)) /*Array::add*/;
+  goto return_label564;
+  return_label564: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row564(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row564 (src/parser//parser_tables.nit:6976,2--7000:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(563)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label565;
+  return_label565: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row565(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row565 (src/parser//parser_tables.nit:7003,2--7008:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label566;
+  return_label566: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row566(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row566 (src/parser//parser_tables.nit:7011,2--7014:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(314)) /*Array::add*/;
+  goto return_label567;
+  return_label567: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row567(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row567 (src/parser//parser_tables.nit:7017,2--7021:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(224)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(630)) /*Array::add*/;
+  goto return_label568;
+  return_label568: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row568(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row568 (src/parser//parser_tables.nit:7024,2--7029:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label569;
+  return_label569: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row569(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row569 (src/parser//parser_tables.nit:7032,2--7036:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label570;
+  return_label570: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row570(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row570 (src/parser//parser_tables.nit:7039,2--7063:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(569)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label571;
+  return_label571: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row571(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row571 (src/parser//parser_tables.nit:7066,2--7089:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(570)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(637)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(638)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label572;
+  return_label572: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row572(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row572 (src/parser//parser_tables.nit:7092,2--7095:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(352)) /*Array::add*/;
+  goto return_label573;
+  return_label573: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row573(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row573 (src/parser//parser_tables.nit:7098,2--7101:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(562)) /*Array::add*/;
+  goto return_label574;
+  return_label574: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row574(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row574 (src/parser//parser_tables.nit:7104,2--7107:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(217)) /*Array::add*/;
+  goto return_label575;
+  return_label575: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row575(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row575 (src/parser//parser_tables.nit:7110,2--7114:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(219)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label576;
+  return_label576: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row576(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row576 (src/parser//parser_tables.nit:7117,2--7123:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(666)) /*Array::add*/;
+  goto return_label577;
+  return_label577: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row577(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row577 (src/parser//parser_tables.nit:7126,2--7130:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(185)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(670)) /*Array::add*/;
+  goto return_label578;
+  return_label578: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row578(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row578 (src/parser//parser_tables.nit:7133,2--7166:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(577)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label579;
+  return_label579: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row579(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row579 (src/parser//parser_tables.nit:7169,2--7173:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(578)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(672)) /*Array::add*/;
+  goto return_label580;
+  return_label580: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row580(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row580 (src/parser//parser_tables.nit:7176,2--7181:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(579)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label581;
+  return_label581: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row581(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row581 (src/parser//parser_tables.nit:7184,2--7195:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(675)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label582;
+  return_label582: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row582(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row582 (src/parser//parser_tables.nit:7198,2--7203:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label583;
+  return_label583: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row583(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row583 (src/parser//parser_tables.nit:7206,2--7211:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label584;
+  return_label584: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row584(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row584 (src/parser//parser_tables.nit:7214,2--7219:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label585;
+  return_label585: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row585(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row585 (src/parser//parser_tables.nit:7222,2--7225:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  goto return_label586;
+  return_label586: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row586(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row586 (src/parser//parser_tables.nit:7228,2--7236:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(683)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(684)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label587;
+  return_label587: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row587(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row587 (src/parser//parser_tables.nit:7239,2--7247:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(686)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(687)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label588;
+  return_label588: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row588(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row588 (src/parser//parser_tables.nit:7250,2--7257:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(689)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label589;
+  return_label589: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row589(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row589 (src/parser//parser_tables.nit:7260,2--7267:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(588)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(691)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(692)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(693)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(694)) /*Array::add*/;
+  goto return_label590;
+  return_label590: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row590(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row590 (src/parser//parser_tables.nit:7270,2--7273:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  goto return_label591;
+  return_label591: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row591(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row591 (src/parser//parser_tables.nit:7276,2--7281:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(590)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label592;
+  return_label592: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row592(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row592 (src/parser//parser_tables.nit:7284,2--7295:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(696)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label593;
+  return_label593: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row593(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row593 (src/parser//parser_tables.nit:7298,2--7322:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(592)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label594;
+  return_label594: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row594(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row594 (src/parser//parser_tables.nit:7325,2--7349:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(593)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label595;
+  return_label595: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row595(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row595 (src/parser//parser_tables.nit:7352,2--7355:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(256)) /*Array::add*/;
+  goto return_label596;
+  return_label596: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row596(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row596 (src/parser//parser_tables.nit:7358,2--7361:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(261)) /*Array::add*/;
+  goto return_label597;
+  return_label597: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row597(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row597 (src/parser//parser_tables.nit:7364,2--7367:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(342)) /*Array::add*/;
+  goto return_label598;
+  return_label598: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row598(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row598 (src/parser//parser_tables.nit:7370,2--7375:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(597)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(699)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(493)) /*Array::add*/;
+  goto return_label599;
+  return_label599: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row599(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row599 (src/parser//parser_tables.nit:7378,2--7402:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(598)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label600;
+  return_label600: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row600(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row600 (src/parser//parser_tables.nit:7405,2--7410:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label601;
+  return_label601: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row601(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row601 (src/parser//parser_tables.nit:7413,2--7417:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label602;
+  return_label602: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row602(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row602 (src/parser//parser_tables.nit:7420,2--7428:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(343)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(347)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(347)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(347)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(347)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(347)) /*Array::add*/;
+  goto return_label603;
+  return_label603: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row603(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row603 (src/parser//parser_tables.nit:7431,2--7435:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(186)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(703)) /*Array::add*/;
+  goto return_label604;
+  return_label604: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row604(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row604 (src/parser//parser_tables.nit:7438,2--7471:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(603)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label605;
+  return_label605: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row605(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row605 (src/parser//parser_tables.nit:7474,2--7479:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(604)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label606;
+  return_label606: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row606(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row606 (src/parser//parser_tables.nit:7482,2--7493:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(706)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label607;
+  return_label607: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row607(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row607 (src/parser//parser_tables.nit:7496,2--7501:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label608;
+  return_label608: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row608(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row608 (src/parser//parser_tables.nit:7504,2--7509:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label609;
+  return_label609: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row609(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row609 (src/parser//parser_tables.nit:7512,2--7515:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label610;
+  return_label610: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row610(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row610 (src/parser//parser_tables.nit:7518,2--7523:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(609)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label611;
+  return_label611: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row611(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row611 (src/parser//parser_tables.nit:7526,2--7537:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(712)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label612;
+  return_label612: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row612(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row612 (src/parser//parser_tables.nit:7540,2--7544:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(251)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(440)) /*Array::add*/;
+  goto return_label613;
+  return_label613: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row613(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row613 (src/parser//parser_tables.nit:7547,2--7551:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(232)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(422)) /*Array::add*/;
+  goto return_label614;
+  return_label614: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row614(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row614 (src/parser//parser_tables.nit:7554,2--7585:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(613)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(713)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label615;
+  return_label615: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row615(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row615 (src/parser//parser_tables.nit:7588,2--7591:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(441)) /*Array::add*/;
+  goto return_label616;
+  return_label616: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row616(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row616 (src/parser//parser_tables.nit:7594,2--7597:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(418)) /*Array::add*/;
+  goto return_label617;
+  return_label617: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row617(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row617 (src/parser//parser_tables.nit:7600,2--7624:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(616)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label618;
+  return_label618: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row618(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row618 (src/parser//parser_tables.nit:7627,2--7630:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(275)) /*Array::add*/;
+  goto return_label619;
+  return_label619: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row619(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row619 (src/parser//parser_tables.nit:7633,2--7657:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(618)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label620;
+  return_label620: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row620(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row620 (src/parser//parser_tables.nit:7660,2--7664:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(237)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(426)) /*Array::add*/;
+  goto return_label621;
+  return_label621: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row621(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row621 (src/parser//parser_tables.nit:7667,2--7671:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(248)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(437)) /*Array::add*/;
+  goto return_label622;
+  return_label622: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row622(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row622 (src/parser//parser_tables.nit:7674,2--7678:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(247)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(436)) /*Array::add*/;
+  goto return_label623;
+  return_label623: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row623(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row623 (src/parser//parser_tables.nit:7681,2--7685:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(622)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(717)) /*Array::add*/;
+  goto return_label624;
+  return_label624: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row624(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row624 (src/parser//parser_tables.nit:7688,2--7693:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label625;
+  return_label625: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row625(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row625 (src/parser//parser_tables.nit:7696,2--7721:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label626;
+  return_label626: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row626(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row626 (src/parser//parser_tables.nit:7724,2--7729:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(625)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label627;
+  return_label627: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row627(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row627 (src/parser//parser_tables.nit:7732,2--7735:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(274)) /*Array::add*/;
+  goto return_label628;
+  return_label628: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row628(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row628 (src/parser//parser_tables.nit:7738,2--7771:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(627)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label629;
+  return_label629: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row629(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row629 (src/parser//parser_tables.nit:7774,2--7777:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(279)) /*Array::add*/;
+  goto return_label630;
+  return_label630: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row630(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row630 (src/parser//parser_tables.nit:7780,2--7804:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(629)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label631;
+  return_label631: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row631(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row631 (src/parser//parser_tables.nit:7807,2--7812:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label632;
+  return_label632: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row632(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row632 (src/parser//parser_tables.nit:7815,2--7818:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(555)) /*Array::add*/;
+  goto return_label633;
+  return_label633: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row633(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row633 (src/parser//parser_tables.nit:7821,2--7825:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(225)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(630)) /*Array::add*/;
+  goto return_label634;
+  return_label634: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row634(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row634 (src/parser//parser_tables.nit:7828,2--7832:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(633)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(726)) /*Array::add*/;
+  goto return_label635;
+  return_label635: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row635(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row635 (src/parser//parser_tables.nit:7835,2--7838:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(321)) /*Array::add*/;
+  goto return_label636;
+  return_label636: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row636(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row636 (src/parser//parser_tables.nit:7841,2--7846:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label637;
+  return_label637: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row637(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row637 (src/parser//parser_tables.nit:7849,2--7853:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label638;
+  return_label638: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row638(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row638 (src/parser//parser_tables.nit:7856,2--7861:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label639;
+  return_label639: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row639(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row639 (src/parser//parser_tables.nit:7864,2--7869:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label640;
+  return_label640: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row640(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row640 (src/parser//parser_tables.nit:7872,2--7877:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label641;
+  return_label641: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row641(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row641 (src/parser//parser_tables.nit:7880,2--7885:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label642;
+  return_label642: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row642(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row642 (src/parser//parser_tables.nit:7888,2--7892:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label643;
+  return_label643: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row643(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row643 (src/parser//parser_tables.nit:7895,2--7898:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(408)) /*Array::add*/;
+  goto return_label644;
+  return_label644: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row644(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row644 (src/parser//parser_tables.nit:7901,2--7904:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(409)) /*Array::add*/;
+  goto return_label645;
+  return_label645: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row645(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row645 (src/parser//parser_tables.nit:7907,2--7910:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(410)) /*Array::add*/;
+  goto return_label646;
+  return_label646: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row646(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row646 (src/parser//parser_tables.nit:7913,2--7916:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  goto return_label647;
+  return_label647: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row647(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row647 (src/parser//parser_tables.nit:7919,2--7943:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label648;
+  return_label648: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row648(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row648 (src/parser//parser_tables.nit:7946,2--7951:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label649;
+  return_label649: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row649(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row649 (src/parser//parser_tables.nit:7954,2--7959:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label650;
+  return_label650: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row650(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row650 (src/parser//parser_tables.nit:7962,2--7965:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(400)) /*Array::add*/;
+  goto return_label651;
+  return_label651: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row651(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row651 (src/parser//parser_tables.nit:7968,2--7971:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(412)) /*Array::add*/;
+  goto return_label652;
+  return_label652: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row652(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row652 (src/parser//parser_tables.nit:7974,2--7977:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(413)) /*Array::add*/;
+  goto return_label653;
+  return_label653: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row653(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row653 (src/parser//parser_tables.nit:7980,2--7983:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(414)) /*Array::add*/;
+  goto return_label654;
+  return_label654: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row654(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row654 (src/parser//parser_tables.nit:7986,2--7989:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(415)) /*Array::add*/;
+  goto return_label655;
+  return_label655: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row655(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row655 (src/parser//parser_tables.nit:7992,2--7995:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(416)) /*Array::add*/;
+  goto return_label656;
+  return_label656: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row656(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row656 (src/parser//parser_tables.nit:7998,2--8002:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(655)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(737)) /*Array::add*/;
+  goto return_label657;
+  return_label657: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row657(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row657 (src/parser//parser_tables.nit:8005,2--8010:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label658;
+  return_label658: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row658(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row658 (src/parser//parser_tables.nit:8013,2--8018:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(370)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(739)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(740)) /*Array::add*/;
+  goto return_label659;
+  return_label659: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row659(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row659 (src/parser//parser_tables.nit:8021,2--8024:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(372)) /*Array::add*/;
+  goto return_label660;
+  return_label660: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row660(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row660 (src/parser//parser_tables.nit:8027,2--8030:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(375)) /*Array::add*/;
+  goto return_label661;
+  return_label661: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row661(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row661 (src/parser//parser_tables.nit:8033,2--8047:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(377)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(741)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(742)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(745)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(746)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(747)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(748)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(749)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(750)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(751)) /*Array::add*/;
+  goto return_label662;
+  return_label662: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row662(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row662 (src/parser//parser_tables.nit:8050,2--8056:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(387)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(752)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(753)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(754)) /*Array::add*/;
+  goto return_label663;
+  return_label663: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row663(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row663 (src/parser//parser_tables.nit:8059,2--8062:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(390)) /*Array::add*/;
+  goto return_label664;
+  return_label664: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row664(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row664 (src/parser//parser_tables.nit:8065,2--8068:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(394)) /*Array::add*/;
+  goto return_label665;
+  return_label665: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row665(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row665 (src/parser//parser_tables.nit:8071,2--8075:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(397)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(755)) /*Array::add*/;
+  goto return_label666;
+  return_label666: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row666(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row666 (src/parser//parser_tables.nit:8078,2--8082:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(220)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(756)) /*Array::add*/;
+  goto return_label667;
+  return_label667: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row667(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row667 (src/parser//parser_tables.nit:8085,2--8090:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label668;
+  return_label668: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row668(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row668 (src/parser//parser_tables.nit:8093,2--8096:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(553)) /*Array::add*/;
+  goto return_label669;
+  return_label669: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row669(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row669 (src/parser//parser_tables.nit:8099,2--8103:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(668)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(758)) /*Array::add*/;
+  goto return_label670;
+  return_label670: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row670(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row670 (src/parser//parser_tables.nit:8106,2--8112:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(666)) /*Array::add*/;
+  goto return_label671;
+  return_label671: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row671(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row671 (src/parser//parser_tables.nit:8115,2--8118:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(187)) /*Array::add*/;
+  goto return_label672;
+  return_label672: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row672(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row672 (src/parser//parser_tables.nit:8121,2--8124:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(189)) /*Array::add*/;
+  goto return_label673;
+  return_label673: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row673(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row673 (src/parser//parser_tables.nit:8127,2--8131:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label674;
+  return_label674: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row674(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row674 (src/parser//parser_tables.nit:8134,2--8140:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(762)) /*Array::add*/;
+  goto return_label675;
+  return_label675: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row675(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row675 (src/parser//parser_tables.nit:8143,2--8148:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label676;
+  return_label676: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row676(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row676 (src/parser//parser_tables.nit:8151,2--8154:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+  goto return_label677;
+  return_label677: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row677(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row677 (src/parser//parser_tables.nit:8157,2--8162:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(676)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label678;
+  return_label678: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row678(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row678 (src/parser//parser_tables.nit:8165,2--8176:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(769)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label679;
+  return_label679: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row679(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row679 (src/parser//parser_tables.nit:8179,2--8182:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(549)) /*Array::add*/;
+  goto return_label680;
+  return_label680: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row680(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row680 (src/parser//parser_tables.nit:8185,2--8190:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(679)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label681;
+  return_label681: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row681(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row681 (src/parser//parser_tables.nit:8193,2--8203:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(771)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label682;
+  return_label682: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row682(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row682 (src/parser//parser_tables.nit:8206,2--8211:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label683;
+  return_label683: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row683(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row683 (src/parser//parser_tables.nit:8214,2--8218:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(682)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label684;
+  return_label684: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row684(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row684 (src/parser//parser_tables.nit:8221,2--8229:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(775)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(776)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label685;
+  return_label685: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row685(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row685 (src/parser//parser_tables.nit:8232,2--8239:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(778)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label686;
+  return_label686: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row686(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row686 (src/parser//parser_tables.nit:8242,2--8249:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(685)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(780)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(781)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(782)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(783)) /*Array::add*/;
+  goto return_label687;
+  return_label687: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row687(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row687 (src/parser//parser_tables.nit:8252,2--8259:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(784)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label688;
+  return_label688: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row688(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row688 (src/parser//parser_tables.nit:8262,2--8269:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(786)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label689;
+  return_label689: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row689(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row689 (src/parser//parser_tables.nit:8272,2--8276:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(688)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(788)) /*Array::add*/;
+  goto return_label690;
+  return_label690: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row690(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row690 (src/parser//parser_tables.nit:8279,2--8285:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label691;
+  return_label691: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row691(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row691 (src/parser//parser_tables.nit:8288,2--8292:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(690)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(790)) /*Array::add*/;
+  goto return_label692;
+  return_label692: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row692(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row692 (src/parser//parser_tables.nit:8295,2--8312:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(691)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label693;
+  return_label693: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row693(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row693 (src/parser//parser_tables.nit:8315,2--8319:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(692)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(792)) /*Array::add*/;
+  goto return_label694;
+  return_label694: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row694(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row694 (src/parser//parser_tables.nit:8322,2--8326:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(693)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(793)) /*Array::add*/;
+  goto return_label695;
+  return_label695: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row695(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row695 (src/parser//parser_tables.nit:8329,2--8348:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(51)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label696;
+  return_label696: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row696(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row696 (src/parser//parser_tables.nit:8351,2--8356:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label697;
+  return_label697: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row697(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row697 (src/parser//parser_tables.nit:8359,2--8362:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  goto return_label698;
+  return_label698: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row698(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row698 (src/parser//parser_tables.nit:8365,2--8368:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(258)) /*Array::add*/;
+  goto return_label699;
+  return_label699: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row699(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row699 (src/parser//parser_tables.nit:8371,2--8374:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(263)) /*Array::add*/;
+  goto return_label700;
+  return_label700: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row700(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row700 (src/parser//parser_tables.nit:8377,2--8380:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(343)) /*Array::add*/;
+  goto return_label701;
+  return_label701: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row701(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row701 (src/parser//parser_tables.nit:8383,2--8388:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label702;
+  return_label702: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row702(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row702 (src/parser//parser_tables.nit:8391,2--8395:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(701)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(799)) /*Array::add*/;
+  goto return_label703;
+  return_label703: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row703(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row703 (src/parser//parser_tables.nit:8398,2--8401:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(484)) /*Array::add*/;
+  goto return_label704;
+  return_label704: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row704(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row704 (src/parser//parser_tables.nit:8404,2--8407:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(188)) /*Array::add*/;
+  goto return_label705;
+  return_label705: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row705(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row705 (src/parser//parser_tables.nit:8410,2--8413:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(190)) /*Array::add*/;
+  goto return_label706;
+  return_label706: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row706(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row706 (src/parser//parser_tables.nit:8416,2--8421:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label707;
+  return_label707: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row707(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row707 (src/parser//parser_tables.nit:8424,2--8427:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(58)) /*Array::add*/;
+  goto return_label708;
+  return_label708: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row708(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row708 (src/parser//parser_tables.nit:8430,2--8435:26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(707)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  goto return_label709;
+  return_label709: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row709(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row709 (src/parser//parser_tables.nit:8438,2--8449:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(583)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(803)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label710;
+  return_label710: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row710(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row710 (src/parser//parser_tables.nit:8452,2--8462:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(804)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label711;
+  return_label711: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row711(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row711 (src/parser//parser_tables.nit:8465,2--8470:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label712;
+  return_label712: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row712(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row712 (src/parser//parser_tables.nit:8473,2--8478:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label713;
+  return_label713: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row713(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row713 (src/parser//parser_tables.nit:8481,2--8484:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  goto return_label714;
+  return_label714: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row714(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row714 (src/parser//parser_tables.nit:8487,2--8491:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(231)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(421)) /*Array::add*/;
+  goto return_label715;
+  return_label715: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row715(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row715 (src/parser//parser_tables.nit:8494,2--8499:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(714)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label716;
+  return_label716: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row716(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row716 (src/parser//parser_tables.nit:8502,2--8507:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label717;
+  return_label717: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row717(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row717 (src/parser//parser_tables.nit:8510,2--8515:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label718;
+  return_label718: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row718(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row718 (src/parser//parser_tables.nit:8518,2--8551:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(717)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(612)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label719;
+  return_label719: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row719(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row719 (src/parser//parser_tables.nit:8554,2--8560:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(718)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(813)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(814)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(420)) /*Array::add*/;
+  goto return_label720;
+  return_label720: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row720(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row720 (src/parser//parser_tables.nit:8563,2--8567:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(249)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(438)) /*Array::add*/;
+  goto return_label721;
+  return_label721: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row721(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row721 (src/parser//parser_tables.nit:8570,2--8602:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(720)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(536)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label722;
+  return_label722: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row722(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row722 (src/parser//parser_tables.nit:8605,2--8610:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(721)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label723;
+  return_label723: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row723(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row723 (src/parser//parser_tables.nit:8613,2--8616:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(269)) /*Array::add*/;
+  goto return_label724;
+  return_label724: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row724(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row724 (src/parser//parser_tables.nit:8619,2--8624:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label725;
+  return_label725: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row725(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row725 (src/parser//parser_tables.nit:8627,2--8631:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(724)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(288)) /*Array::add*/;
+  goto return_label726;
+  return_label726: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row726(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row726 (src/parser//parser_tables.nit:8634,2--8637:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(556)) /*Array::add*/;
+  goto return_label727;
+  return_label727: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row727(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row727 (src/parser//parser_tables.nit:8640,2--8643:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label728;
+  return_label728: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row728(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row728 (src/parser//parser_tables.nit:8646,2--8649:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(353)) /*Array::add*/;
+  goto return_label729;
+  return_label729: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row729(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row729 (src/parser//parser_tables.nit:8652,2--8655:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(406)) /*Array::add*/;
+  goto return_label730;
+  return_label730: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row730(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row730 (src/parser//parser_tables.nit:8658,2--8682:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(729)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label731;
+  return_label731: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row731(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row731 (src/parser//parser_tables.nit:8685,2--8707:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(730)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(638)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label732;
+  return_label732: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row732(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row732 (src/parser//parser_tables.nit:8710,2--8714:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(731)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(821)) /*Array::add*/;
+  goto return_label733;
+  return_label733: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row733(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row733 (src/parser//parser_tables.nit:8717,2--8738:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(732)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label734;
+  return_label734: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row734(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row734 (src/parser//parser_tables.nit:8741,2--8744:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(403)) /*Array::add*/;
+  goto return_label735;
+  return_label735: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row735(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row735 (src/parser//parser_tables.nit:8747,2--8751:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(734)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(824)) /*Array::add*/;
+  goto return_label736;
+  return_label736: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row736(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row736 (src/parser//parser_tables.nit:8754,2--8775:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(735)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label737;
+  return_label737: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row737(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row737 (src/parser//parser_tables.nit:8778,2--8781:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(402)) /*Array::add*/;
+  goto return_label738;
+  return_label738: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row738(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row738 (src/parser//parser_tables.nit:8784,2--8788:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label739;
+  return_label739: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row739(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row739 (src/parser//parser_tables.nit:8791,2--8796:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(738)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(827)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(828)) /*Array::add*/;
+  goto return_label740;
+  return_label740: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row740(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row740 (src/parser//parser_tables.nit:8799,2--8804:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label741;
+  return_label741: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row741(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row741 (src/parser//parser_tables.nit:8807,2--8812:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label742;
+  return_label742: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row742(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row742 (src/parser//parser_tables.nit:8815,2--8820:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label743;
+  return_label743: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row743(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row743 (src/parser//parser_tables.nit:8823,2--8828:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label744;
+  return_label744: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row744(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row744 (src/parser//parser_tables.nit:8831,2--8836:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label745;
+  return_label745: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row745(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row745 (src/parser//parser_tables.nit:8839,2--8844:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label746;
+  return_label746: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row746(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row746 (src/parser//parser_tables.nit:8847,2--8852:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label747;
+  return_label747: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row747(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row747 (src/parser//parser_tables.nit:8855,2--8860:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label748;
+  return_label748: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row748(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row748 (src/parser//parser_tables.nit:8863,2--8868:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label749;
+  return_label749: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row749(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row749 (src/parser//parser_tables.nit:8871,2--8876:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label750;
+  return_label750: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row750(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row750 (src/parser//parser_tables.nit:8879,2--8884:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label751;
+  return_label751: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row751(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row751 (src/parser//parser_tables.nit:8887,2--8892:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label752;
+  return_label752: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row752(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row752 (src/parser//parser_tables.nit:8895,2--8900:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label753;
+  return_label753: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row753(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row753 (src/parser//parser_tables.nit:8903,2--8908:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label754;
+  return_label754: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row754(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row754 (src/parser//parser_tables.nit:8911,2--8916:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label755;
+  return_label755: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row755(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row755 (src/parser//parser_tables.nit:8919,2--8924:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label756;
+  return_label756: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row756(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row756 (src/parser//parser_tables.nit:8927,2--8932:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label757;
+  return_label757: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row757(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row757 (src/parser//parser_tables.nit:8935,2--8938:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(221)) /*Array::add*/;
+  goto return_label758;
+  return_label758: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row758(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row758 (src/parser//parser_tables.nit:8941,2--8945:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(757)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(574)) /*Array::add*/;
+  goto return_label759;
+  return_label759: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row759(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row759 (src/parser//parser_tables.nit:8948,2--8951:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(215)) /*Array::add*/;
+  goto return_label760;
+  return_label760: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row760(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row760 (src/parser//parser_tables.nit:8954,2--8957:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(554)) /*Array::add*/;
+  goto return_label761;
+  return_label761: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row761(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row761 (src/parser//parser_tables.nit:8960,2--8964:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(760)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(847)) /*Array::add*/;
+  goto return_label762;
+  return_label762: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row762(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row762 (src/parser//parser_tables.nit:8967,2--8970:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+  goto return_label763;
+  return_label763: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row763(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row763 (src/parser//parser_tables.nit:8973,2--8978:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label764;
+  return_label764: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row764(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row764 (src/parser//parser_tables.nit:8981,2--8984:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  goto return_label765;
+  return_label765: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row765(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row765 (src/parser//parser_tables.nit:8987,2--8991:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(764)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(849)) /*Array::add*/;
+  goto return_label766;
+  return_label766: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row766(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row766 (src/parser//parser_tables.nit:8994,2--9000:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(762)) /*Array::add*/;
+  goto return_label767;
+  return_label767: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row767(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row767 (src/parser//parser_tables.nit:9003,2--9013:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(852)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label768;
+  return_label768: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row768(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row768 (src/parser//parser_tables.nit:9016,2--9021:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label769;
+  return_label769: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row769(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row769 (src/parser//parser_tables.nit:9024,2--9029:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label770;
+  return_label770: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row770(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row770 (src/parser//parser_tables.nit:9032,2--9035:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  goto return_label771;
+  return_label771: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row771(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row771 (src/parser//parser_tables.nit:9038,2--9041:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(89)) /*Array::add*/;
+  goto return_label772;
+  return_label772: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row772(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row772 (src/parser//parser_tables.nit:9044,2--9047:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  goto return_label773;
+  return_label773: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row773(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row773 (src/parser//parser_tables.nit:9050,2--9053:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(550)) /*Array::add*/;
+  goto return_label774;
+  return_label774: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row774(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row774 (src/parser//parser_tables.nit:9056,2--9066:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(856)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label775;
+  return_label775: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row775(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row775 (src/parser//parser_tables.nit:9069,2--9072:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(88)) /*Array::add*/;
+  goto return_label776;
+  return_label776: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row776(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row776 (src/parser//parser_tables.nit:9075,2--9082:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(857)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label777;
+  return_label777: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row777(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row777 (src/parser//parser_tables.nit:9085,2--9092:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(859)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label778;
+  return_label778: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row778(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row778 (src/parser//parser_tables.nit:9095,2--9099:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(777)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(861)) /*Array::add*/;
+  goto return_label779;
+  return_label779: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row779(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row779 (src/parser//parser_tables.nit:9102,2--9108:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label780;
+  return_label780: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row780(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row780 (src/parser//parser_tables.nit:9111,2--9115:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(779)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(863)) /*Array::add*/;
+  goto return_label781;
+  return_label781: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row781(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row781 (src/parser//parser_tables.nit:9118,2--9135:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(780)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label782;
+  return_label782: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row782(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row782 (src/parser//parser_tables.nit:9138,2--9142:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(781)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(865)) /*Array::add*/;
+  goto return_label783;
+  return_label783: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row783(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row783 (src/parser//parser_tables.nit:9145,2--9149:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(782)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(866)) /*Array::add*/;
+  goto return_label784;
+  return_label784: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row784(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row784 (src/parser//parser_tables.nit:9152,2--9171:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(51)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(300)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(301)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(302)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(303)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(304)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(305)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(306)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(307)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(308)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(309)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(310)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(311)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(312)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(313)) /*Array::add*/;
+  goto return_label785;
+  return_label785: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row785(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row785 (src/parser//parser_tables.nit:9174,2--9181:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(869)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label786;
+  return_label786: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row786(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row786 (src/parser//parser_tables.nit:9184,2--9188:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(785)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(871)) /*Array::add*/;
+  goto return_label787;
+  return_label787: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row787(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row787 (src/parser//parser_tables.nit:9191,2--9197:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label788;
+  return_label788: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row788(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row788 (src/parser//parser_tables.nit:9200,2--9204:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(787)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(873)) /*Array::add*/;
+  goto return_label789;
+  return_label789: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row789(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row789 (src/parser//parser_tables.nit:9207,2--9211:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(788)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(874)) /*Array::add*/;
+  goto return_label790;
+  return_label790: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row790(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row790 (src/parser//parser_tables.nit:9214,2--9218:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(789)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(875)) /*Array::add*/;
+  goto return_label791;
+  return_label791: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row791(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row791 (src/parser//parser_tables.nit:9221,2--9225:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(790)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(876)) /*Array::add*/;
+  goto return_label792;
+  return_label792: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row792(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row792 (src/parser//parser_tables.nit:9228,2--9233:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label793;
+  return_label793: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row793(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row793 (src/parser//parser_tables.nit:9236,2--9240:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(792)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label794;
+  return_label794: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row794(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row794 (src/parser//parser_tables.nit:9243,2--9248:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(98)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(879)) /*Array::add*/;
+  goto return_label795;
+  return_label795: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row795(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row795 (src/parser//parser_tables.nit:9251,2--9256:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label796;
+  return_label796: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row796(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row796 (src/parser//parser_tables.nit:9259,2--9264:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label797;
+  return_label797: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row797(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row797 (src/parser//parser_tables.nit:9267,2--9277:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(883)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label798;
+  return_label798: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row798(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row798 (src/parser//parser_tables.nit:9280,2--9285:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label799;
+  return_label799: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row799(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row799 (src/parser//parser_tables.nit:9288,2--9292:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(798)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(885)) /*Array::add*/;
+  goto return_label800;
+  return_label800: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row800(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row800 (src/parser//parser_tables.nit:9295,2--9298:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(446)) /*Array::add*/;
+  goto return_label801;
+  return_label801: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row801(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row801 (src/parser//parser_tables.nit:9301,2--9311:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(886)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label802;
+  return_label802: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row802(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row802 (src/parser//parser_tables.nit:9314,2--9319:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label803;
+  return_label803: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row803(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row803 (src/parser//parser_tables.nit:9322,2--9327:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label804;
+  return_label804: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row804(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row804 (src/parser//parser_tables.nit:9330,2--9333:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  goto return_label805;
+  return_label805: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row805(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row805 (src/parser//parser_tables.nit:9336,2--9339:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+  goto return_label806;
+  return_label806: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row806(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row806 (src/parser//parser_tables.nit:9342,2--9352:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(890)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label807;
+  return_label807: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row807(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row807 (src/parser//parser_tables.nit:9355,2--9365:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(891)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label808;
+  return_label808: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row808(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row808 (src/parser//parser_tables.nit:9368,2--9373:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label809;
+  return_label809: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row809(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row809 (src/parser//parser_tables.nit:9376,2--9407:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(808)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(893)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label810;
+  return_label810: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row810(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row810 (src/parser//parser_tables.nit:9410,2--9415:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(809)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label811;
+  return_label811: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row811(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row811 (src/parser//parser_tables.nit:9418,2--9422:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(810)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(895)) /*Array::add*/;
+  goto return_label812;
+  return_label812: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row812(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row812 (src/parser//parser_tables.nit:9425,2--9429:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(811)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(896)) /*Array::add*/;
+  goto return_label813;
+  return_label813: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row813(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row813 (src/parser//parser_tables.nit:9432,2--9435:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(444)) /*Array::add*/;
+  goto return_label814;
+  return_label814: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row814(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row814 (src/parser//parser_tables.nit:9438,2--9463:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label815;
+  return_label815: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row815(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row815 (src/parser//parser_tables.nit:9466,2--9494:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(78)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(350)) /*Array::add*/;
+  goto return_label816;
+  return_label816: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row816(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row816 (src/parser//parser_tables.nit:9497,2--9500:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(271)) /*Array::add*/;
+  goto return_label817;
+  return_label817: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row817(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row817 (src/parser//parser_tables.nit:9503,2--9535:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(816)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(536)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label818;
+  return_label818: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row818(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row818 (src/parser//parser_tables.nit:9538,2--9542:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(817)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(900)) /*Array::add*/;
+  goto return_label819;
+  return_label819: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row819(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row819 (src/parser//parser_tables.nit:9545,2--9548:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(226)) /*Array::add*/;
+  goto return_label820;
+  return_label820: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row820(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row820 (src/parser//parser_tables.nit:9551,2--9556:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label821;
+  return_label821: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row821(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row821 (src/parser//parser_tables.nit:9559,2--9562:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(376)) /*Array::add*/;
+  goto return_label822;
+  return_label822: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row822(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row822 (src/parser//parser_tables.nit:9565,2--9568:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(369)) /*Array::add*/;
+  goto return_label823;
+  return_label823: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row823(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row823 (src/parser//parser_tables.nit:9571,2--9576:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(902)) /*Array::add*/;
+  goto return_label824;
+  return_label824: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row824(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row824 (src/parser//parser_tables.nit:9579,2--9582:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(396)) /*Array::add*/;
+  goto return_label825;
+  return_label825: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row825(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row825 (src/parser//parser_tables.nit:9585,2--9588:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(417)) /*Array::add*/;
+  goto return_label826;
+  return_label826: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row826(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row826 (src/parser//parser_tables.nit:9591,2--9594:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(395)) /*Array::add*/;
+  goto return_label827;
+  return_label827: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row827(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row827 (src/parser//parser_tables.nit:9597,2--9600:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(404)) /*Array::add*/;
+  goto return_label828;
+  return_label828: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row828(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row828 (src/parser//parser_tables.nit:9603,2--9606:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(323)) /*Array::add*/;
+  goto return_label829;
+  return_label829: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row829(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row829 (src/parser//parser_tables.nit:9609,2--9612:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(322)) /*Array::add*/;
+  goto return_label830;
+  return_label830: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row830(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row830 (src/parser//parser_tables.nit:9615,2--9637:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(829)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(638)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label831;
+  return_label831: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row831(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row831 (src/parser//parser_tables.nit:9640,2--9662:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(830)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(638)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label832;
+  return_label832: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row832(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row832 (src/parser//parser_tables.nit:9665,2--9686:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(831)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label833;
+  return_label833: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row833(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row833 (src/parser//parser_tables.nit:9689,2--9693:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(832)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(821)) /*Array::add*/;
+  goto return_label834;
+  return_label834: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row834(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row834 (src/parser//parser_tables.nit:9696,2--9717:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(833)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label835;
+  return_label835: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row835(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row835 (src/parser//parser_tables.nit:9720,2--9741:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(834)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label836;
+  return_label836: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row836(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row836 (src/parser//parser_tables.nit:9744,2--9765:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(835)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label837;
+  return_label837: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row837(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row837 (src/parser//parser_tables.nit:9768,2--9789:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(836)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label838;
+  return_label838: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row838(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row838 (src/parser//parser_tables.nit:9792,2--9813:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(837)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label839;
+  return_label839: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row839(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row839 (src/parser//parser_tables.nit:9816,2--9837:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(838)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label840;
+  return_label840: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row840(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row840 (src/parser//parser_tables.nit:9840,2--9861:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(839)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label841;
+  return_label841: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row841(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row841 (src/parser//parser_tables.nit:9864,2--9885:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(840)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label842;
+  return_label842: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row842(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row842 (src/parser//parser_tables.nit:9888,2--9909:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(841)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label843;
+  return_label843: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row843(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row843 (src/parser//parser_tables.nit:9912,2--9933:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(842)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label844;
+  return_label844: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row844(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row844 (src/parser//parser_tables.nit:9936,2--9957:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(843)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label845;
+  return_label845: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row845(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row845 (src/parser//parser_tables.nit:9960,2--9981:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(844)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label846;
+  return_label846: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row846(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row846 (src/parser//parser_tables.nit:9984,2--9990:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(845)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(920)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(921)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(922)) /*Array::add*/;
+  goto return_label847;
+  return_label847: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row847(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row847 (src/parser//parser_tables.nit:9993,2--9996:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(218)) /*Array::add*/;
+  goto return_label848;
+  return_label848: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row848(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row848 (src/parser//parser_tables.nit:9999,2--10002:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(216)) /*Array::add*/;
+  goto return_label849;
+  return_label849: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row849(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row849 (src/parser//parser_tables.nit:10005,2--10009:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(848)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(672)) /*Array::add*/;
+  goto return_label850;
+  return_label850: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row850(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row850 (src/parser//parser_tables.nit:10012,2--10015:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+  goto return_label851;
+  return_label851: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row851(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row851 (src/parser//parser_tables.nit:10018,2--10021:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(548)) /*Array::add*/;
+  goto return_label852;
+  return_label852: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row852(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row852 (src/parser//parser_tables.nit:10024,2--10028:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(851)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(924)) /*Array::add*/;
+  goto return_label853;
+  return_label853: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row853(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row853 (src/parser//parser_tables.nit:10031,2--10034:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+  goto return_label854;
+  return_label854: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row854(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row854 (src/parser//parser_tables.nit:10037,2--10047:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(925)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label855;
+  return_label855: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row855(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row855 (src/parser//parser_tables.nit:10050,2--10060:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(926)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label856;
+  return_label856: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row856(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row856 (src/parser//parser_tables.nit:10063,2--10068:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label857;
+  return_label857: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row857(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row857 (src/parser//parser_tables.nit:10071,2--10074:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  goto return_label858;
+  return_label858: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row858(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row858 (src/parser//parser_tables.nit:10077,2--10084:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(928)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label859;
+  return_label859: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row859(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row859 (src/parser//parser_tables.nit:10087,2--10091:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(858)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(930)) /*Array::add*/;
+  goto return_label860;
+  return_label860: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row860(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row860 (src/parser//parser_tables.nit:10094,2--10100:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label861;
+  return_label861: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row861(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row861 (src/parser//parser_tables.nit:10103,2--10107:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(860)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(932)) /*Array::add*/;
+  goto return_label862;
+  return_label862: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row862(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row862 (src/parser//parser_tables.nit:10110,2--10114:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(861)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(933)) /*Array::add*/;
+  goto return_label863;
+  return_label863: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row863(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row863 (src/parser//parser_tables.nit:10117,2--10121:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(862)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(934)) /*Array::add*/;
+  goto return_label864;
+  return_label864: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row864(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row864 (src/parser//parser_tables.nit:10124,2--10128:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(863)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(935)) /*Array::add*/;
+  goto return_label865;
+  return_label865: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row865(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row865 (src/parser//parser_tables.nit:10131,2--10136:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label866;
+  return_label866: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row866(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row866 (src/parser//parser_tables.nit:10139,2--10143:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(865)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label867;
+  return_label867: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row867(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row867 (src/parser//parser_tables.nit:10146,2--10151:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(938)) /*Array::add*/;
+  goto return_label868;
+  return_label868: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row868(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row868 (src/parser//parser_tables.nit:10154,2--10159:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(211)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(411)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  goto return_label869;
+  return_label869: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row869(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row869 (src/parser//parser_tables.nit:10162,2--10167:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label870;
+  return_label870: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row870(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row870 (src/parser//parser_tables.nit:10170,2--10176:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label871;
+  return_label871: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row871(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row871 (src/parser//parser_tables.nit:10179,2--10183:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(870)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(943)) /*Array::add*/;
+  goto return_label872;
+  return_label872: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row872(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row872 (src/parser//parser_tables.nit:10186,2--10190:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(871)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(944)) /*Array::add*/;
+  goto return_label873;
+  return_label873: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row873(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row873 (src/parser//parser_tables.nit:10193,2--10197:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(872)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(945)) /*Array::add*/;
+  goto return_label874;
+  return_label874: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row874(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row874 (src/parser//parser_tables.nit:10200,2--10204:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(873)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(946)) /*Array::add*/;
+  goto return_label875;
+  return_label875: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row875(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row875 (src/parser//parser_tables.nit:10207,2--10212:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(92)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(947)) /*Array::add*/;
+  goto return_label876;
+  return_label876: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row876(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row876 (src/parser//parser_tables.nit:10215,2--10219:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(875)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(949)) /*Array::add*/;
+  goto return_label877;
+  return_label877: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row877(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row877 (src/parser//parser_tables.nit:10222,2--10227:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(950)) /*Array::add*/;
+  goto return_label878;
+  return_label878: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row878(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row878 (src/parser//parser_tables.nit:10230,2--10236:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(952)) /*Array::add*/;
+  goto return_label879;
+  return_label879: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row879(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row879 (src/parser//parser_tables.nit:10239,2--10242:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(182)) /*Array::add*/;
+  goto return_label880;
+  return_label880: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row880(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row880 (src/parser//parser_tables.nit:10245,2--10250:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label881;
+  return_label881: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row881(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row881 (src/parser//parser_tables.nit:10253,2--10257:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(955)) /*Array::add*/;
+  goto return_label882;
+  return_label882: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row882(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row882 (src/parser//parser_tables.nit:10260,2--10265:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label883;
+  return_label883: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row883(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row883 (src/parser//parser_tables.nit:10268,2--10272:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(882)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(957)) /*Array::add*/;
+  goto return_label884;
+  return_label884: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row884(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row884 (src/parser//parser_tables.nit:10275,2--10278:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+  goto return_label885;
+  return_label885: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row885(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row885 (src/parser//parser_tables.nit:10281,2--10291:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(958)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label886;
+  return_label886: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row886(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row886 (src/parser//parser_tables.nit:10294,2--10299:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label887;
+  return_label887: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row887(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row887 (src/parser//parser_tables.nit:10302,2--10305:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+  goto return_label888;
+  return_label888: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row888(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row888 (src/parser//parser_tables.nit:10308,2--10318:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(960)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label889;
+  return_label889: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row889(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row889 (src/parser//parser_tables.nit:10321,2--10331:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(961)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label890;
+  return_label890: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row890(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row890 (src/parser//parser_tables.nit:10334,2--10339:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label891;
+  return_label891: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row891(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row891 (src/parser//parser_tables.nit:10342,2--10345:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+  goto return_label892;
+  return_label892: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row892(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row892 (src/parser//parser_tables.nit:10348,2--10351:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  goto return_label893;
+  return_label893: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row893(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row893 (src/parser//parser_tables.nit:10354,2--10364:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(963)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label894;
+  return_label894: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row894(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row894 (src/parser//parser_tables.nit:10367,2--10371:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(229)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(419)) /*Array::add*/;
+  goto return_label895;
+  return_label895: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row895(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row895 (src/parser//parser_tables.nit:10374,2--10405:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(894)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(964)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label896;
+  return_label896: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row896(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row896 (src/parser//parser_tables.nit:10408,2--10442:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(895)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(536)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(540)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label897;
+  return_label897: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row897(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row897 (src/parser//parser_tables.nit:10445,2--10478:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(896)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(612)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label898;
+  return_label898: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row898(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row898 (src/parser//parser_tables.nit:10481,2--10485:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(250)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(439)) /*Array::add*/;
+  goto return_label899;
+  return_label899: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row899(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row899 (src/parser//parser_tables.nit:10488,2--10492:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(246)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(435)) /*Array::add*/;
+  goto return_label900;
+  return_label900: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row900(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row900 (src/parser//parser_tables.nit:10495,2--10498:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(272)) /*Array::add*/;
+  goto return_label901;
+  return_label901: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row901(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row901 (src/parser//parser_tables.nit:10501,2--10506:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label902;
+  return_label902: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row902(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row902 (src/parser//parser_tables.nit:10509,2--10513:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(901)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(968)) /*Array::add*/;
+  goto return_label903;
+  return_label903: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row903(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row903 (src/parser//parser_tables.nit:10516,2--10521:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label904;
+  return_label904: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row904(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row904 (src/parser//parser_tables.nit:10524,2--10527:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(398)) /*Array::add*/;
+  goto return_label905;
+  return_label905: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row905(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row905 (src/parser//parser_tables.nit:10530,2--10533:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(374)) /*Array::add*/;
+  goto return_label906;
+  return_label906: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row906(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row906 (src/parser//parser_tables.nit:10536,2--10539:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(373)) /*Array::add*/;
+  goto return_label907;
+  return_label907: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row907(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row907 (src/parser//parser_tables.nit:10542,2--10547:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(379)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label908;
+  return_label908: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row908(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row908 (src/parser//parser_tables.nit:10550,2--10553:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(386)) /*Array::add*/;
+  goto return_label909;
+  return_label909: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row909(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row909 (src/parser//parser_tables.nit:10556,2--10562:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(388)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(752)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(753)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(754)) /*Array::add*/;
+  goto return_label910;
+  return_label910: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row910(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row910 (src/parser//parser_tables.nit:10565,2--10571:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(389)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(752)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(753)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(754)) /*Array::add*/;
+  goto return_label911;
+  return_label911: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row911(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row911 (src/parser//parser_tables.nit:10574,2--10579:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(378)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label912;
+  return_label912: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row912(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row912 (src/parser//parser_tables.nit:10582,2--10587:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(380)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label913;
+  return_label913: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row913(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row913 (src/parser//parser_tables.nit:10590,2--10595:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(381)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label914;
+  return_label914: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row914(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row914 (src/parser//parser_tables.nit:10598,2--10603:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(382)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label915;
+  return_label915: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row915(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row915 (src/parser//parser_tables.nit:10606,2--10611:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(383)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label916;
+  return_label916: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row916(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row916 (src/parser//parser_tables.nit:10614,2--10619:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(384)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label917;
+  return_label917: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row917(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row917 (src/parser//parser_tables.nit:10622,2--10627:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(385)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(743)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(744)) /*Array::add*/;
+  goto return_label918;
+  return_label918: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row918(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row918 (src/parser//parser_tables.nit:10630,2--10633:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(391)) /*Array::add*/;
+  goto return_label919;
+  return_label919: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row919(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row919 (src/parser//parser_tables.nit:10636,2--10639:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(392)) /*Array::add*/;
+  goto return_label920;
+  return_label920: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row920(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row920 (src/parser//parser_tables.nit:10642,2--10645:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(393)) /*Array::add*/;
+  goto return_label921;
+  return_label921: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row921(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row921 (src/parser//parser_tables.nit:10648,2--10652:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label922;
+  return_label922: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row922(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row922 (src/parser//parser_tables.nit:10655,2--10659:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label923;
+  return_label923: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row923(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row923 (src/parser//parser_tables.nit:10662,2--10665:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(399)) /*Array::add*/;
+  goto return_label924;
+  return_label924: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row924(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row924 (src/parser//parser_tables.nit:10668,2--10671:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(85)) /*Array::add*/;
+  goto return_label925;
+  return_label925: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row925(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row925 (src/parser//parser_tables.nit:10674,2--10677:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+  goto return_label926;
+  return_label926: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row926(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row926 (src/parser//parser_tables.nit:10680,2--10683:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+  goto return_label927;
+  return_label927: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row927(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row927 (src/parser//parser_tables.nit:10686,2--10689:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  goto return_label928;
+  return_label928: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row928(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row928 (src/parser//parser_tables.nit:10692,2--10702:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(972)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label929;
+  return_label929: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row929(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row929 (src/parser//parser_tables.nit:10705,2--10711:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label930;
+  return_label930: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row930(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row930 (src/parser//parser_tables.nit:10714,2--10718:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(929)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(974)) /*Array::add*/;
+  goto return_label931;
+  return_label931: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row931(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row931 (src/parser//parser_tables.nit:10721,2--10725:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(930)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(975)) /*Array::add*/;
+  goto return_label932;
+  return_label932: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row932(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row932 (src/parser//parser_tables.nit:10728,2--10732:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(931)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(976)) /*Array::add*/;
+  goto return_label933;
+  return_label933: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row933(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row933 (src/parser//parser_tables.nit:10735,2--10739:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(932)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(977)) /*Array::add*/;
+  goto return_label934;
+  return_label934: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row934(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row934 (src/parser//parser_tables.nit:10742,2--10747:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(95)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(978)) /*Array::add*/;
+  goto return_label935;
+  return_label935: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row935(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row935 (src/parser//parser_tables.nit:10750,2--10754:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(934)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(980)) /*Array::add*/;
+  goto return_label936;
+  return_label936: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row936(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row936 (src/parser//parser_tables.nit:10757,2--10762:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(97)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(981)) /*Array::add*/;
+  goto return_label937;
+  return_label937: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row937(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row937 (src/parser//parser_tables.nit:10765,2--10771:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(983)) /*Array::add*/;
+  goto return_label938;
+  return_label938: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row938(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row938 (src/parser//parser_tables.nit:10774,2--10777:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(183)) /*Array::add*/;
+  goto return_label939;
+  return_label939: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row939(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row939 (src/parser//parser_tables.nit:10780,2--10785:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label940;
+  return_label940: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row940(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row940 (src/parser//parser_tables.nit:10788,2--10792:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(125)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(986)) /*Array::add*/;
+  goto return_label941;
+  return_label941: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row941(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row941 (src/parser//parser_tables.nit:10795,2--10800:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label942;
+  return_label942: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row942(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row942 (src/parser//parser_tables.nit:10803,2--10807:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(941)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(988)) /*Array::add*/;
+  goto return_label943;
+  return_label943: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row943(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row943 (src/parser//parser_tables.nit:10810,2--10814:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(942)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(989)) /*Array::add*/;
+  goto return_label944;
+  return_label944: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row944(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row944 (src/parser//parser_tables.nit:10817,2--10821:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(943)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(990)) /*Array::add*/;
+  goto return_label945;
+  return_label945: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row945(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row945 (src/parser//parser_tables.nit:10824,2--10829:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(991)) /*Array::add*/;
+  goto return_label946;
+  return_label946: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row946(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row946 (src/parser//parser_tables.nit:10832,2--10836:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(945)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(993)) /*Array::add*/;
+  goto return_label947;
+  return_label947: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row947(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row947 (src/parser//parser_tables.nit:10839,2--10844:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(994)) /*Array::add*/;
+  goto return_label948;
+  return_label948: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row948(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row948 (src/parser//parser_tables.nit:10847,2--10852:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label949;
+  return_label949: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row949(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row949 (src/parser//parser_tables.nit:10855,2--10859:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(997)) /*Array::add*/;
+  goto return_label950;
+  return_label950: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row950(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row950 (src/parser//parser_tables.nit:10862,2--10867:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(998)) /*Array::add*/;
+  goto return_label951;
+  return_label951: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row951(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row951 (src/parser//parser_tables.nit:10870,2--10875:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label952;
+  return_label952: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row952(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row952 (src/parser//parser_tables.nit:10878,2--10882:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1001)) /*Array::add*/;
+  goto return_label953;
+  return_label953: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row953(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row953 (src/parser//parser_tables.nit:10885,2--10891:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(952)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1002)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1003)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1004)) /*Array::add*/;
+  goto return_label954;
+  return_label954: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row954(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row954 (src/parser//parser_tables.nit:10894,2--10898:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(953)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1005)) /*Array::add*/;
+  goto return_label955;
+  return_label955: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row955(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row955 (src/parser//parser_tables.nit:10901,2--10925:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(954)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label956;
+  return_label956: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row956(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row956 (src/parser//parser_tables.nit:10928,2--10933:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label957;
+  return_label957: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row957(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row957 (src/parser//parser_tables.nit:10936,2--10940:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(956)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1008)) /*Array::add*/;
+  goto return_label958;
+  return_label958: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row958(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row958 (src/parser//parser_tables.nit:10943,2--10976:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(957)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label959;
+  return_label959: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row959(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row959 (src/parser//parser_tables.nit:10979,2--10982:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  goto return_label960;
+  return_label960: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row960(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row960 (src/parser//parser_tables.nit:10985,2--11007:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(959)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label961;
+  return_label961: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row961(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row961 (src/parser//parser_tables.nit:11010,2--11013:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+  goto return_label962;
+  return_label962: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row962(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row962 (src/parser//parser_tables.nit:11016,2--11019:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  goto return_label963;
+  return_label963: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row963(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row963 (src/parser//parser_tables.nit:11022,2--11032:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(191)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1011)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(585)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(586)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(587)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+  goto return_label964;
+  return_label964: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row964(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row964 (src/parser//parser_tables.nit:11035,2--11038:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  goto return_label965;
+  return_label965: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row965(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row965 (src/parser//parser_tables.nit:11041,2--11045:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(230)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(420)) /*Array::add*/;
+  goto return_label966;
+  return_label966: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row966(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row966 (src/parser//parser_tables.nit:11048,2--11052:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(965)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1012)) /*Array::add*/;
+  goto return_label967;
+  return_label967: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row967(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row967 (src/parser//parser_tables.nit:11055,2--11058:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(443)) /*Array::add*/;
+  goto return_label968;
+  return_label968: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row968(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row968 (src/parser//parser_tables.nit:11061,2--11085:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(967)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label969;
+  return_label969: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row969(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row969 (src/parser//parser_tables.nit:11088,2--11093:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label970;
+  return_label970: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row970(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row970 (src/parser//parser_tables.nit:11096,2--11100:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(969)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1015)) /*Array::add*/;
+  goto return_label971;
+  return_label971: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row971(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row971 (src/parser//parser_tables.nit:11103,2--11106:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(405)) /*Array::add*/;
+  goto return_label972;
+  return_label972: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row972(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row972 (src/parser//parser_tables.nit:11109,2--11112:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(401)) /*Array::add*/;
+  goto return_label973;
+  return_label973: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row973(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row973 (src/parser//parser_tables.nit:11115,2--11118:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  goto return_label974;
+  return_label974: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row974(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row974 (src/parser//parser_tables.nit:11121,2--11125:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(973)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1016)) /*Array::add*/;
+  goto return_label975;
+  return_label975: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row975(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row975 (src/parser//parser_tables.nit:11128,2--11132:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(974)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1017)) /*Array::add*/;
+  goto return_label976;
+  return_label976: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row976(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row976 (src/parser//parser_tables.nit:11135,2--11140:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1018)) /*Array::add*/;
+  goto return_label977;
+  return_label977: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row977(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row977 (src/parser//parser_tables.nit:11143,2--11147:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(976)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1020)) /*Array::add*/;
+  goto return_label978;
+  return_label978: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row978(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row978 (src/parser//parser_tables.nit:11150,2--11155:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(93)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1021)) /*Array::add*/;
+  goto return_label979;
+  return_label979: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row979(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row979 (src/parser//parser_tables.nit:11158,2--11163:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label980;
+  return_label980: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row980(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row980 (src/parser//parser_tables.nit:11166,2--11170:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1024)) /*Array::add*/;
+  goto return_label981;
+  return_label981: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row981(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row981 (src/parser//parser_tables.nit:11173,2--11178:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1025)) /*Array::add*/;
+  goto return_label982;
+  return_label982: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row982(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row982 (src/parser//parser_tables.nit:11181,2--11186:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label983;
+  return_label983: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row983(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row983 (src/parser//parser_tables.nit:11189,2--11193:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1028)) /*Array::add*/;
+  goto return_label984;
+  return_label984: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row984(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row984 (src/parser//parser_tables.nit:11196,2--11202:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(983)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1029)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1030)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1031)) /*Array::add*/;
+  goto return_label985;
+  return_label985: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row985(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row985 (src/parser//parser_tables.nit:11205,2--11209:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(984)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1032)) /*Array::add*/;
+  goto return_label986;
+  return_label986: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row986(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row986 (src/parser//parser_tables.nit:11212,2--11236:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(985)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label987;
+  return_label987: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row987(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row987 (src/parser//parser_tables.nit:11239,2--11244:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label988;
+  return_label988: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row988(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row988 (src/parser//parser_tables.nit:11247,2--11251:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(987)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1035)) /*Array::add*/;
+  goto return_label989;
+  return_label989: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row989(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row989 (src/parser//parser_tables.nit:11254,2--11287:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(988)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label990;
+  return_label990: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row990(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row990 (src/parser//parser_tables.nit:11290,2--11294:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(989)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1037)) /*Array::add*/;
+  goto return_label991;
+  return_label991: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row991(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row991 (src/parser//parser_tables.nit:11297,2--11302:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1038)) /*Array::add*/;
+  goto return_label992;
+  return_label992: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row992(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row992 (src/parser//parser_tables.nit:11305,2--11310:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label993;
+  return_label993: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row993(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row993 (src/parser//parser_tables.nit:11313,2--11317:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(119)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1041)) /*Array::add*/;
+  goto return_label994;
+  return_label994: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row994(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row994 (src/parser//parser_tables.nit:11320,2--11325:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1042)) /*Array::add*/;
+  goto return_label995;
+  return_label995: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row995(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row995 (src/parser//parser_tables.nit:11328,2--11333:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label996;
+  return_label996: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row996(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row996 (src/parser//parser_tables.nit:11336,2--11340:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1045)) /*Array::add*/;
+  goto return_label997;
+  return_label997: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row997(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row997 (src/parser//parser_tables.nit:11343,2--11367:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(996)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label998;
+  return_label998: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row998(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row998 (src/parser//parser_tables.nit:11370,2--11375:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label999;
+  return_label999: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row999(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row999 (src/parser//parser_tables.nit:11378,2--11383:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1000;
+  return_label1000: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1000(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1000 (src/parser//parser_tables.nit:11386,2--11390:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1049)) /*Array::add*/;
+  goto return_label1001;
+  return_label1001: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1001(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1001 (src/parser//parser_tables.nit:11393,2--11417:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1000)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1002;
+  return_label1002: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1002(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1002 (src/parser//parser_tables.nit:11420,2--11425:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1003;
+  return_label1003: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1003(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1003 (src/parser//parser_tables.nit:11428,2--11431:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(162)) /*Array::add*/;
+  goto return_label1004;
+  return_label1004: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1004(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1004 (src/parser//parser_tables.nit:11434,2--11437:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(164)) /*Array::add*/;
+  goto return_label1005;
+  return_label1005: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1005(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1005 (src/parser//parser_tables.nit:11440,2--11444:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(166)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1052)) /*Array::add*/;
+  goto return_label1006;
+  return_label1006: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1006(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1006 (src/parser//parser_tables.nit:11447,2--11480:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1005)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1007;
+  return_label1007: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1007(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1007 (src/parser//parser_tables.nit:11483,2--11486:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(134)) /*Array::add*/;
+  goto return_label1008;
+  return_label1008: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1008(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1008 (src/parser//parser_tables.nit:11489,2--11513:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1007)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1009;
+  return_label1009: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1009(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1009 (src/parser//parser_tables.nit:11516,2--11549:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1008)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1010;
+  return_label1010: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1010(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1010 (src/parser//parser_tables.nit:11552,2--11556:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(174)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1056)) /*Array::add*/;
+  goto return_label1011;
+  return_label1011: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1011(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1011 (src/parser//parser_tables.nit:11559,2--11562:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(448)) /*Array::add*/;
+  goto return_label1012;
+  return_label1012: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1012(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1012 (src/parser//parser_tables.nit:11565,2--11568:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  goto return_label1013;
+  return_label1013: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1013(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1013 (src/parser//parser_tables.nit:11571,2--11604:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1012)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(612)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(537)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(538)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(539)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(541)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(542)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(543)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(544)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(545)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(546)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(547)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1014;
+  return_label1014: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1014(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1014 (src/parser//parser_tables.nit:11607,2--11610:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(284)) /*Array::add*/;
+  goto return_label1015;
+  return_label1015: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1015(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1015 (src/parser//parser_tables.nit:11613,2--11637:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1014)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1016;
+  return_label1016: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1016(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1016 (src/parser//parser_tables.nit:11640,2--11644:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(345)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(223)) /*Array::add*/;
+  goto return_label1017;
+  return_label1017: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1017(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1017 (src/parser//parser_tables.nit:11647,2--11651:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1016)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1060)) /*Array::add*/;
+  goto return_label1018;
+  return_label1018: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1018(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1018 (src/parser//parser_tables.nit:11654,2--11659:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(94)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1061)) /*Array::add*/;
+  goto return_label1019;
+  return_label1019: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1019(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1019 (src/parser//parser_tables.nit:11662,2--11667:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1020;
+  return_label1020: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1020(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1020 (src/parser//parser_tables.nit:11670,2--11674:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1064)) /*Array::add*/;
+  goto return_label1021;
+  return_label1021: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1021(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1021 (src/parser//parser_tables.nit:11677,2--11682:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1065)) /*Array::add*/;
+  goto return_label1022;
+  return_label1022: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1022(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1022 (src/parser//parser_tables.nit:11685,2--11690:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1023;
+  return_label1023: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1023(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1023 (src/parser//parser_tables.nit:11693,2--11697:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1068)) /*Array::add*/;
+  goto return_label1024;
+  return_label1024: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1024(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1024 (src/parser//parser_tables.nit:11700,2--11724:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1023)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1025;
+  return_label1025: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1025(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1025 (src/parser//parser_tables.nit:11727,2--11732:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1026;
+  return_label1026: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1026(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1026 (src/parser//parser_tables.nit:11735,2--11740:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1027;
+  return_label1027: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1027(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1027 (src/parser//parser_tables.nit:11743,2--11747:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(124)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1072)) /*Array::add*/;
+  goto return_label1028;
+  return_label1028: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1028(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1028 (src/parser//parser_tables.nit:11750,2--11774:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1027)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1029;
+  return_label1029: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1029(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1029 (src/parser//parser_tables.nit:11777,2--11782:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1030;
+  return_label1030: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1030(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1030 (src/parser//parser_tables.nit:11785,2--11788:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(163)) /*Array::add*/;
+  goto return_label1031;
+  return_label1031: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1031(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1031 (src/parser//parser_tables.nit:11791,2--11794:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(165)) /*Array::add*/;
+  goto return_label1032;
+  return_label1032: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1032(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1032 (src/parser//parser_tables.nit:11797,2--11801:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(167)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1075)) /*Array::add*/;
+  goto return_label1033;
+  return_label1033: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1033(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1033 (src/parser//parser_tables.nit:11804,2--11837:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1032)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1034;
+  return_label1034: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1034(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1034 (src/parser//parser_tables.nit:11840,2--11843:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+  goto return_label1035;
+  return_label1035: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1035(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1035 (src/parser//parser_tables.nit:11846,2--11870:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1034)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1036;
+  return_label1036: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1036(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1036 (src/parser//parser_tables.nit:11873,2--11906:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1035)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1037;
+  return_label1037: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1037(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1037 (src/parser//parser_tables.nit:11909,2--11913:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(175)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1079)) /*Array::add*/;
+  goto return_label1038;
+  return_label1038: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1038(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1038 (src/parser//parser_tables.nit:11916,2--11921:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(100)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1080)) /*Array::add*/;
+  goto return_label1039;
+  return_label1039: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1039(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1039 (src/parser//parser_tables.nit:11924,2--11929:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1040;
+  return_label1040: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1040(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1040 (src/parser//parser_tables.nit:11932,2--11936:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1083)) /*Array::add*/;
+  goto return_label1041;
+  return_label1041: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1041(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1041 (src/parser//parser_tables.nit:11939,2--11963:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1040)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1042;
+  return_label1042: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1042(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1042 (src/parser//parser_tables.nit:11966,2--11971:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1043;
+  return_label1043: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1043(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1043 (src/parser//parser_tables.nit:11974,2--11979:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1044;
+  return_label1044: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1044(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1044 (src/parser//parser_tables.nit:11982,2--11986:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1087)) /*Array::add*/;
+  goto return_label1045;
+  return_label1045: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1045(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1045 (src/parser//parser_tables.nit:11989,2--12013:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1044)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1046;
+  return_label1046: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1046(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1046 (src/parser//parser_tables.nit:12016,2--12021:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1047;
+  return_label1047: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1047(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1047 (src/parser//parser_tables.nit:12024,2--12027:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(128)) /*Array::add*/;
+  goto return_label1048;
+  return_label1048: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1048(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1048 (src/parser//parser_tables.nit:12030,2--12054:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1047)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1049;
+  return_label1049: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1049(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1049 (src/parser//parser_tables.nit:12057,2--12081:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1048)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1050;
+  return_label1050: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1050(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1050 (src/parser//parser_tables.nit:12084,2--12089:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1051;
+  return_label1051: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1051(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1051 (src/parser//parser_tables.nit:12092,2--12095:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+  goto return_label1052;
+  return_label1052: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1052(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1052 (src/parser//parser_tables.nit:12098,2--12122:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1051)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1053;
+  return_label1053: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1053(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1053 (src/parser//parser_tables.nit:12125,2--12128:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(168)) /*Array::add*/;
+  goto return_label1054;
+  return_label1054: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1054(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1054 (src/parser//parser_tables.nit:12131,2--12135:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(170)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1094)) /*Array::add*/;
+  goto return_label1055;
+  return_label1055: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1055(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1055 (src/parser//parser_tables.nit:12138,2--12141:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  goto return_label1056;
+  return_label1056: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1056(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1056 (src/parser//parser_tables.nit:12144,2--12148:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(176)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1095)) /*Array::add*/;
+  goto return_label1057;
+  return_label1057: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1057(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1057 (src/parser//parser_tables.nit:12151,2--12154:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(178)) /*Array::add*/;
+  goto return_label1058;
+  return_label1058: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1058(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1058 (src/parser//parser_tables.nit:12157,2--12160:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(442)) /*Array::add*/;
+  goto return_label1059;
+  return_label1059: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1059(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1059 (src/parser//parser_tables.nit:12163,2--12168:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1060;
+  return_label1060: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1060(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1060 (src/parser//parser_tables.nit:12171,2--12174:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(407)) /*Array::add*/;
+  goto return_label1061;
+  return_label1061: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1061(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1061 (src/parser//parser_tables.nit:12177,2--12182:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(255)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1097)) /*Array::add*/;
+  goto return_label1062;
+  return_label1062: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1062(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1062 (src/parser//parser_tables.nit:12185,2--12190:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1063;
+  return_label1063: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1063(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1063 (src/parser//parser_tables.nit:12193,2--12197:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1100)) /*Array::add*/;
+  goto return_label1064;
+  return_label1064: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1064(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1064 (src/parser//parser_tables.nit:12200,2--12224:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1063)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1065;
+  return_label1065: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1065(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1065 (src/parser//parser_tables.nit:12227,2--12232:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1066;
+  return_label1066: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1066(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1066 (src/parser//parser_tables.nit:12235,2--12240:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1067;
+  return_label1067: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1067(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1067 (src/parser//parser_tables.nit:12243,2--12247:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(120)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1104)) /*Array::add*/;
+  goto return_label1068;
+  return_label1068: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1068(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1068 (src/parser//parser_tables.nit:12250,2--12274:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1067)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1069;
+  return_label1069: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1069(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1069 (src/parser//parser_tables.nit:12277,2--12282:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1070;
+  return_label1070: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1070(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1070 (src/parser//parser_tables.nit:12285,2--12288:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+  goto return_label1071;
+  return_label1071: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1071(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1071 (src/parser//parser_tables.nit:12291,2--12315:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1070)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1072;
+  return_label1072: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1072(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1072 (src/parser//parser_tables.nit:12318,2--12342:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1071)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1073;
+  return_label1073: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1073(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1073 (src/parser//parser_tables.nit:12345,2--12350:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1074;
+  return_label1074: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1074(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1074 (src/parser//parser_tables.nit:12353,2--12356:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+  goto return_label1075;
+  return_label1075: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1075(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1075 (src/parser//parser_tables.nit:12359,2--12383:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1074)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1076;
+  return_label1076: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1076(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1076 (src/parser//parser_tables.nit:12386,2--12389:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(169)) /*Array::add*/;
+  goto return_label1077;
+  return_label1077: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1077(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1077 (src/parser//parser_tables.nit:12392,2--12396:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(171)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1111)) /*Array::add*/;
+  goto return_label1078;
+  return_label1078: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1078(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1078 (src/parser//parser_tables.nit:12399,2--12402:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(161)) /*Array::add*/;
+  goto return_label1079;
+  return_label1079: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1079(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1079 (src/parser//parser_tables.nit:12405,2--12409:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(177)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1112)) /*Array::add*/;
+  goto return_label1080;
+  return_label1080: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1080(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1080 (src/parser//parser_tables.nit:12412,2--12415:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(179)) /*Array::add*/;
+  goto return_label1081;
+  return_label1081: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1081(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1081 (src/parser//parser_tables.nit:12418,2--12423:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1082;
+  return_label1082: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1082(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1082 (src/parser//parser_tables.nit:12426,2--12430:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1114)) /*Array::add*/;
+  goto return_label1083;
+  return_label1083: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1083(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1083 (src/parser//parser_tables.nit:12433,2--12457:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1082)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1084;
+  return_label1084: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1084(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1084 (src/parser//parser_tables.nit:12460,2--12465:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1085;
+  return_label1085: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1085(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1085 (src/parser//parser_tables.nit:12468,2--12471:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+  goto return_label1086;
+  return_label1086: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1086(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1086 (src/parser//parser_tables.nit:12474,2--12498:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1085)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1087;
+  return_label1087: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1087(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1087 (src/parser//parser_tables.nit:12501,2--12525:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1086)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1088;
+  return_label1088: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1088(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1088 (src/parser//parser_tables.nit:12528,2--12533:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1089;
+  return_label1089: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1089(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1089 (src/parser//parser_tables.nit:12536,2--12539:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+  goto return_label1090;
+  return_label1090: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1090(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1090 (src/parser//parser_tables.nit:12542,2--12566:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1089)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1091;
+  return_label1091: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1091(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1091 (src/parser//parser_tables.nit:12569,2--12572:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  goto return_label1092;
+  return_label1092: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1092(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1092 (src/parser//parser_tables.nit:12575,2--12578:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(141)) /*Array::add*/;
+  goto return_label1093;
+  return_label1093: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1093(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1093 (src/parser//parser_tables.nit:12581,2--12605:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1092)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1094;
+  return_label1094: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1094(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1094 (src/parser//parser_tables.nit:12608,2--12611:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  goto return_label1095;
+  return_label1095: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1095(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1095 (src/parser//parser_tables.nit:12614,2--12617:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(172)) /*Array::add*/;
+  goto return_label1096;
+  return_label1096: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1096(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1096 (src/parser//parser_tables.nit:12620,2--12623:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(180)) /*Array::add*/;
+  goto return_label1097;
+  return_label1097: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1097(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1097 (src/parser//parser_tables.nit:12626,2--12630:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1096)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1122)) /*Array::add*/;
+  goto return_label1098;
+  return_label1098: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1098(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1098 (src/parser//parser_tables.nit:12633,2--12638:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1099;
+  return_label1099: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1099(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1099 (src/parser//parser_tables.nit:12641,2--12645:29)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(121)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1124)) /*Array::add*/;
+  goto return_label1100;
+  return_label1100: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1100(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1100 (src/parser//parser_tables.nit:12648,2--12672:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1099)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1101;
+  return_label1101: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1101(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1101 (src/parser//parser_tables.nit:12675,2--12680:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1102;
+  return_label1102: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1102(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1102 (src/parser//parser_tables.nit:12683,2--12686:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+  goto return_label1103;
+  return_label1103: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1103(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1103 (src/parser//parser_tables.nit:12689,2--12713:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1102)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1104;
+  return_label1104: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1104(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1104 (src/parser//parser_tables.nit:12716,2--12740:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1103)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1105;
+  return_label1105: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1105(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1105 (src/parser//parser_tables.nit:12743,2--12748:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1106;
+  return_label1106: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1106(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1106 (src/parser//parser_tables.nit:12751,2--12754:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+  goto return_label1107;
+  return_label1107: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1107(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1107 (src/parser//parser_tables.nit:12757,2--12781:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1106)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1108;
+  return_label1108: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1108(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1108 (src/parser//parser_tables.nit:12784,2--12787:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  goto return_label1109;
+  return_label1109: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1109(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1109 (src/parser//parser_tables.nit:12790,2--12793:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+  goto return_label1110;
+  return_label1110: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1110(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1110 (src/parser//parser_tables.nit:12796,2--12820:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1109)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1111;
+  return_label1111: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1111(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1111 (src/parser//parser_tables.nit:12823,2--12826:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  goto return_label1112;
+  return_label1112: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1112(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1112 (src/parser//parser_tables.nit:12829,2--12832:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(173)) /*Array::add*/;
+  goto return_label1113;
+  return_label1113: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1113(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1113 (src/parser//parser_tables.nit:12835,2--12838:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(181)) /*Array::add*/;
+  goto return_label1114;
+  return_label1114: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1114(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1114 (src/parser//parser_tables.nit:12841,2--12865:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1113)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1115;
+  return_label1115: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1115(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1115 (src/parser//parser_tables.nit:12868,2--12873:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1116;
+  return_label1116: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1116(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1116 (src/parser//parser_tables.nit:12876,2--12879:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(127)) /*Array::add*/;
+  goto return_label1117;
+  return_label1117: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1117(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1117 (src/parser//parser_tables.nit:12882,2--12906:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1116)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1118;
+  return_label1118: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1118(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1118 (src/parser//parser_tables.nit:12909,2--12912:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+  goto return_label1119;
+  return_label1119: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1119(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1119 (src/parser//parser_tables.nit:12915,2--12918:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+  goto return_label1120;
+  return_label1120: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1120(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1120 (src/parser//parser_tables.nit:12921,2--12945:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1119)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1121;
+  return_label1121: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1121(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1121 (src/parser//parser_tables.nit:12948,2--12951:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  goto return_label1122;
+  return_label1122: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1122(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1122 (src/parser//parser_tables.nit:12954,2--12957:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(159)) /*Array::add*/;
+  goto return_label1123;
+  return_label1123: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1123(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1123 (src/parser//parser_tables.nit:12960,2--12965:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1124;
+  return_label1124: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1124(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1124 (src/parser//parser_tables.nit:12968,2--12992:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1123)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1125;
+  return_label1125: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1125(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1125 (src/parser//parser_tables.nit:12995,2--13000:25)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(364)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+  goto return_label1126;
+  return_label1126: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1126(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1126 (src/parser//parser_tables.nit:13003,2--13006:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(130)) /*Array::add*/;
+  goto return_label1127;
+  return_label1127: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1127(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1127 (src/parser//parser_tables.nit:13009,2--13033:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1126)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1128;
+  return_label1128: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1128(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1128 (src/parser//parser_tables.nit:13036,2--13039:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(158)) /*Array::add*/;
+  goto return_label1129;
+  return_label1129: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1129(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1129 (src/parser//parser_tables.nit:13042,2--13045:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(138)) /*Array::add*/;
+  goto return_label1130;
+  return_label1130: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1130(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1130 (src/parser//parser_tables.nit:13048,2--13072:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1129)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1131;
+  return_label1131: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1131(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1131 (src/parser//parser_tables.nit:13075,2--13078:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  goto return_label1132;
+  return_label1132: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1132(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1132 (src/parser//parser_tables.nit:13081,2--13084:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+  goto return_label1133;
+  return_label1133: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1133(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1133 (src/parser//parser_tables.nit:13087,2--13090:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(136)) /*Array::add*/;
+  goto return_label1134;
+  return_label1134: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1134(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1134 (src/parser//parser_tables.nit:13093,2--13117:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1133)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1135;
+  return_label1135: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1135(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1135 (src/parser//parser_tables.nit:13120,2--13123:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  goto return_label1136;
+  return_label1136: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1136(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1136 (src/parser//parser_tables.nit:13126,2--13129:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(153)) /*Array::add*/;
+  goto return_label1137;
+  return_label1137: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1137(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1137 (src/parser//parser_tables.nit:13132,2--13155:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1136)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(636)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(637)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(638)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(639)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(640)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(641)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(642)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(643)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(644)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(645)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(646)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(647)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(648)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(649)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(650)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(651)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(652)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(653)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1138;
+  return_label1138: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1138(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1138 (src/parser//parser_tables.nit:13158,2--13161:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(139)) /*Array::add*/;
+  goto return_label1139;
+  return_label1139: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1139(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1139 (src/parser//parser_tables.nit:13164,2--13188:27)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1138)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+  goto return_label1140;
+  return_label1140: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1140(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1140 (src/parser//parser_tables.nit:13191,2--13194:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+  goto return_label1141;
+  return_label1141: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1141(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1141 (src/parser//parser_tables.nit:13197,2--13200:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(156)) /*Array::add*/;
+  goto return_label1142;
+  return_label1142: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1142(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1142 (src/parser//parser_tables.nit:13203,2--13206:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(154)) /*Array::add*/;
+  goto return_label1143;
+  return_label1143: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1143(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1143 (src/parser//parser_tables.nit:13209,2--13212:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(371)) /*Array::add*/;
+  goto return_label1144;
+  return_label1144: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___action_table_row1144(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::action_table_row1144 (src/parser//parser_tables.nit:13215,2--13218:28)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+  goto return_label1145;
+  return_label1145: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void parser_tables___Parser___build_goto_table(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::build_goto_table (src/parser//parser_tables.nit:13223,2--14451:11)"};
+  val_t variable0;
+  static val_t once_value_variable0_1147; static int once_bool_variable0_1147;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+    val_t variable20;
+    val_t variable21;
+    val_t variable22;
+    val_t variable23;
+    val_t variable24;
+    val_t variable25;
+    val_t variable26;
+    val_t variable27;
+    val_t variable28;
+    val_t variable29;
+    val_t variable30;
+    val_t variable31;
+    val_t variable32;
+    val_t variable33;
+    val_t variable34;
+    val_t variable35;
+    val_t variable36;
+    val_t variable37;
+    val_t variable38;
+    val_t variable39;
+    val_t variable40;
+    val_t variable41;
+    val_t variable42;
+    val_t variable43;
+    val_t variable44;
+    val_t variable45;
+    val_t variable46;
+    val_t variable47;
+    val_t variable48;
+    val_t variable49;
+    val_t variable50;
+    val_t variable51;
+    val_t variable52;
+    val_t variable53;
+    val_t variable54;
+    val_t variable55;
+    val_t variable56;
+    val_t variable57;
+    val_t variable58;
+    val_t variable59;
+    val_t variable60;
+    val_t variable61;
+    val_t variable62;
+    val_t variable63;
+    val_t variable64;
+    val_t variable65;
+    val_t variable66;
+    val_t variable67;
+    val_t variable68;
+    val_t variable69;
+    val_t variable70;
+    val_t variable71;
+    val_t variable72;
+    val_t variable73;
+    val_t variable74;
+    val_t variable75;
+    val_t variable76;
+    val_t variable77;
+    val_t variable78;
+    val_t variable79;
+    val_t variable80;
+    val_t variable81;
+    val_t variable82;
+    val_t variable83;
+    val_t variable84;
+    val_t variable85;
+    val_t variable86;
+    val_t variable87;
+    val_t variable88;
+    val_t variable89;
+    val_t variable90;
+    val_t variable91;
+    val_t variable92;
+    val_t variable93;
+    val_t variable94;
+    val_t variable95;
+    val_t variable96;
+    val_t variable97;
+    val_t variable98;
+    val_t variable99;
+    val_t variable100;
+    val_t variable101;
+    val_t variable102;
+    val_t variable103;
+    val_t variable104;
+    val_t variable105;
+    val_t variable106;
+    val_t variable107;
+    val_t variable108;
+    val_t variable109;
+    val_t variable110;
+    val_t variable111;
+    val_t variable112;
+    val_t variable113;
+    val_t variable114;
+    val_t variable115;
+    val_t variable116;
+    val_t variable117;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_1147) variable0 = once_value_variable0_1147;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(116)); /*new Array[Array[Int]]*/
+    variable1 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable2) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    variable2 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable3) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+    variable3 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable4 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable4) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable3) /*Array::add*/;
+    variable4 = NEW_array___Array___with_capacity(TAG_Int(48)); /*new Array[Int]*/
+    variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable5) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(6)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(81)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(89)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(94)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(207)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(211)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(214)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(220)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(206)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(330)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(209)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(333)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(212)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(335)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(213)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(336)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(216)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(339)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(331)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(425)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(332)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(426)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(334)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(428)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(337)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(429)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(338)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(430)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(340)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(432)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(427)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(518)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(431)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  TAG_Int(519)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable4) /*Array::add*/;
+    variable5 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable6 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable6) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5,  TAG_Int(7)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable5) /*Array::add*/;
+    variable6 = NEW_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
+    variable7 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6, variable7) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(8)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable6,COLOR_abstract_collection___SimpleCollection___add))(variable6,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable6) /*Array::add*/;
+    variable7 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable8 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(185)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  TAG_Int(252)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable7) /*Array::add*/;
+    variable8 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable9 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable9) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(505)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(460)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  TAG_Int(530)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable8) /*Array::add*/;
+    variable9 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable10 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9, variable10) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(763)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(765)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable9,COLOR_abstract_collection___SimpleCollection___add))(variable9,  TAG_Int(850)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable9) /*Array::add*/;
+    variable10 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(673)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(848)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10,  TAG_Int(923)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable10) /*Array::add*/;
+    variable11 = NEW_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
+    variable12 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11, variable12) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(506)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(509)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(589)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(533)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(589)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(581)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(589)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(606)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable11,COLOR_abstract_collection___SimpleCollection___add))(variable11,  TAG_Int(589)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable11) /*Array::add*/;
+    variable12 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable13 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12, variable13) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(678)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(681)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(710)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(767)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(797)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(801)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(807)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(855)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(889)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable12,COLOR_abstract_collection___SimpleCollection___add))(variable12,  TAG_Int(772)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable12) /*Array::add*/;
+    variable13 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable14 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(679)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(415)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(507)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(460)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(531)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(505)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(579)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(509)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(590)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(530)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(604)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(533)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(609)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(581)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(676)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(606)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13,  TAG_Int(707)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable13) /*Array::add*/;
+    variable14 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable15 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14, variable15) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(212)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(331)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(334)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(337)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(340)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(427)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(431)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable14,COLOR_abstract_collection___SimpleCollection___add))(variable14,  TAG_Int(221)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable14) /*Array::add*/;
+    variable15 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable16 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15, variable16) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(79)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(208)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable15,COLOR_abstract_collection___SimpleCollection___add))(variable15,  TAG_Int(215)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable15) /*Array::add*/;
+    variable16 = NEW_array___Array___with_capacity(TAG_Int(48)); /*new Array[Int]*/
+    variable17 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(588)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(27)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(210)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(219)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(218)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(341)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(585)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(685)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(586)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(688)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(587)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(690)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(683)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(777)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(684)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(779)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(686)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(785)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(687)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(787)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(689)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(789)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(775)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(858)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(776)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(860)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(778)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(862)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(784)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(870)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(786)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(872)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(857)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(929)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(859)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(931)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(869)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(942)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(928)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16,  TAG_Int(973)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable16) /*Array::add*/;
+    variable17 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+    variable18 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17, variable18) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(314)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(251)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(370)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(691)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(791)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(694)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(794)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(780)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(864)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(783)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable17,COLOR_abstract_collection___SimpleCollection___add))(variable17,  TAG_Int(867)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable17) /*Array::add*/;
+    variable18 = NEW_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
+    variable19 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18, variable19) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(412)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(370)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(459)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(694)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(795)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(783)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(868)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(791)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(877)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(794)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(881)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(864)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(936)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(867)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable18,COLOR_abstract_collection___SimpleCollection___add))(variable18,  TAG_Int(940)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable18) /*Array::add*/;
+    variable19 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable20 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19,  TAG_Int(413)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable19) /*Array::add*/;
+    variable20 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable21 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20, variable21) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(667)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(669)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable20,COLOR_abstract_collection___SimpleCollection___add))(variable20,  TAG_Int(759)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable20) /*Array::add*/;
+    variable21 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable22 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21, variable22) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(575)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(757)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable21,COLOR_abstract_collection___SimpleCollection___add))(variable21,  TAG_Int(846)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable21) /*Array::add*/;
+    variable22 = NEW_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
+    variable23 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(566)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(166)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(289)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(263)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(382)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(374)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(463)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(388)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(474)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(682)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(774)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(724)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22,  TAG_Int(818)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable22) /*Array::add*/;
+    variable23 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable24 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23, variable24) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(567)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(522)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable23,COLOR_abstract_collection___SimpleCollection___add))(variable23,  TAG_Int(599)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable23) /*Array::add*/;
+    variable24 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable25 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24, variable25) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(631)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(632)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable24,COLOR_abstract_collection___SimpleCollection___add))(variable24,  TAG_Int(725)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable24) /*Array::add*/;
+    variable25 = NEW_array___Array___with_capacity(TAG_Int(50)); /*new Array[Int]*/
+    variable26 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25, variable26) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(414)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(257)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(413)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(503)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(574)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(665)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(672)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(761)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(792)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(878)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(793)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(880)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(865)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(937)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(866)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(939)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(874)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(948)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(876)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(951)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(933)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(979)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(935)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(982)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(944)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(992)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(946)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(995)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(949)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(999)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(975)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1019)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(977)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1022)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(980)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1026)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(990)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1039)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(993)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1043)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1017)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1062)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1020)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1066)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1037)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1081)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1060)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable25,COLOR_abstract_collection___SimpleCollection___add))(variable25,  TAG_Int(1098)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable25) /*Array::add*/;
+    variable26 = NEW_array___Array___with_capacity(TAG_Int(32)); /*new Array[Int]*/
+    variable27 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26, variable27) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(134)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(319)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(416)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(467)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(562)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(540)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(617)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(577)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(671)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(603)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(704)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(627)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(722)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(416)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(562)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(957)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1009)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(988)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1036)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1005)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1053)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1008)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1055)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(722)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1032)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1076)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1035)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable26,COLOR_abstract_collection___SimpleCollection___add))(variable26,  TAG_Int(1078)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable26) /*Array::add*/;
+    variable27 = NEW_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
+    variable28 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27, variable28) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(186)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(189)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(317)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(373)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(317)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(721)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(317)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(809)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27,  TAG_Int(317)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable27) /*Array::add*/;
+    variable28 = NEW_array___Array___with_capacity(TAG_Int(34)); /*new Array[Int]*/
+    variable29 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28, variable29) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(254)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(372)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(462)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(548)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(625)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(714)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(720)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(808)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(816)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(894)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(316)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable28,COLOR_abstract_collection___SimpleCollection___add))(variable28,  TAG_Int(548)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable28) /*Array::add*/;
+    variable29 = NEW_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
+    variable30 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29, variable30) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable29,COLOR_abstract_collection___SimpleCollection___add))(variable29,  TAG_Int(549)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable29) /*Array::add*/;
+    variable30 = NEW_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
+    variable31 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable31) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30,  TAG_Int(550)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable30) /*Array::add*/;
+    variable31 = NEW_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
+    variable32 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31, variable32) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(178)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(173)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(295)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(193)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(323)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(420)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(516)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(513)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable31,COLOR_abstract_collection___SimpleCollection___add))(variable31,  TAG_Int(593)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable31) /*Array::add*/;
+    variable32 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable33 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32, variable33) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable32,COLOR_abstract_collection___SimpleCollection___add))(variable32,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable32) /*Array::add*/;
+    variable33 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable34 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable34) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable33) /*Array::add*/;
+    variable34 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable35 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34, variable35) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(551)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(626)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(720)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(815)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(816)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable34,COLOR_abstract_collection___SimpleCollection___add))(variable34,  TAG_Int(899)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable34) /*Array::add*/;
+    variable35 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable36 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35, variable36) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable35,COLOR_abstract_collection___SimpleCollection___add))(variable35,  TAG_Int(63)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable35) /*Array::add*/;
+    variable36 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable37 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable37) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36,  TAG_Int(64)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable36) /*Array::add*/;
+    variable37 = NEW_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
+    variable38 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37, variable38) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable37,COLOR_abstract_collection___SimpleCollection___add))(variable37,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable37) /*Array::add*/;
+    variable38 = NEW_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
+    variable39 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38, variable39) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(66)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable38,COLOR_abstract_collection___SimpleCollection___add))(variable38,  TAG_Int(553)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable38) /*Array::add*/;
+    variable39 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable40 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable40) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39,  TAG_Int(164)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable39) /*Array::add*/;
+    variable40 = NEW_array___Array___with_capacity(TAG_Int(146)); /*new Array[Int]*/
+    variable41 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40, variable41) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(153)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(165)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(169)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(258)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(259)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(164)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(287)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(170)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(291)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(175)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(296)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(178)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(297)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(200)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(327)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(225)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(344)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(230)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(350)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(261)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(380)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(294)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(405)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(295)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(406)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(320)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(417)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(322)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(421)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(323)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(422)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(324)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(423)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(343)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(434)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(375)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(464)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(465)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(535)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(515)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(594)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(516)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(595)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(542)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(619)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(563)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(628)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(569)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(635)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(592)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(697)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(593)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(698)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(598)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(700)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(616)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(715)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(618)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(716)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(629)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(723)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(646)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(734)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(729)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(819)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(954)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1006)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(967)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1013)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(985)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1033)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(996)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1046)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1000)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1050)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1007)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1054)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1014)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1058)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1023)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1069)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1027)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1073)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1034)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1077)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1040)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1084)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1044)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1088)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1047)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1090)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1048)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1091)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1051)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1093)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1063)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1067)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1070)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1071)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1074)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1082)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1085)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1086)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1089)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1092)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1099)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1127)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1128)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1134)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1139)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1133)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1138)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable40,COLOR_abstract_collection___SimpleCollection___add))(variable40,  TAG_Int(1143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable40) /*Array::add*/;
+    variable41 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable42 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41, variable42) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable41,COLOR_abstract_collection___SimpleCollection___add))(variable41,  TAG_Int(154)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable41) /*Array::add*/;
+    variable42 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable43 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable43) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(262)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(381)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(385)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(471)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(386)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42,  TAG_Int(472)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable42) /*Array::add*/;
+    variable43 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable44 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43, variable44) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable43,COLOR_abstract_collection___SimpleCollection___add))(variable43,  TAG_Int(156)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable43) /*Array::add*/;
+    variable44 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable45 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44, variable45) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(387)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(473)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(391)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(477)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(392)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(478)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(393)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(479)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(394)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(480)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(395)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(481)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(396)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(482)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(397)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable44,COLOR_abstract_collection___SimpleCollection___add))(variable44,  TAG_Int(483)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable44) /*Array::add*/;
+    variable45 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable46 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable46) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(158)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(389)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(475)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(390)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45,  TAG_Int(476)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable45) /*Array::add*/;
+    variable46 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+    variable47 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46, variable47) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(159)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(264)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(383)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(265)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(384)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(398)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(484)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(399)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(485)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(400)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable46,COLOR_abstract_collection___SimpleCollection___add))(variable46,  TAG_Int(486)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable46) /*Array::add*/;
+    variable47 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable48 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47, variable48) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable47,COLOR_abstract_collection___SimpleCollection___add))(variable47,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable47) /*Array::add*/;
+    variable48 = NEW_array___Array___with_capacity(TAG_Int(68)); /*new Array[Int]*/
+    variable49 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48, variable49) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(319)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(372)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(462)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(467)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(540)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(577)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(603)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(627)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(720)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(808)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(816)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(894)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(957)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(988)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(1005)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(1008)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(1032)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(1035)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable48) /*Array::add*/;
+    variable49 = NEW_array___Array___with_capacity(TAG_Int(104)); /*new Array[Int]*/
+    variable50 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49, variable50) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(201)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(226)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(228)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(231)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(353)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(354)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(355)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(357)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(358)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(359)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(360)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(361)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(362)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(363)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(364)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(365)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(366)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(367)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(368)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(418)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(419)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(537)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(546)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(547)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(570)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(624)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(730)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(732)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(735)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(813)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(814)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(829)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(830)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(831)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(833)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(834)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(835)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(836)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(837)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(838)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(839)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(840)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(841)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(842)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(843)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(844)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(959)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(1136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable49,COLOR_abstract_collection___SimpleCollection___add))(variable49,  TAG_Int(654)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable49) /*Array::add*/;
+    variable50 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable51 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50, variable51) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable50,COLOR_abstract_collection___SimpleCollection___add))(variable50,  TAG_Int(69)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable50) /*Array::add*/;
+    variable51 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable52 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51, variable52) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable51) /*Array::add*/;
+    variable52 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable53 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52, variable53) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(196)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(199)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable52,COLOR_abstract_collection___SimpleCollection___add))(variable52,  TAG_Int(325)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable52) /*Array::add*/;
+    variable53 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable54 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53, variable54) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable53,COLOR_abstract_collection___SimpleCollection___add))(variable53,  TAG_Int(197)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable53) /*Array::add*/;
+    variable54 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable55 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54, variable55) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(198)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(199)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable54,COLOR_abstract_collection___SimpleCollection___add))(variable54,  TAG_Int(326)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable54) /*Array::add*/;
+    variable55 = NEW_array___Array___with_capacity(TAG_Int(70)); /*new Array[Int]*/
+    variable56 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55, variable56) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(167)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(173)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(224)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(229)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(232)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(167)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(151)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(266)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(163)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(266)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(201)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(328)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(233)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(352)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(285)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(328)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(347)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(438)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(382)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(470)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(418)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(511)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(419)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(513)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(456)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(526)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(457)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(527)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(487)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(511)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(488)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(565)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(546)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(167)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(547)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(173)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(568)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(634)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(600)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(702)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(624)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(328)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(636)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(728)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(641)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(733)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(648)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(736)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(737)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(826)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(813)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(511)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(814)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(513)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(822)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(903)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(920)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(970)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(921)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(971)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(1015)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable55,COLOR_abstract_collection___SimpleCollection___add))(variable55,  TAG_Int(1059)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable55) /*Array::add*/;
+    variable56 = NEW_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
+    variable57 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56, variable57) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(168)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(174)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(201)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(329)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(418)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(512)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(419)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(514)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(537)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(611)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(546)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(620)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(547)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(621)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(624)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(719)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(813)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(897)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(814)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable56,COLOR_abstract_collection___SimpleCollection___add))(variable56,  TAG_Int(898)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable56) /*Array::add*/;
+    variable57 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable58 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57, variable58) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(193)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(284)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(554)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable57,COLOR_abstract_collection___SimpleCollection___add))(variable57,  TAG_Int(193)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable57) /*Array::add*/;
+    variable58 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable59 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58, variable59) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(495)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(496)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(572)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(525)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(572)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(597)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable58,COLOR_abstract_collection___SimpleCollection___add))(variable58,  TAG_Int(572)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable58) /*Array::add*/;
+    variable59 = NEW_array___Array___with_capacity(TAG_Int(170)); /*new Array[Int]*/
+    variable60 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59, variable60) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(162)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(201)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(226)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(228)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(231)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(319)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(353)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(354)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(355)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(357)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(358)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(359)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(360)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(361)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(362)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(363)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(364)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(365)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(366)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(367)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(368)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(372)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(418)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(419)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(462)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(467)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(537)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(540)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(546)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(547)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(570)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(577)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(603)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(624)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(627)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(720)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(730)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(732)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(735)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(808)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(813)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(814)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(816)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(829)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(830)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(831)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(833)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(834)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(835)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(836)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(837)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(838)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(839)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(840)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(841)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(842)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(843)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(844)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(894)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(957)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(959)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(988)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1005)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1008)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(555)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1032)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1035)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(1136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable59,COLOR_abstract_collection___SimpleCollection___add))(variable59,  TAG_Int(655)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable59) /*Array::add*/;
+    variable60 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable61 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable60,COLOR_abstract_collection___SimpleCollection___add))(variable60, variable61) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable60,COLOR_abstract_collection___SimpleCollection___add))(variable60,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable60,COLOR_abstract_collection___SimpleCollection___add))(variable60,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable60,COLOR_abstract_collection___SimpleCollection___add))(variable60,  TAG_Int(203)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable60) /*Array::add*/;
+    variable61 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable62 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable61,COLOR_abstract_collection___SimpleCollection___add))(variable61, variable62) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable61,COLOR_abstract_collection___SimpleCollection___add))(variable61,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable61,COLOR_abstract_collection___SimpleCollection___add))(variable61,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable61,COLOR_abstract_collection___SimpleCollection___add))(variable61,  TAG_Int(204)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable61) /*Array::add*/;
+    variable62 = NEW_array___Array___with_capacity(TAG_Int(42)); /*new Array[Int]*/
+    variable63 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62, variable63) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(79)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(206)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(209)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(213)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(216)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(217)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(208)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(332)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(215)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(338)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(222)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(342)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(407)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(497)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(408)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(498)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(507)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(582)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(531)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(607)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(579)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(674)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(590)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(695)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(604)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(705)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(609)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(711)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(676)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(768)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(679)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(770)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(707)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable62,COLOR_abstract_collection___SimpleCollection___add))(variable62,  TAG_Int(802)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable62) /*Array::add*/;
+    variable63 = NEW_array___Array___with_capacity(TAG_Int(104)); /*new Array[Int]*/
+    variable64 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63, variable64) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(189)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(187)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(206)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(209)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(212)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(213)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(216)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(254)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(372)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(319)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(331)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(332)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(334)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(337)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(338)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(340)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(373)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(462)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(427)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(431)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(467)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(538)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(540)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(577)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(603)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(625)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(720)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(627)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(714)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(808)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(721)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(816)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(809)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(894)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(556)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(957)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(988)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(1005)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(1008)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(613)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(1032)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(1035)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable63,COLOR_abstract_collection___SimpleCollection___add))(variable63,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable63) /*Array::add*/;
+    variable64 = NEW_array___Array___with_capacity(TAG_Int(436)); /*new Array[Int]*/
+    variable65 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64, variable65) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(25)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(30)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(138)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(139)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(166)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(170)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(188)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(190)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(200)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(225)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(226)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(227)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(228)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(230)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(231)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(145)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(261)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(146)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(262)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(147)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(263)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(148)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(264)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(150)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(265)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(171)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(292)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(172)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(293)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(179)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(298)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(185)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(315)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(189)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(318)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(191)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(320)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(192)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(321)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(197)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(324)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(223)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(343)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(234)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(353)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(235)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(354)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(236)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(355)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(237)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(356)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(238)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(357)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(239)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(358)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(240)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(359)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(241)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(360)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(242)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(361)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(243)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(362)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(244)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(363)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(245)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(364)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(246)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(365)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(247)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(366)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(248)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(367)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(249)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(368)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(250)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(369)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(252)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(371)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(255)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(374)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(256)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(375)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(258)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(377)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(259)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(378)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(260)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(379)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(267)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(385)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(268)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(386)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(269)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(387)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(270)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(388)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(271)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(389)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(272)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(390)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(273)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(391)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(274)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(392)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(275)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(393)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(276)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(394)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(277)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(395)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(278)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(396)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(279)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(397)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(280)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(398)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(281)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(399)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(282)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(400)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(283)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(401)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(291)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(404)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(327)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(424)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(344)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(435)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(350)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(439)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(376)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(465)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(380)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(469)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(402)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(490)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(403)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(491)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(411)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(500)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(412)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(502)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(415)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(508)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(417)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(510)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(423)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(517)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(434)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(520)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(436)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(522)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(437)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(523)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(459)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(529)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(460)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(532)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(468)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(563)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(493)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(569)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(494)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(570)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(504)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(578)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(505)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(580)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(509)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(591)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(521)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(598)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(530)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(605)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(533)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(610)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(539)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(616)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(541)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(618)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(552)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(622)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(564)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(629)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(567)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(633)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(575)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(668)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(581)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(677)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(582)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(680)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(583)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(682)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(599)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(701)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(606)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(708)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(607)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(709)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(623)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(718)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(630)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(724)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(635)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(727)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(637)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(729)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(638)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(730)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(639)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(731)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(640)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(732)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(647)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(735)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(656)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(738)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(666)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(757)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(669)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(760)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(673)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(764)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(674)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(766)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(681)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(773)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(695)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(796)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(700)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(798)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(705)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(800)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(710)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(805)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(711)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(806)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(715)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(810)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(716)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(811)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(723)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(817)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(739)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(829)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(740)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(830)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(741)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(831)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(742)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(832)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(743)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(833)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(744)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(834)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(745)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(835)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(746)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(836)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(747)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(837)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(748)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(838)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(749)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(839)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(750)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(840)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(751)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(841)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(752)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(842)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(753)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(843)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(754)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(844)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(755)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(845)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(762)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(848)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(765)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(851)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(767)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(853)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(768)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(854)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(795)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(882)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(797)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(884)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(801)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(887)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(802)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(888)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(807)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(892)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(819)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(901)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(855)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(927)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(868)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(941)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(877)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(953)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(879)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(954)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(881)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(956)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(885)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(959)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(889)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(962)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(900)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(967)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(902)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(969)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(936)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(984)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(938)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(985)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(940)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(987)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(947)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(996)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(950)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1000)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(955)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1007)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(968)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1014)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(978)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1023)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(981)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1027)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(986)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1034)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(991)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1040)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(994)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1044)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(997)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1047)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(998)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1048)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1001)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1051)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1018)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1063)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1021)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1067)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1024)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1070)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1025)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1071)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1028)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1074)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1038)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1082)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1041)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1085)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1042)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1086)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1045)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1089)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1049)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1092)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1058)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1096)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1061)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1099)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1064)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1065)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1068)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1072)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1080)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1083)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1087)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1097)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1133)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable64,COLOR_abstract_collection___SimpleCollection___add))(variable64,  TAG_Int(1138)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable64) /*Array::add*/;
+    variable65 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable66 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable65,COLOR_abstract_collection___SimpleCollection___add))(variable65, variable66) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable65,COLOR_abstract_collection___SimpleCollection___add))(variable65,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable65) /*Array::add*/;
+    variable66 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable67 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66, variable67) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(822)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(832)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable66,COLOR_abstract_collection___SimpleCollection___add))(variable66,  TAG_Int(907)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable66) /*Array::add*/;
+    variable67 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable68 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable67,COLOR_abstract_collection___SimpleCollection___add))(variable67, variable68) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable67,COLOR_abstract_collection___SimpleCollection___add))(variable67,  TAG_Int(656)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable67,COLOR_abstract_collection___SimpleCollection___add))(variable67,  TAG_Int(1136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable67,COLOR_abstract_collection___SimpleCollection___add))(variable67,  TAG_Int(1142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable67) /*Array::add*/;
+    variable68 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable69 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable68,COLOR_abstract_collection___SimpleCollection___add))(variable68, variable69) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable68,COLOR_abstract_collection___SimpleCollection___add))(variable68,  TAG_Int(657)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable68) /*Array::add*/;
+    variable69 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable70 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69, variable70) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(658)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(730)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(820)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(829)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(904)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(830)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable69,COLOR_abstract_collection___SimpleCollection___add))(variable69,  TAG_Int(905)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable69) /*Array::add*/;
+    variable70 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable71 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70, variable71) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable70,COLOR_abstract_collection___SimpleCollection___add))(variable70,  TAG_Int(659)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable70) /*Array::add*/;
+    variable71 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable72 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71, variable72) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(660)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(831)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(906)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(835)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(910)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(836)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(911)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(837)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(912)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(838)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(913)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(839)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(914)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(840)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(915)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(841)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable71,COLOR_abstract_collection___SimpleCollection___add))(variable71,  TAG_Int(916)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable71) /*Array::add*/;
+    variable72 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable73 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72, variable73) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(661)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(833)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(908)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(834)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable72,COLOR_abstract_collection___SimpleCollection___add))(variable72,  TAG_Int(909)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable72) /*Array::add*/;
+    variable73 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+    variable74 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73, variable74) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(662)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(732)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(823)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(735)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(825)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(842)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(917)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(843)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(918)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(844)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable73,COLOR_abstract_collection___SimpleCollection___add))(variable73,  TAG_Int(919)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable73) /*Array::add*/;
+    variable74 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable75 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74, variable75) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable74,COLOR_abstract_collection___SimpleCollection___add))(variable74,  TAG_Int(663)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable74) /*Array::add*/;
+    variable75 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable76 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75, variable76) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable75,COLOR_abstract_collection___SimpleCollection___add))(variable75,  TAG_Int(664)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable75) /*Array::add*/;
+    variable76 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable77 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76, variable77) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(614)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(717)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(812)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(896)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(966)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(1012)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable76,COLOR_abstract_collection___SimpleCollection___add))(variable76,  TAG_Int(1057)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable76) /*Array::add*/;
+    variable77 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable78 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77, variable78) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(615)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(466)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(557)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(895)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable77,COLOR_abstract_collection___SimpleCollection___add))(variable77,  TAG_Int(965)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable77) /*Array::add*/;
+    variable78 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable79 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78, variable79) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable78,COLOR_abstract_collection___SimpleCollection___add))(variable78,  TAG_Int(558)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable78) /*Array::add*/;
+    variable79 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable80 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79, variable80) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable79,COLOR_abstract_collection___SimpleCollection___add))(variable79,  TAG_Int(559)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable79) /*Array::add*/;
+    variable80 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable81 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80, variable81) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable80,COLOR_abstract_collection___SimpleCollection___add))(variable80,  TAG_Int(560)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable80) /*Array::add*/;
+    variable81 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable82 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81, variable82) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable81,COLOR_abstract_collection___SimpleCollection___add))(variable81,  TAG_Int(561)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable81) /*Array::add*/;
+    variable82 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable83 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82, variable83) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(347)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(356)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable82,COLOR_abstract_collection___SimpleCollection___add))(variable82,  TAG_Int(443)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable82) /*Array::add*/;
+    variable83 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable84 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83, variable84) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(959)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable83,COLOR_abstract_collection___SimpleCollection___add))(variable83,  TAG_Int(1010)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable83) /*Array::add*/;
+    variable84 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable85 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84, variable85) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable84,COLOR_abstract_collection___SimpleCollection___add))(variable84,  TAG_Int(124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable84) /*Array::add*/;
+    variable85 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable86 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85, variable86) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(226)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(345)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(353)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(440)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(354)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable85,COLOR_abstract_collection___SimpleCollection___add))(variable85,  TAG_Int(441)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable85) /*Array::add*/;
+    variable86 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable87 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86, variable87) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable86,COLOR_abstract_collection___SimpleCollection___add))(variable86,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable86) /*Array::add*/;
+    variable87 = NEW_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
+    variable88 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87, variable88) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(127)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(355)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(442)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(359)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(446)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(360)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(447)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(361)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(448)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(362)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(449)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(363)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(450)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(364)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(451)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(365)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable87,COLOR_abstract_collection___SimpleCollection___add))(variable87,  TAG_Int(452)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable87) /*Array::add*/;
+    variable88 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable89 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88, variable89) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(128)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(357)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(444)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(358)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable88,COLOR_abstract_collection___SimpleCollection___add))(variable88,  TAG_Int(445)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable88) /*Array::add*/;
+    variable89 = NEW_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
+    variable90 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89, variable90) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(228)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(348)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(231)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(351)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(366)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(453)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(367)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(454)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(368)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable89,COLOR_abstract_collection___SimpleCollection___add))(variable89,  TAG_Int(455)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable89) /*Array::add*/;
+    variable90 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable91 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90, variable91) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable90,COLOR_abstract_collection___SimpleCollection___add))(variable90,  TAG_Int(130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable90) /*Array::add*/;
+    variable91 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable92 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91, variable92) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable91,COLOR_abstract_collection___SimpleCollection___add))(variable91,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable91) /*Array::add*/;
+    variable92 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable93 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable93) /*Array::add*/;
+    variable94 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable92,COLOR_abstract_collection___SimpleCollection___add))(variable92, variable94) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable92) /*Array::add*/;
+    variable93 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable94 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable94) /*Array::add*/;
+    variable95 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable93,COLOR_abstract_collection___SimpleCollection___add))(variable93, variable95) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable93) /*Array::add*/;
+    variable94 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable95 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable95) /*Array::add*/;
+    variable96 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable94,COLOR_abstract_collection___SimpleCollection___add))(variable94, variable96) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable94) /*Array::add*/;
+    variable95 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable96 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable96) /*Array::add*/;
+    variable97 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable95,COLOR_abstract_collection___SimpleCollection___add))(variable95, variable97) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable95) /*Array::add*/;
+    variable96 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable97 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable97) /*Array::add*/;
+    variable98 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable96,COLOR_abstract_collection___SimpleCollection___add))(variable96, variable98) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable96) /*Array::add*/;
+    variable97 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable98 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable98) /*Array::add*/;
+    variable99 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable97,COLOR_abstract_collection___SimpleCollection___add))(variable97, variable99) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable97) /*Array::add*/;
+    variable98 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable99 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable99) /*Array::add*/;
+    variable100 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable98,COLOR_abstract_collection___SimpleCollection___add))(variable98, variable100) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable98) /*Array::add*/;
+    variable99 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable100 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99, variable100) /*Array::add*/;
+    variable101 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable99,COLOR_abstract_collection___SimpleCollection___add))(variable99, variable101) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable99) /*Array::add*/;
+    variable100 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable101 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable101) /*Array::add*/;
+    variable102 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable100,COLOR_abstract_collection___SimpleCollection___add))(variable100, variable102) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable100) /*Array::add*/;
+    variable101 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable102 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable102) /*Array::add*/;
+    variable103 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable101,COLOR_abstract_collection___SimpleCollection___add))(variable101, variable103) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable101) /*Array::add*/;
+    variable102 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable103 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable103) /*Array::add*/;
+    variable104 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable102,COLOR_abstract_collection___SimpleCollection___add))(variable102, variable104) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable102) /*Array::add*/;
+    variable103 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable104 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103, variable104) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable103,COLOR_abstract_collection___SimpleCollection___add))(variable103,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable103) /*Array::add*/;
+    variable104 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable105 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104, variable105) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable104,COLOR_abstract_collection___SimpleCollection___add))(variable104,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable104) /*Array::add*/;
+    variable105 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable106 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105, variable106) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(509)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(460)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(533)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(505)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(581)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(530)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable105,COLOR_abstract_collection___SimpleCollection___add))(variable105,  TAG_Int(606)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable105) /*Array::add*/;
+    variable106 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable107 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106, variable107) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable106,COLOR_abstract_collection___SimpleCollection___add))(variable106,  TAG_Int(765)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable106) /*Array::add*/;
+    variable107 = NEW_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
+    variable108 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107, variable108) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(681)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(607)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(710)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(674)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(767)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(695)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(797)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(705)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(801)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(711)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(807)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(768)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(855)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(802)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable107,COLOR_abstract_collection___SimpleCollection___add))(variable107,  TAG_Int(889)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable107) /*Array::add*/;
+    variable108 = NEW_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
+    variable109 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108, variable109) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(212)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(206)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(331)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(209)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(334)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(213)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(337)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(216)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(340)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(332)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(427)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(338)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable108,COLOR_abstract_collection___SimpleCollection___add))(variable108,  TAG_Int(431)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable108) /*Array::add*/;
+    variable109 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable110 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109, variable110) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable109,COLOR_abstract_collection___SimpleCollection___add))(variable109,  TAG_Int(669)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable109) /*Array::add*/;
+    variable110 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable111 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110, variable111) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable110,COLOR_abstract_collection___SimpleCollection___add))(variable110,  TAG_Int(632)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable110) /*Array::add*/;
+    variable111 = NEW_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
+    variable112 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111, variable112) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(189)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(254)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(373)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(625)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(721)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(714)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable111,COLOR_abstract_collection___SimpleCollection___add))(variable111,  TAG_Int(809)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable111) /*Array::add*/;
+    variable112 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable113 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112, variable113) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable112,COLOR_abstract_collection___SimpleCollection___add))(variable112,  TAG_Int(199)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable112) /*Array::add*/;
+    variable113 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable114 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113, variable114) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(496)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(439)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(525)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(520)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable113,COLOR_abstract_collection___SimpleCollection___add))(variable113,  TAG_Int(597)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable113) /*Array::add*/;
+    variable114 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
+    variable115 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114, variable115) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable114,COLOR_abstract_collection___SimpleCollection___add))(variable114,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable114) /*Array::add*/;
+    variable115 = NEW_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
+    variable116 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115, variable116) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable115,COLOR_abstract_collection___SimpleCollection___add))(variable115,  TAG_Int(76)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable115) /*Array::add*/;
+    variable116 = NEW_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
+    variable117 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116, variable117) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(76)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable116,COLOR_abstract_collection___SimpleCollection___add))(variable116,  TAG_Int(205)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable116) /*Array::add*/;
+    once_value_variable0_1147 = variable0;
+    once_bool_variable0_1147 = true;
+  }
+  ATTR_parser_tables___Parser____goto_table( self) /*Parser::_goto_table*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+val_t parser_tables___Parser___error_messages(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::error_messages (src/parser//parser_tables.nit:14456,2--14620:107)"};
+  val_t variable0;
+  static val_t once_value_variable0_1149; static int once_bool_variable0_1149;
+    val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+    val_t variable20;
+    val_t variable21;
+    val_t variable22;
+    val_t variable23;
+    val_t variable24;
+    val_t variable25;
+    val_t variable26;
+    val_t variable27;
+    val_t variable28;
+    val_t variable29;
+    val_t variable30;
+    val_t variable31;
+    val_t variable32;
+    val_t variable33;
+    val_t variable34;
+    val_t variable35;
+    val_t variable36;
+    val_t variable37;
+    val_t variable38;
+    val_t variable39;
+    val_t variable40;
+    val_t variable41;
+    val_t variable42;
+    val_t variable43;
+    val_t variable44;
+    val_t variable45;
+    val_t variable46;
+    val_t variable47;
+    val_t variable48;
+    val_t variable49;
+    val_t variable50;
+    val_t variable51;
+    val_t variable52;
+    val_t variable53;
+    val_t variable54;
+    val_t variable55;
+    val_t variable56;
+    val_t variable57;
+    val_t variable58;
+    val_t variable59;
+    val_t variable60;
+    val_t variable61;
+    val_t variable62;
+    val_t variable63;
+    val_t variable64;
+    val_t variable65;
+    val_t variable66;
+    val_t variable67;
+    val_t variable68;
+    val_t variable69;
+    val_t variable70;
+    val_t variable71;
+    val_t variable72;
+    val_t variable73;
+    val_t variable74;
+    val_t variable75;
+    val_t variable76;
+    val_t variable77;
+    val_t variable78;
+    val_t variable79;
+    val_t variable80;
+    val_t variable81;
+    val_t variable82;
+    val_t variable83;
+    val_t variable84;
+    val_t variable85;
+    val_t variable86;
+    val_t variable87;
+    val_t variable88;
+    val_t variable89;
+    val_t variable90;
+    val_t variable91;
+    val_t variable92;
+    val_t variable93;
+    val_t variable94;
+    val_t variable95;
+    val_t variable96;
+    val_t variable97;
+    val_t variable98;
+    val_t variable99;
+    val_t variable100;
+    val_t variable101;
+    val_t variable102;
+    val_t variable103;
+    val_t variable104;
+    val_t variable105;
+    val_t variable106;
+    val_t variable107;
+    val_t variable108;
+    val_t variable109;
+    val_t variable110;
+    val_t variable111;
+    val_t variable112;
+    val_t variable113;
+    val_t variable114;
+    val_t variable115;
+    val_t variable116;
+    val_t variable117;
+    val_t variable118;
+    val_t variable119;
+    val_t variable120;
+    val_t variable121;
+    val_t variable122;
+    val_t variable123;
+    val_t variable124;
+    val_t variable125;
+    val_t variable126;
+    val_t variable127;
+    val_t variable128;
+    val_t variable129;
+    val_t variable130;
+    val_t variable131;
+    val_t variable132;
+    val_t variable133;
+    val_t variable134;
+    val_t variable135;
+    val_t variable136;
+    val_t variable137;
+    val_t variable138;
+    val_t variable139;
+    val_t variable140;
+    val_t variable141;
+    val_t variable142;
+    val_t variable143;
+    val_t variable144;
+    val_t variable145;
+    val_t variable146;
+    val_t variable147;
+    val_t variable148;
+    val_t variable149;
+    val_t variable150;
+    val_t variable151;
+    val_t variable152;
+    val_t variable153;
+    val_t variable154;
+    val_t variable155;
+    val_t variable156;
+    val_t variable157;
+    val_t variable158;
+    val_t variable159;
+    val_t variable160;
+    val_t variable161;
+    val_t variable162;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_1149) variable0 = once_value_variable0_1149;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(162)); /*new Array[String]*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(364)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    variable2 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF"), TAG_Int(509)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable2) /*Array::add*/;
+    variable3 = NEW_string___String___with_native(BOX_NativeString("expecting: EOF"), TAG_Int(14)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable3) /*Array::add*/;
+    variable4 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(353)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable4) /*Array::add*/;
+    variable5 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(343)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable5) /*Array::add*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment"), TAG_Int(23)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable6) /*Array::add*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(350)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable7) /*Array::add*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString("expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(345)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable8) /*Array::add*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString("expecting: comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF"), TAG_Int(504)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable9) /*Array::add*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(334)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable10) /*Array::add*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(400)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable11) /*Array::add*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(296)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable12) /*Array::add*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, id"), TAG_Int(27)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable13) /*Array::add*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(197)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable14) /*Array::add*/;
+    variable15 = NEW_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'protected', 'private', 'intrude'"), TAG_Int(99)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable15) /*Array::add*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(246)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable16) /*Array::add*/;
+    variable17 = NEW_string___String___with_native(BOX_NativeString("expecting: id"), TAG_Int(13)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable17) /*Array::add*/;
+    variable18 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'"), TAG_Int(112)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable18) /*Array::add*/;
+    variable19 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(180)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable19) /*Array::add*/;
+    variable20 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(192)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable20) /*Array::add*/;
+    variable21 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', EOF"), TAG_Int(35)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable21) /*Array::add*/;
+    variable22 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(166)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable22) /*Array::add*/;
+    variable23 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, classid"), TAG_Int(32)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable23) /*Array::add*/;
+    variable24 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(204)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable24) /*Array::add*/;
+    variable25 = NEW_string___String___with_native(BOX_NativeString("expecting: '::'"), TAG_Int(15)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable25) /*Array::add*/;
+    variable26 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(220)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable26) /*Array::add*/;
+    variable27 = NEW_string___String___with_native(BOX_NativeString("expecting: '[', '=', '+=', '-=', '.'"), TAG_Int(36)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable27) /*Array::add*/;
+    variable28 = NEW_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth'"), TAG_Int(74)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable28) /*Array::add*/;
+    variable29 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, EOF"), TAG_Int(28)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable29) /*Array::add*/;
+    variable30 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do'"), TAG_Int(29)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable30) /*Array::add*/;
+    variable31 = NEW_string___String___with_native(BOX_NativeString("expecting: '[', '.'"), TAG_Int(19)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable31) /*Array::add*/;
+    variable32 = NEW_string___String___with_native(BOX_NativeString("expecting: mid string, end string"), TAG_Int(33)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable32) /*Array::add*/;
+    variable33 = NEW_string___String___with_native(BOX_NativeString("expecting: 'super'"), TAG_Int(18)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable33) /*Array::add*/;
+    variable34 = NEW_string___String___with_native(BOX_NativeString("expecting: 'super', classid, id"), TAG_Int(31)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable34) /*Array::add*/;
+    variable35 = NEW_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(324)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable35) /*Array::add*/;
+    variable36 = NEW_string___String___with_native(BOX_NativeString("expecting: 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(277)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable36) /*Array::add*/;
+    variable37 = NEW_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'in', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string"), TAG_Int(406)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable37) /*Array::add*/;
+    variable38 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(145)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable38) /*Array::add*/;
+    variable39 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(164)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable39) /*Array::add*/;
+    variable40 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(157)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable40) /*Array::add*/;
+    variable41 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(140)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable41) /*Array::add*/;
+    variable42 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(185)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable42) /*Array::add*/;
+    variable43 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(151)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable43) /*Array::add*/;
+    variable44 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', EOF"), TAG_Int(43)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable44) /*Array::add*/;
+    variable45 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'and', 'or', EOF"), TAG_Int(56)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable45) /*Array::add*/;
+    variable46 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(120)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable46) /*Array::add*/;
+    variable47 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(135)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable47) /*Array::add*/;
+    variable48 = NEW_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth'"), TAG_Int(64)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable48) /*Array::add*/;
+    variable49 = NEW_string___String___with_native(BOX_NativeString("expecting: 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(232)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable49) /*Array::add*/;
+    variable50 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', ':', '=', EOF"), TAG_Int(53)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable50) /*Array::add*/;
+    variable51 = NEW_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'"), TAG_Int(98)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable51) /*Array::add*/;
+    variable52 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(209)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable52) /*Array::add*/;
+    variable53 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(174)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable53) /*Array::add*/;
+    variable54 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(167)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable54) /*Array::add*/;
+    variable55 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '::', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(215)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable55) /*Array::add*/;
+    variable56 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', mid string, end string, EOF"), TAG_Int(115)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable56) /*Array::add*/;
+    variable57 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(179)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable57) /*Array::add*/;
+    variable58 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(194)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable58) /*Array::add*/;
+    variable59 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '[', ':', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(161)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable59) /*Array::add*/;
+    variable60 = NEW_string___String___with_native(BOX_NativeString("expecting: classid"), TAG_Int(18)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable60) /*Array::add*/;
+    variable61 = NEW_string___String___with_native(BOX_NativeString("expecting: ')'"), TAG_Int(14)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable61) /*Array::add*/;
+    variable62 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'super'"), TAG_Int(32)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable62) /*Array::add*/;
+    variable63 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'super', classid, id"), TAG_Int(45)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable63) /*Array::add*/;
+    variable64 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', id"), TAG_Int(34)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable64) /*Array::add*/;
+    variable65 = NEW_string___String___with_native(BOX_NativeString("expecting: 'class'"), TAG_Int(18)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable65) /*Array::add*/;
+    variable66 = NEW_string___String___with_native(BOX_NativeString("expecting: '[', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id"), TAG_Int(84)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable66) /*Array::add*/;
+    variable67 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(230)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable67) /*Array::add*/;
+    variable68 = NEW_string___String___with_native(BOX_NativeString("expecting: 'do'"), TAG_Int(15)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable68) /*Array::add*/;
+    variable69 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', id, attrid"), TAG_Int(43)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable69) /*Array::add*/;
+    variable70 = NEW_string___String___with_native(BOX_NativeString("expecting: 'meth', 'protected', 'private', 'intrude'"), TAG_Int(52)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable70) /*Array::add*/;
+    variable71 = NEW_string___String___with_native(BOX_NativeString("expecting: 'meth'"), TAG_Int(17)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable71) /*Array::add*/;
+    variable72 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(150)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable72) /*Array::add*/;
+    variable73 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(143)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable73) /*Array::add*/;
+    variable74 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(171)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable74) /*Array::add*/;
+    variable75 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', '=', EOF"), TAG_Int(48)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable75) /*Array::add*/;
+    variable76 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'then'"), TAG_Int(31)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable76) /*Array::add*/;
+    variable77 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'in'"), TAG_Int(29)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable77) /*Array::add*/;
+    variable78 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(160)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable78) /*Array::add*/;
+    variable79 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(153)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable79) /*Array::add*/;
+    variable80 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(332)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable80) /*Array::add*/;
+    variable81 = NEW_string___String___with_native(BOX_NativeString("expecting: '.'"), TAG_Int(14)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable81) /*Array::add*/;
+    variable82 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ',', '..'"), TAG_Int(39)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable82) /*Array::add*/;
+    variable83 = NEW_string___String___with_native(BOX_NativeString("expecting: 'end', id"), TAG_Int(20)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable83) /*Array::add*/;
+    variable84 = NEW_string___String___with_native(BOX_NativeString("expecting: ']'"), TAG_Int(14)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable84) /*Array::add*/;
+    variable85 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', '(', ':'"), TAG_Int(45)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable85) /*Array::add*/;
+    variable86 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', '(', ':', '='"), TAG_Int(50)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable86) /*Array::add*/;
+    variable87 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', id, attrid"), TAG_Int(29)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable87) /*Array::add*/;
+    variable88 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, mid string, end string"), TAG_Int(47)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable88) /*Array::add*/;
+    variable89 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(150)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable89) /*Array::add*/;
+    variable90 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', '[', '=', '+=', '-=', '.', EOF"), TAG_Int(70)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable90) /*Array::add*/;
+    variable91 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ','"), TAG_Int(33)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable91) /*Array::add*/;
+    variable92 = NEW_string___String___with_native(BOX_NativeString("expecting: 'then'"), TAG_Int(17)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable92) /*Array::add*/;
+    variable93 = NEW_string___String___with_native(BOX_NativeString("expecting: 'in'"), TAG_Int(15)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable93) /*Array::add*/;
+    variable94 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(204)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable94) /*Array::add*/;
+    variable95 = NEW_string___String___with_native(BOX_NativeString("expecting: ']', ',', '..'"), TAG_Int(25)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable95) /*Array::add*/;
+    variable96 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', id"), TAG_Int(32)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable96) /*Array::add*/;
+    variable97 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do'"), TAG_Int(35)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable97) /*Array::add*/;
+    variable98 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', ':'"), TAG_Int(40)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable98) /*Array::add*/;
+    variable99 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude', '['"), TAG_Int(146)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable99) /*Array::add*/;
+    variable100 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ','"), TAG_Int(33)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable100) /*Array::add*/;
+    variable101 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(214)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable101) /*Array::add*/;
+    variable102 = NEW_string___String___with_native(BOX_NativeString("expecting: ')', ','"), TAG_Int(19)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable102) /*Array::add*/;
+    variable103 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'and', 'or', '+', '-', EOF"), TAG_Int(66)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable103) /*Array::add*/;
+    variable104 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'else', ')', ']', ',', '=', '...', EOF"), TAG_Int(82)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable104) /*Array::add*/;
+    variable105 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(254)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable105) /*Array::add*/;
+    variable106 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', '+', '-', mid string, end string, EOF"), TAG_Int(125)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable106) /*Array::add*/;
+    variable107 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', '[', ']', ',', '=', '+=', '-=', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(221)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable107) /*Array::add*/;
+    variable108 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(175)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable108) /*Array::add*/;
+    variable109 = NEW_string___String___with_native(BOX_NativeString("expecting: ')', ']', ','"), TAG_Int(24)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable109) /*Array::add*/;
+    variable110 = NEW_string___String___with_native(BOX_NativeString("expecting: ']', ','"), TAG_Int(19)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable110) /*Array::add*/;
+    variable111 = NEW_string___String___with_native(BOX_NativeString("expecting: ')', id"), TAG_Int(18)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable111) /*Array::add*/;
+    variable112 = NEW_string___String___with_native(BOX_NativeString("expecting: 'extern'"), TAG_Int(19)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable112) /*Array::add*/;
+    variable113 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(141)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable113) /*Array::add*/;
+    variable114 = NEW_string___String___with_native(BOX_NativeString("expecting: 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(127)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable114) /*Array::add*/;
+    variable115 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(205)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable115) /*Array::add*/;
+    variable116 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(200)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable116) /*Array::add*/;
+    variable117 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(228)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable117) /*Array::add*/;
+    variable118 = NEW_string___String___with_native(BOX_NativeString("expecting: 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(240)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable118) /*Array::add*/;
+    variable119 = NEW_string___String___with_native(BOX_NativeString("expecting: 'else'"), TAG_Int(17)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable119) /*Array::add*/;
+    variable120 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']'"), TAG_Int(28)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable120) /*Array::add*/;
+    variable121 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(161)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable121) /*Array::add*/;
+    variable122 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ',', ':'"), TAG_Int(38)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable122) /*Array::add*/;
+    variable123 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, string"), TAG_Int(31)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable123) /*Array::add*/;
+    variable124 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(130)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable124) /*Array::add*/;
+    variable125 = NEW_string___String___with_native(BOX_NativeString("expecting: 'meth', 'type', 'attr', 'init', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(100)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable125) /*Array::add*/;
+    variable126 = NEW_string___String___with_native(BOX_NativeString("expecting: 'attr', 'redef', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(73)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable126) /*Array::add*/;
+    variable127 = NEW_string___String___with_native(BOX_NativeString("expecting: 'attr', 'redef', 'protected', 'private', 'intrude'"), TAG_Int(61)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable127) /*Array::add*/;
+    variable128 = NEW_string___String___with_native(BOX_NativeString("expecting: 'meth', 'type', 'attr', 'init'"), TAG_Int(41)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable128) /*Array::add*/;
+    variable129 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ']', ','"), TAG_Int(38)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable129) /*Array::add*/;
+    variable130 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(135)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable130) /*Array::add*/;
+    variable131 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(169)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable131) /*Array::add*/;
+    variable132 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(162)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable132) /*Array::add*/;
+    variable133 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(130)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable133) /*Array::add*/;
+    variable134 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(141)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable134) /*Array::add*/;
+    variable135 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, '[', ']'"), TAG_Int(33)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable135) /*Array::add*/;
+    variable136 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'and', 'or', '[', ']'"), TAG_Int(46)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable136) /*Array::add*/;
+    variable137 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(110)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable137) /*Array::add*/;
+    variable138 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(125)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable138) /*Array::add*/;
+    variable139 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ',', '...'"), TAG_Int(40)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable139) /*Array::add*/;
+    variable140 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ',', ':'"), TAG_Int(38)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable140) /*Array::add*/;
+    variable141 = NEW_string___String___with_native(BOX_NativeString("expecting: 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(116)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable141) /*Array::add*/;
+    variable142 = NEW_string___String___with_native(BOX_NativeString("expecting: 'attr', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(64)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable142) /*Array::add*/;
+    variable143 = NEW_string___String___with_native(BOX_NativeString("expecting: 'attr'"), TAG_Int(17)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable143) /*Array::add*/;
+    variable144 = NEW_string___String___with_native(BOX_NativeString("expecting: 'attr', 'protected', 'private', 'intrude'"), TAG_Int(52)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable144) /*Array::add*/;
+    variable145 = NEW_string___String___with_native(BOX_NativeString("expecting: attrid"), TAG_Int(17)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable145) /*Array::add*/;
+    variable146 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', '(', '[', ':', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id"), TAG_Int(114)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable146) /*Array::add*/;
+    variable147 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'else'"), TAG_Int(31)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable147) /*Array::add*/;
+    variable148 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', '(', ')', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(327)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable148) /*Array::add*/;
+    variable149 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(155)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable149) /*Array::add*/;
+    variable150 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(148)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable150) /*Array::add*/;
+    variable151 = NEW_string___String___with_native(BOX_NativeString("expecting: '[', ']'"), TAG_Int(19)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable151) /*Array::add*/;
+    variable152 = NEW_string___String___with_native(BOX_NativeString("expecting: ':'"), TAG_Int(14)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable152) /*Array::add*/;
+    variable153 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, ':', '='"), TAG_Int(33)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable153) /*Array::add*/;
+    variable154 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', '(', ':'"), TAG_Int(39)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable154) /*Array::add*/;
+    variable155 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(222)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable155) /*Array::add*/;
+    variable156 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, '='"), TAG_Int(28)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable156) /*Array::add*/;
+    variable157 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(170)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable157) /*Array::add*/;
+    variable158 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'and', 'or', '[', ']', '+', '-'"), TAG_Int(56)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable158) /*Array::add*/;
+    variable159 = NEW_string___String___with_native(BOX_NativeString("expecting: 'abstract', 'intern', 'extern'"), TAG_Int(41)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable159) /*Array::add*/;
+    variable160 = NEW_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(156)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable160) /*Array::add*/;
+    variable161 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end'"), TAG_Int(30)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable161) /*Array::add*/;
+    variable162 = NEW_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', ')', ']', ',', '..', mid string, end string, EOF"), TAG_Int(102)); /*new String*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable162) /*Array::add*/;
+    once_value_variable0_1149 = variable0;
+    once_bool_variable0_1149 = true;
+  }
+  goto return_label1148;
+  return_label1148: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t parser_tables___Parser___errors(val_t  self) {
+  struct trace_t trace = {NULL, "parser_tables::Parser::errors (src/parser//parser_tables.nit:14624,2--14627:5901)"};
+  val_t variable0;
+  static val_t once_value_variable0_1151; static int once_bool_variable0_1151;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_1151) variable0 = once_value_variable0_1151;
+  else {
+    variable0 = NEW_array___Array___with_capacity(TAG_Int(1144)); /*new Array[Int]*/
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(0)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(6)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(7)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(8)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(9)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(10)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(14)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(17)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(19)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(25)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(27)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(34)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(35)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(36)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(42)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(45)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(49)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(50)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(54)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(56)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(58)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(61)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(62)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(63)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(64)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(66)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(24)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(1)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(47)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(69)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(41)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(38)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(39)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(74)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(76)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(52)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(53)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(79)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(80)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(81)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(33)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(82)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(85)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(28)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(70)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(73)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(88)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(89)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(71)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(72)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(92)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(93)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(77)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(78)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(94)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(85)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(95)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(13)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(100)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(87)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(11)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(44)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(102)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(46)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(98)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(103)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(55)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(105)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(57)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(3)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(110)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(109)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(26)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(31)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(2)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(89)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(111)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(115)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(116)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(30)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(51)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(106)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(121)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(124)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(127)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(101)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(119)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(89)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(128)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(133)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(32)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(134)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(136)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(138)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(139)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(125)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(127)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(40)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(113)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(147)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(108)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(150)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(130)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(131)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(68)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(60)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(22)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(141)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(65)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(145)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(153)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(37)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(114)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(154)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(117)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(75)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(23)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(148)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(149)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(86)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(90)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(97)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(59)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(83)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(126)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(84)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(151)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(153)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(156)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(123)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(48)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(104)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(20)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(91)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(12)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(135)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(157)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(137)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(99)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(112)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(143)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(96)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(29)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(158)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(159)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(140)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(16)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(142)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(158)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(67)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(43)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(4)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(161)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(129)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(144)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(122)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(15)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(146)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(132)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(152)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(160)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(118)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(155)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(107)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(18)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(120)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(21)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(134)) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0,  TAG_Int(5)) /*Array::add*/;
+    once_value_variable0_1151 = variable0;
+    once_bool_variable0_1151 = true;
+  }
+  goto return_label1150;
+  return_label1150: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
diff --git a/c_src/parser_tables._sep.h b/c_src/parser_tables._sep.h
new file mode 100644 (file)
index 0000000..b252860
--- /dev/null
@@ -0,0 +1,3459 @@
+#ifndef parser_tables__sep
+#define parser_tables__sep
+#include "standard._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Parser[];
+extern const int SFT_parser_tables[];
+#define ID_Parser SFT_parser_tables[0]
+#define COLOR_Parser SFT_parser_tables[1]
+#define COLOR_parser_tables___Parser____action_table SFT_parser_tables[2]
+#define COLOR_parser_tables___Parser____goto_table SFT_parser_tables[3]
+#define INIT_TABLE_POS_Parser SFT_parser_tables[4]
+#define COLOR_parser_tables___Parser___build_action_table SFT_parser_tables[5]
+#define COLOR_parser_tables___Parser___action_table_row1 SFT_parser_tables[6]
+#define COLOR_parser_tables___Parser___action_table_row2 SFT_parser_tables[7]
+#define COLOR_parser_tables___Parser___action_table_row3 SFT_parser_tables[8]
+#define COLOR_parser_tables___Parser___action_table_row4 SFT_parser_tables[9]
+#define COLOR_parser_tables___Parser___action_table_row5 SFT_parser_tables[10]
+#define COLOR_parser_tables___Parser___action_table_row6 SFT_parser_tables[11]
+#define COLOR_parser_tables___Parser___action_table_row7 SFT_parser_tables[12]
+#define COLOR_parser_tables___Parser___action_table_row8 SFT_parser_tables[13]
+#define COLOR_parser_tables___Parser___action_table_row9 SFT_parser_tables[14]
+#define COLOR_parser_tables___Parser___action_table_row10 SFT_parser_tables[15]
+#define COLOR_parser_tables___Parser___action_table_row11 SFT_parser_tables[16]
+#define COLOR_parser_tables___Parser___action_table_row12 SFT_parser_tables[17]
+#define COLOR_parser_tables___Parser___action_table_row13 SFT_parser_tables[18]
+#define COLOR_parser_tables___Parser___action_table_row14 SFT_parser_tables[19]
+#define COLOR_parser_tables___Parser___action_table_row15 SFT_parser_tables[20]
+#define COLOR_parser_tables___Parser___action_table_row16 SFT_parser_tables[21]
+#define COLOR_parser_tables___Parser___action_table_row17 SFT_parser_tables[22]
+#define COLOR_parser_tables___Parser___action_table_row18 SFT_parser_tables[23]
+#define COLOR_parser_tables___Parser___action_table_row19 SFT_parser_tables[24]
+#define COLOR_parser_tables___Parser___action_table_row20 SFT_parser_tables[25]
+#define COLOR_parser_tables___Parser___action_table_row21 SFT_parser_tables[26]
+#define COLOR_parser_tables___Parser___action_table_row22 SFT_parser_tables[27]
+#define COLOR_parser_tables___Parser___action_table_row23 SFT_parser_tables[28]
+#define COLOR_parser_tables___Parser___action_table_row24 SFT_parser_tables[29]
+#define COLOR_parser_tables___Parser___action_table_row25 SFT_parser_tables[30]
+#define COLOR_parser_tables___Parser___action_table_row26 SFT_parser_tables[31]
+#define COLOR_parser_tables___Parser___action_table_row27 SFT_parser_tables[32]
+#define COLOR_parser_tables___Parser___action_table_row28 SFT_parser_tables[33]
+#define COLOR_parser_tables___Parser___action_table_row29 SFT_parser_tables[34]
+#define COLOR_parser_tables___Parser___action_table_row30 SFT_parser_tables[35]
+#define COLOR_parser_tables___Parser___action_table_row31 SFT_parser_tables[36]
+#define COLOR_parser_tables___Parser___action_table_row32 SFT_parser_tables[37]
+#define COLOR_parser_tables___Parser___action_table_row33 SFT_parser_tables[38]
+#define COLOR_parser_tables___Parser___action_table_row34 SFT_parser_tables[39]
+#define COLOR_parser_tables___Parser___action_table_row35 SFT_parser_tables[40]
+#define COLOR_parser_tables___Parser___action_table_row36 SFT_parser_tables[41]
+#define COLOR_parser_tables___Parser___action_table_row37 SFT_parser_tables[42]
+#define COLOR_parser_tables___Parser___action_table_row38 SFT_parser_tables[43]
+#define COLOR_parser_tables___Parser___action_table_row39 SFT_parser_tables[44]
+#define COLOR_parser_tables___Parser___action_table_row40 SFT_parser_tables[45]
+#define COLOR_parser_tables___Parser___action_table_row41 SFT_parser_tables[46]
+#define COLOR_parser_tables___Parser___action_table_row42 SFT_parser_tables[47]
+#define COLOR_parser_tables___Parser___action_table_row43 SFT_parser_tables[48]
+#define COLOR_parser_tables___Parser___action_table_row44 SFT_parser_tables[49]
+#define COLOR_parser_tables___Parser___action_table_row45 SFT_parser_tables[50]
+#define COLOR_parser_tables___Parser___action_table_row46 SFT_parser_tables[51]
+#define COLOR_parser_tables___Parser___action_table_row47 SFT_parser_tables[52]
+#define COLOR_parser_tables___Parser___action_table_row48 SFT_parser_tables[53]
+#define COLOR_parser_tables___Parser___action_table_row49 SFT_parser_tables[54]
+#define COLOR_parser_tables___Parser___action_table_row50 SFT_parser_tables[55]
+#define COLOR_parser_tables___Parser___action_table_row51 SFT_parser_tables[56]
+#define COLOR_parser_tables___Parser___action_table_row52 SFT_parser_tables[57]
+#define COLOR_parser_tables___Parser___action_table_row53 SFT_parser_tables[58]
+#define COLOR_parser_tables___Parser___action_table_row54 SFT_parser_tables[59]
+#define COLOR_parser_tables___Parser___action_table_row55 SFT_parser_tables[60]
+#define COLOR_parser_tables___Parser___action_table_row56 SFT_parser_tables[61]
+#define COLOR_parser_tables___Parser___action_table_row57 SFT_parser_tables[62]
+#define COLOR_parser_tables___Parser___action_table_row58 SFT_parser_tables[63]
+#define COLOR_parser_tables___Parser___action_table_row59 SFT_parser_tables[64]
+#define COLOR_parser_tables___Parser___action_table_row60 SFT_parser_tables[65]
+#define COLOR_parser_tables___Parser___action_table_row61 SFT_parser_tables[66]
+#define COLOR_parser_tables___Parser___action_table_row62 SFT_parser_tables[67]
+#define COLOR_parser_tables___Parser___action_table_row63 SFT_parser_tables[68]
+#define COLOR_parser_tables___Parser___action_table_row64 SFT_parser_tables[69]
+#define COLOR_parser_tables___Parser___action_table_row65 SFT_parser_tables[70]
+#define COLOR_parser_tables___Parser___action_table_row66 SFT_parser_tables[71]
+#define COLOR_parser_tables___Parser___action_table_row67 SFT_parser_tables[72]
+#define COLOR_parser_tables___Parser___action_table_row68 SFT_parser_tables[73]
+#define COLOR_parser_tables___Parser___action_table_row69 SFT_parser_tables[74]
+#define COLOR_parser_tables___Parser___action_table_row70 SFT_parser_tables[75]
+#define COLOR_parser_tables___Parser___action_table_row71 SFT_parser_tables[76]
+#define COLOR_parser_tables___Parser___action_table_row72 SFT_parser_tables[77]
+#define COLOR_parser_tables___Parser___action_table_row73 SFT_parser_tables[78]
+#define COLOR_parser_tables___Parser___action_table_row74 SFT_parser_tables[79]
+#define COLOR_parser_tables___Parser___action_table_row75 SFT_parser_tables[80]
+#define COLOR_parser_tables___Parser___action_table_row76 SFT_parser_tables[81]
+#define COLOR_parser_tables___Parser___action_table_row77 SFT_parser_tables[82]
+#define COLOR_parser_tables___Parser___action_table_row78 SFT_parser_tables[83]
+#define COLOR_parser_tables___Parser___action_table_row79 SFT_parser_tables[84]
+#define COLOR_parser_tables___Parser___action_table_row80 SFT_parser_tables[85]
+#define COLOR_parser_tables___Parser___action_table_row81 SFT_parser_tables[86]
+#define COLOR_parser_tables___Parser___action_table_row82 SFT_parser_tables[87]
+#define COLOR_parser_tables___Parser___action_table_row83 SFT_parser_tables[88]
+#define COLOR_parser_tables___Parser___action_table_row84 SFT_parser_tables[89]
+#define COLOR_parser_tables___Parser___action_table_row85 SFT_parser_tables[90]
+#define COLOR_parser_tables___Parser___action_table_row86 SFT_parser_tables[91]
+#define COLOR_parser_tables___Parser___action_table_row87 SFT_parser_tables[92]
+#define COLOR_parser_tables___Parser___action_table_row88 SFT_parser_tables[93]
+#define COLOR_parser_tables___Parser___action_table_row89 SFT_parser_tables[94]
+#define COLOR_parser_tables___Parser___action_table_row90 SFT_parser_tables[95]
+#define COLOR_parser_tables___Parser___action_table_row91 SFT_parser_tables[96]
+#define COLOR_parser_tables___Parser___action_table_row92 SFT_parser_tables[97]
+#define COLOR_parser_tables___Parser___action_table_row93 SFT_parser_tables[98]
+#define COLOR_parser_tables___Parser___action_table_row94 SFT_parser_tables[99]
+#define COLOR_parser_tables___Parser___action_table_row95 SFT_parser_tables[100]
+#define COLOR_parser_tables___Parser___action_table_row96 SFT_parser_tables[101]
+#define COLOR_parser_tables___Parser___action_table_row97 SFT_parser_tables[102]
+#define COLOR_parser_tables___Parser___action_table_row98 SFT_parser_tables[103]
+#define COLOR_parser_tables___Parser___action_table_row99 SFT_parser_tables[104]
+#define COLOR_parser_tables___Parser___action_table_row100 SFT_parser_tables[105]
+#define COLOR_parser_tables___Parser___action_table_row101 SFT_parser_tables[106]
+#define COLOR_parser_tables___Parser___action_table_row102 SFT_parser_tables[107]
+#define COLOR_parser_tables___Parser___action_table_row103 SFT_parser_tables[108]
+#define COLOR_parser_tables___Parser___action_table_row104 SFT_parser_tables[109]
+#define COLOR_parser_tables___Parser___action_table_row105 SFT_parser_tables[110]
+#define COLOR_parser_tables___Parser___action_table_row106 SFT_parser_tables[111]
+#define COLOR_parser_tables___Parser___action_table_row107 SFT_parser_tables[112]
+#define COLOR_parser_tables___Parser___action_table_row108 SFT_parser_tables[113]
+#define COLOR_parser_tables___Parser___action_table_row109 SFT_parser_tables[114]
+#define COLOR_parser_tables___Parser___action_table_row110 SFT_parser_tables[115]
+#define COLOR_parser_tables___Parser___action_table_row111 SFT_parser_tables[116]
+#define COLOR_parser_tables___Parser___action_table_row112 SFT_parser_tables[117]
+#define COLOR_parser_tables___Parser___action_table_row113 SFT_parser_tables[118]
+#define COLOR_parser_tables___Parser___action_table_row114 SFT_parser_tables[119]
+#define COLOR_parser_tables___Parser___action_table_row115 SFT_parser_tables[120]
+#define COLOR_parser_tables___Parser___action_table_row116 SFT_parser_tables[121]
+#define COLOR_parser_tables___Parser___action_table_row117 SFT_parser_tables[122]
+#define COLOR_parser_tables___Parser___action_table_row118 SFT_parser_tables[123]
+#define COLOR_parser_tables___Parser___action_table_row119 SFT_parser_tables[124]
+#define COLOR_parser_tables___Parser___action_table_row120 SFT_parser_tables[125]
+#define COLOR_parser_tables___Parser___action_table_row121 SFT_parser_tables[126]
+#define COLOR_parser_tables___Parser___action_table_row122 SFT_parser_tables[127]
+#define COLOR_parser_tables___Parser___action_table_row123 SFT_parser_tables[128]
+#define COLOR_parser_tables___Parser___action_table_row124 SFT_parser_tables[129]
+#define COLOR_parser_tables___Parser___action_table_row125 SFT_parser_tables[130]
+#define COLOR_parser_tables___Parser___action_table_row126 SFT_parser_tables[131]
+#define COLOR_parser_tables___Parser___action_table_row127 SFT_parser_tables[132]
+#define COLOR_parser_tables___Parser___action_table_row128 SFT_parser_tables[133]
+#define COLOR_parser_tables___Parser___action_table_row129 SFT_parser_tables[134]
+#define COLOR_parser_tables___Parser___action_table_row130 SFT_parser_tables[135]
+#define COLOR_parser_tables___Parser___action_table_row131 SFT_parser_tables[136]
+#define COLOR_parser_tables___Parser___action_table_row132 SFT_parser_tables[137]
+#define COLOR_parser_tables___Parser___action_table_row133 SFT_parser_tables[138]
+#define COLOR_parser_tables___Parser___action_table_row134 SFT_parser_tables[139]
+#define COLOR_parser_tables___Parser___action_table_row135 SFT_parser_tables[140]
+#define COLOR_parser_tables___Parser___action_table_row136 SFT_parser_tables[141]
+#define COLOR_parser_tables___Parser___action_table_row137 SFT_parser_tables[142]
+#define COLOR_parser_tables___Parser___action_table_row138 SFT_parser_tables[143]
+#define COLOR_parser_tables___Parser___action_table_row139 SFT_parser_tables[144]
+#define COLOR_parser_tables___Parser___action_table_row140 SFT_parser_tables[145]
+#define COLOR_parser_tables___Parser___action_table_row141 SFT_parser_tables[146]
+#define COLOR_parser_tables___Parser___action_table_row142 SFT_parser_tables[147]
+#define COLOR_parser_tables___Parser___action_table_row143 SFT_parser_tables[148]
+#define COLOR_parser_tables___Parser___action_table_row144 SFT_parser_tables[149]
+#define COLOR_parser_tables___Parser___action_table_row145 SFT_parser_tables[150]
+#define COLOR_parser_tables___Parser___action_table_row146 SFT_parser_tables[151]
+#define COLOR_parser_tables___Parser___action_table_row147 SFT_parser_tables[152]
+#define COLOR_parser_tables___Parser___action_table_row148 SFT_parser_tables[153]
+#define COLOR_parser_tables___Parser___action_table_row149 SFT_parser_tables[154]
+#define COLOR_parser_tables___Parser___action_table_row150 SFT_parser_tables[155]
+#define COLOR_parser_tables___Parser___action_table_row151 SFT_parser_tables[156]
+#define COLOR_parser_tables___Parser___action_table_row152 SFT_parser_tables[157]
+#define COLOR_parser_tables___Parser___action_table_row153 SFT_parser_tables[158]
+#define COLOR_parser_tables___Parser___action_table_row154 SFT_parser_tables[159]
+#define COLOR_parser_tables___Parser___action_table_row155 SFT_parser_tables[160]
+#define COLOR_parser_tables___Parser___action_table_row156 SFT_parser_tables[161]
+#define COLOR_parser_tables___Parser___action_table_row157 SFT_parser_tables[162]
+#define COLOR_parser_tables___Parser___action_table_row158 SFT_parser_tables[163]
+#define COLOR_parser_tables___Parser___action_table_row159 SFT_parser_tables[164]
+#define COLOR_parser_tables___Parser___action_table_row160 SFT_parser_tables[165]
+#define COLOR_parser_tables___Parser___action_table_row161 SFT_parser_tables[166]
+#define COLOR_parser_tables___Parser___action_table_row162 SFT_parser_tables[167]
+#define COLOR_parser_tables___Parser___action_table_row163 SFT_parser_tables[168]
+#define COLOR_parser_tables___Parser___action_table_row164 SFT_parser_tables[169]
+#define COLOR_parser_tables___Parser___action_table_row165 SFT_parser_tables[170]
+#define COLOR_parser_tables___Parser___action_table_row166 SFT_parser_tables[171]
+#define COLOR_parser_tables___Parser___action_table_row167 SFT_parser_tables[172]
+#define COLOR_parser_tables___Parser___action_table_row168 SFT_parser_tables[173]
+#define COLOR_parser_tables___Parser___action_table_row169 SFT_parser_tables[174]
+#define COLOR_parser_tables___Parser___action_table_row170 SFT_parser_tables[175]
+#define COLOR_parser_tables___Parser___action_table_row171 SFT_parser_tables[176]
+#define COLOR_parser_tables___Parser___action_table_row172 SFT_parser_tables[177]
+#define COLOR_parser_tables___Parser___action_table_row173 SFT_parser_tables[178]
+#define COLOR_parser_tables___Parser___action_table_row174 SFT_parser_tables[179]
+#define COLOR_parser_tables___Parser___action_table_row175 SFT_parser_tables[180]
+#define COLOR_parser_tables___Parser___action_table_row176 SFT_parser_tables[181]
+#define COLOR_parser_tables___Parser___action_table_row177 SFT_parser_tables[182]
+#define COLOR_parser_tables___Parser___action_table_row178 SFT_parser_tables[183]
+#define COLOR_parser_tables___Parser___action_table_row179 SFT_parser_tables[184]
+#define COLOR_parser_tables___Parser___action_table_row180 SFT_parser_tables[185]
+#define COLOR_parser_tables___Parser___action_table_row181 SFT_parser_tables[186]
+#define COLOR_parser_tables___Parser___action_table_row182 SFT_parser_tables[187]
+#define COLOR_parser_tables___Parser___action_table_row183 SFT_parser_tables[188]
+#define COLOR_parser_tables___Parser___action_table_row184 SFT_parser_tables[189]
+#define COLOR_parser_tables___Parser___action_table_row185 SFT_parser_tables[190]
+#define COLOR_parser_tables___Parser___action_table_row186 SFT_parser_tables[191]
+#define COLOR_parser_tables___Parser___action_table_row187 SFT_parser_tables[192]
+#define COLOR_parser_tables___Parser___action_table_row188 SFT_parser_tables[193]
+#define COLOR_parser_tables___Parser___action_table_row189 SFT_parser_tables[194]
+#define COLOR_parser_tables___Parser___action_table_row190 SFT_parser_tables[195]
+#define COLOR_parser_tables___Parser___action_table_row191 SFT_parser_tables[196]
+#define COLOR_parser_tables___Parser___action_table_row192 SFT_parser_tables[197]
+#define COLOR_parser_tables___Parser___action_table_row193 SFT_parser_tables[198]
+#define COLOR_parser_tables___Parser___action_table_row194 SFT_parser_tables[199]
+#define COLOR_parser_tables___Parser___action_table_row195 SFT_parser_tables[200]
+#define COLOR_parser_tables___Parser___action_table_row196 SFT_parser_tables[201]
+#define COLOR_parser_tables___Parser___action_table_row197 SFT_parser_tables[202]
+#define COLOR_parser_tables___Parser___action_table_row198 SFT_parser_tables[203]
+#define COLOR_parser_tables___Parser___action_table_row199 SFT_parser_tables[204]
+#define COLOR_parser_tables___Parser___action_table_row200 SFT_parser_tables[205]
+#define COLOR_parser_tables___Parser___action_table_row201 SFT_parser_tables[206]
+#define COLOR_parser_tables___Parser___action_table_row202 SFT_parser_tables[207]
+#define COLOR_parser_tables___Parser___action_table_row203 SFT_parser_tables[208]
+#define COLOR_parser_tables___Parser___action_table_row204 SFT_parser_tables[209]
+#define COLOR_parser_tables___Parser___action_table_row205 SFT_parser_tables[210]
+#define COLOR_parser_tables___Parser___action_table_row206 SFT_parser_tables[211]
+#define COLOR_parser_tables___Parser___action_table_row207 SFT_parser_tables[212]
+#define COLOR_parser_tables___Parser___action_table_row208 SFT_parser_tables[213]
+#define COLOR_parser_tables___Parser___action_table_row209 SFT_parser_tables[214]
+#define COLOR_parser_tables___Parser___action_table_row210 SFT_parser_tables[215]
+#define COLOR_parser_tables___Parser___action_table_row211 SFT_parser_tables[216]
+#define COLOR_parser_tables___Parser___action_table_row212 SFT_parser_tables[217]
+#define COLOR_parser_tables___Parser___action_table_row213 SFT_parser_tables[218]
+#define COLOR_parser_tables___Parser___action_table_row214 SFT_parser_tables[219]
+#define COLOR_parser_tables___Parser___action_table_row215 SFT_parser_tables[220]
+#define COLOR_parser_tables___Parser___action_table_row216 SFT_parser_tables[221]
+#define COLOR_parser_tables___Parser___action_table_row217 SFT_parser_tables[222]
+#define COLOR_parser_tables___Parser___action_table_row218 SFT_parser_tables[223]
+#define COLOR_parser_tables___Parser___action_table_row219 SFT_parser_tables[224]
+#define COLOR_parser_tables___Parser___action_table_row220 SFT_parser_tables[225]
+#define COLOR_parser_tables___Parser___action_table_row221 SFT_parser_tables[226]
+#define COLOR_parser_tables___Parser___action_table_row222 SFT_parser_tables[227]
+#define COLOR_parser_tables___Parser___action_table_row223 SFT_parser_tables[228]
+#define COLOR_parser_tables___Parser___action_table_row224 SFT_parser_tables[229]
+#define COLOR_parser_tables___Parser___action_table_row225 SFT_parser_tables[230]
+#define COLOR_parser_tables___Parser___action_table_row226 SFT_parser_tables[231]
+#define COLOR_parser_tables___Parser___action_table_row227 SFT_parser_tables[232]
+#define COLOR_parser_tables___Parser___action_table_row228 SFT_parser_tables[233]
+#define COLOR_parser_tables___Parser___action_table_row229 SFT_parser_tables[234]
+#define COLOR_parser_tables___Parser___action_table_row230 SFT_parser_tables[235]
+#define COLOR_parser_tables___Parser___action_table_row231 SFT_parser_tables[236]
+#define COLOR_parser_tables___Parser___action_table_row232 SFT_parser_tables[237]
+#define COLOR_parser_tables___Parser___action_table_row233 SFT_parser_tables[238]
+#define COLOR_parser_tables___Parser___action_table_row234 SFT_parser_tables[239]
+#define COLOR_parser_tables___Parser___action_table_row235 SFT_parser_tables[240]
+#define COLOR_parser_tables___Parser___action_table_row236 SFT_parser_tables[241]
+#define COLOR_parser_tables___Parser___action_table_row237 SFT_parser_tables[242]
+#define COLOR_parser_tables___Parser___action_table_row238 SFT_parser_tables[243]
+#define COLOR_parser_tables___Parser___action_table_row239 SFT_parser_tables[244]
+#define COLOR_parser_tables___Parser___action_table_row240 SFT_parser_tables[245]
+#define COLOR_parser_tables___Parser___action_table_row241 SFT_parser_tables[246]
+#define COLOR_parser_tables___Parser___action_table_row242 SFT_parser_tables[247]
+#define COLOR_parser_tables___Parser___action_table_row243 SFT_parser_tables[248]
+#define COLOR_parser_tables___Parser___action_table_row244 SFT_parser_tables[249]
+#define COLOR_parser_tables___Parser___action_table_row245 SFT_parser_tables[250]
+#define COLOR_parser_tables___Parser___action_table_row246 SFT_parser_tables[251]
+#define COLOR_parser_tables___Parser___action_table_row247 SFT_parser_tables[252]
+#define COLOR_parser_tables___Parser___action_table_row248 SFT_parser_tables[253]
+#define COLOR_parser_tables___Parser___action_table_row249 SFT_parser_tables[254]
+#define COLOR_parser_tables___Parser___action_table_row250 SFT_parser_tables[255]
+#define COLOR_parser_tables___Parser___action_table_row251 SFT_parser_tables[256]
+#define COLOR_parser_tables___Parser___action_table_row252 SFT_parser_tables[257]
+#define COLOR_parser_tables___Parser___action_table_row253 SFT_parser_tables[258]
+#define COLOR_parser_tables___Parser___action_table_row254 SFT_parser_tables[259]
+#define COLOR_parser_tables___Parser___action_table_row255 SFT_parser_tables[260]
+#define COLOR_parser_tables___Parser___action_table_row256 SFT_parser_tables[261]
+#define COLOR_parser_tables___Parser___action_table_row257 SFT_parser_tables[262]
+#define COLOR_parser_tables___Parser___action_table_row258 SFT_parser_tables[263]
+#define COLOR_parser_tables___Parser___action_table_row259 SFT_parser_tables[264]
+#define COLOR_parser_tables___Parser___action_table_row260 SFT_parser_tables[265]
+#define COLOR_parser_tables___Parser___action_table_row261 SFT_parser_tables[266]
+#define COLOR_parser_tables___Parser___action_table_row262 SFT_parser_tables[267]
+#define COLOR_parser_tables___Parser___action_table_row263 SFT_parser_tables[268]
+#define COLOR_parser_tables___Parser___action_table_row264 SFT_parser_tables[269]
+#define COLOR_parser_tables___Parser___action_table_row265 SFT_parser_tables[270]
+#define COLOR_parser_tables___Parser___action_table_row266 SFT_parser_tables[271]
+#define COLOR_parser_tables___Parser___action_table_row267 SFT_parser_tables[272]
+#define COLOR_parser_tables___Parser___action_table_row268 SFT_parser_tables[273]
+#define COLOR_parser_tables___Parser___action_table_row269 SFT_parser_tables[274]
+#define COLOR_parser_tables___Parser___action_table_row270 SFT_parser_tables[275]
+#define COLOR_parser_tables___Parser___action_table_row271 SFT_parser_tables[276]
+#define COLOR_parser_tables___Parser___action_table_row272 SFT_parser_tables[277]
+#define COLOR_parser_tables___Parser___action_table_row273 SFT_parser_tables[278]
+#define COLOR_parser_tables___Parser___action_table_row274 SFT_parser_tables[279]
+#define COLOR_parser_tables___Parser___action_table_row275 SFT_parser_tables[280]
+#define COLOR_parser_tables___Parser___action_table_row276 SFT_parser_tables[281]
+#define COLOR_parser_tables___Parser___action_table_row277 SFT_parser_tables[282]
+#define COLOR_parser_tables___Parser___action_table_row278 SFT_parser_tables[283]
+#define COLOR_parser_tables___Parser___action_table_row279 SFT_parser_tables[284]
+#define COLOR_parser_tables___Parser___action_table_row280 SFT_parser_tables[285]
+#define COLOR_parser_tables___Parser___action_table_row281 SFT_parser_tables[286]
+#define COLOR_parser_tables___Parser___action_table_row282 SFT_parser_tables[287]
+#define COLOR_parser_tables___Parser___action_table_row283 SFT_parser_tables[288]
+#define COLOR_parser_tables___Parser___action_table_row284 SFT_parser_tables[289]
+#define COLOR_parser_tables___Parser___action_table_row285 SFT_parser_tables[290]
+#define COLOR_parser_tables___Parser___action_table_row286 SFT_parser_tables[291]
+#define COLOR_parser_tables___Parser___action_table_row287 SFT_parser_tables[292]
+#define COLOR_parser_tables___Parser___action_table_row288 SFT_parser_tables[293]
+#define COLOR_parser_tables___Parser___action_table_row289 SFT_parser_tables[294]
+#define COLOR_parser_tables___Parser___action_table_row290 SFT_parser_tables[295]
+#define COLOR_parser_tables___Parser___action_table_row291 SFT_parser_tables[296]
+#define COLOR_parser_tables___Parser___action_table_row292 SFT_parser_tables[297]
+#define COLOR_parser_tables___Parser___action_table_row293 SFT_parser_tables[298]
+#define COLOR_parser_tables___Parser___action_table_row294 SFT_parser_tables[299]
+#define COLOR_parser_tables___Parser___action_table_row295 SFT_parser_tables[300]
+#define COLOR_parser_tables___Parser___action_table_row296 SFT_parser_tables[301]
+#define COLOR_parser_tables___Parser___action_table_row297 SFT_parser_tables[302]
+#define COLOR_parser_tables___Parser___action_table_row298 SFT_parser_tables[303]
+#define COLOR_parser_tables___Parser___action_table_row299 SFT_parser_tables[304]
+#define COLOR_parser_tables___Parser___action_table_row300 SFT_parser_tables[305]
+#define COLOR_parser_tables___Parser___action_table_row301 SFT_parser_tables[306]
+#define COLOR_parser_tables___Parser___action_table_row302 SFT_parser_tables[307]
+#define COLOR_parser_tables___Parser___action_table_row303 SFT_parser_tables[308]
+#define COLOR_parser_tables___Parser___action_table_row304 SFT_parser_tables[309]
+#define COLOR_parser_tables___Parser___action_table_row305 SFT_parser_tables[310]
+#define COLOR_parser_tables___Parser___action_table_row306 SFT_parser_tables[311]
+#define COLOR_parser_tables___Parser___action_table_row307 SFT_parser_tables[312]
+#define COLOR_parser_tables___Parser___action_table_row308 SFT_parser_tables[313]
+#define COLOR_parser_tables___Parser___action_table_row309 SFT_parser_tables[314]
+#define COLOR_parser_tables___Parser___action_table_row310 SFT_parser_tables[315]
+#define COLOR_parser_tables___Parser___action_table_row311 SFT_parser_tables[316]
+#define COLOR_parser_tables___Parser___action_table_row312 SFT_parser_tables[317]
+#define COLOR_parser_tables___Parser___action_table_row313 SFT_parser_tables[318]
+#define COLOR_parser_tables___Parser___action_table_row314 SFT_parser_tables[319]
+#define COLOR_parser_tables___Parser___action_table_row315 SFT_parser_tables[320]
+#define COLOR_parser_tables___Parser___action_table_row316 SFT_parser_tables[321]
+#define COLOR_parser_tables___Parser___action_table_row317 SFT_parser_tables[322]
+#define COLOR_parser_tables___Parser___action_table_row318 SFT_parser_tables[323]
+#define COLOR_parser_tables___Parser___action_table_row319 SFT_parser_tables[324]
+#define COLOR_parser_tables___Parser___action_table_row320 SFT_parser_tables[325]
+#define COLOR_parser_tables___Parser___action_table_row321 SFT_parser_tables[326]
+#define COLOR_parser_tables___Parser___action_table_row322 SFT_parser_tables[327]
+#define COLOR_parser_tables___Parser___action_table_row323 SFT_parser_tables[328]
+#define COLOR_parser_tables___Parser___action_table_row324 SFT_parser_tables[329]
+#define COLOR_parser_tables___Parser___action_table_row325 SFT_parser_tables[330]
+#define COLOR_parser_tables___Parser___action_table_row326 SFT_parser_tables[331]
+#define COLOR_parser_tables___Parser___action_table_row327 SFT_parser_tables[332]
+#define COLOR_parser_tables___Parser___action_table_row328 SFT_parser_tables[333]
+#define COLOR_parser_tables___Parser___action_table_row329 SFT_parser_tables[334]
+#define COLOR_parser_tables___Parser___action_table_row330 SFT_parser_tables[335]
+#define COLOR_parser_tables___Parser___action_table_row331 SFT_parser_tables[336]
+#define COLOR_parser_tables___Parser___action_table_row332 SFT_parser_tables[337]
+#define COLOR_parser_tables___Parser___action_table_row333 SFT_parser_tables[338]
+#define COLOR_parser_tables___Parser___action_table_row334 SFT_parser_tables[339]
+#define COLOR_parser_tables___Parser___action_table_row335 SFT_parser_tables[340]
+#define COLOR_parser_tables___Parser___action_table_row336 SFT_parser_tables[341]
+#define COLOR_parser_tables___Parser___action_table_row337 SFT_parser_tables[342]
+#define COLOR_parser_tables___Parser___action_table_row338 SFT_parser_tables[343]
+#define COLOR_parser_tables___Parser___action_table_row339 SFT_parser_tables[344]
+#define COLOR_parser_tables___Parser___action_table_row340 SFT_parser_tables[345]
+#define COLOR_parser_tables___Parser___action_table_row341 SFT_parser_tables[346]
+#define COLOR_parser_tables___Parser___action_table_row342 SFT_parser_tables[347]
+#define COLOR_parser_tables___Parser___action_table_row343 SFT_parser_tables[348]
+#define COLOR_parser_tables___Parser___action_table_row344 SFT_parser_tables[349]
+#define COLOR_parser_tables___Parser___action_table_row345 SFT_parser_tables[350]
+#define COLOR_parser_tables___Parser___action_table_row346 SFT_parser_tables[351]
+#define COLOR_parser_tables___Parser___action_table_row347 SFT_parser_tables[352]
+#define COLOR_parser_tables___Parser___action_table_row348 SFT_parser_tables[353]
+#define COLOR_parser_tables___Parser___action_table_row349 SFT_parser_tables[354]
+#define COLOR_parser_tables___Parser___action_table_row350 SFT_parser_tables[355]
+#define COLOR_parser_tables___Parser___action_table_row351 SFT_parser_tables[356]
+#define COLOR_parser_tables___Parser___action_table_row352 SFT_parser_tables[357]
+#define COLOR_parser_tables___Parser___action_table_row353 SFT_parser_tables[358]
+#define COLOR_parser_tables___Parser___action_table_row354 SFT_parser_tables[359]
+#define COLOR_parser_tables___Parser___action_table_row355 SFT_parser_tables[360]
+#define COLOR_parser_tables___Parser___action_table_row356 SFT_parser_tables[361]
+#define COLOR_parser_tables___Parser___action_table_row357 SFT_parser_tables[362]
+#define COLOR_parser_tables___Parser___action_table_row358 SFT_parser_tables[363]
+#define COLOR_parser_tables___Parser___action_table_row359 SFT_parser_tables[364]
+#define COLOR_parser_tables___Parser___action_table_row360 SFT_parser_tables[365]
+#define COLOR_parser_tables___Parser___action_table_row361 SFT_parser_tables[366]
+#define COLOR_parser_tables___Parser___action_table_row362 SFT_parser_tables[367]
+#define COLOR_parser_tables___Parser___action_table_row363 SFT_parser_tables[368]
+#define COLOR_parser_tables___Parser___action_table_row364 SFT_parser_tables[369]
+#define COLOR_parser_tables___Parser___action_table_row365 SFT_parser_tables[370]
+#define COLOR_parser_tables___Parser___action_table_row366 SFT_parser_tables[371]
+#define COLOR_parser_tables___Parser___action_table_row367 SFT_parser_tables[372]
+#define COLOR_parser_tables___Parser___action_table_row368 SFT_parser_tables[373]
+#define COLOR_parser_tables___Parser___action_table_row369 SFT_parser_tables[374]
+#define COLOR_parser_tables___Parser___action_table_row370 SFT_parser_tables[375]
+#define COLOR_parser_tables___Parser___action_table_row371 SFT_parser_tables[376]
+#define COLOR_parser_tables___Parser___action_table_row372 SFT_parser_tables[377]
+#define COLOR_parser_tables___Parser___action_table_row373 SFT_parser_tables[378]
+#define COLOR_parser_tables___Parser___action_table_row374 SFT_parser_tables[379]
+#define COLOR_parser_tables___Parser___action_table_row375 SFT_parser_tables[380]
+#define COLOR_parser_tables___Parser___action_table_row376 SFT_parser_tables[381]
+#define COLOR_parser_tables___Parser___action_table_row377 SFT_parser_tables[382]
+#define COLOR_parser_tables___Parser___action_table_row378 SFT_parser_tables[383]
+#define COLOR_parser_tables___Parser___action_table_row379 SFT_parser_tables[384]
+#define COLOR_parser_tables___Parser___action_table_row380 SFT_parser_tables[385]
+#define COLOR_parser_tables___Parser___action_table_row381 SFT_parser_tables[386]
+#define COLOR_parser_tables___Parser___action_table_row382 SFT_parser_tables[387]
+#define COLOR_parser_tables___Parser___action_table_row383 SFT_parser_tables[388]
+#define COLOR_parser_tables___Parser___action_table_row384 SFT_parser_tables[389]
+#define COLOR_parser_tables___Parser___action_table_row385 SFT_parser_tables[390]
+#define COLOR_parser_tables___Parser___action_table_row386 SFT_parser_tables[391]
+#define COLOR_parser_tables___Parser___action_table_row387 SFT_parser_tables[392]
+#define COLOR_parser_tables___Parser___action_table_row388 SFT_parser_tables[393]
+#define COLOR_parser_tables___Parser___action_table_row389 SFT_parser_tables[394]
+#define COLOR_parser_tables___Parser___action_table_row390 SFT_parser_tables[395]
+#define COLOR_parser_tables___Parser___action_table_row391 SFT_parser_tables[396]
+#define COLOR_parser_tables___Parser___action_table_row392 SFT_parser_tables[397]
+#define COLOR_parser_tables___Parser___action_table_row393 SFT_parser_tables[398]
+#define COLOR_parser_tables___Parser___action_table_row394 SFT_parser_tables[399]
+#define COLOR_parser_tables___Parser___action_table_row395 SFT_parser_tables[400]
+#define COLOR_parser_tables___Parser___action_table_row396 SFT_parser_tables[401]
+#define COLOR_parser_tables___Parser___action_table_row397 SFT_parser_tables[402]
+#define COLOR_parser_tables___Parser___action_table_row398 SFT_parser_tables[403]
+#define COLOR_parser_tables___Parser___action_table_row399 SFT_parser_tables[404]
+#define COLOR_parser_tables___Parser___action_table_row400 SFT_parser_tables[405]
+#define COLOR_parser_tables___Parser___action_table_row401 SFT_parser_tables[406]
+#define COLOR_parser_tables___Parser___action_table_row402 SFT_parser_tables[407]
+#define COLOR_parser_tables___Parser___action_table_row403 SFT_parser_tables[408]
+#define COLOR_parser_tables___Parser___action_table_row404 SFT_parser_tables[409]
+#define COLOR_parser_tables___Parser___action_table_row405 SFT_parser_tables[410]
+#define COLOR_parser_tables___Parser___action_table_row406 SFT_parser_tables[411]
+#define COLOR_parser_tables___Parser___action_table_row407 SFT_parser_tables[412]
+#define COLOR_parser_tables___Parser___action_table_row408 SFT_parser_tables[413]
+#define COLOR_parser_tables___Parser___action_table_row409 SFT_parser_tables[414]
+#define COLOR_parser_tables___Parser___action_table_row410 SFT_parser_tables[415]
+#define COLOR_parser_tables___Parser___action_table_row411 SFT_parser_tables[416]
+#define COLOR_parser_tables___Parser___action_table_row412 SFT_parser_tables[417]
+#define COLOR_parser_tables___Parser___action_table_row413 SFT_parser_tables[418]
+#define COLOR_parser_tables___Parser___action_table_row414 SFT_parser_tables[419]
+#define COLOR_parser_tables___Parser___action_table_row415 SFT_parser_tables[420]
+#define COLOR_parser_tables___Parser___action_table_row416 SFT_parser_tables[421]
+#define COLOR_parser_tables___Parser___action_table_row417 SFT_parser_tables[422]
+#define COLOR_parser_tables___Parser___action_table_row418 SFT_parser_tables[423]
+#define COLOR_parser_tables___Parser___action_table_row419 SFT_parser_tables[424]
+#define COLOR_parser_tables___Parser___action_table_row420 SFT_parser_tables[425]
+#define COLOR_parser_tables___Parser___action_table_row421 SFT_parser_tables[426]
+#define COLOR_parser_tables___Parser___action_table_row422 SFT_parser_tables[427]
+#define COLOR_parser_tables___Parser___action_table_row423 SFT_parser_tables[428]
+#define COLOR_parser_tables___Parser___action_table_row424 SFT_parser_tables[429]
+#define COLOR_parser_tables___Parser___action_table_row425 SFT_parser_tables[430]
+#define COLOR_parser_tables___Parser___action_table_row426 SFT_parser_tables[431]
+#define COLOR_parser_tables___Parser___action_table_row427 SFT_parser_tables[432]
+#define COLOR_parser_tables___Parser___action_table_row428 SFT_parser_tables[433]
+#define COLOR_parser_tables___Parser___action_table_row429 SFT_parser_tables[434]
+#define COLOR_parser_tables___Parser___action_table_row430 SFT_parser_tables[435]
+#define COLOR_parser_tables___Parser___action_table_row431 SFT_parser_tables[436]
+#define COLOR_parser_tables___Parser___action_table_row432 SFT_parser_tables[437]
+#define COLOR_parser_tables___Parser___action_table_row433 SFT_parser_tables[438]
+#define COLOR_parser_tables___Parser___action_table_row434 SFT_parser_tables[439]
+#define COLOR_parser_tables___Parser___action_table_row435 SFT_parser_tables[440]
+#define COLOR_parser_tables___Parser___action_table_row436 SFT_parser_tables[441]
+#define COLOR_parser_tables___Parser___action_table_row437 SFT_parser_tables[442]
+#define COLOR_parser_tables___Parser___action_table_row438 SFT_parser_tables[443]
+#define COLOR_parser_tables___Parser___action_table_row439 SFT_parser_tables[444]
+#define COLOR_parser_tables___Parser___action_table_row440 SFT_parser_tables[445]
+#define COLOR_parser_tables___Parser___action_table_row441 SFT_parser_tables[446]
+#define COLOR_parser_tables___Parser___action_table_row442 SFT_parser_tables[447]
+#define COLOR_parser_tables___Parser___action_table_row443 SFT_parser_tables[448]
+#define COLOR_parser_tables___Parser___action_table_row444 SFT_parser_tables[449]
+#define COLOR_parser_tables___Parser___action_table_row445 SFT_parser_tables[450]
+#define COLOR_parser_tables___Parser___action_table_row446 SFT_parser_tables[451]
+#define COLOR_parser_tables___Parser___action_table_row447 SFT_parser_tables[452]
+#define COLOR_parser_tables___Parser___action_table_row448 SFT_parser_tables[453]
+#define COLOR_parser_tables___Parser___action_table_row449 SFT_parser_tables[454]
+#define COLOR_parser_tables___Parser___action_table_row450 SFT_parser_tables[455]
+#define COLOR_parser_tables___Parser___action_table_row451 SFT_parser_tables[456]
+#define COLOR_parser_tables___Parser___action_table_row452 SFT_parser_tables[457]
+#define COLOR_parser_tables___Parser___action_table_row453 SFT_parser_tables[458]
+#define COLOR_parser_tables___Parser___action_table_row454 SFT_parser_tables[459]
+#define COLOR_parser_tables___Parser___action_table_row455 SFT_parser_tables[460]
+#define COLOR_parser_tables___Parser___action_table_row456 SFT_parser_tables[461]
+#define COLOR_parser_tables___Parser___action_table_row457 SFT_parser_tables[462]
+#define COLOR_parser_tables___Parser___action_table_row458 SFT_parser_tables[463]
+#define COLOR_parser_tables___Parser___action_table_row459 SFT_parser_tables[464]
+#define COLOR_parser_tables___Parser___action_table_row460 SFT_parser_tables[465]
+#define COLOR_parser_tables___Parser___action_table_row461 SFT_parser_tables[466]
+#define COLOR_parser_tables___Parser___action_table_row462 SFT_parser_tables[467]
+#define COLOR_parser_tables___Parser___action_table_row463 SFT_parser_tables[468]
+#define COLOR_parser_tables___Parser___action_table_row464 SFT_parser_tables[469]
+#define COLOR_parser_tables___Parser___action_table_row465 SFT_parser_tables[470]
+#define COLOR_parser_tables___Parser___action_table_row466 SFT_parser_tables[471]
+#define COLOR_parser_tables___Parser___action_table_row467 SFT_parser_tables[472]
+#define COLOR_parser_tables___Parser___action_table_row468 SFT_parser_tables[473]
+#define COLOR_parser_tables___Parser___action_table_row469 SFT_parser_tables[474]
+#define COLOR_parser_tables___Parser___action_table_row470 SFT_parser_tables[475]
+#define COLOR_parser_tables___Parser___action_table_row471 SFT_parser_tables[476]
+#define COLOR_parser_tables___Parser___action_table_row472 SFT_parser_tables[477]
+#define COLOR_parser_tables___Parser___action_table_row473 SFT_parser_tables[478]
+#define COLOR_parser_tables___Parser___action_table_row474 SFT_parser_tables[479]
+#define COLOR_parser_tables___Parser___action_table_row475 SFT_parser_tables[480]
+#define COLOR_parser_tables___Parser___action_table_row476 SFT_parser_tables[481]
+#define COLOR_parser_tables___Parser___action_table_row477 SFT_parser_tables[482]
+#define COLOR_parser_tables___Parser___action_table_row478 SFT_parser_tables[483]
+#define COLOR_parser_tables___Parser___action_table_row479 SFT_parser_tables[484]
+#define COLOR_parser_tables___Parser___action_table_row480 SFT_parser_tables[485]
+#define COLOR_parser_tables___Parser___action_table_row481 SFT_parser_tables[486]
+#define COLOR_parser_tables___Parser___action_table_row482 SFT_parser_tables[487]
+#define COLOR_parser_tables___Parser___action_table_row483 SFT_parser_tables[488]
+#define COLOR_parser_tables___Parser___action_table_row484 SFT_parser_tables[489]
+#define COLOR_parser_tables___Parser___action_table_row485 SFT_parser_tables[490]
+#define COLOR_parser_tables___Parser___action_table_row486 SFT_parser_tables[491]
+#define COLOR_parser_tables___Parser___action_table_row487 SFT_parser_tables[492]
+#define COLOR_parser_tables___Parser___action_table_row488 SFT_parser_tables[493]
+#define COLOR_parser_tables___Parser___action_table_row489 SFT_parser_tables[494]
+#define COLOR_parser_tables___Parser___action_table_row490 SFT_parser_tables[495]
+#define COLOR_parser_tables___Parser___action_table_row491 SFT_parser_tables[496]
+#define COLOR_parser_tables___Parser___action_table_row492 SFT_parser_tables[497]
+#define COLOR_parser_tables___Parser___action_table_row493 SFT_parser_tables[498]
+#define COLOR_parser_tables___Parser___action_table_row494 SFT_parser_tables[499]
+#define COLOR_parser_tables___Parser___action_table_row495 SFT_parser_tables[500]
+#define COLOR_parser_tables___Parser___action_table_row496 SFT_parser_tables[501]
+#define COLOR_parser_tables___Parser___action_table_row497 SFT_parser_tables[502]
+#define COLOR_parser_tables___Parser___action_table_row498 SFT_parser_tables[503]
+#define COLOR_parser_tables___Parser___action_table_row499 SFT_parser_tables[504]
+#define COLOR_parser_tables___Parser___action_table_row500 SFT_parser_tables[505]
+#define COLOR_parser_tables___Parser___action_table_row501 SFT_parser_tables[506]
+#define COLOR_parser_tables___Parser___action_table_row502 SFT_parser_tables[507]
+#define COLOR_parser_tables___Parser___action_table_row503 SFT_parser_tables[508]
+#define COLOR_parser_tables___Parser___action_table_row504 SFT_parser_tables[509]
+#define COLOR_parser_tables___Parser___action_table_row505 SFT_parser_tables[510]
+#define COLOR_parser_tables___Parser___action_table_row506 SFT_parser_tables[511]
+#define COLOR_parser_tables___Parser___action_table_row507 SFT_parser_tables[512]
+#define COLOR_parser_tables___Parser___action_table_row508 SFT_parser_tables[513]
+#define COLOR_parser_tables___Parser___action_table_row509 SFT_parser_tables[514]
+#define COLOR_parser_tables___Parser___action_table_row510 SFT_parser_tables[515]
+#define COLOR_parser_tables___Parser___action_table_row511 SFT_parser_tables[516]
+#define COLOR_parser_tables___Parser___action_table_row512 SFT_parser_tables[517]
+#define COLOR_parser_tables___Parser___action_table_row513 SFT_parser_tables[518]
+#define COLOR_parser_tables___Parser___action_table_row514 SFT_parser_tables[519]
+#define COLOR_parser_tables___Parser___action_table_row515 SFT_parser_tables[520]
+#define COLOR_parser_tables___Parser___action_table_row516 SFT_parser_tables[521]
+#define COLOR_parser_tables___Parser___action_table_row517 SFT_parser_tables[522]
+#define COLOR_parser_tables___Parser___action_table_row518 SFT_parser_tables[523]
+#define COLOR_parser_tables___Parser___action_table_row519 SFT_parser_tables[524]
+#define COLOR_parser_tables___Parser___action_table_row520 SFT_parser_tables[525]
+#define COLOR_parser_tables___Parser___action_table_row521 SFT_parser_tables[526]
+#define COLOR_parser_tables___Parser___action_table_row522 SFT_parser_tables[527]
+#define COLOR_parser_tables___Parser___action_table_row523 SFT_parser_tables[528]
+#define COLOR_parser_tables___Parser___action_table_row524 SFT_parser_tables[529]
+#define COLOR_parser_tables___Parser___action_table_row525 SFT_parser_tables[530]
+#define COLOR_parser_tables___Parser___action_table_row526 SFT_parser_tables[531]
+#define COLOR_parser_tables___Parser___action_table_row527 SFT_parser_tables[532]
+#define COLOR_parser_tables___Parser___action_table_row528 SFT_parser_tables[533]
+#define COLOR_parser_tables___Parser___action_table_row529 SFT_parser_tables[534]
+#define COLOR_parser_tables___Parser___action_table_row530 SFT_parser_tables[535]
+#define COLOR_parser_tables___Parser___action_table_row531 SFT_parser_tables[536]
+#define COLOR_parser_tables___Parser___action_table_row532 SFT_parser_tables[537]
+#define COLOR_parser_tables___Parser___action_table_row533 SFT_parser_tables[538]
+#define COLOR_parser_tables___Parser___action_table_row534 SFT_parser_tables[539]
+#define COLOR_parser_tables___Parser___action_table_row535 SFT_parser_tables[540]
+#define COLOR_parser_tables___Parser___action_table_row536 SFT_parser_tables[541]
+#define COLOR_parser_tables___Parser___action_table_row537 SFT_parser_tables[542]
+#define COLOR_parser_tables___Parser___action_table_row538 SFT_parser_tables[543]
+#define COLOR_parser_tables___Parser___action_table_row539 SFT_parser_tables[544]
+#define COLOR_parser_tables___Parser___action_table_row540 SFT_parser_tables[545]
+#define COLOR_parser_tables___Parser___action_table_row541 SFT_parser_tables[546]
+#define COLOR_parser_tables___Parser___action_table_row542 SFT_parser_tables[547]
+#define COLOR_parser_tables___Parser___action_table_row543 SFT_parser_tables[548]
+#define COLOR_parser_tables___Parser___action_table_row544 SFT_parser_tables[549]
+#define COLOR_parser_tables___Parser___action_table_row545 SFT_parser_tables[550]
+#define COLOR_parser_tables___Parser___action_table_row546 SFT_parser_tables[551]
+#define COLOR_parser_tables___Parser___action_table_row547 SFT_parser_tables[552]
+#define COLOR_parser_tables___Parser___action_table_row548 SFT_parser_tables[553]
+#define COLOR_parser_tables___Parser___action_table_row549 SFT_parser_tables[554]
+#define COLOR_parser_tables___Parser___action_table_row550 SFT_parser_tables[555]
+#define COLOR_parser_tables___Parser___action_table_row551 SFT_parser_tables[556]
+#define COLOR_parser_tables___Parser___action_table_row552 SFT_parser_tables[557]
+#define COLOR_parser_tables___Parser___action_table_row553 SFT_parser_tables[558]
+#define COLOR_parser_tables___Parser___action_table_row554 SFT_parser_tables[559]
+#define COLOR_parser_tables___Parser___action_table_row555 SFT_parser_tables[560]
+#define COLOR_parser_tables___Parser___action_table_row556 SFT_parser_tables[561]
+#define COLOR_parser_tables___Parser___action_table_row557 SFT_parser_tables[562]
+#define COLOR_parser_tables___Parser___action_table_row558 SFT_parser_tables[563]
+#define COLOR_parser_tables___Parser___action_table_row559 SFT_parser_tables[564]
+#define COLOR_parser_tables___Parser___action_table_row560 SFT_parser_tables[565]
+#define COLOR_parser_tables___Parser___action_table_row561 SFT_parser_tables[566]
+#define COLOR_parser_tables___Parser___action_table_row562 SFT_parser_tables[567]
+#define COLOR_parser_tables___Parser___action_table_row563 SFT_parser_tables[568]
+#define COLOR_parser_tables___Parser___action_table_row564 SFT_parser_tables[569]
+#define COLOR_parser_tables___Parser___action_table_row565 SFT_parser_tables[570]
+#define COLOR_parser_tables___Parser___action_table_row566 SFT_parser_tables[571]
+#define COLOR_parser_tables___Parser___action_table_row567 SFT_parser_tables[572]
+#define COLOR_parser_tables___Parser___action_table_row568 SFT_parser_tables[573]
+#define COLOR_parser_tables___Parser___action_table_row569 SFT_parser_tables[574]
+#define COLOR_parser_tables___Parser___action_table_row570 SFT_parser_tables[575]
+#define COLOR_parser_tables___Parser___action_table_row571 SFT_parser_tables[576]
+#define COLOR_parser_tables___Parser___action_table_row572 SFT_parser_tables[577]
+#define COLOR_parser_tables___Parser___action_table_row573 SFT_parser_tables[578]
+#define COLOR_parser_tables___Parser___action_table_row574 SFT_parser_tables[579]
+#define COLOR_parser_tables___Parser___action_table_row575 SFT_parser_tables[580]
+#define COLOR_parser_tables___Parser___action_table_row576 SFT_parser_tables[581]
+#define COLOR_parser_tables___Parser___action_table_row577 SFT_parser_tables[582]
+#define COLOR_parser_tables___Parser___action_table_row578 SFT_parser_tables[583]
+#define COLOR_parser_tables___Parser___action_table_row579 SFT_parser_tables[584]
+#define COLOR_parser_tables___Parser___action_table_row580 SFT_parser_tables[585]
+#define COLOR_parser_tables___Parser___action_table_row581 SFT_parser_tables[586]
+#define COLOR_parser_tables___Parser___action_table_row582 SFT_parser_tables[587]
+#define COLOR_parser_tables___Parser___action_table_row583 SFT_parser_tables[588]
+#define COLOR_parser_tables___Parser___action_table_row584 SFT_parser_tables[589]
+#define COLOR_parser_tables___Parser___action_table_row585 SFT_parser_tables[590]
+#define COLOR_parser_tables___Parser___action_table_row586 SFT_parser_tables[591]
+#define COLOR_parser_tables___Parser___action_table_row587 SFT_parser_tables[592]
+#define COLOR_parser_tables___Parser___action_table_row588 SFT_parser_tables[593]
+#define COLOR_parser_tables___Parser___action_table_row589 SFT_parser_tables[594]
+#define COLOR_parser_tables___Parser___action_table_row590 SFT_parser_tables[595]
+#define COLOR_parser_tables___Parser___action_table_row591 SFT_parser_tables[596]
+#define COLOR_parser_tables___Parser___action_table_row592 SFT_parser_tables[597]
+#define COLOR_parser_tables___Parser___action_table_row593 SFT_parser_tables[598]
+#define COLOR_parser_tables___Parser___action_table_row594 SFT_parser_tables[599]
+#define COLOR_parser_tables___Parser___action_table_row595 SFT_parser_tables[600]
+#define COLOR_parser_tables___Parser___action_table_row596 SFT_parser_tables[601]
+#define COLOR_parser_tables___Parser___action_table_row597 SFT_parser_tables[602]
+#define COLOR_parser_tables___Parser___action_table_row598 SFT_parser_tables[603]
+#define COLOR_parser_tables___Parser___action_table_row599 SFT_parser_tables[604]
+#define COLOR_parser_tables___Parser___action_table_row600 SFT_parser_tables[605]
+#define COLOR_parser_tables___Parser___action_table_row601 SFT_parser_tables[606]
+#define COLOR_parser_tables___Parser___action_table_row602 SFT_parser_tables[607]
+#define COLOR_parser_tables___Parser___action_table_row603 SFT_parser_tables[608]
+#define COLOR_parser_tables___Parser___action_table_row604 SFT_parser_tables[609]
+#define COLOR_parser_tables___Parser___action_table_row605 SFT_parser_tables[610]
+#define COLOR_parser_tables___Parser___action_table_row606 SFT_parser_tables[611]
+#define COLOR_parser_tables___Parser___action_table_row607 SFT_parser_tables[612]
+#define COLOR_parser_tables___Parser___action_table_row608 SFT_parser_tables[613]
+#define COLOR_parser_tables___Parser___action_table_row609 SFT_parser_tables[614]
+#define COLOR_parser_tables___Parser___action_table_row610 SFT_parser_tables[615]
+#define COLOR_parser_tables___Parser___action_table_row611 SFT_parser_tables[616]
+#define COLOR_parser_tables___Parser___action_table_row612 SFT_parser_tables[617]
+#define COLOR_parser_tables___Parser___action_table_row613 SFT_parser_tables[618]
+#define COLOR_parser_tables___Parser___action_table_row614 SFT_parser_tables[619]
+#define COLOR_parser_tables___Parser___action_table_row615 SFT_parser_tables[620]
+#define COLOR_parser_tables___Parser___action_table_row616 SFT_parser_tables[621]
+#define COLOR_parser_tables___Parser___action_table_row617 SFT_parser_tables[622]
+#define COLOR_parser_tables___Parser___action_table_row618 SFT_parser_tables[623]
+#define COLOR_parser_tables___Parser___action_table_row619 SFT_parser_tables[624]
+#define COLOR_parser_tables___Parser___action_table_row620 SFT_parser_tables[625]
+#define COLOR_parser_tables___Parser___action_table_row621 SFT_parser_tables[626]
+#define COLOR_parser_tables___Parser___action_table_row622 SFT_parser_tables[627]
+#define COLOR_parser_tables___Parser___action_table_row623 SFT_parser_tables[628]
+#define COLOR_parser_tables___Parser___action_table_row624 SFT_parser_tables[629]
+#define COLOR_parser_tables___Parser___action_table_row625 SFT_parser_tables[630]
+#define COLOR_parser_tables___Parser___action_table_row626 SFT_parser_tables[631]
+#define COLOR_parser_tables___Parser___action_table_row627 SFT_parser_tables[632]
+#define COLOR_parser_tables___Parser___action_table_row628 SFT_parser_tables[633]
+#define COLOR_parser_tables___Parser___action_table_row629 SFT_parser_tables[634]
+#define COLOR_parser_tables___Parser___action_table_row630 SFT_parser_tables[635]
+#define COLOR_parser_tables___Parser___action_table_row631 SFT_parser_tables[636]
+#define COLOR_parser_tables___Parser___action_table_row632 SFT_parser_tables[637]
+#define COLOR_parser_tables___Parser___action_table_row633 SFT_parser_tables[638]
+#define COLOR_parser_tables___Parser___action_table_row634 SFT_parser_tables[639]
+#define COLOR_parser_tables___Parser___action_table_row635 SFT_parser_tables[640]
+#define COLOR_parser_tables___Parser___action_table_row636 SFT_parser_tables[641]
+#define COLOR_parser_tables___Parser___action_table_row637 SFT_parser_tables[642]
+#define COLOR_parser_tables___Parser___action_table_row638 SFT_parser_tables[643]
+#define COLOR_parser_tables___Parser___action_table_row639 SFT_parser_tables[644]
+#define COLOR_parser_tables___Parser___action_table_row640 SFT_parser_tables[645]
+#define COLOR_parser_tables___Parser___action_table_row641 SFT_parser_tables[646]
+#define COLOR_parser_tables___Parser___action_table_row642 SFT_parser_tables[647]
+#define COLOR_parser_tables___Parser___action_table_row643 SFT_parser_tables[648]
+#define COLOR_parser_tables___Parser___action_table_row644 SFT_parser_tables[649]
+#define COLOR_parser_tables___Parser___action_table_row645 SFT_parser_tables[650]
+#define COLOR_parser_tables___Parser___action_table_row646 SFT_parser_tables[651]
+#define COLOR_parser_tables___Parser___action_table_row647 SFT_parser_tables[652]
+#define COLOR_parser_tables___Parser___action_table_row648 SFT_parser_tables[653]
+#define COLOR_parser_tables___Parser___action_table_row649 SFT_parser_tables[654]
+#define COLOR_parser_tables___Parser___action_table_row650 SFT_parser_tables[655]
+#define COLOR_parser_tables___Parser___action_table_row651 SFT_parser_tables[656]
+#define COLOR_parser_tables___Parser___action_table_row652 SFT_parser_tables[657]
+#define COLOR_parser_tables___Parser___action_table_row653 SFT_parser_tables[658]
+#define COLOR_parser_tables___Parser___action_table_row654 SFT_parser_tables[659]
+#define COLOR_parser_tables___Parser___action_table_row655 SFT_parser_tables[660]
+#define COLOR_parser_tables___Parser___action_table_row656 SFT_parser_tables[661]
+#define COLOR_parser_tables___Parser___action_table_row657 SFT_parser_tables[662]
+#define COLOR_parser_tables___Parser___action_table_row658 SFT_parser_tables[663]
+#define COLOR_parser_tables___Parser___action_table_row659 SFT_parser_tables[664]
+#define COLOR_parser_tables___Parser___action_table_row660 SFT_parser_tables[665]
+#define COLOR_parser_tables___Parser___action_table_row661 SFT_parser_tables[666]
+#define COLOR_parser_tables___Parser___action_table_row662 SFT_parser_tables[667]
+#define COLOR_parser_tables___Parser___action_table_row663 SFT_parser_tables[668]
+#define COLOR_parser_tables___Parser___action_table_row664 SFT_parser_tables[669]
+#define COLOR_parser_tables___Parser___action_table_row665 SFT_parser_tables[670]
+#define COLOR_parser_tables___Parser___action_table_row666 SFT_parser_tables[671]
+#define COLOR_parser_tables___Parser___action_table_row667 SFT_parser_tables[672]
+#define COLOR_parser_tables___Parser___action_table_row668 SFT_parser_tables[673]
+#define COLOR_parser_tables___Parser___action_table_row669 SFT_parser_tables[674]
+#define COLOR_parser_tables___Parser___action_table_row670 SFT_parser_tables[675]
+#define COLOR_parser_tables___Parser___action_table_row671 SFT_parser_tables[676]
+#define COLOR_parser_tables___Parser___action_table_row672 SFT_parser_tables[677]
+#define COLOR_parser_tables___Parser___action_table_row673 SFT_parser_tables[678]
+#define COLOR_parser_tables___Parser___action_table_row674 SFT_parser_tables[679]
+#define COLOR_parser_tables___Parser___action_table_row675 SFT_parser_tables[680]
+#define COLOR_parser_tables___Parser___action_table_row676 SFT_parser_tables[681]
+#define COLOR_parser_tables___Parser___action_table_row677 SFT_parser_tables[682]
+#define COLOR_parser_tables___Parser___action_table_row678 SFT_parser_tables[683]
+#define COLOR_parser_tables___Parser___action_table_row679 SFT_parser_tables[684]
+#define COLOR_parser_tables___Parser___action_table_row680 SFT_parser_tables[685]
+#define COLOR_parser_tables___Parser___action_table_row681 SFT_parser_tables[686]
+#define COLOR_parser_tables___Parser___action_table_row682 SFT_parser_tables[687]
+#define COLOR_parser_tables___Parser___action_table_row683 SFT_parser_tables[688]
+#define COLOR_parser_tables___Parser___action_table_row684 SFT_parser_tables[689]
+#define COLOR_parser_tables___Parser___action_table_row685 SFT_parser_tables[690]
+#define COLOR_parser_tables___Parser___action_table_row686 SFT_parser_tables[691]
+#define COLOR_parser_tables___Parser___action_table_row687 SFT_parser_tables[692]
+#define COLOR_parser_tables___Parser___action_table_row688 SFT_parser_tables[693]
+#define COLOR_parser_tables___Parser___action_table_row689 SFT_parser_tables[694]
+#define COLOR_parser_tables___Parser___action_table_row690 SFT_parser_tables[695]
+#define COLOR_parser_tables___Parser___action_table_row691 SFT_parser_tables[696]
+#define COLOR_parser_tables___Parser___action_table_row692 SFT_parser_tables[697]
+#define COLOR_parser_tables___Parser___action_table_row693 SFT_parser_tables[698]
+#define COLOR_parser_tables___Parser___action_table_row694 SFT_parser_tables[699]
+#define COLOR_parser_tables___Parser___action_table_row695 SFT_parser_tables[700]
+#define COLOR_parser_tables___Parser___action_table_row696 SFT_parser_tables[701]
+#define COLOR_parser_tables___Parser___action_table_row697 SFT_parser_tables[702]
+#define COLOR_parser_tables___Parser___action_table_row698 SFT_parser_tables[703]
+#define COLOR_parser_tables___Parser___action_table_row699 SFT_parser_tables[704]
+#define COLOR_parser_tables___Parser___action_table_row700 SFT_parser_tables[705]
+#define COLOR_parser_tables___Parser___action_table_row701 SFT_parser_tables[706]
+#define COLOR_parser_tables___Parser___action_table_row702 SFT_parser_tables[707]
+#define COLOR_parser_tables___Parser___action_table_row703 SFT_parser_tables[708]
+#define COLOR_parser_tables___Parser___action_table_row704 SFT_parser_tables[709]
+#define COLOR_parser_tables___Parser___action_table_row705 SFT_parser_tables[710]
+#define COLOR_parser_tables___Parser___action_table_row706 SFT_parser_tables[711]
+#define COLOR_parser_tables___Parser___action_table_row707 SFT_parser_tables[712]
+#define COLOR_parser_tables___Parser___action_table_row708 SFT_parser_tables[713]
+#define COLOR_parser_tables___Parser___action_table_row709 SFT_parser_tables[714]
+#define COLOR_parser_tables___Parser___action_table_row710 SFT_parser_tables[715]
+#define COLOR_parser_tables___Parser___action_table_row711 SFT_parser_tables[716]
+#define COLOR_parser_tables___Parser___action_table_row712 SFT_parser_tables[717]
+#define COLOR_parser_tables___Parser___action_table_row713 SFT_parser_tables[718]
+#define COLOR_parser_tables___Parser___action_table_row714 SFT_parser_tables[719]
+#define COLOR_parser_tables___Parser___action_table_row715 SFT_parser_tables[720]
+#define COLOR_parser_tables___Parser___action_table_row716 SFT_parser_tables[721]
+#define COLOR_parser_tables___Parser___action_table_row717 SFT_parser_tables[722]
+#define COLOR_parser_tables___Parser___action_table_row718 SFT_parser_tables[723]
+#define COLOR_parser_tables___Parser___action_table_row719 SFT_parser_tables[724]
+#define COLOR_parser_tables___Parser___action_table_row720 SFT_parser_tables[725]
+#define COLOR_parser_tables___Parser___action_table_row721 SFT_parser_tables[726]
+#define COLOR_parser_tables___Parser___action_table_row722 SFT_parser_tables[727]
+#define COLOR_parser_tables___Parser___action_table_row723 SFT_parser_tables[728]
+#define COLOR_parser_tables___Parser___action_table_row724 SFT_parser_tables[729]
+#define COLOR_parser_tables___Parser___action_table_row725 SFT_parser_tables[730]
+#define COLOR_parser_tables___Parser___action_table_row726 SFT_parser_tables[731]
+#define COLOR_parser_tables___Parser___action_table_row727 SFT_parser_tables[732]
+#define COLOR_parser_tables___Parser___action_table_row728 SFT_parser_tables[733]
+#define COLOR_parser_tables___Parser___action_table_row729 SFT_parser_tables[734]
+#define COLOR_parser_tables___Parser___action_table_row730 SFT_parser_tables[735]
+#define COLOR_parser_tables___Parser___action_table_row731 SFT_parser_tables[736]
+#define COLOR_parser_tables___Parser___action_table_row732 SFT_parser_tables[737]
+#define COLOR_parser_tables___Parser___action_table_row733 SFT_parser_tables[738]
+#define COLOR_parser_tables___Parser___action_table_row734 SFT_parser_tables[739]
+#define COLOR_parser_tables___Parser___action_table_row735 SFT_parser_tables[740]
+#define COLOR_parser_tables___Parser___action_table_row736 SFT_parser_tables[741]
+#define COLOR_parser_tables___Parser___action_table_row737 SFT_parser_tables[742]
+#define COLOR_parser_tables___Parser___action_table_row738 SFT_parser_tables[743]
+#define COLOR_parser_tables___Parser___action_table_row739 SFT_parser_tables[744]
+#define COLOR_parser_tables___Parser___action_table_row740 SFT_parser_tables[745]
+#define COLOR_parser_tables___Parser___action_table_row741 SFT_parser_tables[746]
+#define COLOR_parser_tables___Parser___action_table_row742 SFT_parser_tables[747]
+#define COLOR_parser_tables___Parser___action_table_row743 SFT_parser_tables[748]
+#define COLOR_parser_tables___Parser___action_table_row744 SFT_parser_tables[749]
+#define COLOR_parser_tables___Parser___action_table_row745 SFT_parser_tables[750]
+#define COLOR_parser_tables___Parser___action_table_row746 SFT_parser_tables[751]
+#define COLOR_parser_tables___Parser___action_table_row747 SFT_parser_tables[752]
+#define COLOR_parser_tables___Parser___action_table_row748 SFT_parser_tables[753]
+#define COLOR_parser_tables___Parser___action_table_row749 SFT_parser_tables[754]
+#define COLOR_parser_tables___Parser___action_table_row750 SFT_parser_tables[755]
+#define COLOR_parser_tables___Parser___action_table_row751 SFT_parser_tables[756]
+#define COLOR_parser_tables___Parser___action_table_row752 SFT_parser_tables[757]
+#define COLOR_parser_tables___Parser___action_table_row753 SFT_parser_tables[758]
+#define COLOR_parser_tables___Parser___action_table_row754 SFT_parser_tables[759]
+#define COLOR_parser_tables___Parser___action_table_row755 SFT_parser_tables[760]
+#define COLOR_parser_tables___Parser___action_table_row756 SFT_parser_tables[761]
+#define COLOR_parser_tables___Parser___action_table_row757 SFT_parser_tables[762]
+#define COLOR_parser_tables___Parser___action_table_row758 SFT_parser_tables[763]
+#define COLOR_parser_tables___Parser___action_table_row759 SFT_parser_tables[764]
+#define COLOR_parser_tables___Parser___action_table_row760 SFT_parser_tables[765]
+#define COLOR_parser_tables___Parser___action_table_row761 SFT_parser_tables[766]
+#define COLOR_parser_tables___Parser___action_table_row762 SFT_parser_tables[767]
+#define COLOR_parser_tables___Parser___action_table_row763 SFT_parser_tables[768]
+#define COLOR_parser_tables___Parser___action_table_row764 SFT_parser_tables[769]
+#define COLOR_parser_tables___Parser___action_table_row765 SFT_parser_tables[770]
+#define COLOR_parser_tables___Parser___action_table_row766 SFT_parser_tables[771]
+#define COLOR_parser_tables___Parser___action_table_row767 SFT_parser_tables[772]
+#define COLOR_parser_tables___Parser___action_table_row768 SFT_parser_tables[773]
+#define COLOR_parser_tables___Parser___action_table_row769 SFT_parser_tables[774]
+#define COLOR_parser_tables___Parser___action_table_row770 SFT_parser_tables[775]
+#define COLOR_parser_tables___Parser___action_table_row771 SFT_parser_tables[776]
+#define COLOR_parser_tables___Parser___action_table_row772 SFT_parser_tables[777]
+#define COLOR_parser_tables___Parser___action_table_row773 SFT_parser_tables[778]
+#define COLOR_parser_tables___Parser___action_table_row774 SFT_parser_tables[779]
+#define COLOR_parser_tables___Parser___action_table_row775 SFT_parser_tables[780]
+#define COLOR_parser_tables___Parser___action_table_row776 SFT_parser_tables[781]
+#define COLOR_parser_tables___Parser___action_table_row777 SFT_parser_tables[782]
+#define COLOR_parser_tables___Parser___action_table_row778 SFT_parser_tables[783]
+#define COLOR_parser_tables___Parser___action_table_row779 SFT_parser_tables[784]
+#define COLOR_parser_tables___Parser___action_table_row780 SFT_parser_tables[785]
+#define COLOR_parser_tables___Parser___action_table_row781 SFT_parser_tables[786]
+#define COLOR_parser_tables___Parser___action_table_row782 SFT_parser_tables[787]
+#define COLOR_parser_tables___Parser___action_table_row783 SFT_parser_tables[788]
+#define COLOR_parser_tables___Parser___action_table_row784 SFT_parser_tables[789]
+#define COLOR_parser_tables___Parser___action_table_row785 SFT_parser_tables[790]
+#define COLOR_parser_tables___Parser___action_table_row786 SFT_parser_tables[791]
+#define COLOR_parser_tables___Parser___action_table_row787 SFT_parser_tables[792]
+#define COLOR_parser_tables___Parser___action_table_row788 SFT_parser_tables[793]
+#define COLOR_parser_tables___Parser___action_table_row789 SFT_parser_tables[794]
+#define COLOR_parser_tables___Parser___action_table_row790 SFT_parser_tables[795]
+#define COLOR_parser_tables___Parser___action_table_row791 SFT_parser_tables[796]
+#define COLOR_parser_tables___Parser___action_table_row792 SFT_parser_tables[797]
+#define COLOR_parser_tables___Parser___action_table_row793 SFT_parser_tables[798]
+#define COLOR_parser_tables___Parser___action_table_row794 SFT_parser_tables[799]
+#define COLOR_parser_tables___Parser___action_table_row795 SFT_parser_tables[800]
+#define COLOR_parser_tables___Parser___action_table_row796 SFT_parser_tables[801]
+#define COLOR_parser_tables___Parser___action_table_row797 SFT_parser_tables[802]
+#define COLOR_parser_tables___Parser___action_table_row798 SFT_parser_tables[803]
+#define COLOR_parser_tables___Parser___action_table_row799 SFT_parser_tables[804]
+#define COLOR_parser_tables___Parser___action_table_row800 SFT_parser_tables[805]
+#define COLOR_parser_tables___Parser___action_table_row801 SFT_parser_tables[806]
+#define COLOR_parser_tables___Parser___action_table_row802 SFT_parser_tables[807]
+#define COLOR_parser_tables___Parser___action_table_row803 SFT_parser_tables[808]
+#define COLOR_parser_tables___Parser___action_table_row804 SFT_parser_tables[809]
+#define COLOR_parser_tables___Parser___action_table_row805 SFT_parser_tables[810]
+#define COLOR_parser_tables___Parser___action_table_row806 SFT_parser_tables[811]
+#define COLOR_parser_tables___Parser___action_table_row807 SFT_parser_tables[812]
+#define COLOR_parser_tables___Parser___action_table_row808 SFT_parser_tables[813]
+#define COLOR_parser_tables___Parser___action_table_row809 SFT_parser_tables[814]
+#define COLOR_parser_tables___Parser___action_table_row810 SFT_parser_tables[815]
+#define COLOR_parser_tables___Parser___action_table_row811 SFT_parser_tables[816]
+#define COLOR_parser_tables___Parser___action_table_row812 SFT_parser_tables[817]
+#define COLOR_parser_tables___Parser___action_table_row813 SFT_parser_tables[818]
+#define COLOR_parser_tables___Parser___action_table_row814 SFT_parser_tables[819]
+#define COLOR_parser_tables___Parser___action_table_row815 SFT_parser_tables[820]
+#define COLOR_parser_tables___Parser___action_table_row816 SFT_parser_tables[821]
+#define COLOR_parser_tables___Parser___action_table_row817 SFT_parser_tables[822]
+#define COLOR_parser_tables___Parser___action_table_row818 SFT_parser_tables[823]
+#define COLOR_parser_tables___Parser___action_table_row819 SFT_parser_tables[824]
+#define COLOR_parser_tables___Parser___action_table_row820 SFT_parser_tables[825]
+#define COLOR_parser_tables___Parser___action_table_row821 SFT_parser_tables[826]
+#define COLOR_parser_tables___Parser___action_table_row822 SFT_parser_tables[827]
+#define COLOR_parser_tables___Parser___action_table_row823 SFT_parser_tables[828]
+#define COLOR_parser_tables___Parser___action_table_row824 SFT_parser_tables[829]
+#define COLOR_parser_tables___Parser___action_table_row825 SFT_parser_tables[830]
+#define COLOR_parser_tables___Parser___action_table_row826 SFT_parser_tables[831]
+#define COLOR_parser_tables___Parser___action_table_row827 SFT_parser_tables[832]
+#define COLOR_parser_tables___Parser___action_table_row828 SFT_parser_tables[833]
+#define COLOR_parser_tables___Parser___action_table_row829 SFT_parser_tables[834]
+#define COLOR_parser_tables___Parser___action_table_row830 SFT_parser_tables[835]
+#define COLOR_parser_tables___Parser___action_table_row831 SFT_parser_tables[836]
+#define COLOR_parser_tables___Parser___action_table_row832 SFT_parser_tables[837]
+#define COLOR_parser_tables___Parser___action_table_row833 SFT_parser_tables[838]
+#define COLOR_parser_tables___Parser___action_table_row834 SFT_parser_tables[839]
+#define COLOR_parser_tables___Parser___action_table_row835 SFT_parser_tables[840]
+#define COLOR_parser_tables___Parser___action_table_row836 SFT_parser_tables[841]
+#define COLOR_parser_tables___Parser___action_table_row837 SFT_parser_tables[842]
+#define COLOR_parser_tables___Parser___action_table_row838 SFT_parser_tables[843]
+#define COLOR_parser_tables___Parser___action_table_row839 SFT_parser_tables[844]
+#define COLOR_parser_tables___Parser___action_table_row840 SFT_parser_tables[845]
+#define COLOR_parser_tables___Parser___action_table_row841 SFT_parser_tables[846]
+#define COLOR_parser_tables___Parser___action_table_row842 SFT_parser_tables[847]
+#define COLOR_parser_tables___Parser___action_table_row843 SFT_parser_tables[848]
+#define COLOR_parser_tables___Parser___action_table_row844 SFT_parser_tables[849]
+#define COLOR_parser_tables___Parser___action_table_row845 SFT_parser_tables[850]
+#define COLOR_parser_tables___Parser___action_table_row846 SFT_parser_tables[851]
+#define COLOR_parser_tables___Parser___action_table_row847 SFT_parser_tables[852]
+#define COLOR_parser_tables___Parser___action_table_row848 SFT_parser_tables[853]
+#define COLOR_parser_tables___Parser___action_table_row849 SFT_parser_tables[854]
+#define COLOR_parser_tables___Parser___action_table_row850 SFT_parser_tables[855]
+#define COLOR_parser_tables___Parser___action_table_row851 SFT_parser_tables[856]
+#define COLOR_parser_tables___Parser___action_table_row852 SFT_parser_tables[857]
+#define COLOR_parser_tables___Parser___action_table_row853 SFT_parser_tables[858]
+#define COLOR_parser_tables___Parser___action_table_row854 SFT_parser_tables[859]
+#define COLOR_parser_tables___Parser___action_table_row855 SFT_parser_tables[860]
+#define COLOR_parser_tables___Parser___action_table_row856 SFT_parser_tables[861]
+#define COLOR_parser_tables___Parser___action_table_row857 SFT_parser_tables[862]
+#define COLOR_parser_tables___Parser___action_table_row858 SFT_parser_tables[863]
+#define COLOR_parser_tables___Parser___action_table_row859 SFT_parser_tables[864]
+#define COLOR_parser_tables___Parser___action_table_row860 SFT_parser_tables[865]
+#define COLOR_parser_tables___Parser___action_table_row861 SFT_parser_tables[866]
+#define COLOR_parser_tables___Parser___action_table_row862 SFT_parser_tables[867]
+#define COLOR_parser_tables___Parser___action_table_row863 SFT_parser_tables[868]
+#define COLOR_parser_tables___Parser___action_table_row864 SFT_parser_tables[869]
+#define COLOR_parser_tables___Parser___action_table_row865 SFT_parser_tables[870]
+#define COLOR_parser_tables___Parser___action_table_row866 SFT_parser_tables[871]
+#define COLOR_parser_tables___Parser___action_table_row867 SFT_parser_tables[872]
+#define COLOR_parser_tables___Parser___action_table_row868 SFT_parser_tables[873]
+#define COLOR_parser_tables___Parser___action_table_row869 SFT_parser_tables[874]
+#define COLOR_parser_tables___Parser___action_table_row870 SFT_parser_tables[875]
+#define COLOR_parser_tables___Parser___action_table_row871 SFT_parser_tables[876]
+#define COLOR_parser_tables___Parser___action_table_row872 SFT_parser_tables[877]
+#define COLOR_parser_tables___Parser___action_table_row873 SFT_parser_tables[878]
+#define COLOR_parser_tables___Parser___action_table_row874 SFT_parser_tables[879]
+#define COLOR_parser_tables___Parser___action_table_row875 SFT_parser_tables[880]
+#define COLOR_parser_tables___Parser___action_table_row876 SFT_parser_tables[881]
+#define COLOR_parser_tables___Parser___action_table_row877 SFT_parser_tables[882]
+#define COLOR_parser_tables___Parser___action_table_row878 SFT_parser_tables[883]
+#define COLOR_parser_tables___Parser___action_table_row879 SFT_parser_tables[884]
+#define COLOR_parser_tables___Parser___action_table_row880 SFT_parser_tables[885]
+#define COLOR_parser_tables___Parser___action_table_row881 SFT_parser_tables[886]
+#define COLOR_parser_tables___Parser___action_table_row882 SFT_parser_tables[887]
+#define COLOR_parser_tables___Parser___action_table_row883 SFT_parser_tables[888]
+#define COLOR_parser_tables___Parser___action_table_row884 SFT_parser_tables[889]
+#define COLOR_parser_tables___Parser___action_table_row885 SFT_parser_tables[890]
+#define COLOR_parser_tables___Parser___action_table_row886 SFT_parser_tables[891]
+#define COLOR_parser_tables___Parser___action_table_row887 SFT_parser_tables[892]
+#define COLOR_parser_tables___Parser___action_table_row888 SFT_parser_tables[893]
+#define COLOR_parser_tables___Parser___action_table_row889 SFT_parser_tables[894]
+#define COLOR_parser_tables___Parser___action_table_row890 SFT_parser_tables[895]
+#define COLOR_parser_tables___Parser___action_table_row891 SFT_parser_tables[896]
+#define COLOR_parser_tables___Parser___action_table_row892 SFT_parser_tables[897]
+#define COLOR_parser_tables___Parser___action_table_row893 SFT_parser_tables[898]
+#define COLOR_parser_tables___Parser___action_table_row894 SFT_parser_tables[899]
+#define COLOR_parser_tables___Parser___action_table_row895 SFT_parser_tables[900]
+#define COLOR_parser_tables___Parser___action_table_row896 SFT_parser_tables[901]
+#define COLOR_parser_tables___Parser___action_table_row897 SFT_parser_tables[902]
+#define COLOR_parser_tables___Parser___action_table_row898 SFT_parser_tables[903]
+#define COLOR_parser_tables___Parser___action_table_row899 SFT_parser_tables[904]
+#define COLOR_parser_tables___Parser___action_table_row900 SFT_parser_tables[905]
+#define COLOR_parser_tables___Parser___action_table_row901 SFT_parser_tables[906]
+#define COLOR_parser_tables___Parser___action_table_row902 SFT_parser_tables[907]
+#define COLOR_parser_tables___Parser___action_table_row903 SFT_parser_tables[908]
+#define COLOR_parser_tables___Parser___action_table_row904 SFT_parser_tables[909]
+#define COLOR_parser_tables___Parser___action_table_row905 SFT_parser_tables[910]
+#define COLOR_parser_tables___Parser___action_table_row906 SFT_parser_tables[911]
+#define COLOR_parser_tables___Parser___action_table_row907 SFT_parser_tables[912]
+#define COLOR_parser_tables___Parser___action_table_row908 SFT_parser_tables[913]
+#define COLOR_parser_tables___Parser___action_table_row909 SFT_parser_tables[914]
+#define COLOR_parser_tables___Parser___action_table_row910 SFT_parser_tables[915]
+#define COLOR_parser_tables___Parser___action_table_row911 SFT_parser_tables[916]
+#define COLOR_parser_tables___Parser___action_table_row912 SFT_parser_tables[917]
+#define COLOR_parser_tables___Parser___action_table_row913 SFT_parser_tables[918]
+#define COLOR_parser_tables___Parser___action_table_row914 SFT_parser_tables[919]
+#define COLOR_parser_tables___Parser___action_table_row915 SFT_parser_tables[920]
+#define COLOR_parser_tables___Parser___action_table_row916 SFT_parser_tables[921]
+#define COLOR_parser_tables___Parser___action_table_row917 SFT_parser_tables[922]
+#define COLOR_parser_tables___Parser___action_table_row918 SFT_parser_tables[923]
+#define COLOR_parser_tables___Parser___action_table_row919 SFT_parser_tables[924]
+#define COLOR_parser_tables___Parser___action_table_row920 SFT_parser_tables[925]
+#define COLOR_parser_tables___Parser___action_table_row921 SFT_parser_tables[926]
+#define COLOR_parser_tables___Parser___action_table_row922 SFT_parser_tables[927]
+#define COLOR_parser_tables___Parser___action_table_row923 SFT_parser_tables[928]
+#define COLOR_parser_tables___Parser___action_table_row924 SFT_parser_tables[929]
+#define COLOR_parser_tables___Parser___action_table_row925 SFT_parser_tables[930]
+#define COLOR_parser_tables___Parser___action_table_row926 SFT_parser_tables[931]
+#define COLOR_parser_tables___Parser___action_table_row927 SFT_parser_tables[932]
+#define COLOR_parser_tables___Parser___action_table_row928 SFT_parser_tables[933]
+#define COLOR_parser_tables___Parser___action_table_row929 SFT_parser_tables[934]
+#define COLOR_parser_tables___Parser___action_table_row930 SFT_parser_tables[935]
+#define COLOR_parser_tables___Parser___action_table_row931 SFT_parser_tables[936]
+#define COLOR_parser_tables___Parser___action_table_row932 SFT_parser_tables[937]
+#define COLOR_parser_tables___Parser___action_table_row933 SFT_parser_tables[938]
+#define COLOR_parser_tables___Parser___action_table_row934 SFT_parser_tables[939]
+#define COLOR_parser_tables___Parser___action_table_row935 SFT_parser_tables[940]
+#define COLOR_parser_tables___Parser___action_table_row936 SFT_parser_tables[941]
+#define COLOR_parser_tables___Parser___action_table_row937 SFT_parser_tables[942]
+#define COLOR_parser_tables___Parser___action_table_row938 SFT_parser_tables[943]
+#define COLOR_parser_tables___Parser___action_table_row939 SFT_parser_tables[944]
+#define COLOR_parser_tables___Parser___action_table_row940 SFT_parser_tables[945]
+#define COLOR_parser_tables___Parser___action_table_row941 SFT_parser_tables[946]
+#define COLOR_parser_tables___Parser___action_table_row942 SFT_parser_tables[947]
+#define COLOR_parser_tables___Parser___action_table_row943 SFT_parser_tables[948]
+#define COLOR_parser_tables___Parser___action_table_row944 SFT_parser_tables[949]
+#define COLOR_parser_tables___Parser___action_table_row945 SFT_parser_tables[950]
+#define COLOR_parser_tables___Parser___action_table_row946 SFT_parser_tables[951]
+#define COLOR_parser_tables___Parser___action_table_row947 SFT_parser_tables[952]
+#define COLOR_parser_tables___Parser___action_table_row948 SFT_parser_tables[953]
+#define COLOR_parser_tables___Parser___action_table_row949 SFT_parser_tables[954]
+#define COLOR_parser_tables___Parser___action_table_row950 SFT_parser_tables[955]
+#define COLOR_parser_tables___Parser___action_table_row951 SFT_parser_tables[956]
+#define COLOR_parser_tables___Parser___action_table_row952 SFT_parser_tables[957]
+#define COLOR_parser_tables___Parser___action_table_row953 SFT_parser_tables[958]
+#define COLOR_parser_tables___Parser___action_table_row954 SFT_parser_tables[959]
+#define COLOR_parser_tables___Parser___action_table_row955 SFT_parser_tables[960]
+#define COLOR_parser_tables___Parser___action_table_row956 SFT_parser_tables[961]
+#define COLOR_parser_tables___Parser___action_table_row957 SFT_parser_tables[962]
+#define COLOR_parser_tables___Parser___action_table_row958 SFT_parser_tables[963]
+#define COLOR_parser_tables___Parser___action_table_row959 SFT_parser_tables[964]
+#define COLOR_parser_tables___Parser___action_table_row960 SFT_parser_tables[965]
+#define COLOR_parser_tables___Parser___action_table_row961 SFT_parser_tables[966]
+#define COLOR_parser_tables___Parser___action_table_row962 SFT_parser_tables[967]
+#define COLOR_parser_tables___Parser___action_table_row963 SFT_parser_tables[968]
+#define COLOR_parser_tables___Parser___action_table_row964 SFT_parser_tables[969]
+#define COLOR_parser_tables___Parser___action_table_row965 SFT_parser_tables[970]
+#define COLOR_parser_tables___Parser___action_table_row966 SFT_parser_tables[971]
+#define COLOR_parser_tables___Parser___action_table_row967 SFT_parser_tables[972]
+#define COLOR_parser_tables___Parser___action_table_row968 SFT_parser_tables[973]
+#define COLOR_parser_tables___Parser___action_table_row969 SFT_parser_tables[974]
+#define COLOR_parser_tables___Parser___action_table_row970 SFT_parser_tables[975]
+#define COLOR_parser_tables___Parser___action_table_row971 SFT_parser_tables[976]
+#define COLOR_parser_tables___Parser___action_table_row972 SFT_parser_tables[977]
+#define COLOR_parser_tables___Parser___action_table_row973 SFT_parser_tables[978]
+#define COLOR_parser_tables___Parser___action_table_row974 SFT_parser_tables[979]
+#define COLOR_parser_tables___Parser___action_table_row975 SFT_parser_tables[980]
+#define COLOR_parser_tables___Parser___action_table_row976 SFT_parser_tables[981]
+#define COLOR_parser_tables___Parser___action_table_row977 SFT_parser_tables[982]
+#define COLOR_parser_tables___Parser___action_table_row978 SFT_parser_tables[983]
+#define COLOR_parser_tables___Parser___action_table_row979 SFT_parser_tables[984]
+#define COLOR_parser_tables___Parser___action_table_row980 SFT_parser_tables[985]
+#define COLOR_parser_tables___Parser___action_table_row981 SFT_parser_tables[986]
+#define COLOR_parser_tables___Parser___action_table_row982 SFT_parser_tables[987]
+#define COLOR_parser_tables___Parser___action_table_row983 SFT_parser_tables[988]
+#define COLOR_parser_tables___Parser___action_table_row984 SFT_parser_tables[989]
+#define COLOR_parser_tables___Parser___action_table_row985 SFT_parser_tables[990]
+#define COLOR_parser_tables___Parser___action_table_row986 SFT_parser_tables[991]
+#define COLOR_parser_tables___Parser___action_table_row987 SFT_parser_tables[992]
+#define COLOR_parser_tables___Parser___action_table_row988 SFT_parser_tables[993]
+#define COLOR_parser_tables___Parser___action_table_row989 SFT_parser_tables[994]
+#define COLOR_parser_tables___Parser___action_table_row990 SFT_parser_tables[995]
+#define COLOR_parser_tables___Parser___action_table_row991 SFT_parser_tables[996]
+#define COLOR_parser_tables___Parser___action_table_row992 SFT_parser_tables[997]
+#define COLOR_parser_tables___Parser___action_table_row993 SFT_parser_tables[998]
+#define COLOR_parser_tables___Parser___action_table_row994 SFT_parser_tables[999]
+#define COLOR_parser_tables___Parser___action_table_row995 SFT_parser_tables[1000]
+#define COLOR_parser_tables___Parser___action_table_row996 SFT_parser_tables[1001]
+#define COLOR_parser_tables___Parser___action_table_row997 SFT_parser_tables[1002]
+#define COLOR_parser_tables___Parser___action_table_row998 SFT_parser_tables[1003]
+#define COLOR_parser_tables___Parser___action_table_row999 SFT_parser_tables[1004]
+#define COLOR_parser_tables___Parser___action_table_row1000 SFT_parser_tables[1005]
+#define COLOR_parser_tables___Parser___action_table_row1001 SFT_parser_tables[1006]
+#define COLOR_parser_tables___Parser___action_table_row1002 SFT_parser_tables[1007]
+#define COLOR_parser_tables___Parser___action_table_row1003 SFT_parser_tables[1008]
+#define COLOR_parser_tables___Parser___action_table_row1004 SFT_parser_tables[1009]
+#define COLOR_parser_tables___Parser___action_table_row1005 SFT_parser_tables[1010]
+#define COLOR_parser_tables___Parser___action_table_row1006 SFT_parser_tables[1011]
+#define COLOR_parser_tables___Parser___action_table_row1007 SFT_parser_tables[1012]
+#define COLOR_parser_tables___Parser___action_table_row1008 SFT_parser_tables[1013]
+#define COLOR_parser_tables___Parser___action_table_row1009 SFT_parser_tables[1014]
+#define COLOR_parser_tables___Parser___action_table_row1010 SFT_parser_tables[1015]
+#define COLOR_parser_tables___Parser___action_table_row1011 SFT_parser_tables[1016]
+#define COLOR_parser_tables___Parser___action_table_row1012 SFT_parser_tables[1017]
+#define COLOR_parser_tables___Parser___action_table_row1013 SFT_parser_tables[1018]
+#define COLOR_parser_tables___Parser___action_table_row1014 SFT_parser_tables[1019]
+#define COLOR_parser_tables___Parser___action_table_row1015 SFT_parser_tables[1020]
+#define COLOR_parser_tables___Parser___action_table_row1016 SFT_parser_tables[1021]
+#define COLOR_parser_tables___Parser___action_table_row1017 SFT_parser_tables[1022]
+#define COLOR_parser_tables___Parser___action_table_row1018 SFT_parser_tables[1023]
+#define COLOR_parser_tables___Parser___action_table_row1019 SFT_parser_tables[1024]
+#define COLOR_parser_tables___Parser___action_table_row1020 SFT_parser_tables[1025]
+#define COLOR_parser_tables___Parser___action_table_row1021 SFT_parser_tables[1026]
+#define COLOR_parser_tables___Parser___action_table_row1022 SFT_parser_tables[1027]
+#define COLOR_parser_tables___Parser___action_table_row1023 SFT_parser_tables[1028]
+#define COLOR_parser_tables___Parser___action_table_row1024 SFT_parser_tables[1029]
+#define COLOR_parser_tables___Parser___action_table_row1025 SFT_parser_tables[1030]
+#define COLOR_parser_tables___Parser___action_table_row1026 SFT_parser_tables[1031]
+#define COLOR_parser_tables___Parser___action_table_row1027 SFT_parser_tables[1032]
+#define COLOR_parser_tables___Parser___action_table_row1028 SFT_parser_tables[1033]
+#define COLOR_parser_tables___Parser___action_table_row1029 SFT_parser_tables[1034]
+#define COLOR_parser_tables___Parser___action_table_row1030 SFT_parser_tables[1035]
+#define COLOR_parser_tables___Parser___action_table_row1031 SFT_parser_tables[1036]
+#define COLOR_parser_tables___Parser___action_table_row1032 SFT_parser_tables[1037]
+#define COLOR_parser_tables___Parser___action_table_row1033 SFT_parser_tables[1038]
+#define COLOR_parser_tables___Parser___action_table_row1034 SFT_parser_tables[1039]
+#define COLOR_parser_tables___Parser___action_table_row1035 SFT_parser_tables[1040]
+#define COLOR_parser_tables___Parser___action_table_row1036 SFT_parser_tables[1041]
+#define COLOR_parser_tables___Parser___action_table_row1037 SFT_parser_tables[1042]
+#define COLOR_parser_tables___Parser___action_table_row1038 SFT_parser_tables[1043]
+#define COLOR_parser_tables___Parser___action_table_row1039 SFT_parser_tables[1044]
+#define COLOR_parser_tables___Parser___action_table_row1040 SFT_parser_tables[1045]
+#define COLOR_parser_tables___Parser___action_table_row1041 SFT_parser_tables[1046]
+#define COLOR_parser_tables___Parser___action_table_row1042 SFT_parser_tables[1047]
+#define COLOR_parser_tables___Parser___action_table_row1043 SFT_parser_tables[1048]
+#define COLOR_parser_tables___Parser___action_table_row1044 SFT_parser_tables[1049]
+#define COLOR_parser_tables___Parser___action_table_row1045 SFT_parser_tables[1050]
+#define COLOR_parser_tables___Parser___action_table_row1046 SFT_parser_tables[1051]
+#define COLOR_parser_tables___Parser___action_table_row1047 SFT_parser_tables[1052]
+#define COLOR_parser_tables___Parser___action_table_row1048 SFT_parser_tables[1053]
+#define COLOR_parser_tables___Parser___action_table_row1049 SFT_parser_tables[1054]
+#define COLOR_parser_tables___Parser___action_table_row1050 SFT_parser_tables[1055]
+#define COLOR_parser_tables___Parser___action_table_row1051 SFT_parser_tables[1056]
+#define COLOR_parser_tables___Parser___action_table_row1052 SFT_parser_tables[1057]
+#define COLOR_parser_tables___Parser___action_table_row1053 SFT_parser_tables[1058]
+#define COLOR_parser_tables___Parser___action_table_row1054 SFT_parser_tables[1059]
+#define COLOR_parser_tables___Parser___action_table_row1055 SFT_parser_tables[1060]
+#define COLOR_parser_tables___Parser___action_table_row1056 SFT_parser_tables[1061]
+#define COLOR_parser_tables___Parser___action_table_row1057 SFT_parser_tables[1062]
+#define COLOR_parser_tables___Parser___action_table_row1058 SFT_parser_tables[1063]
+#define COLOR_parser_tables___Parser___action_table_row1059 SFT_parser_tables[1064]
+#define COLOR_parser_tables___Parser___action_table_row1060 SFT_parser_tables[1065]
+#define COLOR_parser_tables___Parser___action_table_row1061 SFT_parser_tables[1066]
+#define COLOR_parser_tables___Parser___action_table_row1062 SFT_parser_tables[1067]
+#define COLOR_parser_tables___Parser___action_table_row1063 SFT_parser_tables[1068]
+#define COLOR_parser_tables___Parser___action_table_row1064 SFT_parser_tables[1069]
+#define COLOR_parser_tables___Parser___action_table_row1065 SFT_parser_tables[1070]
+#define COLOR_parser_tables___Parser___action_table_row1066 SFT_parser_tables[1071]
+#define COLOR_parser_tables___Parser___action_table_row1067 SFT_parser_tables[1072]
+#define COLOR_parser_tables___Parser___action_table_row1068 SFT_parser_tables[1073]
+#define COLOR_parser_tables___Parser___action_table_row1069 SFT_parser_tables[1074]
+#define COLOR_parser_tables___Parser___action_table_row1070 SFT_parser_tables[1075]
+#define COLOR_parser_tables___Parser___action_table_row1071 SFT_parser_tables[1076]
+#define COLOR_parser_tables___Parser___action_table_row1072 SFT_parser_tables[1077]
+#define COLOR_parser_tables___Parser___action_table_row1073 SFT_parser_tables[1078]
+#define COLOR_parser_tables___Parser___action_table_row1074 SFT_parser_tables[1079]
+#define COLOR_parser_tables___Parser___action_table_row1075 SFT_parser_tables[1080]
+#define COLOR_parser_tables___Parser___action_table_row1076 SFT_parser_tables[1081]
+#define COLOR_parser_tables___Parser___action_table_row1077 SFT_parser_tables[1082]
+#define COLOR_parser_tables___Parser___action_table_row1078 SFT_parser_tables[1083]
+#define COLOR_parser_tables___Parser___action_table_row1079 SFT_parser_tables[1084]
+#define COLOR_parser_tables___Parser___action_table_row1080 SFT_parser_tables[1085]
+#define COLOR_parser_tables___Parser___action_table_row1081 SFT_parser_tables[1086]
+#define COLOR_parser_tables___Parser___action_table_row1082 SFT_parser_tables[1087]
+#define COLOR_parser_tables___Parser___action_table_row1083 SFT_parser_tables[1088]
+#define COLOR_parser_tables___Parser___action_table_row1084 SFT_parser_tables[1089]
+#define COLOR_parser_tables___Parser___action_table_row1085 SFT_parser_tables[1090]
+#define COLOR_parser_tables___Parser___action_table_row1086 SFT_parser_tables[1091]
+#define COLOR_parser_tables___Parser___action_table_row1087 SFT_parser_tables[1092]
+#define COLOR_parser_tables___Parser___action_table_row1088 SFT_parser_tables[1093]
+#define COLOR_parser_tables___Parser___action_table_row1089 SFT_parser_tables[1094]
+#define COLOR_parser_tables___Parser___action_table_row1090 SFT_parser_tables[1095]
+#define COLOR_parser_tables___Parser___action_table_row1091 SFT_parser_tables[1096]
+#define COLOR_parser_tables___Parser___action_table_row1092 SFT_parser_tables[1097]
+#define COLOR_parser_tables___Parser___action_table_row1093 SFT_parser_tables[1098]
+#define COLOR_parser_tables___Parser___action_table_row1094 SFT_parser_tables[1099]
+#define COLOR_parser_tables___Parser___action_table_row1095 SFT_parser_tables[1100]
+#define COLOR_parser_tables___Parser___action_table_row1096 SFT_parser_tables[1101]
+#define COLOR_parser_tables___Parser___action_table_row1097 SFT_parser_tables[1102]
+#define COLOR_parser_tables___Parser___action_table_row1098 SFT_parser_tables[1103]
+#define COLOR_parser_tables___Parser___action_table_row1099 SFT_parser_tables[1104]
+#define COLOR_parser_tables___Parser___action_table_row1100 SFT_parser_tables[1105]
+#define COLOR_parser_tables___Parser___action_table_row1101 SFT_parser_tables[1106]
+#define COLOR_parser_tables___Parser___action_table_row1102 SFT_parser_tables[1107]
+#define COLOR_parser_tables___Parser___action_table_row1103 SFT_parser_tables[1108]
+#define COLOR_parser_tables___Parser___action_table_row1104 SFT_parser_tables[1109]
+#define COLOR_parser_tables___Parser___action_table_row1105 SFT_parser_tables[1110]
+#define COLOR_parser_tables___Parser___action_table_row1106 SFT_parser_tables[1111]
+#define COLOR_parser_tables___Parser___action_table_row1107 SFT_parser_tables[1112]
+#define COLOR_parser_tables___Parser___action_table_row1108 SFT_parser_tables[1113]
+#define COLOR_parser_tables___Parser___action_table_row1109 SFT_parser_tables[1114]
+#define COLOR_parser_tables___Parser___action_table_row1110 SFT_parser_tables[1115]
+#define COLOR_parser_tables___Parser___action_table_row1111 SFT_parser_tables[1116]
+#define COLOR_parser_tables___Parser___action_table_row1112 SFT_parser_tables[1117]
+#define COLOR_parser_tables___Parser___action_table_row1113 SFT_parser_tables[1118]
+#define COLOR_parser_tables___Parser___action_table_row1114 SFT_parser_tables[1119]
+#define COLOR_parser_tables___Parser___action_table_row1115 SFT_parser_tables[1120]
+#define COLOR_parser_tables___Parser___action_table_row1116 SFT_parser_tables[1121]
+#define COLOR_parser_tables___Parser___action_table_row1117 SFT_parser_tables[1122]
+#define COLOR_parser_tables___Parser___action_table_row1118 SFT_parser_tables[1123]
+#define COLOR_parser_tables___Parser___action_table_row1119 SFT_parser_tables[1124]
+#define COLOR_parser_tables___Parser___action_table_row1120 SFT_parser_tables[1125]
+#define COLOR_parser_tables___Parser___action_table_row1121 SFT_parser_tables[1126]
+#define COLOR_parser_tables___Parser___action_table_row1122 SFT_parser_tables[1127]
+#define COLOR_parser_tables___Parser___action_table_row1123 SFT_parser_tables[1128]
+#define COLOR_parser_tables___Parser___action_table_row1124 SFT_parser_tables[1129]
+#define COLOR_parser_tables___Parser___action_table_row1125 SFT_parser_tables[1130]
+#define COLOR_parser_tables___Parser___action_table_row1126 SFT_parser_tables[1131]
+#define COLOR_parser_tables___Parser___action_table_row1127 SFT_parser_tables[1132]
+#define COLOR_parser_tables___Parser___action_table_row1128 SFT_parser_tables[1133]
+#define COLOR_parser_tables___Parser___action_table_row1129 SFT_parser_tables[1134]
+#define COLOR_parser_tables___Parser___action_table_row1130 SFT_parser_tables[1135]
+#define COLOR_parser_tables___Parser___action_table_row1131 SFT_parser_tables[1136]
+#define COLOR_parser_tables___Parser___action_table_row1132 SFT_parser_tables[1137]
+#define COLOR_parser_tables___Parser___action_table_row1133 SFT_parser_tables[1138]
+#define COLOR_parser_tables___Parser___action_table_row1134 SFT_parser_tables[1139]
+#define COLOR_parser_tables___Parser___action_table_row1135 SFT_parser_tables[1140]
+#define COLOR_parser_tables___Parser___action_table_row1136 SFT_parser_tables[1141]
+#define COLOR_parser_tables___Parser___action_table_row1137 SFT_parser_tables[1142]
+#define COLOR_parser_tables___Parser___action_table_row1138 SFT_parser_tables[1143]
+#define COLOR_parser_tables___Parser___action_table_row1139 SFT_parser_tables[1144]
+#define COLOR_parser_tables___Parser___action_table_row1140 SFT_parser_tables[1145]
+#define COLOR_parser_tables___Parser___action_table_row1141 SFT_parser_tables[1146]
+#define COLOR_parser_tables___Parser___action_table_row1142 SFT_parser_tables[1147]
+#define COLOR_parser_tables___Parser___action_table_row1143 SFT_parser_tables[1148]
+#define COLOR_parser_tables___Parser___action_table_row1144 SFT_parser_tables[1149]
+#define COLOR_parser_tables___Parser___build_goto_table SFT_parser_tables[1150]
+#define COLOR_parser_tables___Parser___error_messages SFT_parser_tables[1151]
+#define COLOR_parser_tables___Parser___errors SFT_parser_tables[1152]
+#define ATTR_parser_tables___Parser____action_table(recv) ATTR(recv, COLOR_parser_tables___Parser____action_table)
+typedef void (* parser_tables___Parser___build_action_table_t)(val_t  self);
+void parser_tables___Parser___build_action_table(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row2_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row2(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row3_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row3(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row4_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row4(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row5_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row5(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row6_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row6(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row7_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row7(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row8_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row8(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row9_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row9(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row10_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row10(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row11_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row11(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row12_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row12(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row13_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row13(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row14_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row14(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row15_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row15(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row16_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row16(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row17_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row17(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row18_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row18(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row19_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row19(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row20_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row20(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row21_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row21(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row22_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row22(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row23_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row23(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row24_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row24(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row25_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row25(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row26_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row26(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row27_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row27(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row28_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row28(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row29_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row29(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row30_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row30(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row31_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row31(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row32_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row32(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row33_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row33(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row34_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row34(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row35_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row35(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row36_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row36(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row37_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row37(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row38_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row38(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row39_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row39(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row40_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row40(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row41_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row41(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row42_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row42(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row43_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row43(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row44_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row44(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row45_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row45(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row46_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row46(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row47_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row47(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row48_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row48(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row49_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row49(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row50_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row50(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row51_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row51(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row52_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row52(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row53_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row53(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row54_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row54(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row55_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row55(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row56_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row56(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row57_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row57(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row58_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row58(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row59_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row59(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row60_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row60(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row61_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row61(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row62_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row62(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row63_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row63(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row64_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row64(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row65_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row65(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row66_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row66(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row67_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row67(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row68_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row68(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row69_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row69(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row70_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row70(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row71_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row71(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row72_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row72(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row73_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row73(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row74_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row74(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row75_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row75(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row76_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row76(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row77_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row77(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row78_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row78(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row79_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row79(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row80_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row80(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row81_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row81(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row82_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row82(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row83_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row83(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row84_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row84(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row85_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row85(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row86_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row86(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row87_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row87(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row88_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row88(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row89_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row89(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row90_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row90(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row91_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row91(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row92_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row92(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row93_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row93(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row94_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row94(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row95_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row95(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row96_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row96(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row97_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row97(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row98_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row98(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row99_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row99(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row100_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row100(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row101_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row101(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row102_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row102(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row103_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row103(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row104_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row104(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row105_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row105(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row106_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row106(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row107_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row107(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row108_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row108(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row109_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row109(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row110_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row110(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row111_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row111(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row112_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row112(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row113_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row113(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row114_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row114(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row115_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row115(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row116_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row116(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row117_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row117(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row118_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row118(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row119_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row119(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row120_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row120(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row121_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row121(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row122_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row122(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row123_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row123(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row124_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row124(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row125_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row125(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row126_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row126(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row127_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row127(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row128_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row128(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row129_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row129(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row130_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row130(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row131_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row131(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row132_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row132(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row133_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row133(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row134_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row134(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row135_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row135(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row136_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row136(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row137_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row137(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row138_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row138(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row139_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row139(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row140_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row140(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row141_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row141(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row142_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row142(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row143_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row143(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row144_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row144(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row145_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row145(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row146_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row146(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row147_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row147(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row148_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row148(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row149_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row149(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row150_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row150(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row151_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row151(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row152_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row152(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row153_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row153(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row154_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row154(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row155_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row155(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row156_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row156(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row157_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row157(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row158_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row158(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row159_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row159(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row160_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row160(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row161_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row161(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row162_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row162(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row163_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row163(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row164_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row164(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row165_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row165(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row166_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row166(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row167_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row167(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row168_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row168(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row169_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row169(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row170_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row170(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row171_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row171(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row172_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row172(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row173_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row173(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row174_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row174(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row175_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row175(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row176_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row176(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row177_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row177(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row178_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row178(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row179_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row179(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row180_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row180(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row181_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row181(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row182_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row182(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row183_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row183(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row184_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row184(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row185_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row185(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row186_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row186(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row187_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row187(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row188_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row188(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row189_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row189(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row190_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row190(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row191_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row191(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row192_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row192(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row193_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row193(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row194_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row194(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row195_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row195(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row196_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row196(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row197_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row197(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row198_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row198(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row199_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row199(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row200_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row200(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row201_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row201(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row202_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row202(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row203_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row203(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row204_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row204(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row205_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row205(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row206_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row206(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row207_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row207(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row208_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row208(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row209_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row209(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row210_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row210(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row211_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row211(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row212_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row212(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row213_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row213(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row214_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row214(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row215_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row215(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row216_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row216(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row217_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row217(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row218_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row218(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row219_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row219(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row220_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row220(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row221_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row221(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row222_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row222(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row223_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row223(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row224_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row224(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row225_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row225(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row226_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row226(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row227_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row227(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row228_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row228(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row229_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row229(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row230_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row230(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row231_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row231(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row232_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row232(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row233_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row233(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row234_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row234(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row235_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row235(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row236_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row236(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row237_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row237(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row238_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row238(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row239_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row239(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row240_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row240(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row241_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row241(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row242_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row242(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row243_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row243(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row244_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row244(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row245_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row245(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row246_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row246(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row247_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row247(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row248_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row248(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row249_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row249(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row250_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row250(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row251_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row251(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row252_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row252(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row253_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row253(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row254_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row254(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row255_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row255(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row256_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row256(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row257_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row257(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row258_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row258(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row259_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row259(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row260_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row260(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row261_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row261(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row262_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row262(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row263_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row263(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row264_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row264(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row265_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row265(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row266_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row266(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row267_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row267(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row268_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row268(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row269_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row269(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row270_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row270(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row271_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row271(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row272_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row272(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row273_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row273(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row274_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row274(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row275_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row275(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row276_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row276(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row277_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row277(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row278_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row278(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row279_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row279(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row280_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row280(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row281_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row281(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row282_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row282(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row283_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row283(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row284_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row284(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row285_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row285(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row286_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row286(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row287_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row287(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row288_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row288(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row289_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row289(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row290_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row290(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row291_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row291(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row292_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row292(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row293_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row293(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row294_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row294(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row295_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row295(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row296_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row296(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row297_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row297(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row298_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row298(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row299_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row299(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row300_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row300(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row301_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row301(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row302_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row302(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row303_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row303(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row304_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row304(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row305_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row305(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row306_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row306(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row307_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row307(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row308_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row308(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row309_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row309(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row310_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row310(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row311_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row311(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row312_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row312(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row313_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row313(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row314_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row314(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row315_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row315(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row316_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row316(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row317_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row317(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row318_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row318(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row319_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row319(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row320_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row320(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row321_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row321(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row322_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row322(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row323_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row323(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row324_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row324(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row325_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row325(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row326_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row326(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row327_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row327(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row328_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row328(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row329_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row329(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row330_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row330(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row331_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row331(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row332_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row332(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row333_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row333(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row334_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row334(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row335_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row335(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row336_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row336(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row337_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row337(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row338_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row338(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row339_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row339(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row340_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row340(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row341_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row341(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row342_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row342(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row343_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row343(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row344_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row344(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row345_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row345(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row346_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row346(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row347_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row347(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row348_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row348(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row349_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row349(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row350_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row350(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row351_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row351(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row352_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row352(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row353_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row353(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row354_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row354(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row355_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row355(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row356_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row356(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row357_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row357(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row358_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row358(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row359_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row359(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row360_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row360(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row361_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row361(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row362_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row362(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row363_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row363(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row364_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row364(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row365_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row365(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row366_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row366(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row367_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row367(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row368_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row368(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row369_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row369(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row370_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row370(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row371_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row371(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row372_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row372(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row373_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row373(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row374_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row374(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row375_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row375(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row376_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row376(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row377_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row377(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row378_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row378(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row379_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row379(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row380_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row380(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row381_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row381(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row382_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row382(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row383_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row383(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row384_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row384(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row385_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row385(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row386_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row386(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row387_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row387(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row388_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row388(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row389_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row389(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row390_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row390(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row391_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row391(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row392_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row392(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row393_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row393(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row394_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row394(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row395_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row395(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row396_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row396(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row397_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row397(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row398_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row398(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row399_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row399(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row400_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row400(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row401_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row401(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row402_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row402(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row403_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row403(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row404_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row404(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row405_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row405(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row406_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row406(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row407_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row407(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row408_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row408(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row409_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row409(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row410_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row410(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row411_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row411(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row412_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row412(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row413_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row413(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row414_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row414(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row415_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row415(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row416_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row416(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row417_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row417(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row418_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row418(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row419_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row419(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row420_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row420(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row421_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row421(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row422_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row422(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row423_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row423(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row424_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row424(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row425_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row425(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row426_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row426(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row427_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row427(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row428_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row428(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row429_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row429(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row430_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row430(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row431_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row431(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row432_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row432(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row433_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row433(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row434_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row434(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row435_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row435(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row436_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row436(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row437_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row437(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row438_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row438(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row439_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row439(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row440_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row440(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row441_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row441(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row442_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row442(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row443_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row443(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row444_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row444(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row445_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row445(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row446_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row446(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row447_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row447(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row448_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row448(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row449_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row449(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row450_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row450(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row451_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row451(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row452_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row452(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row453_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row453(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row454_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row454(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row455_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row455(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row456_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row456(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row457_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row457(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row458_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row458(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row459_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row459(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row460_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row460(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row461_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row461(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row462_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row462(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row463_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row463(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row464_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row464(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row465_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row465(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row466_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row466(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row467_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row467(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row468_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row468(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row469_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row469(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row470_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row470(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row471_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row471(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row472_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row472(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row473_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row473(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row474_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row474(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row475_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row475(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row476_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row476(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row477_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row477(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row478_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row478(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row479_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row479(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row480_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row480(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row481_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row481(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row482_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row482(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row483_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row483(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row484_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row484(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row485_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row485(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row486_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row486(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row487_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row487(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row488_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row488(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row489_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row489(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row490_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row490(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row491_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row491(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row492_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row492(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row493_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row493(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row494_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row494(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row495_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row495(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row496_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row496(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row497_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row497(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row498_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row498(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row499_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row499(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row500_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row500(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row501_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row501(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row502_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row502(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row503_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row503(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row504_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row504(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row505_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row505(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row506_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row506(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row507_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row507(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row508_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row508(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row509_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row509(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row510_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row510(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row511_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row511(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row512_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row512(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row513_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row513(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row514_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row514(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row515_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row515(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row516_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row516(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row517_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row517(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row518_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row518(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row519_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row519(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row520_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row520(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row521_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row521(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row522_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row522(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row523_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row523(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row524_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row524(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row525_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row525(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row526_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row526(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row527_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row527(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row528_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row528(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row529_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row529(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row530_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row530(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row531_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row531(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row532_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row532(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row533_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row533(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row534_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row534(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row535_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row535(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row536_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row536(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row537_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row537(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row538_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row538(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row539_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row539(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row540_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row540(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row541_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row541(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row542_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row542(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row543_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row543(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row544_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row544(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row545_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row545(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row546_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row546(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row547_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row547(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row548_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row548(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row549_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row549(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row550_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row550(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row551_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row551(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row552_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row552(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row553_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row553(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row554_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row554(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row555_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row555(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row556_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row556(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row557_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row557(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row558_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row558(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row559_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row559(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row560_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row560(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row561_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row561(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row562_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row562(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row563_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row563(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row564_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row564(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row565_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row565(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row566_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row566(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row567_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row567(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row568_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row568(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row569_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row569(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row570_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row570(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row571_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row571(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row572_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row572(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row573_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row573(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row574_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row574(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row575_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row575(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row576_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row576(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row577_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row577(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row578_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row578(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row579_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row579(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row580_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row580(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row581_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row581(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row582_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row582(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row583_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row583(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row584_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row584(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row585_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row585(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row586_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row586(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row587_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row587(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row588_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row588(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row589_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row589(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row590_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row590(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row591_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row591(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row592_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row592(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row593_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row593(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row594_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row594(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row595_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row595(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row596_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row596(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row597_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row597(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row598_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row598(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row599_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row599(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row600_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row600(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row601_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row601(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row602_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row602(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row603_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row603(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row604_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row604(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row605_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row605(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row606_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row606(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row607_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row607(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row608_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row608(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row609_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row609(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row610_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row610(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row611_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row611(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row612_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row612(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row613_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row613(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row614_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row614(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row615_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row615(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row616_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row616(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row617_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row617(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row618_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row618(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row619_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row619(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row620_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row620(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row621_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row621(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row622_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row622(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row623_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row623(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row624_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row624(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row625_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row625(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row626_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row626(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row627_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row627(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row628_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row628(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row629_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row629(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row630_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row630(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row631_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row631(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row632_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row632(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row633_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row633(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row634_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row634(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row635_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row635(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row636_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row636(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row637_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row637(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row638_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row638(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row639_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row639(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row640_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row640(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row641_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row641(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row642_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row642(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row643_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row643(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row644_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row644(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row645_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row645(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row646_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row646(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row647_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row647(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row648_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row648(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row649_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row649(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row650_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row650(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row651_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row651(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row652_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row652(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row653_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row653(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row654_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row654(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row655_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row655(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row656_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row656(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row657_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row657(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row658_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row658(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row659_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row659(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row660_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row660(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row661_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row661(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row662_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row662(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row663_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row663(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row664_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row664(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row665_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row665(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row666_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row666(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row667_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row667(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row668_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row668(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row669_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row669(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row670_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row670(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row671_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row671(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row672_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row672(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row673_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row673(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row674_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row674(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row675_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row675(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row676_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row676(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row677_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row677(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row678_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row678(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row679_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row679(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row680_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row680(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row681_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row681(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row682_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row682(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row683_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row683(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row684_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row684(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row685_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row685(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row686_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row686(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row687_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row687(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row688_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row688(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row689_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row689(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row690_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row690(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row691_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row691(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row692_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row692(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row693_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row693(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row694_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row694(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row695_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row695(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row696_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row696(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row697_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row697(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row698_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row698(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row699_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row699(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row700_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row700(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row701_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row701(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row702_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row702(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row703_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row703(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row704_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row704(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row705_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row705(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row706_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row706(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row707_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row707(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row708_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row708(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row709_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row709(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row710_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row710(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row711_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row711(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row712_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row712(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row713_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row713(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row714_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row714(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row715_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row715(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row716_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row716(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row717_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row717(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row718_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row718(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row719_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row719(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row720_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row720(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row721_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row721(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row722_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row722(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row723_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row723(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row724_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row724(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row725_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row725(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row726_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row726(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row727_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row727(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row728_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row728(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row729_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row729(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row730_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row730(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row731_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row731(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row732_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row732(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row733_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row733(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row734_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row734(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row735_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row735(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row736_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row736(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row737_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row737(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row738_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row738(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row739_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row739(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row740_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row740(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row741_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row741(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row742_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row742(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row743_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row743(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row744_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row744(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row745_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row745(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row746_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row746(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row747_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row747(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row748_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row748(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row749_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row749(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row750_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row750(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row751_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row751(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row752_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row752(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row753_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row753(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row754_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row754(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row755_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row755(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row756_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row756(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row757_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row757(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row758_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row758(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row759_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row759(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row760_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row760(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row761_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row761(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row762_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row762(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row763_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row763(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row764_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row764(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row765_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row765(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row766_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row766(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row767_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row767(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row768_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row768(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row769_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row769(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row770_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row770(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row771_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row771(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row772_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row772(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row773_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row773(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row774_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row774(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row775_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row775(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row776_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row776(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row777_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row777(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row778_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row778(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row779_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row779(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row780_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row780(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row781_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row781(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row782_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row782(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row783_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row783(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row784_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row784(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row785_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row785(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row786_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row786(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row787_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row787(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row788_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row788(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row789_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row789(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row790_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row790(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row791_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row791(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row792_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row792(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row793_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row793(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row794_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row794(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row795_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row795(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row796_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row796(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row797_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row797(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row798_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row798(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row799_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row799(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row800_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row800(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row801_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row801(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row802_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row802(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row803_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row803(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row804_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row804(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row805_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row805(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row806_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row806(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row807_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row807(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row808_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row808(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row809_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row809(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row810_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row810(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row811_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row811(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row812_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row812(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row813_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row813(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row814_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row814(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row815_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row815(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row816_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row816(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row817_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row817(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row818_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row818(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row819_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row819(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row820_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row820(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row821_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row821(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row822_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row822(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row823_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row823(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row824_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row824(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row825_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row825(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row826_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row826(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row827_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row827(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row828_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row828(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row829_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row829(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row830_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row830(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row831_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row831(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row832_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row832(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row833_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row833(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row834_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row834(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row835_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row835(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row836_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row836(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row837_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row837(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row838_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row838(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row839_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row839(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row840_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row840(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row841_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row841(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row842_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row842(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row843_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row843(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row844_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row844(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row845_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row845(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row846_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row846(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row847_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row847(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row848_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row848(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row849_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row849(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row850_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row850(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row851_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row851(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row852_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row852(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row853_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row853(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row854_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row854(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row855_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row855(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row856_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row856(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row857_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row857(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row858_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row858(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row859_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row859(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row860_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row860(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row861_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row861(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row862_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row862(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row863_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row863(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row864_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row864(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row865_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row865(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row866_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row866(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row867_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row867(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row868_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row868(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row869_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row869(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row870_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row870(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row871_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row871(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row872_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row872(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row873_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row873(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row874_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row874(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row875_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row875(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row876_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row876(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row877_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row877(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row878_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row878(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row879_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row879(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row880_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row880(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row881_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row881(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row882_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row882(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row883_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row883(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row884_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row884(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row885_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row885(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row886_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row886(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row887_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row887(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row888_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row888(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row889_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row889(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row890_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row890(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row891_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row891(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row892_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row892(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row893_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row893(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row894_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row894(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row895_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row895(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row896_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row896(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row897_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row897(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row898_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row898(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row899_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row899(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row900_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row900(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row901_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row901(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row902_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row902(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row903_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row903(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row904_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row904(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row905_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row905(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row906_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row906(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row907_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row907(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row908_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row908(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row909_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row909(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row910_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row910(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row911_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row911(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row912_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row912(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row913_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row913(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row914_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row914(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row915_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row915(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row916_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row916(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row917_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row917(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row918_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row918(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row919_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row919(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row920_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row920(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row921_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row921(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row922_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row922(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row923_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row923(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row924_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row924(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row925_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row925(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row926_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row926(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row927_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row927(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row928_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row928(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row929_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row929(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row930_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row930(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row931_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row931(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row932_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row932(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row933_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row933(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row934_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row934(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row935_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row935(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row936_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row936(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row937_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row937(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row938_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row938(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row939_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row939(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row940_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row940(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row941_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row941(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row942_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row942(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row943_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row943(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row944_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row944(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row945_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row945(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row946_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row946(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row947_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row947(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row948_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row948(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row949_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row949(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row950_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row950(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row951_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row951(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row952_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row952(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row953_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row953(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row954_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row954(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row955_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row955(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row956_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row956(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row957_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row957(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row958_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row958(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row959_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row959(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row960_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row960(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row961_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row961(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row962_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row962(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row963_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row963(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row964_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row964(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row965_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row965(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row966_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row966(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row967_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row967(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row968_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row968(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row969_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row969(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row970_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row970(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row971_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row971(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row972_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row972(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row973_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row973(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row974_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row974(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row975_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row975(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row976_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row976(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row977_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row977(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row978_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row978(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row979_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row979(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row980_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row980(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row981_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row981(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row982_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row982(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row983_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row983(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row984_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row984(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row985_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row985(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row986_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row986(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row987_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row987(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row988_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row988(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row989_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row989(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row990_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row990(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row991_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row991(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row992_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row992(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row993_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row993(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row994_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row994(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row995_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row995(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row996_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row996(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row997_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row997(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row998_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row998(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row999_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row999(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1000_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1000(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1001_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1001(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1002_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1002(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1003_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1003(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1004_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1004(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1005_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1005(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1006_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1006(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1007_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1007(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1008_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1008(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1009_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1009(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1010_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1010(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1011_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1011(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1012_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1012(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1013_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1013(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1014_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1014(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1015_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1015(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1016_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1016(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1017_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1017(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1018_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1018(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1019_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1019(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1020_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1020(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1021_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1021(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1022_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1022(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1023_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1023(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1024_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1024(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1025_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1025(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1026_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1026(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1027_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1027(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1028_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1028(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1029_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1029(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1030_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1030(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1031_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1031(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1032_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1032(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1033_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1033(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1034_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1034(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1035_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1035(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1036_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1036(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1037_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1037(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1038_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1038(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1039_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1039(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1040_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1040(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1041_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1041(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1042_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1042(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1043_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1043(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1044_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1044(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1045_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1045(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1046_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1046(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1047_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1047(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1048_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1048(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1049_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1049(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1050_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1050(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1051_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1051(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1052_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1052(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1053_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1053(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1054_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1054(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1055_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1055(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1056_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1056(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1057_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1057(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1058_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1058(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1059_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1059(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1060_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1060(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1061_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1061(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1062_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1062(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1063_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1063(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1064_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1064(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1065_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1065(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1066_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1066(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1067_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1067(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1068_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1068(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1069_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1069(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1070_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1070(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1071_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1071(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1072_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1072(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1073_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1073(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1074_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1074(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1075_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1075(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1076_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1076(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1077_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1077(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1078_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1078(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1079_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1079(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1080_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1080(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1081_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1081(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1082_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1082(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1083_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1083(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1084_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1084(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1085_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1085(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1086_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1086(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1087_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1087(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1088_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1088(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1089_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1089(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1090_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1090(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1091_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1091(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1092_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1092(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1093_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1093(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1094_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1094(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1095_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1095(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1096_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1096(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1097_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1097(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1098_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1098(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1099_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1099(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1100_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1100(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1101_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1101(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1102_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1102(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1103_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1103(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1104_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1104(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1105_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1105(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1106_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1106(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1107_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1107(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1108_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1108(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1109_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1109(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1110_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1110(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1111_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1111(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1112_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1112(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1113_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1113(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1114_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1114(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1115_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1115(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1116_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1116(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1117_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1117(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1118_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1118(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1119_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1119(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1120_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1120(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1121_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1121(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1122_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1122(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1123_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1123(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1124_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1124(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1125_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1125(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1126_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1126(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1127_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1127(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1128_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1128(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1129_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1129(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1130_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1130(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1131_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1131(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1132_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1132(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1133_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1133(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1134_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1134(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1135_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1135(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1136_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1136(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1137_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1137(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1138_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1138(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1139_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1139(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1140_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1140(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1141_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1141(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1142_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1142(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1143_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1143(val_t  self);
+typedef val_t (* parser_tables___Parser___action_table_row1144_t)(val_t  self);
+val_t parser_tables___Parser___action_table_row1144(val_t  self);
+#define ATTR_parser_tables___Parser____goto_table(recv) ATTR(recv, COLOR_parser_tables___Parser____goto_table)
+typedef void (* parser_tables___Parser___build_goto_table_t)(val_t  self);
+void parser_tables___Parser___build_goto_table(val_t  self);
+typedef val_t (* parser_tables___Parser___error_messages_t)(val_t  self);
+val_t parser_tables___Parser___error_messages(val_t  self);
+typedef val_t (* parser_tables___Parser___errors_t)(val_t  self);
+val_t parser_tables___Parser___errors(val_t  self);
+#endif
diff --git a/c_src/partial_order._sep.c b/c_src/partial_order._sep.c
new file mode 100644 (file)
index 0000000..7aed199
--- /dev/null
@@ -0,0 +1,793 @@
+#include "partial_order._sep.h"
+val_t partial_order___PartialOrder___roots(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::roots (src/metamodel//partial_order.nit:30,2--31:30)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/;
+}
+val_t partial_order___PartialOrder___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::is_empty (src/metamodel//partial_order.nit:35,2--49)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable0 = ((abstract_collection___Collection___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Map::is_empty*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder___length(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::length (src/metamodel//partial_order.nit:37,2--45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable0 = ((abstract_collection___Collection___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Map::length*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder___first(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::first (src/metamodel//partial_order.nit:39,2--48)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
+  variable0 = ((abstract_collection___IndexedCollection___first_t)CALL(variable0,COLOR_abstract_collection___Collection___first))(variable0) /*Array::first*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::has (src/metamodel//partial_order.nit:41,2--48)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*e*/) /*Map::has_key*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::has_only (src/metamodel//partial_order.nit:43,2--80)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable1 = ((abstract_collection___Collection___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Map::length*/;
+  variable1 = TAG_Bool((variable1)==( TAG_Int(1)));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+    variable2 = ((abstract_collection___Collection___first_t)CALL(variable2,COLOR_abstract_collection___Collection___first))(variable2) /*Map::first*/;
+    variable2 = TAG_Bool((variable2 ==  variable0 /*e*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*e*/) /*PartialOrderElement::==*/)))));
+  }
+  variable1 = variable2;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::count (src/metamodel//partial_order.nit:45,2--50:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((partial_order___PartialOrder___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*e*/) /*PartialOrder::has*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Int(1);
+    goto return_label5;
+  } else { /*if*/
+    variable1 =  TAG_Int(0);
+    goto return_label5;
+  }
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::iterator (src/metamodel//partial_order.nit:54,2--54)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::[] (src/metamodel//partial_order.nit:58,2--64:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*e*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*e*/) /*Map::[]*/;
+    goto return_label7;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label7;
+  }
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___to_dot(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::to_dot (src/metamodel//partial_order.nit:68,2--80:10)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+      val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable0 = variable1;
+  variable1 = ((partial_order___PartialOrder___to_dot_header_t)CALL( self,COLOR_partial_order___PartialOrder___to_dot_header))( self) /*PartialOrder::to_dot_header*/;
+  ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
+  variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable1 = ((abstract_collection___Map___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*MapIterator::item*/;
+    variable3 = ((partial_order___PartialOrderElement___value_t)CALL( variable2 /*e*/,COLOR_partial_order___PartialOrderElement___value))( variable2 /*e*/) /*PartialOrderElement::value*/;
+    variable3 = ((partial_order___PartialOrder___to_dot_node_t)CALL( self,COLOR_partial_order___PartialOrder___to_dot_node))( self, variable3) /*PartialOrder::to_dot_node*/;
+    ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable3) /*String::append*/;
+    variable3 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( variable2 /*e*/,COLOR_partial_order___PartialOrderElement___direct_greaters))( variable2 /*e*/) /*PartialOrderElement::direct_greaters*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+      variable5 = ((partial_order___PartialOrderElement___value_t)CALL( variable2 /*e*/,COLOR_partial_order___PartialOrderElement___value))( variable2 /*e*/) /*PartialOrderElement::value*/;
+      variable5 = ((partial_order___PartialOrder___to_dot_edge_t)CALL( self,COLOR_partial_order___PartialOrder___to_dot_edge))( self, variable5,  variable4 /*d*/) /*PartialOrder::to_dot_edge*/;
+      ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable5) /*String::append*/;
+      continue_10: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+    }
+    break_10: while(0);
+    continue_9: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*MapIterator::next*/;
+  }
+  break_9: while(0);
+  variable1 = NEW_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)); /*new String*/
+  ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
+  variable0 =  variable0 /*s*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder___to_dot_header(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::to_dot_header (src/metamodel//partial_order.nit:83,2--86:46)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___with_native(BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n"), TAG_Int(32)); /*new String*/
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::to_dot_node (src/metamodel//partial_order.nit:89,2--92:21)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable2 = NEW_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
+  variable3 = variable2;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+  variable4 =  variable0 /*e*/;
+  variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::to_dot_edge (src/metamodel//partial_order.nit:95,2--98:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable3 = NEW_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+  variable5 =  variable0 /*e1*/;
+  variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+  variable6 = NEW_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)); /*new String*/
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+  variable8 =  variable1 /*e2*/;
+  variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+  variable9 = NEW_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
+  variable10 = variable9;
+  ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
+  goto return_label13;
+  return_label13: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::select_smallests (src/metamodel//partial_order.nit:101,2--119:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*c*/ ==  NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_array___Array___init(); /*new Array[E]*/
+    goto return_label14;
+  }
+  variable1 = ((partial_order___PartialOrder___has_all_t)CALL( self,COLOR_partial_order___PartialOrder___has_all))( self,  variable0 /*c*/) /*PartialOrder::has_all*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//partial_order.nit:105,3--18\n"); nit_exit(1);}
+  variable2 = ((abstract_collection___Collection___length_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___length))( variable0 /*c*/) /*Collection::length*/;
+  variable3 = NEW_array___Array___with_capacity(variable2); /*new Array[E]*/
+  variable2 = variable3;
+  variable1 = variable2;
+  variable3 = ((abstract_collection___Collection___length_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___length))( variable0 /*c*/) /*Collection::length*/;
+  variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[E]*/
+  variable3 = variable4;
+  variable2 = variable3;
+  variable3 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*c*/) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+    variable6 = ((partial_order___PartialOrder___add_to_smallests_t)CALL( self,COLOR_partial_order___PartialOrder___add_to_smallests))( self,  variable4 /*e*/,  variable1 /*res*/,  variable2 /*tmp*/) /*PartialOrder::add_to_smallests*/;
+    variable5 = variable6;
+    if (UNTAG_Bool( variable5 /*r*/)) { /*if*/
+      variable6 =  variable2 /*tmp*/;
+      variable2 =  variable1 /*res*/ /*tmp=*/;
+      variable1 =  variable6 /*t*/ /*res=*/;
+    }
+    continue_15: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+  }
+  break_15: while(0);
+  variable1 =  variable1 /*res*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::add (src/metamodel//partial_order.nit:122,2--134:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((partial_order___PartialOrder___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*e*/) /*PartialOrder::has*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { fprintf(stderr, "Assert failed: src/metamodel//partial_order.nit:125,3--18\n"); nit_exit(1);}
+  variable2 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  variable3 = variable2;
+  if (!UNTAG_Bool(variable3)) { /* or */
+    variable3 = ((partial_order___PartialOrder___has_all_t)CALL( self,COLOR_partial_order___PartialOrder___has_all))( self,  variable1 /*supers*/) /*PartialOrder::has_all*/;
+  }
+  variable2 = variable3;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//partial_order.nit:126,3--41\n"); nit_exit(1);}
+  variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL( self,COLOR_partial_order___PartialOrder___select_smallests))( self,  variable1 /*supers*/) /*PartialOrder::select_smallests*/;
+  variable2 = variable3;
+  variable4 = ((partial_order___PartialOrder___new_poe_t)CALL( self,COLOR_partial_order___PartialOrder___new_poe))( self,  variable0 /*e*/,  variable2 /*directs*/) /*PartialOrder::new_poe*/;
+  variable3 = variable4;
+  variable4 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable0 /*e*/,  variable3 /*poe*/) /*Map::[]=*/;
+  variable4 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*Array::add*/;
+  variable4 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  variable5 = variable4;
+  if (!UNTAG_Bool(variable5)) { /* or */
+    variable5 = ((abstract_collection___Collection___is_empty_t)CALL( variable1 /*supers*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*supers*/) /*Collection::is_empty*/;
+  }
+  variable4 = variable5;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*Array::add*/;
+  }
+  variable2 =  variable3 /*poe*/;
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t partial_order___PartialOrder___has_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::has_all (src/metamodel//partial_order.nit:137,2--145:13)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*e*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*e*/) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = ((partial_order___PartialOrder___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable2 /*i*/) /*PartialOrder::has*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label17;
+    }
+    continue_18: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_18: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrder___new_poe(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::new_poe (src/metamodel//partial_order.nit:148,2--151:52)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = NEW_partial_order___PartialOrderElement___init( self,  variable0 /*e*/,  variable1 /*directs*/); /*new PartialOrderElement[E]*/
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::add_to_smallests (src/metamodel//partial_order.nit:154,2--172:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  ((array___AbstractArray___clear_t)CALL( variable2 /*to*/,COLOR_abstract_collection___RemovableCollection___clear))( variable2 /*to*/) /*Array::clear*/;
+  variable4 = ((partial_order___PartialOrder_____bra_t)CALL( self,COLOR_partial_order___PartialOrder_____bra))( self,  variable0 /*e*/) /*PartialOrder::[]*/;
+  variable3 = variable4;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*from*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*from*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable5)) break; /*for*/
+    variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+    variable6 = ((partial_order___PartialOrderElement_____g_t)CALL( variable3 /*poe*/,COLOR_partial_order___PartialOrderElement_____g))( variable3 /*poe*/,  variable5 /*i*/) /*PartialOrderElement::>*/;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable3 =  TAG_Bool(false);
+      goto return_label20;
+    }
+    variable6 = ((partial_order___PartialOrderElement_____l_t)CALL( variable3 /*poe*/,COLOR_partial_order___PartialOrderElement_____l))( variable3 /*poe*/,  variable5 /*i*/) /*PartialOrderElement::<*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable6)))) { /*if*/
+      ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable5 /*i*/) /*Array::add*/;
+    }
+    continue_21: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+  }
+  break_21: while(0);
+  ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable0 /*e*/) /*Array::add*/;
+  variable3 =  TAG_Bool(true);
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::compute_smallers_for (src/metamodel//partial_order.nit:175,2--180:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((partial_order___PartialOrderElement___value_t)CALL( variable0 /*poe*/,COLOR_partial_order___PartialOrderElement___value))( variable0 /*poe*/) /*PartialOrderElement::value*/;
+  variable2 = variable3;
+  variable3 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
+  variable3 = ((abstract_collection___Map___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Map::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*MapIterator::item*/;
+    variable5 = ((partial_order___PartialOrderElement_____l_t)CALL( variable4 /*s*/,COLOR_partial_order___PartialOrderElement_____l))( variable4 /*s*/,  variable2 /*e*/) /*PartialOrderElement::<*/;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = ((partial_order___PartialOrderElement___value_t)CALL( variable4 /*s*/,COLOR_partial_order___PartialOrderElement___value))( variable4 /*s*/) /*PartialOrderElement::value*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL( variable1 /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*set*/, variable5) /*Set::add*/;
+    }
+    continue_23: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*MapIterator::next*/;
+  }
+  break_23: while(0);
+  tracehead = trace.prev;
+  return;
+}
+void partial_order___PartialOrder___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrder::init (src/metamodel//partial_order.nit:185,2--189:22)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrder].i]) return;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[E, PartialOrderElement[E]]*/
+  ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/ = variable0;
+  variable0 = NEW_array___Array___init(); /*new Array[E]*/
+  ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/ = variable0;
+  variable0 = NEW_array___Array___init(); /*new Array[E]*/
+  ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrder].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t partial_order___PartialOrderElement___order(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::order (src/metamodel//partial_order.nit:194,2--195:37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+}
+val_t partial_order___PartialOrderElement___value(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::value (src/metamodel//partial_order.nit:197,2--198:24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+}
+val_t partial_order___PartialOrderElement___rank(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::rank (src/metamodel//partial_order.nit:200,2--204:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____rank( self) /*PartialOrderElement::_rank*/;
+}
+val_t partial_order___PartialOrderElement___direct_greaters(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::direct_greaters (src/metamodel//partial_order.nit:206,2--207:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____direct_greaters( self) /*PartialOrderElement::_direct_greaters*/;
+}
+val_t partial_order___PartialOrderElement___direct_smallers(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::direct_smallers (src/metamodel//partial_order.nit:209,2--210:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/;
+}
+val_t partial_order___PartialOrderElement___greaters(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::greaters (src/metamodel//partial_order.nit:212,2--213:31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
+}
+val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::greaters_and_self (src/metamodel//partial_order.nit:218,2--225:33)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
+    variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Set::to_a*/;
+    ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/ = variable0;
+    variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
+    variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  }
+  variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
+  goto return_label25;
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrderElement___smallers(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::smallers (src/metamodel//partial_order.nit:234,2--241:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrderElement____smallers_last_length( self) /*PartialOrderElement::_smallers_last_length*/;
+  variable1 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+  variable1 = ((partial_order___PartialOrder___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*PartialOrder::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)<UNTAG_Int(variable1));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+    variable1 = ATTR_partial_order___PartialOrderElement____smallers_cache( self) /*PartialOrderElement::_smallers_cache*/;
+    ((partial_order___PartialOrder___compute_smallers_for_t)CALL(variable0,COLOR_partial_order___PartialOrder___compute_smallers_for))(variable0,  self, variable1) /*PartialOrder::compute_smallers_for*/;
+    variable0 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+    variable0 = ((partial_order___PartialOrder___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*PartialOrder::length*/;
+    ATTR_partial_order___PartialOrderElement____smallers_last_length( self) /*PartialOrderElement::_smallers_last_length*/ = variable0;
+  }
+  variable0 = ATTR_partial_order___PartialOrderElement____smallers_cache( self) /*PartialOrderElement::_smallers_cache*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::linear_extension (src/metamodel//partial_order.nit:247,2--269:32)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+      val_t variable3;
+      val_t variable4;
+      val_t variable5;
+        val_t variable6;
+        val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable1 = NEW_array___Array___init(); /*new Array[E]*/
+    variable0 = variable1;
+    variable2 = NEW_array___Array___init(); /*new Array[E]*/
+    variable1 = variable2;
+    variable2 = ((partial_order___PartialOrderElement___value_t)CALL( self,COLOR_partial_order___PartialOrderElement___value))( self) /*PartialOrderElement::value*/;
+    ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable2) /*Array::add*/;
+    variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( self,COLOR_partial_order___PartialOrderElement___direct_greaters))( self) /*PartialOrderElement::direct_greaters*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable3)) break; /*for*/
+      variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
+      variable5 = ((partial_order___PartialOrderElement___order_t)CALL( self,COLOR_partial_order___PartialOrderElement___order))( self) /*PartialOrderElement::order*/;
+      variable5 = ((partial_order___PartialOrder_____bra_t)CALL(variable5,COLOR_partial_order___PartialOrder_____bra))(variable5,  variable3 /*s*/) /*PartialOrder::[]*/;
+      variable5 = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___linear_extension))(variable5) /*PartialOrderElement::linear_extension*/;
+      variable4 = variable5;
+      ((array___AbstractArray___clear_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___RemovableCollection___clear))( variable1 /*res2*/) /*Array::clear*/;
+      variable5 = ((array___AbstractArray___iterator_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*res*/) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable6)) break; /*for*/
+        variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+        variable7 = ((array___AbstractArray___has_t)CALL( variable4 /*sl*/,COLOR_abstract_collection___Collection___has))( variable4 /*sl*/,  variable6 /*e*/) /*Array::has*/;
+        if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7)))) { /*if*/
+          ((array___AbstractArray___add_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res2*/,  variable6 /*e*/) /*Array::add*/;
+        }
+        continue_29: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+      }
+      break_29: while(0);
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*res2*/,  variable4 /*sl*/) /*Array::append*/;
+      variable5 =  variable0 /*res*/;
+      variable0 =  variable1 /*res2*/ /*res=*/;
+      variable1 =  variable5 /*tmp*/ /*res2=*/;
+      continue_28: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
+    }
+    break_28: while(0);
+    ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/ =  variable0 /*res*/;
+  }
+  variable0 = ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::reverse_linear_extension (src/metamodel//partial_order.nit:275,2--288:32)"};
+  val_t variable0;
+    val_t variable1;
+      val_t variable2;
+      val_t variable3;
+      val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache( self) /*PartialOrderElement::_reverse_linear_extension_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable1 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+    variable0 = variable1;
+    variable1 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( self,COLOR_partial_order___PartialOrderElement___direct_greaters))( self) /*PartialOrderElement::direct_greaters*/;
+    variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable2)) break; /*for*/
+      variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+      variable4 = ((partial_order___PartialOrderElement___order_t)CALL( self,COLOR_partial_order___PartialOrderElement___order))( self) /*PartialOrderElement::order*/;
+      variable4 = ((partial_order___PartialOrder_____bra_t)CALL(variable4,COLOR_partial_order___PartialOrder_____bra))(variable4,  variable2 /*s*/) /*PartialOrder::[]*/;
+      variable4 = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___linear_extension))(variable4) /*PartialOrderElement::linear_extension*/;
+      variable3 = variable4;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable0 /*res*/,  variable3 /*sl*/) /*HashSet::add_all*/;
+      continue_31: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+    }
+    break_31: while(0);
+    variable1 = ((partial_order___PartialOrderElement___value_t)CALL( self,COLOR_partial_order___PartialOrderElement___value))( self) /*PartialOrderElement::value*/;
+    ((hash___HashSet___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*HashSet::add*/;
+    variable1 = ((array___Collection___to_a_t)CALL( variable0 /*res*/,COLOR_array___Collection___to_a))( variable0 /*res*/) /*HashSet::to_a*/;
+    ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/ = variable1;
+  }
+  variable0 = ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t partial_order___PartialOrderElement_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::< (src/metamodel//partial_order.nit:291,2--294:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
+  variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*o*/) /*Set::has*/;
+  goto return_label32;
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::<= (src/metamodel//partial_order.nit:297,2--300:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*o*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*o*/) /*Object::==*/)))));
+  variable2 = variable1;
+  if (!UNTAG_Bool(variable2)) { /* or */
+    variable2 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
+    variable2 = ((abstract_collection___Collection___has_t)CALL(variable2,COLOR_abstract_collection___Collection___has))(variable2,  variable0 /*o*/) /*Set::has*/;
+  }
+  variable1 = variable2;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrderElement_____g(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::> (src/metamodel//partial_order.nit:303,2--306:27)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+  variable1 = ((partial_order___PartialOrder_____bra_t)CALL(variable1,COLOR_partial_order___PartialOrder_____bra))(variable1,  variable0 /*o*/) /*PartialOrder::[]*/;
+  variable2 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+  variable1 = ((partial_order___PartialOrderElement_____l_t)CALL(variable1,COLOR_partial_order___PartialOrderElement_____l))(variable1, variable2) /*PartialOrderElement::<*/;
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t partial_order___PartialOrderElement_____geq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::>= (src/metamodel//partial_order.nit:309,2--312:42)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*o*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*o*/) /*Object::==*/)))));
+  variable2 = variable1;
+  if (!UNTAG_Bool(variable2)) { /* or */
+    variable2 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+    variable2 = ((partial_order___PartialOrder_____bra_t)CALL(variable2,COLOR_partial_order___PartialOrder_____bra))(variable2,  variable0 /*o*/) /*PartialOrder::[]*/;
+    variable3 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
+    variable2 = ((partial_order___PartialOrderElement_____l_t)CALL(variable2,COLOR_partial_order___PartialOrderElement_____l))(variable2, variable3) /*PartialOrderElement::<*/;
+  }
+  variable1 = variable2;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void partial_order___PartialOrderElement___register_direct_smallers(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::register_direct_smallers (src/metamodel//partial_order.nit:315,2--317:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*e*/) /*Array::add*/;
+  tracehead = trace.prev;
+  return;
+}
+void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "partial_order::PartialOrderElement::init (src/metamodel//partial_order.nit:320,2--343:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrderElement].i]) return;
+  ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/ =  variable0 /*o*/;
+  ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/ =  variable1 /*e*/;
+  ATTR_partial_order___PartialOrderElement____direct_greaters( self) /*PartialOrderElement::_direct_greaters*/ =  variable2 /*directs*/;
+  variable3 = NEW_array___Array___init(); /*new Array[E]*/
+  ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/ = variable3;
+  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+  ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/ = variable3;
+  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+  ATTR_partial_order___PartialOrderElement____smallers_cache( self) /*PartialOrderElement::_smallers_cache*/ = variable3;
+  variable4 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
+  variable3 = variable4;
+  variable4 =  TAG_Int(0);
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*directs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*directs*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /*for*/
+    variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
+    ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable6 /*ee*/) /*Set::add*/;
+    variable8 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
+    variable8 = ((partial_order___PartialOrder_____bra_t)CALL(variable8,COLOR_partial_order___PartialOrder_____bra))(variable8,  variable6 /*ee*/) /*PartialOrder::[]*/;
+    variable7 = variable8;
+    variable8 = ((partial_order___PartialOrderElement___rank_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___rank))( variable7 /*poee*/) /*PartialOrderElement::rank*/;
+    variable8 = TAG_Bool(UNTAG_Int(variable8)>=UNTAG_Int( variable4 /*r*/));
+    if (UNTAG_Bool(variable8)) { /*if*/
+      variable8 = ((partial_order___PartialOrderElement___rank_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___rank))( variable7 /*poee*/) /*PartialOrderElement::rank*/;
+      variable8 = TAG_Int(UNTAG_Int(variable8)+UNTAG_Int( TAG_Int(1)));
+      variable4 = variable8 /*r=*/;
+    }
+    ((partial_order___PartialOrderElement___register_direct_smallers_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___register_direct_smallers))( variable7 /*poee*/,  variable1 /*e*/) /*PartialOrderElement::register_direct_smallers*/;
+    variable8 = ((partial_order___PartialOrderElement___greaters_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___greaters))( variable7 /*poee*/) /*PartialOrderElement::greaters*/;
+    variable8 = ((abstract_collection___Collection___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Set::iterator*/;
+    while (true) { /*for*/
+      variable9 = ((abstract_collection___Iterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable9)) break; /*for*/
+      variable9 = ((abstract_collection___Iterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*Iterator::item*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable9 /*eee*/) /*Set::add*/;
+      continue_39: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*Iterator::next*/;
+    }
+    break_39: while(0);
+    continue_38: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
+  }
+  break_38: while(0);
+  ATTR_partial_order___PartialOrderElement____rank( self) /*PartialOrderElement::_rank*/ =  variable4 /*r*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrderElement].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/partial_order._sep.h b/c_src/partial_order._sep.h
new file mode 100644 (file)
index 0000000..4d8b93c
--- /dev/null
@@ -0,0 +1,147 @@
+#ifndef partial_order__sep
+#define partial_order__sep
+#include "standard._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_PartialOrder[];
+
+extern const classtable_elt_t VFT_PartialOrderElement[];
+extern const int SFT_partial_order[];
+#define ID_PartialOrder SFT_partial_order[0]
+#define COLOR_PartialOrder SFT_partial_order[1]
+#define COLOR_partial_order___PartialOrder____elements SFT_partial_order[2]
+#define COLOR_partial_order___PartialOrder____elements_list SFT_partial_order[3]
+#define COLOR_partial_order___PartialOrder____roots SFT_partial_order[4]
+#define INIT_TABLE_POS_PartialOrder SFT_partial_order[5]
+#define COLOR_partial_order___PartialOrder___roots SFT_partial_order[6]
+#define COLOR_partial_order___PartialOrder_____bra SFT_partial_order[7]
+#define COLOR_partial_order___PartialOrder___to_dot SFT_partial_order[8]
+#define COLOR_partial_order___PartialOrder___to_dot_header SFT_partial_order[9]
+#define COLOR_partial_order___PartialOrder___to_dot_node SFT_partial_order[10]
+#define COLOR_partial_order___PartialOrder___to_dot_edge SFT_partial_order[11]
+#define COLOR_partial_order___PartialOrder___select_smallests SFT_partial_order[12]
+#define COLOR_partial_order___PartialOrder___add SFT_partial_order[13]
+#define COLOR_partial_order___PartialOrder___has_all SFT_partial_order[14]
+#define COLOR_partial_order___PartialOrder___new_poe SFT_partial_order[15]
+#define COLOR_partial_order___PartialOrder___add_to_smallests SFT_partial_order[16]
+#define COLOR_partial_order___PartialOrder___compute_smallers_for SFT_partial_order[17]
+#define COLOR_partial_order___PartialOrder___init SFT_partial_order[18]
+#define ID_PartialOrderElement SFT_partial_order[19]
+#define COLOR_PartialOrderElement SFT_partial_order[20]
+#define COLOR_partial_order___PartialOrderElement____order SFT_partial_order[21]
+#define COLOR_partial_order___PartialOrderElement____value SFT_partial_order[22]
+#define COLOR_partial_order___PartialOrderElement____rank SFT_partial_order[23]
+#define COLOR_partial_order___PartialOrderElement____direct_greaters SFT_partial_order[24]
+#define COLOR_partial_order___PartialOrderElement____direct_smallers SFT_partial_order[25]
+#define COLOR_partial_order___PartialOrderElement____greaters SFT_partial_order[26]
+#define COLOR_partial_order___PartialOrderElement____greaters_and_self_cache SFT_partial_order[27]
+#define COLOR_partial_order___PartialOrderElement____smallers_last_length SFT_partial_order[28]
+#define COLOR_partial_order___PartialOrderElement____smallers_cache SFT_partial_order[29]
+#define COLOR_partial_order___PartialOrderElement____linear_extension_cache SFT_partial_order[30]
+#define COLOR_partial_order___PartialOrderElement____reverse_linear_extension_cache SFT_partial_order[31]
+#define INIT_TABLE_POS_PartialOrderElement SFT_partial_order[32]
+#define COLOR_partial_order___PartialOrderElement___order SFT_partial_order[33]
+#define COLOR_partial_order___PartialOrderElement___value SFT_partial_order[34]
+#define COLOR_partial_order___PartialOrderElement___rank SFT_partial_order[35]
+#define COLOR_partial_order___PartialOrderElement___direct_greaters SFT_partial_order[36]
+#define COLOR_partial_order___PartialOrderElement___direct_smallers SFT_partial_order[37]
+#define COLOR_partial_order___PartialOrderElement___greaters SFT_partial_order[38]
+#define COLOR_partial_order___PartialOrderElement___greaters_and_self SFT_partial_order[39]
+#define COLOR_partial_order___PartialOrderElement___smallers SFT_partial_order[40]
+#define COLOR_partial_order___PartialOrderElement___linear_extension SFT_partial_order[41]
+#define COLOR_partial_order___PartialOrderElement___reverse_linear_extension SFT_partial_order[42]
+#define COLOR_partial_order___PartialOrderElement_____l SFT_partial_order[43]
+#define COLOR_partial_order___PartialOrderElement_____leq SFT_partial_order[44]
+#define COLOR_partial_order___PartialOrderElement_____g SFT_partial_order[45]
+#define COLOR_partial_order___PartialOrderElement_____geq SFT_partial_order[46]
+#define COLOR_partial_order___PartialOrderElement___register_direct_smallers SFT_partial_order[47]
+#define COLOR_partial_order___PartialOrderElement___init SFT_partial_order[48]
+#define ATTR_partial_order___PartialOrder____elements(recv) ATTR(recv, COLOR_partial_order___PartialOrder____elements)
+#define ATTR_partial_order___PartialOrder____elements_list(recv) ATTR(recv, COLOR_partial_order___PartialOrder____elements_list)
+#define ATTR_partial_order___PartialOrder____roots(recv) ATTR(recv, COLOR_partial_order___PartialOrder____roots)
+typedef val_t (* partial_order___PartialOrder___roots_t)(val_t  self);
+val_t partial_order___PartialOrder___roots(val_t  self);
+typedef val_t (* partial_order___PartialOrder___is_empty_t)(val_t  self);
+val_t partial_order___PartialOrder___is_empty(val_t  self);
+typedef val_t (* partial_order___PartialOrder___length_t)(val_t  self);
+val_t partial_order___PartialOrder___length(val_t  self);
+typedef val_t (* partial_order___PartialOrder___first_t)(val_t  self);
+val_t partial_order___PartialOrder___first(val_t  self);
+typedef val_t (* partial_order___PartialOrder___has_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___has(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___has_only_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___has_only(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___count_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___count(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___iterator_t)(val_t  self);
+val_t partial_order___PartialOrder___iterator(val_t  self);
+typedef val_t (* partial_order___PartialOrder_____bra_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder_____bra(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___to_dot_t)(val_t  self);
+val_t partial_order___PartialOrder___to_dot(val_t  self);
+typedef val_t (* partial_order___PartialOrder___to_dot_header_t)(val_t  self);
+val_t partial_order___PartialOrder___to_dot_header(val_t  self);
+typedef val_t (* partial_order___PartialOrder___to_dot_node_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___to_dot_edge_t)(val_t  self, val_t  param0, val_t  param1);
+val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* partial_order___PartialOrder___select_smallests_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___add_t)(val_t  self, val_t  param0, val_t  param1);
+val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* partial_order___PartialOrder___has_all_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrder___has_all(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrder___new_poe_t)(val_t  self, val_t  param0, val_t  param1);
+val_t partial_order___PartialOrder___new_poe(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* partial_order___PartialOrder___add_to_smallests_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* partial_order___PartialOrder___compute_smallers_for_t)(val_t  self, val_t  param0, val_t  param1);
+void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  param0, val_t  param1);
+typedef void (* partial_order___PartialOrder___init_t)(val_t  self, int* init_table);
+void partial_order___PartialOrder___init(val_t  self, int* init_table);
+val_t NEW_partial_order___PartialOrder___init();
+#define ATTR_partial_order___PartialOrderElement____order(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____order)
+typedef val_t (* partial_order___PartialOrderElement___order_t)(val_t  self);
+val_t partial_order___PartialOrderElement___order(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____value(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____value)
+typedef val_t (* partial_order___PartialOrderElement___value_t)(val_t  self);
+val_t partial_order___PartialOrderElement___value(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____rank(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____rank)
+typedef val_t (* partial_order___PartialOrderElement___rank_t)(val_t  self);
+val_t partial_order___PartialOrderElement___rank(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____direct_greaters(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____direct_greaters)
+typedef val_t (* partial_order___PartialOrderElement___direct_greaters_t)(val_t  self);
+val_t partial_order___PartialOrderElement___direct_greaters(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____direct_smallers(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____direct_smallers)
+typedef val_t (* partial_order___PartialOrderElement___direct_smallers_t)(val_t  self);
+val_t partial_order___PartialOrderElement___direct_smallers(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____greaters(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____greaters)
+typedef val_t (* partial_order___PartialOrderElement___greaters_t)(val_t  self);
+val_t partial_order___PartialOrderElement___greaters(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____greaters_and_self_cache)
+typedef val_t (* partial_order___PartialOrderElement___greaters_and_self_t)(val_t  self);
+val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____smallers_last_length(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____smallers_last_length)
+#define ATTR_partial_order___PartialOrderElement____smallers_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____smallers_cache)
+typedef val_t (* partial_order___PartialOrderElement___smallers_t)(val_t  self);
+val_t partial_order___PartialOrderElement___smallers(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____linear_extension_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____linear_extension_cache)
+typedef val_t (* partial_order___PartialOrderElement___linear_extension_t)(val_t  self);
+val_t partial_order___PartialOrderElement___linear_extension(val_t  self);
+#define ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____reverse_linear_extension_cache)
+typedef val_t (* partial_order___PartialOrderElement___reverse_linear_extension_t)(val_t  self);
+val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self);
+typedef val_t (* partial_order___PartialOrderElement_____l_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrderElement_____l(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrderElement_____leq_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrderElement_____g_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrderElement_____g(val_t  self, val_t  param0);
+typedef val_t (* partial_order___PartialOrderElement_____geq_t)(val_t  self, val_t  param0);
+val_t partial_order___PartialOrderElement_____geq(val_t  self, val_t  param0);
+typedef void (* partial_order___PartialOrderElement___register_direct_smallers_t)(val_t  self, val_t  param0);
+void partial_order___PartialOrderElement___register_direct_smallers(val_t  self, val_t  param0);
+typedef void (* partial_order___PartialOrderElement___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_partial_order___PartialOrderElement___init(val_t  param0, val_t  param1, val_t  param2);
+#endif
diff --git a/c_src/range._sep.c b/c_src/range._sep.c
new file mode 100644 (file)
index 0000000..343a840
--- /dev/null
@@ -0,0 +1,200 @@
+#include "range._sep.h"
+val_t range___Range___first(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::first (bin/../lib/standard//range.nit:22,2--30)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_range___Range____first( self) /*Range::_first*/;
+}
+val_t range___Range___last(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::last (bin/../lib/standard//range.nit:24,2--25:23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_range___Range____last( self) /*Range::_last*/;
+}
+val_t range___Range___after(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::after (bin/../lib/standard//range.nit:27,2--28:24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_range___Range____after( self) /*Range::_after*/;
+}
+val_t range___Range___has(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "range::Range::has (bin/../lib/standard//range.nit:30,2--64)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_range___Range____first( self) /*Range::_first*/;
+  variable1 = ((kernel___Comparable_____geq_t)CALL( variable0 /*item*/,COLOR_kernel___Comparable_____geq))( variable0 /*item*/, variable1) /*Discrete::>=*/;
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_range___Range____last( self) /*Range::_last*/;
+    variable2 = ((kernel___Comparable_____leq_t)CALL( variable0 /*item*/,COLOR_kernel___Comparable_____leq))( variable0 /*item*/, variable2) /*Discrete::<=*/;
+  }
+  variable1 = variable2;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t range___Range___has_only(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "range::Range::has_only (bin/../lib/standard//range.nit:32,2--69)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_range___Range____first( self) /*Range::_first*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*item*/) /*Discrete::==*/)))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_range___Range____last( self) /*Range::_last*/;
+    variable2 = TAG_Bool(( variable0 /*item*/ == variable2) || (( variable0 /*item*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*item*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*item*/,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*item*/,COLOR_kernel___Object_____eqeq))( variable0 /*item*/, variable2) /*Discrete::==*/)))));
+  }
+  variable1 = variable2;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t range___Range___count(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "range::Range::count (bin/../lib/standard//range.nit:34,2--39:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((range___Range___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*item*/) /*Range::has*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Int(1);
+    goto return_label2;
+  } else { /*if*/
+    variable1 =  TAG_Int(0);
+    goto return_label2;
+  }
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t range___Range___iterator(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::iterator (bin/../lib/standard//range.nit:43,2--56)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_range___IteratorRange___init( self); /*new IteratorRange[E]*/
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t range___Range___length(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::length (bin/../lib/standard//range.nit:45,2--51:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_range___Range____first( self) /*Range::_first*/;
+  variable2 = ATTR_range___Range____after( self) /*Range::_after*/;
+  variable1 = ((kernel___Discrete___distance_t)CALL(variable1,COLOR_kernel___Discrete___distance))(variable1, variable2) /*Discrete::distance*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable0 =  variable0 /*nb*/;
+    goto return_label4;
+  } else { /*if*/
+    variable0 =  TAG_Int(0);
+    goto return_label4;
+  }
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t range___Range___is_empty(val_t  self) {
+  struct trace_t trace = {NULL, "range::Range::is_empty (bin/../lib/standard//range.nit:55,2--47)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_range___Range____first( self) /*Range::_first*/;
+  variable1 = ATTR_range___Range____after( self) /*Range::_after*/;
+  variable0 = ((kernel___Comparable_____geq_t)CALL(variable0,COLOR_kernel___Comparable_____geq))(variable0, variable1) /*Discrete::>=*/;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void range___Range___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "range::Range::init (bin/../lib/standard//range.nit:57,2--63:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Range].i]) return;
+  ATTR_range___Range____first( self) /*Range::_first*/ =  variable0 /*from*/;
+  ATTR_range___Range____last( self) /*Range::_last*/ =  variable1 /*to*/;
+  variable2 = ((kernel___Discrete___succ_t)CALL( variable1 /*to*/,COLOR_kernel___Discrete___succ))( variable1 /*to*/) /*Discrete::succ*/;
+  ATTR_range___Range____after( self) /*Range::_after*/ = variable2;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Range].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void range___Range___without_last(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "range::Range::without_last (bin/../lib/standard//range.nit:66,2--72:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Range].i]) return;
+  ATTR_range___Range____first( self) /*Range::_first*/ =  variable0 /*from*/;
+  variable2 = ((kernel___Discrete___prec_t)CALL( variable1 /*to*/,COLOR_kernel___Discrete___prec))( variable1 /*to*/) /*Discrete::prec*/;
+  ATTR_range___Range____last( self) /*Range::_last*/ = variable2;
+  ATTR_range___Range____after( self) /*Range::_after*/ =  variable1 /*to*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Range].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t range___IteratorRange___item(val_t  self) {
+  struct trace_t trace = {NULL, "range::IteratorRange::item (bin/../lib/standard//range.nit:80,2--29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_range___IteratorRange____item( self) /*IteratorRange::_item*/;
+}
+val_t range___IteratorRange___is_ok(val_t  self) {
+  struct trace_t trace = {NULL, "range::IteratorRange::is_ok (bin/../lib/standard//range.nit:82,2--48)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_range___IteratorRange____item( self) /*IteratorRange::_item*/;
+  variable1 = ATTR_range___IteratorRange____range( self) /*IteratorRange::_range*/;
+  variable1 = ((range___Range___after_t)CALL(variable1,COLOR_range___Range___after))(variable1) /*Range::after*/;
+  variable0 = ((kernel___Comparable_____l_t)CALL(variable0,COLOR_kernel___Comparable_____l))(variable0, variable1) /*Discrete::<*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void range___IteratorRange___next(val_t  self) {
+  struct trace_t trace = {NULL, "range::IteratorRange::next (bin/../lib/standard//range.nit:84,2--38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_range___IteratorRange____item( self) /*IteratorRange::_item*/;
+  variable0 = ((kernel___Discrete___succ_t)CALL(variable0,COLOR_kernel___Discrete___succ))(variable0) /*Discrete::succ*/;
+  ATTR_range___IteratorRange____item( self) /*IteratorRange::_item*/ = variable0;
+  tracehead = trace.prev;
+  return;
+}
+void range___IteratorRange___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "range::IteratorRange::init (bin/../lib/standard//range.nit:86,2--89:17)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IteratorRange].i]) return;
+  ATTR_range___IteratorRange____range( self) /*IteratorRange::_range*/ =  variable0 /*r*/;
+  variable1 = ((range___Range___first_t)CALL( variable0 /*r*/,COLOR_abstract_collection___Collection___first))( variable0 /*r*/) /*Range::first*/;
+  ATTR_range___IteratorRange____item( self) /*IteratorRange::_item*/ = variable1;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IteratorRange].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/range._sep.h b/c_src/range._sep.h
new file mode 100644 (file)
index 0000000..3b31f16
--- /dev/null
@@ -0,0 +1,64 @@
+#ifndef range__sep
+#define range__sep
+#include "abstract_collection._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Range[];
+
+extern const classtable_elt_t VFT_IteratorRange[];
+extern const int SFT_range[];
+#define ID_Range SFT_range[0]
+#define COLOR_Range SFT_range[1]
+#define COLOR_range___Range____first SFT_range[2]
+#define COLOR_range___Range____last SFT_range[3]
+#define COLOR_range___Range____after SFT_range[4]
+#define INIT_TABLE_POS_Range SFT_range[5]
+#define COLOR_range___Range___last SFT_range[6]
+#define COLOR_range___Range___after SFT_range[7]
+#define COLOR_range___Range___init SFT_range[8]
+#define COLOR_range___Range___without_last SFT_range[9]
+#define ID_IteratorRange SFT_range[10]
+#define COLOR_IteratorRange SFT_range[11]
+#define COLOR_range___IteratorRange____range SFT_range[12]
+#define COLOR_range___IteratorRange____item SFT_range[13]
+#define INIT_TABLE_POS_IteratorRange SFT_range[14]
+#define COLOR_range___IteratorRange___init SFT_range[15]
+#define ATTR_range___Range____first(recv) ATTR(recv, COLOR_range___Range____first)
+typedef val_t (* range___Range___first_t)(val_t  self);
+val_t range___Range___first(val_t  self);
+#define ATTR_range___Range____last(recv) ATTR(recv, COLOR_range___Range____last)
+typedef val_t (* range___Range___last_t)(val_t  self);
+val_t range___Range___last(val_t  self);
+#define ATTR_range___Range____after(recv) ATTR(recv, COLOR_range___Range____after)
+typedef val_t (* range___Range___after_t)(val_t  self);
+val_t range___Range___after(val_t  self);
+typedef val_t (* range___Range___has_t)(val_t  self, val_t  param0);
+val_t range___Range___has(val_t  self, val_t  param0);
+typedef val_t (* range___Range___has_only_t)(val_t  self, val_t  param0);
+val_t range___Range___has_only(val_t  self, val_t  param0);
+typedef val_t (* range___Range___count_t)(val_t  self, val_t  param0);
+val_t range___Range___count(val_t  self, val_t  param0);
+typedef val_t (* range___Range___iterator_t)(val_t  self);
+val_t range___Range___iterator(val_t  self);
+typedef val_t (* range___Range___length_t)(val_t  self);
+val_t range___Range___length(val_t  self);
+typedef val_t (* range___Range___is_empty_t)(val_t  self);
+val_t range___Range___is_empty(val_t  self);
+typedef void (* range___Range___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void range___Range___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_range___Range___init(val_t  param0, val_t  param1);
+typedef void (* range___Range___without_last_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void range___Range___without_last(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_range___Range___without_last(val_t  param0, val_t  param1);
+#define ATTR_range___IteratorRange____range(recv) ATTR(recv, COLOR_range___IteratorRange____range)
+#define ATTR_range___IteratorRange____item(recv) ATTR(recv, COLOR_range___IteratorRange____item)
+typedef val_t (* range___IteratorRange___item_t)(val_t  self);
+val_t range___IteratorRange___item(val_t  self);
+typedef val_t (* range___IteratorRange___is_ok_t)(val_t  self);
+val_t range___IteratorRange___is_ok(val_t  self);
+typedef void (* range___IteratorRange___next_t)(val_t  self);
+void range___IteratorRange___next(val_t  self);
+typedef void (* range___IteratorRange___init_t)(val_t  self, val_t  param0, int* init_table);
+void range___IteratorRange___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_range___IteratorRange___init(val_t  param0);
+#endif
diff --git a/c_src/sorter._sep.c b/c_src/sorter._sep.c
new file mode 100644 (file)
index 0000000..ce7287f
--- /dev/null
@@ -0,0 +1,324 @@
+#include "sorter._sep.h"
+val_t sorter___AbstractSorter___compare(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "sorter::AbstractSorter::compare (bin/../lib/standard//sorter.nit:22,2--27:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method compare called (bin/../lib/standard//sorter.nit:22,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void sorter___AbstractSorter___sort(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "sorter::AbstractSorter::sort (bin/../lib/standard//sorter.nit:29,2--30:64)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Collection___length))( variable0 /*array*/) /*Array::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
+  ((sorter___AbstractSorter___sub_sort_t)CALL( self,COLOR_sorter___AbstractSorter___sub_sort))( self,  variable0 /*array*/,  TAG_Int(0), variable1) /*AbstractSorter::sub_sort*/;
+  tracehead = trace.prev;
+  return;
+}
+void sorter___AbstractSorter___sub_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "sorter::AbstractSorter::sub_sort (bin/../lib/standard//sorter.nit:32,2--40:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 = TAG_Bool(UNTAG_Int( variable1 /*from*/)>=UNTAG_Int( variable2 /*to*/));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    goto return_label1;
+  } else { /*if*/
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*from*/)+UNTAG_Int( TAG_Int(7)));
+    variable3 = TAG_Bool(UNTAG_Int(variable3)<UNTAG_Int( variable2 /*to*/));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      ((sorter___AbstractSorter___quick_sort_t)CALL( self,COLOR_sorter___AbstractSorter___quick_sort))( self,  variable0 /*array*/,  variable1 /*from*/,  variable2 /*to*/) /*AbstractSorter::quick_sort*/;
+    } else { /*if*/
+      ((sorter___AbstractSorter___bubble_sort_t)CALL( self,COLOR_sorter___AbstractSorter___bubble_sort))( self,  variable0 /*array*/,  variable1 /*from*/,  variable2 /*to*/) /*AbstractSorter::bubble_sort*/;
+    }
+  }
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "sorter::AbstractSorter::quick_sort (bin/../lib/standard//sorter.nit:44,2--62:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+      val_t variable7;
+        val_t variable8;
+        val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 =  variable1 /*from*/;
+  variable5 = TAG_Bool(UNTAG_Int( variable4 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable6 = variable5;
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+    variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)<UNTAG_Int(variable6));
+  }
+  variable5 = variable6;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable5 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+  variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable4 /*index*/)];
+  goto return_label3;
+  return_label3: while(false);
+  variable4 = variable5;
+  variable3 = variable4;
+  variable4 =  variable1 /*from*/;
+  variable5 =  variable2 /*to*/;
+  while (true) { /*while*/
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)>UNTAG_Int( variable4 /*i*/));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    while (true) { /*while*/
+      variable6 = TAG_Bool(UNTAG_Int( variable4 /*i*/)<=UNTAG_Int( variable2 /*to*/));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 =  variable4 /*i*/;
+        variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable9 = variable8;
+        if (UNTAG_Bool(variable9)) { /* and */
+          variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+          variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+        }
+        variable8 = variable9;
+        if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+        variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+        goto return_label6;
+        return_label6: while(false);
+        variable7 = variable8;
+        variable7 = ((sorter___AbstractSorter___compare_t)CALL( self,COLOR_sorter___AbstractSorter___compare))( self, variable7,  variable3 /*pivot*/) /*AbstractSorter::compare*/;
+        variable7 = TAG_Bool(UNTAG_Int(variable7)<=UNTAG_Int( TAG_Int(0)));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) break; /* while*/
+      variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_5: while(0);
+    }
+    break_5: while(0);
+    while (true) { /*while*/
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)>UNTAG_Int( variable4 /*i*/));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 =  variable5 /*j*/;
+        variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable9 = variable8;
+        if (UNTAG_Bool(variable9)) { /* and */
+          variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+          variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+        }
+        variable8 = variable9;
+        if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+        variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+        goto return_label8;
+        return_label8: while(false);
+        variable7 = variable8;
+        variable7 = ((sorter___AbstractSorter___compare_t)CALL( self,COLOR_sorter___AbstractSorter___compare))( self, variable7,  variable3 /*pivot*/) /*AbstractSorter::compare*/;
+        variable7 = TAG_Bool(UNTAG_Int(variable7)>=UNTAG_Int( TAG_Int(0)));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) break; /* while*/
+      variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1))) /*j*/;
+      continue_7: while(0);
+    }
+    break_7: while(0);
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)>UNTAG_Int( variable4 /*i*/));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable7 =  variable4 /*i*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label9;
+      return_label9: while(false);
+      variable7 = variable8;
+      variable6 = variable7;
+      variable7 =  variable5 /*j*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label10;
+      return_label10: while(false);
+      variable7 = variable8;
+      ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/,  variable4 /*i*/, variable7) /*Array::[]=*/;
+      ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/,  variable5 /*j*/,  variable6 /*t*/) /*Array::[]=*/;
+    }
+    continue_4: while(0);
+  }
+  break_4: while(0);
+  variable6 = TAG_Int(UNTAG_Int( variable4 /*i*/)-UNTAG_Int( TAG_Int(1)));
+  variable7 = variable6;
+  variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable9 = variable8;
+  if (UNTAG_Bool(variable9)) { /* and */
+    variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+    variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+  }
+  variable8 = variable9;
+  if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+  variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+  goto return_label11;
+  return_label11: while(false);
+  variable6 = variable8;
+  ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/,  variable1 /*from*/, variable6) /*Array::[]=*/;
+  variable6 = TAG_Int(UNTAG_Int( variable4 /*i*/)-UNTAG_Int( TAG_Int(1)));
+  ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/, variable6,  variable3 /*pivot*/) /*Array::[]=*/;
+  variable6 = TAG_Int(UNTAG_Int( variable4 /*i*/)-UNTAG_Int( TAG_Int(2)));
+  ((sorter___AbstractSorter___sub_sort_t)CALL( self,COLOR_sorter___AbstractSorter___sub_sort))( self,  variable0 /*array*/,  variable1 /*from*/, variable6) /*AbstractSorter::sub_sort*/;
+  ((sorter___AbstractSorter___sub_sort_t)CALL( self,COLOR_sorter___AbstractSorter___sub_sort))( self,  variable0 /*array*/,  variable4 /*i*/,  variable2 /*to*/) /*AbstractSorter::sub_sort*/;
+  tracehead = trace.prev;
+  return;
+}
+void sorter___AbstractSorter___bubble_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "sorter::AbstractSorter::bubble_sort (bin/../lib/standard//sorter.nit:65,2--84:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  variable1 /*from*/;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)<UNTAG_Int( variable2 /*to*/));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 =  variable3 /*i*/;
+    variable6 =  variable3 /*i*/;
+    variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable8 = variable7;
+    if (UNTAG_Bool(variable8)) { /* and */
+      variable8 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+    }
+    variable7 = variable8;
+    if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable7 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+    variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+    goto return_label14;
+    return_label14: while(false);
+    variable6 = variable7;
+    variable5 = variable6;
+    variable6 =  variable3 /*i*/;
+    while (true) { /*while*/
+      variable7 = TAG_Bool(UNTAG_Int( variable6 /*j*/)<=UNTAG_Int( variable2 /*to*/));
+      if (!UNTAG_Bool(variable7)) break; /* while*/
+      variable7 =  variable6 /*j*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label16;
+      return_label16: while(false);
+      variable7 = variable8;
+      variable7 = ((sorter___AbstractSorter___compare_t)CALL( self,COLOR_sorter___AbstractSorter___compare))( self,  variable5 /*min_v*/, variable7) /*AbstractSorter::compare*/;
+      variable7 = TAG_Bool(UNTAG_Int(variable7)>UNTAG_Int( TAG_Int(0)));
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable4 =  variable6 /*j*/ /*min=*/;
+        variable7 =  variable6 /*j*/;
+        variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable9 = variable8;
+        if (UNTAG_Bool(variable9)) { /* and */
+          variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+          variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+        }
+        variable8 = variable9;
+        if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+        variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+        goto return_label17;
+        return_label17: while(false);
+        variable7 = variable8;
+        variable5 = variable7 /*min_v=*/;
+      }
+      variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      continue_15: while(0);
+    }
+    break_15: while(0);
+    variable7 = TAG_Bool(( variable4 /*min*/)!=( variable3 /*i*/));
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 =  variable3 /*i*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label18;
+      return_label18: while(false);
+      variable7 = variable8;
+      ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/,  variable4 /*min*/, variable7) /*Array::[]=*/;
+      ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/,  variable3 /*i*/,  variable5 /*min_v*/) /*Array::[]=*/;
+    }
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_13: while(0);
+  }
+  break_13: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t sorter___ComparableSorter___compare(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "sorter::ComparableSorter::compare (bin/../lib/standard//sorter.nit:93,2--94:43)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((kernel___Comparable_____leqg_t)CALL( variable0 /*a*/,COLOR_kernel___Comparable_____leqg))( variable0 /*a*/,  variable1 /*b*/) /*Comparable::<=>*/;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void sorter___ComparableSorter___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "sorter::ComparableSorter::init (bin/../lib/standard//sorter.nit:96,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ComparableSorter].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ComparableSorter].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/sorter._sep.h b/c_src/sorter._sep.h
new file mode 100644 (file)
index 0000000..0249627
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef sorter__sep
+#define sorter__sep
+#include "array._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_AbstractSorter[];
+
+extern const classtable_elt_t VFT_ComparableSorter[];
+extern const int SFT_sorter[];
+#define ID_AbstractSorter SFT_sorter[0]
+#define COLOR_AbstractSorter SFT_sorter[1]
+#define INIT_TABLE_POS_AbstractSorter SFT_sorter[2]
+#define COLOR_sorter___AbstractSorter___compare SFT_sorter[3]
+#define COLOR_sorter___AbstractSorter___sort SFT_sorter[4]
+#define COLOR_sorter___AbstractSorter___sub_sort SFT_sorter[5]
+#define COLOR_sorter___AbstractSorter___quick_sort SFT_sorter[6]
+#define COLOR_sorter___AbstractSorter___bubble_sort SFT_sorter[7]
+#define ID_ComparableSorter SFT_sorter[8]
+#define COLOR_ComparableSorter SFT_sorter[9]
+#define INIT_TABLE_POS_ComparableSorter SFT_sorter[10]
+#define COLOR_sorter___ComparableSorter___init SFT_sorter[11]
+typedef val_t (* sorter___AbstractSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
+val_t sorter___AbstractSorter___compare(val_t  self, val_t  param0, val_t  param1);
+typedef void (* sorter___AbstractSorter___sort_t)(val_t  self, val_t  param0);
+void sorter___AbstractSorter___sort(val_t  self, val_t  param0);
+typedef void (* sorter___AbstractSorter___sub_sort_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void sorter___AbstractSorter___sub_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* sorter___AbstractSorter___quick_sort_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* sorter___AbstractSorter___bubble_sort_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void sorter___AbstractSorter___bubble_sort(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* sorter___ComparableSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
+val_t sorter___ComparableSorter___compare(val_t  self, val_t  param0, val_t  param1);
+typedef void (* sorter___ComparableSorter___init_t)(val_t  self, int* init_table);
+void sorter___ComparableSorter___init(val_t  self, int* init_table);
+val_t NEW_sorter___ComparableSorter___init();
+#endif
diff --git a/c_src/standard._sep.c b/c_src/standard._sep.c
new file mode 100644 (file)
index 0000000..29729d5
--- /dev/null
@@ -0,0 +1,2 @@
+#include "standard._sep.h"
+
diff --git a/c_src/standard._sep.h b/c_src/standard._sep.h
new file mode 100644 (file)
index 0000000..c2708c4
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef standard__sep
+#define standard__sep
+#include "environ._sep.h"
+#include "time._sep.h"
+#include "sorter._sep.h"
+#include "file._sep.h"
+#include "exec._sep.h"
+#include "list._sep.h"
+#include "range._sep.h"
+#include "math._sep.h"
+#include <nit_common.h>
+extern const int SFT_standard[];
+#endif
diff --git a/c_src/static_type._sep.c b/c_src/static_type._sep.c
new file mode 100644 (file)
index 0000000..52f4851
--- /dev/null
@@ -0,0 +1,799 @@
+#include "static_type._sep.h"
+val_t static_type___MMLocalClass___get_type(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMLocalClass::get_type (src/metamodel//static_type.nit:27,2--31:25)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = NEW_static_type___MMTypeSimpleClass___init( self); /*new MMTypeSimpleClass*/
+    ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/ = variable0;
+  }
+  variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void static_type___MMLocalClass___add_ancestor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMLocalClass::add_ancestor (src/metamodel//static_type.nit:34,2--39:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable2 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:37,3--45\n"); nit_exit(1);}
+  variable1 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  self) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  self) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:38,3--30\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable2 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*a*/) /*Map::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMLocalClass___ancestors(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMLocalClass::ancestors (src/metamodel//static_type.nit:42,2--43:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+}
+val_t static_type___MMLocalClass___ancestor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMLocalClass::ancestor (src/metamodel//static_type.nit:45,2--52:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:48,3--27\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*c*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*c*/) /*Map::[]*/;
+    variable1 = ((static_type___MMAncestor___stype_t)CALL(variable1,COLOR_static_type___MMAncestor___stype))(variable1) /*MMAncestor::stype*/;
+    goto return_label2;
+  }
+  variable1 =  NIT_NULL /*null*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMLocalProperty___signature(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMLocalProperty::signature (src/metamodel//static_type.nit:60,2--71:25)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
+    variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMLocalProperty::==*/)))));
+    if (UNTAG_Bool(variable0)) { /*if*/
+      variable0 = ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/;
+      variable0 = ((static_type___MMLocalProperty___signature_t)CALL(variable0,COLOR_static_type___MMLocalProperty___signature))(variable0) /*MMConcreteProperty::signature*/;
+      ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/ = variable0;
+    } else { /*if*/
+      variable0 = ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
+      variable0 = ((static_type___MMLocalProperty___signature_t)CALL(variable0,COLOR_static_type___MMLocalProperty___signature))(variable0) /*MMLocalProperty::signature*/;
+      ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/ = variable0;
+    }
+  }
+  variable0 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:70,3--33\n"); nit_exit(1);}
+  variable0 = ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void static_type___MMLocalProperty___signature__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMLocalProperty::signature= (src/metamodel//static_type.nit:74,2--56)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_static_type___MMLocalProperty____signature_cache( self) /*MMLocalProperty::_signature_cache*/ =  variable0 /*s*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMSignature___recv(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::recv (src/metamodel//static_type.nit:79,2--80:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
+}
+val_t static_type___MMSignature___return_type(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::return_type (src/metamodel//static_type.nit:85,2--86:36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+}
+val_t static_type___MMSignature___arity(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::arity (src/metamodel//static_type.nit:88,2--92:23)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:91,3--24\n"); nit_exit(1);}
+  variable0 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Array::length*/;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMSignature_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::< (src/metamodel//static_type.nit:95,2--114:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*s*/ ==  NIT_NULL /*null*/) || (( variable0 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))( variable0 /*s*/,  NIT_NULL /*null*/) /*MMSignature::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:98,3--18\n"); nit_exit(1);}
+  variable1 = TAG_Bool(( self ==  variable0 /*s*/) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self, variable0 /*s*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self,  variable0 /*s*/) /*MMSignature::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Bool(true);
+    goto return_label6;
+  }
+  variable1 = ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
+  variable1 = ((static_type___MMType___module_t)CALL(variable1,COLOR_static_type___MMType___module))(variable1) /*MMType::module*/;
+  variable2 = ((static_type___MMSignature___recv_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___recv))( variable0 /*s*/) /*MMSignature::recv*/;
+  variable2 = ((static_type___MMType___module_t)CALL(variable2,COLOR_static_type___MMType___module))(variable2) /*MMType::module*/;
+  variable1 = TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*MMModule::==*/)))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:102,3--38\n"); nit_exit(1);}
+  variable1 = ((static_type___MMSignature___arity_t)CALL( self,COLOR_static_type___MMSignature___arity))( self) /*MMSignature::arity*/;
+  variable2 = ((static_type___MMSignature___arity_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___arity))( variable0 /*s*/) /*MMSignature::arity*/;
+  variable1 = TAG_Bool((variable1)==(variable2));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:103,3--25\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  variable2 = ((static_type___MMSignature___return_type_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___return_type))( variable0 /*s*/) /*MMSignature::return_type*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  variable1 = TAG_Bool((variable1)==(variable2));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:104,3--57\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+    variable3 = ((static_type___MMSignature___return_type_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___return_type))( variable0 /*s*/) /*MMSignature::return_type*/;
+    variable2 = ((static_type___MMType_____l_t)CALL(variable2,COLOR_static_type___MMType_____l))(variable2, variable3) /*MMType::<*/;
+    variable2 =  TAG_Bool(!UNTAG_Bool(variable2));
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label6;
+  }
+  variable1 = ((static_type___MMSignature___arity_t)CALL( self,COLOR_static_type___MMSignature___arity))( self) /*MMSignature::arity*/;
+  variable2 = NEW_range___Range___without_last( TAG_Int(0), variable1); /*new Range[Int]*/
+  variable1 = variable2;
+  variable1 = ((range___Range___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = ((static_type___MMSignature_____bra_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature_____bra))( variable0 /*s*/,  variable2 /*i*/) /*MMSignature::[]*/;
+    variable4 = ((static_type___MMSignature_____bra_t)CALL( self,COLOR_static_type___MMSignature_____bra))( self,  variable2 /*i*/) /*MMSignature::[]*/;
+    variable3 = ((static_type___MMType_____l_t)CALL(variable3,COLOR_static_type___MMType_____l))(variable3, variable4) /*MMType::<*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label6;
+    }
+    continue_7: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_7: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMSignature_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::[] (src/metamodel//static_type.nit:117,2--121:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Array::length*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( variable0 /*i*/));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:120,3--27\n"); nit_exit(1);}
+  variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable2 =  variable0 /*i*/;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable4 = variable3;
+  if (UNTAG_Bool(variable4)) { /* and */
+    variable4 = variable1;
+    variable4 = ATTR_array___AbstractArray____length(variable4) /*Array::_length*/;
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
+  }
+  variable3 = variable4;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+  variable3 = variable1;
+  variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
+  variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
+  goto return_label9;
+  return_label9: while(false);
+  variable1 = variable3;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMSignature___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::to_s (src/metamodel//static_type.nit:124,2--143:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NIT_NULL /*decl variable s*/;
+  variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*Array::==*/)))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+    variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*Array::length*/;
+    variable2 = TAG_Bool(UNTAG_Int(variable2)>UNTAG_Int( TAG_Int(0)));
+  }
+  variable1 = variable2;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NIT_NULL /*decl variable tmp*/;
+    variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+    variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[String]*/
+    variable3 = variable4;
+    variable2 = variable3;
+    variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+    variable4 = NEW_range___Range___without_last( TAG_Int(0), variable3); /*new Range[Int]*/
+    variable3 = variable4;
+    variable3 = ((range___Range___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable4)) break; /*for*/
+      variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
+      variable6 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
+      variable7 =  variable4 /*i*/;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = variable6;
+        variable9 = ATTR_array___AbstractArray____length(variable9) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = variable6;
+      variable8 = ATTR_array___Array____items(variable8) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label12;
+      return_label12: while(false);
+      variable6 = variable8;
+      variable5 = variable6;
+      variable6 = ((string___Object___to_s_t)CALL( variable5 /*p*/,COLOR_string___Object___to_s))( variable5 /*p*/) /*MMType::to_s*/;
+      ((array___AbstractArray___add_t)CALL( variable2 /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*a*/, variable6) /*Array::add*/;
+      continue_11: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
+    }
+    break_11: while(0);
+    variable3 = NEW_string___String___init(); /*new String*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+    variable6 = ((string___Collection___join_t)CALL( variable2 /*a*/,COLOR_string___Collection___join))( variable2 /*a*/, variable6) /*Array::join*/;
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+    variable0 = variable3 /*s=*/;
+  } else { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable0 = variable1 /*s=*/;
+  }
+  variable1 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___init(); /*new String*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+    variable3 = variable2;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+    variable4 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
+    variable5 = variable4;
+    variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+    ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
+  }
+  variable0 =  variable0 /*s*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void static_type___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "static_type::MMSignature::init (src/metamodel//static_type.nit:146,2--151:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i]) return;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*params*/ ==  NIT_NULL /*null*/) || (( variable0 /*params*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable0 /*params*/,COLOR_kernel___Object_____eqeq))( variable0 /*params*/,  NIT_NULL /*null*/) /*Array::==*/)))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:148,3--23\n"); nit_exit(1);}
+  ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/ =  variable0 /*params*/;
+  ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/ =  variable1 /*return_type*/;
+  ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/ =  variable2 /*r*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMAncestor___stype(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::stype (src/metamodel//static_type.nit:157,2--158:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMAncestor____stype( self) /*MMAncestor::_stype*/;
+}
+void static_type___MMAncestor___stype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::stype= (src/metamodel//static_type.nit:157,2--158:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_static_type___MMAncestor____stype( self) /*MMAncestor::_stype*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMAncestor___inheriter(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::inheriter (src/metamodel//static_type.nit:160,2--161:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMAncestor____inheriter( self) /*MMAncestor::_inheriter*/;
+}
+void static_type___MMAncestor___inheriter__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::inheriter= (src/metamodel//static_type.nit:160,2--161:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_static_type___MMAncestor____inheriter( self) /*MMAncestor::_inheriter*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMAncestor___is_reffinement(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::is_reffinement (src/metamodel//static_type.nit:163,2--164:37)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable0 = ((static_type___MMType___module_t)CALL(variable0,COLOR_static_type___MMType___module))(variable0) /*MMType::module*/;
+  variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable1 = ((static_type___MMType___module_t)CALL(variable1,COLOR_static_type___MMType___module))(variable1) /*MMType::module*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == variable1) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0,variable1)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, variable1) /*MMModule::==*/)))))));
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMAncestor___is_specialisation(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::is_specialisation (src/metamodel//static_type.nit:167,2--168:65)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable0 = ((static_type___MMType___local_class_t)CALL(variable0,COLOR_static_type___MMType___local_class))(variable0) /*MMType::local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___global))(variable0) /*MMLocalClass::global*/;
+  variable1 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
+  variable1 = ((static_type___MMType___local_class_t)CALL(variable1,COLOR_static_type___MMType___local_class))(variable1) /*MMType::local_class*/;
+  variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___global))(variable1) /*MMLocalClass::global*/;
+  variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == variable1) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0,variable1)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, variable1) /*MMGlobalClass::==*/)))))));
+  goto return_label15;
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMAncestor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::local_class (src/metamodel//static_type.nit:171,2--172:31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method local_class called (src/metamodel//static_type.nit:171,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMAncestor___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMAncestor::to_s (src/metamodel//static_type.nit:174,2--179:20)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = ((static_type___MMAncestor___local_class_t)CALL( self,COLOR_static_type___MMAncestor___local_class))( self) /*MMAncestor::local_class*/;
+    variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
+    goto return_label16;
+  } else { /*if*/
+    variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
+    variable0 = ((string___Object___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMType::to_s*/;
+    goto return_label16;
+  }
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMType___module(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMType::module (src/metamodel//static_type.nit:187,2--188:22)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method module called (src/metamodel//static_type.nit:187,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMType::local_class (src/metamodel//static_type.nit:190,2--191:31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method local_class called (src/metamodel//static_type.nit:190,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::< (src/metamodel//static_type.nit:193,2--194:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method < called (src/metamodel//static_type.nit:193,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___is_supertype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::is_supertype (src/metamodel//static_type.nit:196,2--199:35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_supertype called (src/metamodel//static_type.nit:196,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___select_method(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::select_method (src/metamodel//static_type.nit:201,2--208:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:204,3--28\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*name*/ ==  NIT_NULL /*null*/) || (( variable0 /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))( variable0 /*name*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:205,3--21\n"); nit_exit(1);}
+  variable2 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___method_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___method))(variable2,  variable0 /*name*/) /*MMLocalClass::method*/;
+  variable2 = ((static_type___MMType___select_property_t)CALL( self,COLOR_static_type___MMType___select_property))( self, variable2) /*MMType::select_property*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*res*/==NIT_NULL) || VAL_ISA( variable1 /*res*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:207,3--25\n"); nit_exit(1);}
+  variable1 =  variable1 /*res*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMType___select_attribute(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::select_attribute (src/metamodel//static_type.nit:211,2--218:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*name*/ ==  NIT_NULL /*null*/) || (( variable0 /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))( variable0 /*name*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:214,3--21\n"); nit_exit(1);}
+  variable1 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:215,3--28\n"); nit_exit(1);}
+  variable2 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___attribute_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___attribute))(variable2,  variable0 /*name*/) /*MMLocalClass::attribute*/;
+  variable2 = ((static_type___MMType___select_property_t)CALL( self,COLOR_static_type___MMType___select_property))( self, variable2) /*MMType::select_property*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*res*/==NIT_NULL) || VAL_ISA( variable1 /*res*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:217,3--28\n"); nit_exit(1);}
+  variable1 =  variable1 /*res*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMType___select_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::select_property (src/metamodel//static_type.nit:221,2--222:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method select_property called (src/metamodel//static_type.nit:221,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::for_module (src/metamodel//static_type.nit:224,2--225:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method for_module called (src/metamodel//static_type.nit:224,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::adapt_to (src/metamodel//static_type.nit:227,2--229:36)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method adapt_to called (src/metamodel//static_type.nit:227,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___upcast_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMType::upcast_for (src/metamodel//static_type.nit:231,2--233:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method upcast_for called (src/metamodel//static_type.nit:231,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t static_type___MMType___not_for_self(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMType::not_for_self (src/metamodel//static_type.nit:235,2--237:41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  self;
+  goto return_label19;
+  return_label19: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMTypeClass___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::local_class (src/metamodel//static_type.nit:242,2--47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+}
+val_t static_type___MMTypeClass___module(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::module (src/metamodel//static_type.nit:243,2--48)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMTypeClass_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::< (src/metamodel//static_type.nit:244,2--60)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*t*/ ==  NIT_NULL /*null*/) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = ((static_type___MMType___is_supertype_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___is_supertype))( variable0 /*t*/,  self) /*MMType::is_supertype*/;
+  }
+  variable1 = variable2;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeClass___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::to_s (src/metamodel//static_type.nit:246,2--248:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+  variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMTypeClass___upcast_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::upcast_for (src/metamodel//static_type.nit:251,2--261:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:253,3--29\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*c*/ ==  NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:254,3--18\n"); nit_exit(1);}
+  variable1 =  self;
+  variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  variable0 /*c*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*c*/) /*MMLocalClass::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
+    variable2 = ((static_type___MMLocalClass___ancestor_t)CALL(variable2,COLOR_static_type___MMLocalClass___ancestor))(variable2,  variable0 /*c*/) /*MMLocalClass::ancestor*/;
+    variable1 = variable2 /*t=*/;
+  }
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:260,3--18\n"); nit_exit(1);}
+  variable1 =  variable1 /*t*/;
+  goto return_label23;
+  return_label23: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void static_type___MMTypeClass___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "static_type::MMTypeClass::init (src/metamodel//static_type.nit:264,2--266:18)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeClass].i]) return;
+  ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/ =  variable0 /*c*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMTypeSimpleClass___is_supertype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeSimpleClass::is_supertype (src/metamodel//static_type.nit:272,2--274:44)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMType___local_class_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___local_class))( variable0 /*t*/) /*MMType::local_class*/;
+  variable1 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable1) /*MMLocalClass::cshe*/;
+  variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeSimpleClass::_local_class*/;
+  variable1 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable1,COLOR_partial_order___PartialOrderElement_____leq))(variable1, variable2) /*PartialOrderElement::<=*/;
+  goto return_label25;
+  return_label25: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeSimpleClass___select_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeSimpleClass::select_property (src/metamodel//static_type.nit:277,2--283:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeSimpleClass::_local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:279,3--29\n"); nit_exit(1);}
+  variable1 = TAG_Bool(( variable0 /*g*/ ==  NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label26;
+  }
+  variable1 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeSimpleClass::_local_class*/;
+  variable1 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass_____bra))(variable1,  variable0 /*g*/) /*MMLocalClass::[]*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeSimpleClass___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeSimpleClass::for_module (src/metamodel//static_type.nit:286,2--293:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  variable2 = ((static_type___MMTypeClass___module_t)CALL( self,COLOR_static_type___MMType___module))( self) /*MMTypeSimpleClass::module*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  variable0 /*mod*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*mod*/) /*MMModule::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeSimpleClass::_local_class*/;
+    variable2 = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___for_module))(variable2,  variable0 /*mod*/) /*MMLocalClass::for_module*/;
+    variable2 = ((static_type___MMLocalClass___get_type_t)CALL(variable2,COLOR_static_type___MMLocalClass___get_type))(variable2) /*MMLocalClass::get_type*/;
+    variable1 = variable2 /*t=*/;
+  }
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//static_type.nit:292,3--18\n"); nit_exit(1);}
+  variable1 =  variable1 /*t*/;
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeSimpleClass___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeSimpleClass::adapt_to (src/metamodel//static_type.nit:296,2--41)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void static_type___MMTypeSimpleClass___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "static_type::MMTypeSimpleClass::init (src/metamodel//static_type.nit:298,2--300:9)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeSimpleClass].i]) return;
+  ((static_type___MMTypeClass___init_t)CALL( self,COLOR_static_type___MMTypeClass___init))( self,  variable0 /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeSimpleClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMTypeNone___module(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::module (src/metamodel//static_type.nit:307,3--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMTypeNone____module( self) /*MMTypeNone::_module*/;
+}
+val_t static_type___MMTypeNone_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::< (src/metamodel//static_type.nit:308,3--32)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Bool(true);
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeNone___is_supertype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::is_supertype (src/metamodel//static_type.nit:309,3--44)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Bool(false);
+  goto return_label31;
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t static_type___MMTypeNone___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::local_class (src/metamodel//static_type.nit:310,3--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Aborted: src/metamodel//static_type.nit:310,29--33\n"); nit_exit(1);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t static_type___MMTypeNone___upcast_for(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::upcast_for (src/metamodel//static_type.nit:311,3--41)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  self;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void static_type___MMTypeNone___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "static_type::MMTypeNone::init (src/metamodel//static_type.nit:313,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeNone].i]) return;
+  ATTR_static_type___MMTypeNone____module( self) /*MMTypeNone::_module*/ =  variable0 /*m*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeNone].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t static_type___MMModule___type_none(val_t  self) {
+  struct trace_t trace = {NULL, "static_type::MMModule::type_none (src/metamodel//static_type.nit:317,2--318:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_static_type___MMModule____type_none( self) /*MMModule::_type_none*/;
+}
diff --git a/c_src/static_type._sep.h b/c_src/static_type._sep.h
new file mode 100644 (file)
index 0000000..214c8c1
--- /dev/null
@@ -0,0 +1,196 @@
+#ifndef static_type__sep
+#define static_type__sep
+#include "abstractmetamodel._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMSignature[];
+
+extern const classtable_elt_t VFT_MMAncestor[];
+
+extern const classtable_elt_t VFT_MMType[];
+
+extern const classtable_elt_t VFT_MMTypeClass[];
+
+extern const classtable_elt_t VFT_MMTypeSimpleClass[];
+
+extern const classtable_elt_t VFT_MMTypeNone[];
+extern const int SFT_static_type[];
+#define COLOR_static_type___MMLocalClass____base_type_cache SFT_static_type[0]
+#define COLOR_static_type___MMLocalClass____ancestors SFT_static_type[1]
+#define COLOR_static_type___MMLocalClass___get_type SFT_static_type[2]
+#define COLOR_static_type___MMLocalClass___add_ancestor SFT_static_type[3]
+#define COLOR_static_type___MMLocalClass___ancestors SFT_static_type[4]
+#define COLOR_static_type___MMLocalClass___ancestor SFT_static_type[5]
+#define COLOR_static_type___MMLocalProperty____signature_cache SFT_static_type[6]
+#define COLOR_static_type___MMLocalProperty___signature SFT_static_type[7]
+#define COLOR_static_type___MMLocalProperty___signature__eq SFT_static_type[8]
+#define ID_MMSignature SFT_static_type[9]
+#define COLOR_MMSignature SFT_static_type[10]
+#define COLOR_static_type___MMSignature____recv SFT_static_type[11]
+#define COLOR_static_type___MMSignature____params SFT_static_type[12]
+#define COLOR_static_type___MMSignature____return_type SFT_static_type[13]
+#define INIT_TABLE_POS_MMSignature SFT_static_type[14]
+#define COLOR_static_type___MMSignature___recv SFT_static_type[15]
+#define COLOR_static_type___MMSignature___return_type SFT_static_type[16]
+#define COLOR_static_type___MMSignature___arity SFT_static_type[17]
+#define COLOR_static_type___MMSignature_____l SFT_static_type[18]
+#define COLOR_static_type___MMSignature_____bra SFT_static_type[19]
+#define COLOR_static_type___MMSignature___init SFT_static_type[20]
+#define ID_MMAncestor SFT_static_type[21]
+#define COLOR_MMAncestor SFT_static_type[22]
+#define COLOR_static_type___MMAncestor____stype SFT_static_type[23]
+#define COLOR_static_type___MMAncestor____inheriter SFT_static_type[24]
+#define INIT_TABLE_POS_MMAncestor SFT_static_type[25]
+#define COLOR_static_type___MMAncestor___stype SFT_static_type[26]
+#define COLOR_static_type___MMAncestor___stype__eq SFT_static_type[27]
+#define COLOR_static_type___MMAncestor___inheriter SFT_static_type[28]
+#define COLOR_static_type___MMAncestor___inheriter__eq SFT_static_type[29]
+#define COLOR_static_type___MMAncestor___is_reffinement SFT_static_type[30]
+#define COLOR_static_type___MMAncestor___is_specialisation SFT_static_type[31]
+#define COLOR_static_type___MMAncestor___local_class SFT_static_type[32]
+#define ID_MMType SFT_static_type[33]
+#define COLOR_MMType SFT_static_type[34]
+#define INIT_TABLE_POS_MMType SFT_static_type[35]
+#define COLOR_static_type___MMType___module SFT_static_type[36]
+#define COLOR_static_type___MMType___local_class SFT_static_type[37]
+#define COLOR_static_type___MMType_____l SFT_static_type[38]
+#define COLOR_static_type___MMType___is_supertype SFT_static_type[39]
+#define COLOR_static_type___MMType___select_method SFT_static_type[40]
+#define COLOR_static_type___MMType___select_attribute SFT_static_type[41]
+#define COLOR_static_type___MMType___select_property SFT_static_type[42]
+#define COLOR_static_type___MMType___for_module SFT_static_type[43]
+#define COLOR_static_type___MMType___adapt_to SFT_static_type[44]
+#define COLOR_static_type___MMType___upcast_for SFT_static_type[45]
+#define COLOR_static_type___MMType___not_for_self SFT_static_type[46]
+#define ID_MMTypeClass SFT_static_type[47]
+#define COLOR_MMTypeClass SFT_static_type[48]
+#define COLOR_static_type___MMTypeClass____local_class SFT_static_type[49]
+#define INIT_TABLE_POS_MMTypeClass SFT_static_type[50]
+#define COLOR_static_type___MMTypeClass___init SFT_static_type[51]
+#define ID_MMTypeSimpleClass SFT_static_type[52]
+#define COLOR_MMTypeSimpleClass SFT_static_type[53]
+#define INIT_TABLE_POS_MMTypeSimpleClass SFT_static_type[54]
+#define COLOR_static_type___MMTypeSimpleClass___init SFT_static_type[55]
+#define ID_MMTypeNone SFT_static_type[56]
+#define COLOR_MMTypeNone SFT_static_type[57]
+#define COLOR_static_type___MMTypeNone____module SFT_static_type[58]
+#define INIT_TABLE_POS_MMTypeNone SFT_static_type[59]
+#define COLOR_static_type___MMTypeNone___init SFT_static_type[60]
+#define COLOR_static_type___MMModule____type_none SFT_static_type[61]
+#define COLOR_static_type___MMModule___type_none SFT_static_type[62]
+#define ATTR_static_type___MMLocalClass____base_type_cache(recv) ATTR(recv, COLOR_static_type___MMLocalClass____base_type_cache)
+typedef val_t (* static_type___MMLocalClass___get_type_t)(val_t  self);
+val_t static_type___MMLocalClass___get_type(val_t  self);
+typedef void (* static_type___MMLocalClass___add_ancestor_t)(val_t  self, val_t  param0);
+void static_type___MMLocalClass___add_ancestor(val_t  self, val_t  param0);
+#define ATTR_static_type___MMLocalClass____ancestors(recv) ATTR(recv, COLOR_static_type___MMLocalClass____ancestors)
+typedef val_t (* static_type___MMLocalClass___ancestors_t)(val_t  self);
+val_t static_type___MMLocalClass___ancestors(val_t  self);
+typedef val_t (* static_type___MMLocalClass___ancestor_t)(val_t  self, val_t  param0);
+val_t static_type___MMLocalClass___ancestor(val_t  self, val_t  param0);
+#define ATTR_static_type___MMLocalProperty____signature_cache(recv) ATTR(recv, COLOR_static_type___MMLocalProperty____signature_cache)
+typedef val_t (* static_type___MMLocalProperty___signature_t)(val_t  self);
+val_t static_type___MMLocalProperty___signature(val_t  self);
+typedef void (* static_type___MMLocalProperty___signature__eq_t)(val_t  self, val_t  param0);
+void static_type___MMLocalProperty___signature__eq(val_t  self, val_t  param0);
+#define ATTR_static_type___MMSignature____recv(recv) ATTR(recv, COLOR_static_type___MMSignature____recv)
+typedef val_t (* static_type___MMSignature___recv_t)(val_t  self);
+val_t static_type___MMSignature___recv(val_t  self);
+#define ATTR_static_type___MMSignature____params(recv) ATTR(recv, COLOR_static_type___MMSignature____params)
+#define ATTR_static_type___MMSignature____return_type(recv) ATTR(recv, COLOR_static_type___MMSignature____return_type)
+typedef val_t (* static_type___MMSignature___return_type_t)(val_t  self);
+val_t static_type___MMSignature___return_type(val_t  self);
+typedef val_t (* static_type___MMSignature___arity_t)(val_t  self);
+val_t static_type___MMSignature___arity(val_t  self);
+typedef val_t (* static_type___MMSignature_____l_t)(val_t  self, val_t  param0);
+val_t static_type___MMSignature_____l(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMSignature_____bra_t)(val_t  self, val_t  param0);
+val_t static_type___MMSignature_____bra(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMSignature___to_s_t)(val_t  self);
+val_t static_type___MMSignature___to_s(val_t  self);
+typedef void (* static_type___MMSignature___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void static_type___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_static_type___MMSignature___init(val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_static_type___MMAncestor____stype(recv) ATTR(recv, COLOR_static_type___MMAncestor____stype)
+typedef val_t (* static_type___MMAncestor___stype_t)(val_t  self);
+val_t static_type___MMAncestor___stype(val_t  self);
+typedef void (* static_type___MMAncestor___stype__eq_t)(val_t  self, val_t  param0);
+void static_type___MMAncestor___stype__eq(val_t  self, val_t  param0);
+#define ATTR_static_type___MMAncestor____inheriter(recv) ATTR(recv, COLOR_static_type___MMAncestor____inheriter)
+typedef val_t (* static_type___MMAncestor___inheriter_t)(val_t  self);
+val_t static_type___MMAncestor___inheriter(val_t  self);
+typedef void (* static_type___MMAncestor___inheriter__eq_t)(val_t  self, val_t  param0);
+void static_type___MMAncestor___inheriter__eq(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMAncestor___is_reffinement_t)(val_t  self);
+val_t static_type___MMAncestor___is_reffinement(val_t  self);
+typedef val_t (* static_type___MMAncestor___is_specialisation_t)(val_t  self);
+val_t static_type___MMAncestor___is_specialisation(val_t  self);
+typedef val_t (* static_type___MMAncestor___local_class_t)(val_t  self);
+val_t static_type___MMAncestor___local_class(val_t  self);
+typedef val_t (* static_type___MMAncestor___to_s_t)(val_t  self);
+val_t static_type___MMAncestor___to_s(val_t  self);
+typedef val_t (* static_type___MMType___module_t)(val_t  self);
+val_t static_type___MMType___module(val_t  self);
+typedef val_t (* static_type___MMType___local_class_t)(val_t  self);
+val_t static_type___MMType___local_class(val_t  self);
+typedef val_t (* static_type___MMType_____l_t)(val_t  self, val_t  param0);
+val_t static_type___MMType_____l(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___is_supertype_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___is_supertype(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___select_method_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___select_method(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___select_attribute_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___select_attribute(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___select_property_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___select_property(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___for_module_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___for_module(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___adapt_to_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___adapt_to(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___upcast_for_t)(val_t  self, val_t  param0);
+val_t static_type___MMType___upcast_for(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMType___not_for_self_t)(val_t  self);
+val_t static_type___MMType___not_for_self(val_t  self);
+#define ATTR_static_type___MMTypeClass____local_class(recv) ATTR(recv, COLOR_static_type___MMTypeClass____local_class)
+typedef val_t (* static_type___MMTypeClass___local_class_t)(val_t  self);
+val_t static_type___MMTypeClass___local_class(val_t  self);
+typedef val_t (* static_type___MMTypeClass___module_t)(val_t  self);
+val_t static_type___MMTypeClass___module(val_t  self);
+typedef val_t (* static_type___MMTypeClass_____l_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeClass_____l(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeClass___to_s_t)(val_t  self);
+val_t static_type___MMTypeClass___to_s(val_t  self);
+typedef val_t (* static_type___MMTypeClass___upcast_for_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeClass___upcast_for(val_t  self, val_t  param0);
+typedef void (* static_type___MMTypeClass___init_t)(val_t  self, val_t  param0, int* init_table);
+void static_type___MMTypeClass___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_static_type___MMTypeClass___init(val_t  param0);
+typedef val_t (* static_type___MMTypeSimpleClass___is_supertype_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeSimpleClass___is_supertype(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeSimpleClass___select_property_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeSimpleClass___select_property(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeSimpleClass___for_module_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeSimpleClass___for_module(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeSimpleClass___adapt_to_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeSimpleClass___adapt_to(val_t  self, val_t  param0);
+typedef void (* static_type___MMTypeSimpleClass___init_t)(val_t  self, val_t  param0, int* init_table);
+void static_type___MMTypeSimpleClass___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_static_type___MMTypeSimpleClass___init(val_t  param0);
+#define ATTR_static_type___MMTypeNone____module(recv) ATTR(recv, COLOR_static_type___MMTypeNone____module)
+typedef val_t (* static_type___MMTypeNone___module_t)(val_t  self);
+val_t static_type___MMTypeNone___module(val_t  self);
+typedef val_t (* static_type___MMTypeNone_____l_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeNone_____l(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeNone___is_supertype_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeNone___is_supertype(val_t  self, val_t  param0);
+typedef val_t (* static_type___MMTypeNone___local_class_t)(val_t  self);
+val_t static_type___MMTypeNone___local_class(val_t  self);
+typedef val_t (* static_type___MMTypeNone___upcast_for_t)(val_t  self, val_t  param0);
+val_t static_type___MMTypeNone___upcast_for(val_t  self, val_t  param0);
+typedef void (* static_type___MMTypeNone___init_t)(val_t  self, val_t  param0, int* init_table);
+void static_type___MMTypeNone___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_static_type___MMTypeNone___init(val_t  param0);
+#define ATTR_static_type___MMModule____type_none(recv) ATTR(recv, COLOR_static_type___MMModule____type_none)
+typedef val_t (* static_type___MMModule___type_none_t)(val_t  self);
+val_t static_type___MMModule___type_none(val_t  self);
+#endif
diff --git a/c_src/stream._sep.c b/c_src/stream._sep.c
new file mode 100644 (file)
index 0000000..c7c307a
--- /dev/null
@@ -0,0 +1,541 @@
+#include "stream._sep.h"
+void stream___IOS___close(val_t  self) {
+  struct trace_t trace = {NULL, "stream::IOS::close (bin/../lib/standard//stream.nit:20,2--21:11)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method close called (bin/../lib/standard//stream.nit:20,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___IStream___read_char(val_t  self) {
+  struct trace_t trace = {NULL, "stream::IStream::read_char (bin/../lib/standard//stream.nit:27,2--28:20)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method read_char called (bin/../lib/standard//stream.nit:27,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t stream___IStream___read(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::IStream::read (bin/../lib/standard//stream.nit:30,2--41:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_string___String___with_capacity( variable0 /*i*/); /*new String*/
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    variable3 = variable2;
+    if (UNTAG_Bool(variable3)) { /* and */
+      variable3 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
+      variable3 =  TAG_Bool(!UNTAG_Bool(variable3));
+    }
+    variable2 = variable3;
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable3 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
+    variable2 = variable3;
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*c*/)>=UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = TAG_Char(UNTAG_Int( variable2 /*c*/));
+      ((string___String___add_t)CALL( variable1 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*s*/, variable3) /*String::add*/;
+      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    }
+    continue_1: while(0);
+  }
+  break_1: while(0);
+  variable1 =  variable1 /*s*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t stream___IStream___read_line(val_t  self) {
+  struct trace_t trace = {NULL, "stream::IStream::read_line (bin/../lib/standard//stream.nit:44,2--50:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert failed: bin/../lib/standard//stream.nit:47,3--16\n"); nit_exit(1);}
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable0 = variable1;
+  ((stream___IStream___append_line_to_t)CALL( self,COLOR_stream___IStream___append_line_to))( self,  variable0 /*s*/) /*IStream::append_line_to*/;
+  variable0 =  variable0 /*s*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t stream___IStream___read_all(val_t  self) {
+  struct trace_t trace = {NULL, "stream::IStream::read_all (bin/../lib/standard//stream.nit:53,2--61:10)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable0 = variable1;
+  while (true) { /*while*/
+    variable1 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
+    if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) break; /* while*/
+    variable2 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
+    variable1 = variable2;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*c*/)>=UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = TAG_Char(UNTAG_Int( variable1 /*c*/));
+      ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable2) /*String::add*/;
+    }
+    continue_4: while(0);
+  }
+  break_4: while(0);
+  variable0 =  variable0 /*s*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void stream___IStream___append_line_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::IStream::append_line_to (bin/../lib/standard//stream.nit:64,2--74:28)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+      val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable2 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
+    variable1 = variable2;
+    variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    variable2 = TAG_Bool(( variable1 /*x*/)==(variable2));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        goto return_label5;
+      }
+    } else { /*if*/
+      variable3 = TAG_Char(UNTAG_Int( variable1 /*x*/));
+      variable2 = variable3;
+      ((array___AbstractArray___push_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___push))( variable0 /*s*/,  variable2 /*c*/) /*String::push*/;
+      variable3 = TAG_Bool(( variable2 /*c*/)==( TAG_Char('\n')));
+      if (UNTAG_Bool(variable3)) { /*if*/
+        goto return_label5;
+      }
+    }
+    continue_6: while(0);
+  }
+  break_6: while(0);
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___IStream___eof(val_t  self) {
+  struct trace_t trace = {NULL, "stream::IStream::eof (bin/../lib/standard//stream.nit:79,2--80:15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method eof called (bin/../lib/standard//stream.nit:79,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void stream___OStream___write(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::OStream::write (bin/../lib/standard//stream.nit:86,2--87:21)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method write called (bin/../lib/standard//stream.nit:86,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___OStream___is_writable(val_t  self) {
+  struct trace_t trace = {NULL, "stream::OStream::is_writable (bin/../lib/standard//stream.nit:89,2--90:23)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method is_writable called (bin/../lib/standard//stream.nit:89,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t stream___BufferedIStream___read_char(val_t  self) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::read_char (bin/../lib/standard//stream.nit:96,2--107:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert failed: bin/../lib/standard//stream.nit:98,3--16\n"); nit_exit(1);}
+  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
+  }
+  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    goto return_label7;
+  }
+  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+  variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+  variable1 = ((string___String_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable2) /*String::[]*/;
+  variable0 = variable1;
+  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = TAG_Int(UNTAG_Int(ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/)+UNTAG_Int( TAG_Int(1)));
+  variable1 = TAG_Int((unsigned char)UNTAG_Char( variable0 /*c*/));
+  variable0 = variable1;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::read (bin/../lib/standard//stream.nit:110,2--129:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_string___String___with_capacity( variable0 /*i*/); /*new String*/
+  variable1 = variable2;
+  variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+  variable2 = variable3;
+  variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+  variable4 = ((array___AbstractArray___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*String::length*/;
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable2 /*j*/)>=UNTAG_Int( variable3 /*k*/));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
+      variable4 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable1 =  variable1 /*s*/;
+        goto return_label8;
+      }
+      variable4 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+      variable2 = variable4 /*j=*/;
+      variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+      variable4 = ((array___AbstractArray___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*String::length*/;
+      variable3 = variable4 /*k=*/;
+    }
+    while (true) { /*while*/
+      variable4 = TAG_Bool(UNTAG_Int( variable2 /*j*/)<UNTAG_Int( variable3 /*k*/));
+      variable5 = variable4;
+      if (UNTAG_Bool(variable5)) { /* and */
+        variable5 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+      }
+      variable4 = variable5;
+      if (!UNTAG_Bool(variable4)) break; /* while*/
+      variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+      variable4 = ((string___String_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable2 /*j*/) /*String::[]*/;
+      ((string___String___add_t)CALL( variable1 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*s*/, variable4) /*String::add*/;
+      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_10: while(0);
+    }
+    break_10: while(0);
+    continue_9: while(0);
+  }
+  break_9: while(0);
+  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable2 /*j*/;
+  variable1 =  variable1 /*s*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t stream___BufferedIStream___read_all(val_t  self) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::read_all (bin/../lib/standard//stream.nit:132,2--145:10)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable0 = variable1;
+  while (true) { /*while*/
+    variable1 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
+    if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) break; /* while*/
+    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+    variable1 = variable2;
+    variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*String::length*/;
+    variable2 = variable3;
+    while (true) { /*while*/
+      variable3 = TAG_Bool(UNTAG_Int( variable1 /*j*/)<UNTAG_Int( variable2 /*k*/));
+      if (!UNTAG_Bool(variable3)) break; /* while*/
+      variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+      variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable1 /*j*/) /*String::[]*/;
+      ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      continue_13: while(0);
+    }
+    break_13: while(0);
+    ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable1 /*j*/;
+    ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
+    continue_12: while(0);
+  }
+  break_12: while(0);
+  variable0 =  variable0 /*s*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::append_line_to (bin/../lib/standard//stream.nit:148,2--178:16)"};
+  val_t variable0;
+    val_t variable1;
+    val_t variable2;
+      val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  while (true) { /*while*/
+    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
+    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+    variable1 = variable2;
+    while (true) { /*while*/
+      variable2 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+      variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*String::length*/;
+      variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
+      variable3 = variable2;
+      if (UNTAG_Bool(variable3)) { /* and */
+        variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+        variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable1 /*i*/) /*String::[]*/;
+        variable3 = TAG_Bool((variable3)!=( TAG_Char('\n')));
+      }
+      variable2 = variable3;
+      if (!UNTAG_Bool(variable2)) break; /* while*/
+      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_16: while(0);
+    }
+    break_16: while(0);
+    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>UNTAG_Int(variable2));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( variable1 /*i*/));
+      variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+      variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int(variable3));
+      ((string___String___enlarge_t)CALL( variable0 /*s*/,COLOR_array___AbstractArray___enlarge))( variable0 /*s*/, variable2) /*String::enlarge*/;
+      variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+      variable2 = variable3;
+      while (true) { /*while*/
+        variable3 = TAG_Bool(UNTAG_Int( variable2 /*j*/)<UNTAG_Int( variable1 /*i*/));
+        if (!UNTAG_Bool(variable3)) break; /* while*/
+        variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+        variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable2 /*j*/) /*String::[]*/;
+        ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
+        variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*j*/;
+        continue_17: while(0);
+      }
+      break_17: while(0);
+    }
+    variable2 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+    variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*String::length*/;
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = variable2;
+      goto return_label14;
+    } else { /*if*/
+      ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable1 /*i*/;
+      variable2 = ((stream___BufferedIStream___end_reached_t)CALL( self,COLOR_stream___BufferedIStream___end_reached))( self) /*BufferedIStream::end_reached*/;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        goto return_label14;
+      } else { /*if*/
+        ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
+      }
+    }
+    continue_15: while(0);
+  }
+  break_15: while(0);
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___BufferedIStream___eof(val_t  self) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::eof (bin/../lib/standard//stream.nit:184,2--71)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
+  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
+  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*String::length*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
+  variable1 = variable0;
+  if (UNTAG_Bool(variable1)) { /* and */
+    variable1 = ((stream___BufferedIStream___end_reached_t)CALL( self,COLOR_stream___BufferedIStream___end_reached))( self) /*BufferedIStream::end_reached*/;
+  }
+  variable0 = variable1;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void stream___BufferedIStream___fill_buffer(val_t  self) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::fill_buffer (bin/../lib/standard//stream.nit:192,2--193:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method fill_buffer called (bin/../lib/standard//stream.nit:192,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___BufferedIStream___end_reached(val_t  self) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::end_reached (bin/../lib/standard//stream.nit:195,2--196:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method end_reached called (bin/../lib/standard//stream.nit:195,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void stream___BufferedIStream___prepare_buffer(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::BufferedIStream::prepare_buffer (bin/../lib/standard//stream.nit:198,2--202:17)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_string___String___with_capacity( variable0 /*capacity*/); /*new String*/
+  ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/ = variable1;
+  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  TAG_Int(0);
+  tracehead = trace.prev;
+  return;
+}
+void stream___FDStream___close(val_t  self) {
+  struct trace_t trace = {NULL, "stream::FDStream::close (bin/../lib/standard//stream.nit:218,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/;
+  ((stream___FDStream___native_close_t)CALL( self,COLOR_stream___FDStream___native_close))( self, variable0) /*FDStream::native_close*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___FDStream___native_close(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::FDStream::native_close (bin/../lib/standard//stream.nit:220,2--91)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(stream_FDStream_FDStream_native_close_1( self, UNTAG_Int( param0)));
+}
+val_t stream___FDStream___native_read_char(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::FDStream::native_read_char (bin/../lib/standard//stream.nit:221,2--99)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(stream_FDStream_FDStream_native_read_char_1( self, UNTAG_Int( param0)));
+}
+val_t stream___FDStream___native_read(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "stream::FDStream::native_read (bin/../lib/standard//stream.nit:222,2--118)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(stream_FDStream_FDStream_native_read_3( self, UNTAG_Int( param0), UNBOX_NativeString( param1), UNTAG_Int( param2)));
+}
+val_t stream___FDStream___native_write(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "stream::FDStream::native_write (bin/../lib/standard//stream.nit:223,2--120)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(stream_FDStream_FDStream_native_write_3( self, UNTAG_Int( param0), UNBOX_NativeString( param1), UNTAG_Int( param2)));
+}
+void stream___FDStream___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "stream::FDStream::init (bin/../lib/standard//stream.nit:225,2--26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDStream].i]) return;
+  ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/ =  variable0 /*fd*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___FDIStream___eof(val_t  self) {
+  struct trace_t trace = {NULL, "stream::FDIStream::eof (bin/../lib/standard//stream.nit:231,2--31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_stream___FDIStream____eof( self) /*FDIStream::_eof*/;
+}
+val_t stream___FDIStream___read_char(val_t  self) {
+  struct trace_t trace = {NULL, "stream::FDIStream::read_char (bin/../lib/standard//stream.nit:233,2--237:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_stream___FDStream____fd( self) /*FDIStream::_fd*/;
+  variable1 = ((stream___FDStream___native_read_char_t)CALL( self,COLOR_stream___FDStream___native_read_char))( self, variable1) /*FDIStream::native_read_char*/;
+  variable0 = variable1;
+  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable1 = TAG_Bool(( variable0 /*nb*/)==(variable1));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ATTR_stream___FDIStream____eof( self) /*FDIStream::_eof*/ =  TAG_Bool(true);
+  }
+  variable0 =  variable0 /*nb*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void stream___FDIStream___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "stream::FDIStream::init (bin/../lib/standard//stream.nit:240,2--29)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIStream].i]) return;
+  ((stream___FDStream___init_t)CALL( self,COLOR_stream___FDStream___init))( self,  param0, init_table /*YYY*/) /*FDStream::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t stream___FDOStream___is_writable(val_t  self) {
+  struct trace_t trace = {NULL, "stream::FDOStream::is_writable (bin/../lib/standard//stream.nit:246,2--39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/;
+}
+void stream___FDOStream___write(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "stream::FDOStream::write (bin/../lib/standard//stream.nit:248,2--251:44)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_stream___FDStream____fd( self) /*FDOStream::_fd*/;
+  variable3 = ((string___String___to_cstring_t)CALL( variable0 /*s*/,COLOR_string___String___to_cstring))( variable0 /*s*/) /*String::to_cstring*/;
+  variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable2 = ((stream___FDStream___native_write_t)CALL( self,COLOR_stream___FDStream___native_write))( self, variable2, variable3, variable4) /*FDOStream::native_write*/;
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*nb*/)<UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/ =  TAG_Bool(false);
+  }
+  tracehead = trace.prev;
+  return;
+}
+void stream___FDOStream___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "stream::FDOStream::init (bin/../lib/standard//stream.nit:254,2--257:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDOStream].i]) return;
+  ((stream___FDStream___init_t)CALL( self,COLOR_stream___FDStream___init))( self,  param0, init_table /*YYY*/) /*FDStream::init*/;
+  ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/ =  TAG_Bool(true);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDOStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void stream___FDIOStream___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "stream::FDIOStream::init (bin/../lib/standard//stream.nit:265,2--268:21)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIOStream].i]) return;
+  ((stream___FDIStream___init_t)CALL( self,COLOR_stream___FDIStream___init))( self,  param0, init_table /*YYY*/) /*FDIStream::init*/;
+  ((stream___FDOStream___init_t)CALL( self,COLOR_stream___FDOStream___init))( self,  param0, init_table /*YYY*/) /*FDOStream::init*/;
+  ATTR_stream___FDStream____fd( self) /*FDIOStream::_fd*/ =  variable0 /*fd*/;
+  ATTR_stream___FDOStream____is_writable( self) /*FDIOStream::_is_writable*/ =  TAG_Bool(true);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIOStream].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/stream._sep.h b/c_src/stream._sep.h
new file mode 100644 (file)
index 0000000..d586199
--- /dev/null
@@ -0,0 +1,146 @@
+#ifndef stream__sep
+#define stream__sep
+#include "string._sep.h"
+#include <nit_common.h>
+#include <stream_nit.h>
+
+extern const classtable_elt_t VFT_IOS[];
+
+extern const classtable_elt_t VFT_IStream[];
+
+extern const classtable_elt_t VFT_OStream[];
+
+extern const classtable_elt_t VFT_BufferedIStream[];
+
+extern const classtable_elt_t VFT_IOStream[];
+
+extern const classtable_elt_t VFT_FDStream[];
+
+extern const classtable_elt_t VFT_FDIStream[];
+
+extern const classtable_elt_t VFT_FDOStream[];
+
+extern const classtable_elt_t VFT_FDIOStream[];
+extern const int SFT_stream[];
+#define ID_IOS SFT_stream[0]
+#define COLOR_IOS SFT_stream[1]
+#define INIT_TABLE_POS_IOS SFT_stream[2]
+#define COLOR_stream___IOS___close SFT_stream[3]
+#define ID_IStream SFT_stream[4]
+#define COLOR_IStream SFT_stream[5]
+#define INIT_TABLE_POS_IStream SFT_stream[6]
+#define COLOR_stream___IStream___read_char SFT_stream[7]
+#define COLOR_stream___IStream___read SFT_stream[8]
+#define COLOR_stream___IStream___read_line SFT_stream[9]
+#define COLOR_stream___IStream___read_all SFT_stream[10]
+#define COLOR_stream___IStream___append_line_to SFT_stream[11]
+#define COLOR_stream___IStream___eof SFT_stream[12]
+#define ID_OStream SFT_stream[13]
+#define COLOR_OStream SFT_stream[14]
+#define INIT_TABLE_POS_OStream SFT_stream[15]
+#define COLOR_stream___OStream___write SFT_stream[16]
+#define COLOR_stream___OStream___is_writable SFT_stream[17]
+#define ID_BufferedIStream SFT_stream[18]
+#define COLOR_BufferedIStream SFT_stream[19]
+#define COLOR_stream___BufferedIStream____buffer SFT_stream[20]
+#define COLOR_stream___BufferedIStream____buffer_pos SFT_stream[21]
+#define INIT_TABLE_POS_BufferedIStream SFT_stream[22]
+#define COLOR_stream___BufferedIStream___fill_buffer SFT_stream[23]
+#define COLOR_stream___BufferedIStream___end_reached SFT_stream[24]
+#define COLOR_stream___BufferedIStream___prepare_buffer SFT_stream[25]
+#define ID_IOStream SFT_stream[26]
+#define COLOR_IOStream SFT_stream[27]
+#define INIT_TABLE_POS_IOStream SFT_stream[28]
+#define ID_FDStream SFT_stream[29]
+#define COLOR_FDStream SFT_stream[30]
+#define COLOR_stream___FDStream____fd SFT_stream[31]
+#define INIT_TABLE_POS_FDStream SFT_stream[32]
+#define COLOR_stream___FDStream___native_close SFT_stream[33]
+#define COLOR_stream___FDStream___native_read_char SFT_stream[34]
+#define COLOR_stream___FDStream___native_read SFT_stream[35]
+#define COLOR_stream___FDStream___native_write SFT_stream[36]
+#define COLOR_stream___FDStream___init SFT_stream[37]
+#define ID_FDIStream SFT_stream[38]
+#define COLOR_FDIStream SFT_stream[39]
+#define COLOR_stream___FDIStream____eof SFT_stream[40]
+#define INIT_TABLE_POS_FDIStream SFT_stream[41]
+#define COLOR_stream___FDIStream___init SFT_stream[42]
+#define ID_FDOStream SFT_stream[43]
+#define COLOR_FDOStream SFT_stream[44]
+#define COLOR_stream___FDOStream____is_writable SFT_stream[45]
+#define INIT_TABLE_POS_FDOStream SFT_stream[46]
+#define COLOR_stream___FDOStream___init SFT_stream[47]
+#define ID_FDIOStream SFT_stream[48]
+#define COLOR_FDIOStream SFT_stream[49]
+#define INIT_TABLE_POS_FDIOStream SFT_stream[50]
+#define COLOR_stream___FDIOStream___init SFT_stream[51]
+typedef void (* stream___IOS___close_t)(val_t  self);
+void stream___IOS___close(val_t  self);
+typedef val_t (* stream___IStream___read_char_t)(val_t  self);
+val_t stream___IStream___read_char(val_t  self);
+typedef val_t (* stream___IStream___read_t)(val_t  self, val_t  param0);
+val_t stream___IStream___read(val_t  self, val_t  param0);
+typedef val_t (* stream___IStream___read_line_t)(val_t  self);
+val_t stream___IStream___read_line(val_t  self);
+typedef val_t (* stream___IStream___read_all_t)(val_t  self);
+val_t stream___IStream___read_all(val_t  self);
+typedef void (* stream___IStream___append_line_to_t)(val_t  self, val_t  param0);
+void stream___IStream___append_line_to(val_t  self, val_t  param0);
+typedef val_t (* stream___IStream___eof_t)(val_t  self);
+val_t stream___IStream___eof(val_t  self);
+typedef void (* stream___OStream___write_t)(val_t  self, val_t  param0);
+void stream___OStream___write(val_t  self, val_t  param0);
+typedef val_t (* stream___OStream___is_writable_t)(val_t  self);
+val_t stream___OStream___is_writable(val_t  self);
+typedef val_t (* stream___BufferedIStream___read_char_t)(val_t  self);
+val_t stream___BufferedIStream___read_char(val_t  self);
+typedef val_t (* stream___BufferedIStream___read_t)(val_t  self, val_t  param0);
+val_t stream___BufferedIStream___read(val_t  self, val_t  param0);
+typedef val_t (* stream___BufferedIStream___read_all_t)(val_t  self);
+val_t stream___BufferedIStream___read_all(val_t  self);
+typedef void (* stream___BufferedIStream___append_line_to_t)(val_t  self, val_t  param0);
+void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0);
+typedef val_t (* stream___BufferedIStream___eof_t)(val_t  self);
+val_t stream___BufferedIStream___eof(val_t  self);
+#define ATTR_stream___BufferedIStream____buffer(recv) ATTR(recv, COLOR_stream___BufferedIStream____buffer)
+#define ATTR_stream___BufferedIStream____buffer_pos(recv) ATTR(recv, COLOR_stream___BufferedIStream____buffer_pos)
+typedef void (* stream___BufferedIStream___fill_buffer_t)(val_t  self);
+void stream___BufferedIStream___fill_buffer(val_t  self);
+typedef val_t (* stream___BufferedIStream___end_reached_t)(val_t  self);
+val_t stream___BufferedIStream___end_reached(val_t  self);
+typedef void (* stream___BufferedIStream___prepare_buffer_t)(val_t  self, val_t  param0);
+void stream___BufferedIStream___prepare_buffer(val_t  self, val_t  param0);
+#define ATTR_stream___FDStream____fd(recv) ATTR(recv, COLOR_stream___FDStream____fd)
+typedef void (* stream___FDStream___close_t)(val_t  self);
+void stream___FDStream___close(val_t  self);
+typedef val_t (* stream___FDStream___native_close_t)(val_t  self, val_t  param0);
+val_t stream___FDStream___native_close(val_t  self, val_t  param0);
+typedef val_t (* stream___FDStream___native_read_char_t)(val_t  self, val_t  param0);
+val_t stream___FDStream___native_read_char(val_t  self, val_t  param0);
+typedef val_t (* stream___FDStream___native_read_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t stream___FDStream___native_read(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* stream___FDStream___native_write_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t stream___FDStream___native_write(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* stream___FDStream___init_t)(val_t  self, val_t  param0, int* init_table);
+void stream___FDStream___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_stream___FDStream___init(val_t  param0);
+#define ATTR_stream___FDIStream____eof(recv) ATTR(recv, COLOR_stream___FDIStream____eof)
+typedef val_t (* stream___FDIStream___eof_t)(val_t  self);
+val_t stream___FDIStream___eof(val_t  self);
+typedef val_t (* stream___FDIStream___read_char_t)(val_t  self);
+val_t stream___FDIStream___read_char(val_t  self);
+typedef void (* stream___FDIStream___init_t)(val_t  self, val_t  param0, int* init_table);
+void stream___FDIStream___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_stream___FDIStream___init(val_t  param0);
+#define ATTR_stream___FDOStream____is_writable(recv) ATTR(recv, COLOR_stream___FDOStream____is_writable)
+typedef val_t (* stream___FDOStream___is_writable_t)(val_t  self);
+val_t stream___FDOStream___is_writable(val_t  self);
+typedef void (* stream___FDOStream___write_t)(val_t  self, val_t  param0);
+void stream___FDOStream___write(val_t  self, val_t  param0);
+typedef void (* stream___FDOStream___init_t)(val_t  self, val_t  param0, int* init_table);
+void stream___FDOStream___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_stream___FDOStream___init(val_t  param0);
+typedef void (* stream___FDIOStream___init_t)(val_t  self, val_t  param0, int* init_table);
+void stream___FDIOStream___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_stream___FDIOStream___init(val_t  param0);
+#endif
diff --git a/c_src/string._sep.c b/c_src/string._sep.c
new file mode 100644 (file)
index 0000000..50b3a01
--- /dev/null
@@ -0,0 +1,1317 @@
+#include "string._sep.h"
+val_t string___String_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::[] (bin/../lib/standard//string.nit:31,2--44)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_string___String____items( self) /*String::_items*/;
+  variable1 = TAG_Char(UNBOX_NativeString(variable1)[UNTAG_Int( variable0 /*index*/)]);
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void string___String_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::String::[]= (bin/../lib/standard//string.nit:33,2--40:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = TAG_Bool(( variable0 /*index*/)==(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((string___String___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self,  variable1 /*item*/) /*String::add*/;
+    goto return_label1;
+  }
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable3 = TAG_Bool(UNTAG_Int( variable0 /*index*/)<UNTAG_Int(variable3));
+  }
+  variable2 = variable3;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:39,3--38\n"); nit_exit(1);}
+  variable2 = ATTR_string___String____items( self) /*String::_items*/;
+  UNBOX_NativeString(variable2)[UNTAG_Int( variable0 /*index*/)]=UNTAG_Char( variable1 /*item*/);
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void string___String___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::add (bin/../lib/standard//string.nit:43,2--47:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_string___String____capacity( self) /*String::_capacity*/;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)<=UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(5)));
+    ((string___String___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable1) /*String::enlarge*/;
+  }
+  variable1 = ATTR_string___String____items( self) /*String::_items*/;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  UNBOX_NativeString(variable1)[UNTAG_Int(variable2)]=UNTAG_Char( variable0 /*c*/);
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)+UNTAG_Int( TAG_Int(1)));
+  tracehead = trace.prev;
+  return;
+}
+void string___String___enlarge(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::enlarge (bin/../lib/standard//string.nit:50,2--58:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_string___String____capacity( self) /*String::_capacity*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<=UNTAG_Int( variable1 /*c*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label3;
+  }
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable1 /*c*/)<=UNTAG_Int( variable0 /*cap*/));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    variable2 = TAG_Int(UNTAG_Int( variable1 /*c*/)*UNTAG_Int( TAG_Int(2)));
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(2)));
+    variable1 = variable2 /*c=*/;
+    continue_4: while(0);
+  }
+  break_4: while(0);
+  variable3 = BOX_NativeString((char*)malloc((UNTAG_Int( variable1 /*c*/) * sizeof(char))));
+  variable2 = variable3;
+  variable3 = ATTR_string___String____items( self) /*String::_items*/;
+  variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  (void)memcpy(UNBOX_NativeString( variable2 /*a*/)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable3)+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable4));
+  ATTR_string___String____items( self) /*String::_items*/ =  variable2 /*a*/;
+  ATTR_string___String____capacity( self) /*String::_capacity*/ =  variable1 /*c*/;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void string___String___append(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::append (bin/../lib/standard//string.nit:61,2--69:8)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*s*/==NIT_NULL) || VAL_ISA( variable0 /*s*/, COLOR_String, ID_String)) /*cast String*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+    variable1 = variable2;
+    variable2 = ATTR_string___String____capacity( self) /*String::_capacity*/;
+    variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( variable1 /*sl*/));
+    variable2 = TAG_Bool(UNTAG_Int(variable2)<UNTAG_Int(variable3));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( variable1 /*sl*/));
+      ((string___String___enlarge_t)CALL( self,COLOR_array___AbstractArray___enlarge))( self, variable2) /*String::enlarge*/;
+    }
+    variable2 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/;
+    variable3 = ATTR_string___String____items( self) /*String::_items*/;
+    variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    (void)memcpy(UNBOX_NativeString(variable3)+UNTAG_Int(variable4), UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNTAG_Int( variable1 /*sl*/));
+    ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)+UNTAG_Int( variable1 /*sl*/));
+  } else { /*if*/
+    ((string___String___append_t)CALL( self,COLOR_SUPER_string___String___append))( self,  param0) /*super String::append*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t string___String_____plus(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::+ (bin/../lib/standard//string.nit:73,2--79:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int(variable3));
+  variable3 = NEW_string___String___with_capacity(variable2); /*new String*/
+  variable2 = variable3;
+  variable1 = variable2;
+  ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/,  self) /*String::append*/;
+  ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/,  variable0 /*s*/) /*String::append*/;
+  variable1 =  variable1 /*r*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String_____star(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::* (bin/../lib/standard//string.nit:82,2--91:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:85,3--15\n"); nit_exit(1);}
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = TAG_Int(UNTAG_Int(variable2)*UNTAG_Int( variable0 /*i*/));
+  variable3 = NEW_string___String___with_capacity(variable2); /*new String*/
+  variable2 = variable3;
+  variable1 = variable2;
+  while (true) { /*while*/
+    variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable2)) break; /* while*/
+    ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/,  self) /*String::append*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_8: while(0);
+  }
+  break_8: while(0);
+  variable1 =  variable1 /*r*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_s (bin/../lib/standard//string.nit:94,2--95:55)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___from( self); /*new String*/
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___to_i(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_i (bin/../lib/standard//string.nit:97,2--101:24)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
+  variable0 = TAG_Int(atoi(UNBOX_NativeString(variable0)));
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___to_hex(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_hex (bin/../lib/standard//string.nit:104,2--105:35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___String___a_to_t)CALL( self,COLOR_string___String___a_to))( self,  TAG_Int(16)) /*String::a_to*/;
+  goto return_label11;
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___a_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::a_to (bin/../lib/standard//string.nit:107,2--131:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable2 =  TAG_Bool(false);
+  variable3 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable6 = ((kernel___Char___to_i_t)CALL( variable4 /*c*/,COLOR_kernel___Char___to_i))( variable4 /*c*/) /*Char::to_i*/;
+    variable5 = variable6;
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)>UNTAG_Int( variable0 /*base*/));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/
+        variable6 = TAG_Int(-UNTAG_Int( variable1 /*i*/));
+        variable1 = variable6;
+        goto return_label12;
+      } else { /*if*/
+        variable1 =  variable1 /*i*/;
+        goto return_label12;
+      }
+    } else { /*if*/
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)<UNTAG_Int( TAG_Int(0)));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable2 =  TAG_Bool(true) /*neg=*/;
+      } else { /*if*/
+        variable6 = TAG_Int(UNTAG_Int( variable1 /*i*/)*UNTAG_Int( variable0 /*base*/));
+        variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( variable5 /*v*/));
+        variable1 = variable6 /*i=*/;
+      }
+    }
+    continue_13: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_13: while(0);
+  if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/
+    variable3 = TAG_Int(-UNTAG_Int( variable1 /*i*/));
+    variable1 = variable3;
+    goto return_label12;
+  } else { /*if*/
+    variable1 =  variable1 /*i*/;
+    goto return_label12;
+  }
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String___to_cstring(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_cstring (bin/../lib/standard//string.nit:135,2--140:15)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  ((string___String_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable0,  TAG_Char('\0')) /*String::[]=*/;
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*String::_length*/)-UNTAG_Int( TAG_Int(1)));
+  variable0 = ATTR_string___String____items( self) /*String::_items*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___substring(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::String::substring (bin/../lib/standard//string.nit:143,2--163:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:151,3--19\n"); nit_exit(1);}
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( variable0 /*from*/)) /*count*/;
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable0 =  TAG_Int(0) /*from=*/;
+  }
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>UNTAG_Int(variable2));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable1 = variable2 /*count=*/;
+  }
+  variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( variable1 /*count*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*count*/)-UNTAG_Int( variable0 /*from*/));
+    variable4 = NEW_string___String___with_capacity(variable3); /*new String*/
+    variable3 = variable4;
+    variable2 = variable3;
+    while (true) { /*while*/
+      variable3 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int( variable1 /*count*/));
+      if (!UNTAG_Bool(variable3)) break; /* while*/
+      variable3 = ATTR_string___String____items( self) /*String::_items*/;
+      variable3 = TAG_Char(UNBOX_NativeString(variable3)[UNTAG_Int( variable0 /*from*/)]);
+      ((array___AbstractArray___push_t)CALL( variable2 /*r*/,COLOR_abstract_collection___IndexedCollection___push))( variable2 /*r*/, variable3) /*String::push*/;
+      variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*from*/;
+      continue_16: while(0);
+    }
+    break_16: while(0);
+    variable2 =  variable2 /*r*/;
+    goto return_label15;
+  } else { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    goto return_label15;
+  }
+  return_label15: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string___String___substring_from(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::substring_from (bin/../lib/standard//string.nit:167,2--175:38)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*from*/)<UNTAG_Int(variable1));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:174,3--22\n"); nit_exit(1);}
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( variable0 /*from*/));
+  variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self,  variable0 /*from*/, variable1) /*String::substring*/;
+  goto return_label17;
+  return_label17: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String___has_substring(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::String::has_substring (bin/../lib/standard//string.nit:178,2--194:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*str*/,COLOR_abstract_collection___Collection___length))( variable0 /*str*/) /*String::length*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  variable4 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( variable2 /*itsindex*/));
+  variable3 = variable4;
+  variable5 = ATTR_string___String____items( self) /*String::_items*/;
+  variable4 = variable5;
+  variable6 = ATTR_string___String____items( variable0 /*str*/) /*String::_items*/;
+  variable5 = variable6;
+  variable6 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable6 = TAG_Bool(UNTAG_Int( variable3 /*myindex*/)>UNTAG_Int(variable6));
+  variable7 = variable6;
+  if (!UNTAG_Bool(variable7)) { /* or */
+    variable7 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( variable3 /*myindex*/));
+  }
+  variable6 = variable7;
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable2 =  TAG_Bool(false);
+    goto return_label18;
+  }
+  while (true) { /*while*/
+    variable6 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    variable6 = TAG_Char(UNBOX_NativeString( variable4 /*myitems*/)[UNTAG_Int( variable3 /*myindex*/)]);
+    variable7 = TAG_Char(UNBOX_NativeString( variable5 /*itsitems*/)[UNTAG_Int( variable2 /*itsindex*/)]);
+    variable6 = TAG_Bool((variable6)!=(variable7));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable2 =  TAG_Bool(false);
+      goto return_label18;
+    }
+    variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( variable3 /*myindex*/)) /*myindex*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( variable2 /*itsindex*/)) /*itsindex*/;
+    continue_19: while(0);
+  }
+  break_19: while(0);
+  variable2 =  TAG_Bool(true);
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string___String___has_prefix(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::has_prefix (bin/../lib/standard//string.nit:197,2--201:71)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self,  variable0 /*prefix*/,  TAG_Int(0)) /*String::has_substring*/;
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String___has_suffix(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::has_suffix (bin/../lib/standard//string.nit:203,2--207:93)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*suffix*/,COLOR_abstract_collection___Collection___length))( variable0 /*suffix*/) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int(variable2));
+  variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self,  variable0 /*suffix*/, variable1) /*String::has_substring*/;
+  goto return_label21;
+  return_label21: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::< (bin/../lib/standard//string.nit:209,2--227:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  TAG_Int(0);
+  variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = variable3;
+  variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l1*/));
+    variable5 = variable4;
+    if (UNTAG_Bool(variable5)) { /* and */
+      variable5 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable3 /*l2*/));
+    }
+    variable4 = variable5;
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable5 = ((string___String_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable1 /*i*/) /*String::[]*/;
+    variable5 = TAG_Int((unsigned char)UNTAG_Char(variable5));
+    variable4 = variable5;
+    variable6 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/,  variable1 /*i*/) /*String::[]*/;
+    variable6 = TAG_Int((unsigned char)UNTAG_Char(variable6));
+    variable5 = variable6;
+    variable6 = TAG_Bool(UNTAG_Int( variable4 /*c1*/)<UNTAG_Int( variable5 /*c2*/));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable1 =  TAG_Bool(true);
+      goto return_label22;
+    } else { /*if*/
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*c2*/)<UNTAG_Int( variable4 /*c1*/));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable1 =  TAG_Bool(false);
+        goto return_label22;
+      }
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_23: while(0);
+  }
+  break_23: while(0);
+  variable4 = TAG_Bool(UNTAG_Int( variable2 /*l1*/)<UNTAG_Int( variable3 /*l2*/));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable1 =  TAG_Bool(true);
+    goto return_label22;
+  } else { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label22;
+  }
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void string___String___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::init (bin/../lib/standard//string.nit:231,2--234:17)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self,  TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___from(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::from (bin/../lib/standard//string.nit:237,2--242:39)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1)));
+  ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ = variable1;
+  variable1 = ATTR_string___String____capacity( self) /*String::_capacity*/;
+  variable1 = BOX_NativeString((char*)malloc((UNTAG_Int(variable1) * sizeof(char))));
+  ATTR_string___String____items( self) /*String::_items*/ = variable1;
+  variable1 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/;
+  variable2 = ATTR_string___String____items( self) /*String::_items*/;
+  variable3 = ATTR_array___AbstractArray____length( self) /*String::_length*/;
+  (void)memcpy(UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable1)+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable3));
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___with_capacity(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::with_capacity (bin/../lib/standard//string.nit:245,2--252:13)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  variable1 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:248,3--17\n"); nit_exit(1);}
+  variable1 = BOX_NativeString((char*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(char))));
+  ATTR_string___String____items( self) /*String::_items*/ = variable1;
+  ATTR_string___String____capacity( self) /*String::_capacity*/ =  variable0 /*cap*/;
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ =  TAG_Int(0);
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::with_native (bin/../lib/standard//string.nit:255,2--261:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*size*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:258,3--18\n"); nit_exit(1);}
+  ATTR_string___String____items( self) /*String::_items*/ =  variable0 /*nat*/;
+  ATTR_string___String____capacity( self) /*String::_capacity*/ =  variable1 /*size*/;
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ =  variable1 /*size*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___from_cstring(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::from_cstring (bin/../lib/standard//string.nit:264,2--270:16)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  variable2 = ((string___NativeString___cstring_length_t)CALL( variable0 /*str*/,COLOR_string___NativeString___cstring_length))( variable0 /*str*/) /*NativeString::cstring_length*/;
+  variable1 = variable2;
+  ATTR_string___String____items( self) /*String::_items*/ =  variable0 /*str*/;
+  variable2 = TAG_Int(UNTAG_Int( variable1 /*size*/)+UNTAG_Int( TAG_Int(1)));
+  ATTR_string___String____capacity( self) /*String::_capacity*/ = variable2;
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ =  variable1 /*size*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___filled_with(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "string::String::filled_with (bin/../lib/standard//string.nit:273,2--282:17)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return;
+  ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self,  variable1 /*count*/, init_table /*YYY*/) /*String::with_capacity*/;
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*count*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ATTR_string___String____items( self) /*String::_items*/;
+    UNBOX_NativeString(variable3)[UNTAG_Int( variable2 /*i*/)]=UNTAG_Char( variable0 /*c*/);
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_30: while(0);
+  }
+  break_30: while(0);
+  ATTR_array___AbstractArray____length( self) /*String::_length*/ =  variable1 /*count*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void string___String___output(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::output (bin/../lib/standard//string.nit:285,2--290:9)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int(variable1));
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    variable1 = ATTR_string___String____items( self) /*String::_items*/;
+    variable1 = TAG_Char(UNBOX_NativeString(variable1)[UNTAG_Int( variable0 /*i*/)]);
+    printf("%c", (unsigned char)UNTAG_Char(variable1));
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_32: while(0);
+  }
+  break_32: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t string___String_____eqeq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::String::== (bin/../lib/standard//string.nit:294,2--307:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/;
+  variable1 =  TAG_Bool(!UNTAG_Bool(variable1));
+  if (!UNTAG_Bool(variable1)) { /* or */
+    variable1 = TAG_Bool(IS_EQUAL_NN( variable0 /*o*/, NIT_NULL /*null*/));
+  }
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label33;
+  }
+  variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/;
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string.nit:297,3--21\n"); nit_exit(1);}
+  variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*o*/,COLOR_abstract_collection___Collection___length))( variable0 /*o*/) /*String::length*/;
+  variable2 = TAG_Bool((variable2)!=( variable1 /*l*/));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  TAG_Bool(false);
+    goto return_label33;
+  }
+  variable2 =  TAG_Int(0);
+  variable4 = ATTR_string___String____items( self) /*String::_items*/;
+  variable3 = variable4;
+  variable5 = ATTR_string___String____items( variable0 /*o*/) /*String::_items*/;
+  variable4 = variable5;
+  while (true) { /*while*/
+    variable5 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable1 /*l*/));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable5 = TAG_Char(UNBOX_NativeString( variable3 /*it*/)[UNTAG_Int( variable2 /*i*/)]);
+    variable6 = TAG_Char(UNBOX_NativeString( variable4 /*oit*/)[UNTAG_Int( variable2 /*i*/)]);
+    variable5 = TAG_Bool((variable5)!=(variable6));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable1 =  TAG_Bool(false);
+      goto return_label33;
+    }
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_34: while(0);
+  }
+  break_34: while(0);
+  variable1 =  TAG_Bool(true);
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___String___to_upper(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_upper (bin/../lib/standard//string.nit:310,2--315:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = NEW_string___String___with_capacity(variable1); /*new String*/
+  variable1 = variable2;
+  variable0 = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((kernel___Char___to_upper_t)CALL( variable2 /*i*/,COLOR_kernel___Char___to_upper))( variable2 /*i*/) /*Char::to_upper*/;
+    ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
+    continue_36: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_36: while(0);
+  variable0 =  variable0 /*s*/;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___to_lower(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::to_lower (bin/../lib/standard//string.nit:318,2--323:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable2 = NEW_string___String___with_capacity(variable1); /*new String*/
+  variable1 = variable2;
+  variable0 = variable1;
+  variable1 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*String::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/;
+    variable3 = ((kernel___Char___to_lower_t)CALL( variable2 /*i*/,COLOR_kernel___Char___to_lower))( variable2 /*i*/) /*Char::to_lower*/;
+    ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
+    continue_38: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
+  }
+  break_38: while(0);
+  variable0 =  variable0 /*s*/;
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___String___items(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::items (bin/../lib/standard//string.nit:326,2--43)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_string___String____items( self) /*String::_items*/;
+}
+val_t string___String___capacity(val_t  self) {
+  struct trace_t trace = {NULL, "string::String::capacity (bin/../lib/standard//string.nit:327,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_string___String____capacity( self) /*String::_capacity*/;
+}
+val_t string___Object___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Object::to_s (bin/../lib/standard//string.nit:337,2--338:36)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___Object___inspect_t)CALL( self,COLOR_string___Object___inspect))( self) /*Object::inspect*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Object___inspect(val_t  self) {
+  struct trace_t trace = {NULL, "string::Object::inspect (bin/../lib/standard//string.nit:340,2--346:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((string___Object___inspect_head_t)CALL( self,COLOR_string___Object___inspect_head))( self) /*Object::inspect_head*/;
+  variable0 = variable1;
+  ((string___String___add_t)CALL( variable0 /*r*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*r*/,  TAG_Char('>')) /*String::add*/;
+  variable0 =  variable0 /*r*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Object___inspect_head(val_t  self) {
+  struct trace_t trace = {NULL, "string::Object::inspect_head (bin/../lib/standard//string.nit:349,2--353:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___init(); /*new String*/
+  variable1 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+  variable2 = variable1;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
+  variable3 = TAG_Int((int) self);
+  variable3 = ((string___Int___to_hex_t)CALL(variable3,COLOR_string___Int___to_hex))(variable3) /*Int::to_hex*/;
+  variable4 = variable3;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
+  goto return_label41;
+  return_label41: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Object___args(val_t  self) {
+  struct trace_t trace = {NULL, "string::Object::args (bin/../lib/standard//string.nit:356,2--358:17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = (G_sys);
+  variable0 = ((string___Sys___args_t)CALL(variable0,COLOR_string___Object___args))(variable0) /*Sys::args*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Bool___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Bool::to_s (bin/../lib/standard//string.nit:363,2--368:22)"};
+  val_t variable0;
+    static val_t once_value_variable0_44; static int once_bool_variable0_44;
+    static val_t once_value_variable0_45; static int once_bool_variable0_45;
+  trace.prev = tracehead; tracehead = &trace;
+  if (UNTAG_Bool( self)) { /*if*/
+    if (once_bool_variable0_44) variable0 = once_value_variable0_44;
+    else {
+      variable0 = NEW_string___String___with_native(BOX_NativeString("true"), TAG_Int(4)); /*new String*/
+      once_value_variable0_44 = variable0;
+      once_bool_variable0_44 = true;
+    }
+    goto return_label43;
+  } else { /*if*/
+    if (once_bool_variable0_45) variable0 = once_value_variable0_45;
+    else {
+      variable0 = NEW_string___String___with_native(BOX_NativeString("false"), TAG_Int(5)); /*new String*/
+      once_value_variable0_45 = variable0;
+      once_bool_variable0_45 = true;
+    }
+    goto return_label43;
+  }
+  return_label43: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void string___Int___fill_string(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "string::Int::fill_string (bin/../lib/standard//string.nit:374,2--394:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 = TAG_Int((int)0) /*decl variable n*/;
+  variable4 = TAG_Bool(UNTAG_Int( self)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = TAG_Int(-UNTAG_Int( self));
+    variable3 = variable4 /*n=*/;
+    ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/,  TAG_Int(0),  TAG_Char('-')) /*String::[]=*/;
+  } else { /*if*/
+    variable4 = TAG_Bool(( self)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/,  TAG_Int(0),  TAG_Char('0')) /*String::[]=*/;
+      goto return_label46;
+    } else { /*if*/
+      variable3 =  self /*n=*/;
+    }
+  }
+  variable5 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self,  variable1 /*base*/) /*Int::digit_count*/;
+  variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
+  variable4 = variable5;
+  while (true) { /*while*/
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = TAG_Bool(UNTAG_Int( variable3 /*n*/)>UNTAG_Int( TAG_Int(0)));
+    }
+    variable5 = variable6;
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)%UNTAG_Int( variable1 /*base*/));
+    variable5 = ((kernel___Int___to_c_t)CALL(variable5,COLOR_kernel___Int___to_c))(variable5) /*Int::to_c*/;
+    ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/,  variable4 /*pos*/, variable5) /*String::[]=*/;
+    variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)/UNTAG_Int( variable1 /*base*/));
+    variable3 = variable5 /*n=*/;
+    variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1))) /*pos*/;
+    continue_47: while(0);
+  }
+  break_47: while(0);
+  return_label46: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t string___Int___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Int::to_s (bin/../lib/standard//string.nit:398,2--399:42)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self,  TAG_Int(10),  TAG_Bool(true)) /*Int::to_base*/;
+  goto return_label48;
+  return_label48: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Int___to_hex(val_t  self) {
+  struct trace_t trace = {NULL, "string::Int::to_hex (bin/../lib/standard//string.nit:401,2--402:47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self,  TAG_Int(16),  TAG_Bool(false)) /*Int::to_base*/;
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Int___to_base(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::Int::to_base (bin/../lib/standard//string.nit:404,2--410:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self,  variable0 /*base*/) /*Int::digit_count*/;
+  variable2 = variable3;
+  variable4 = NEW_string___String___filled_with( TAG_Char(' '),  variable2 /*l*/); /*new String*/
+  variable3 = variable4;
+  ((string___Int___fill_string_t)CALL( self,COLOR_string___Int___fill_string))( self,  variable3 /*s*/,  variable0 /*base*/,  variable1 /*signed*/) /*Int::fill_string*/;
+  variable2 =  variable3 /*s*/;
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string___Float___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Float::to_s (bin/../lib/standard//string.nit:415,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___Float___to_precision_t)CALL( self,COLOR_string___Float___to_precision))( self,  TAG_Int(6)) /*Float::to_precision*/;
+  goto return_label51;
+  return_label51: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Float___to_precision(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::Float::to_precision (bin/../lib/standard//string.nit:417,2--429:18)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*nb*/)==( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = TAG_Int((int)UNBOX_Float( self));
+    variable1 = ((string___Int___to_s_t)CALL(variable1,COLOR_string___Object___to_s))(variable1) /*Int::to_s*/;
+    goto return_label52;
+  }
+  variable2 = TAG_Int((int)UNBOX_Float( self));
+  variable1 = variable2;
+  variable3 = BOX_Float(1.0);
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)>UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = BOX_Float(10.0);
+    variable3 = BOX_Float(UNBOX_Float( variable2 /*dec*/)*UNBOX_Float(variable3));
+    variable2 = variable3 /*dec=*/;
+    variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*nb*/;
+    continue_53: while(0);
+  }
+  break_53: while(0);
+  variable4 = BOX_Float((float)UNTAG_Int( variable1 /*i*/));
+  variable4 = BOX_Float(UNBOX_Float( self)-UNBOX_Float(variable4));
+  variable4 = BOX_Float(UNBOX_Float(variable4)*UNBOX_Float( variable2 /*dec*/));
+  variable4 = TAG_Int((int)UNBOX_Float(variable4));
+  variable3 = variable4;
+  variable4 = NEW_string___String___init(); /*new String*/
+  variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable6 = variable5;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+  variable7 =  variable1 /*i*/;
+  variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+  variable10 =  variable3 /*d*/;
+  variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+  variable1 = variable4;
+  goto return_label52;
+  return_label52: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___Char___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Char::to_s (bin/../lib/standard//string.nit:434,2--438:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___with_capacity( TAG_Int(1)); /*new String*/
+  variable0 = variable1;
+  ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/,  TAG_Int(0),  self) /*String::[]=*/;
+  variable0 =  variable0 /*s*/;
+  goto return_label54;
+  return_label54: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Collection___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string::Collection::to_s (bin/../lib/standard//string.nit:443,2--448:10)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_string___String___init(); /*new String*/
+  variable0 = variable1;
+  variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
+  while (true) { /*for*/
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable2)) break; /*for*/
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*e*/ ==  NIT_NULL /*null*/) || (( variable2 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))( variable2 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = ((string___Object___to_s_t)CALL( variable2 /*e*/,COLOR_string___Object___to_s))( variable2 /*e*/) /*Object::to_s*/;
+      ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable3) /*String::append*/;
+    }
+    continue_56: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
+  }
+  break_56: while(0);
+  variable0 =  variable0 /*s*/;
+  goto return_label55;
+  return_label55: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Collection___join(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::Collection::join (bin/../lib/standard//string.nit:451,2--471:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    goto return_label57;
+  }
+  variable2 = NEW_string___String___init(); /*new String*/
+  variable1 = variable2;
+  variable3 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
+  variable2 = variable3;
+  variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ ==  NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/;
+    ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
+  }
+  ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/;
+  while (true) { /*while*/
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable2 /*i*/) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/,  variable0 /*sep*/) /*String::append*/;
+    variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/;
+    variable3 = variable4 /*e=*/;
+    variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ ==  NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/;
+      ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/;
+    }
+    ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/;
+    continue_58: while(0);
+  }
+  break_58: while(0);
+  variable1 =  variable1 /*s*/;
+  goto return_label57;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string___Map___map_join(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::Map::map_join (bin/../lib/standard//string.nit:476,2--498:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Map::is_empty*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    goto return_label59;
+  }
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable2 = variable3;
+  variable4 = ((abstract_collection___Map___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Map::iterator*/;
+  variable3 = variable4;
+  variable5 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/;
+  variable4 = variable5;
+  variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*MapIterator::item*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ ==  NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 =  variable4 /*k*/;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+    variable12 =  variable1 /*couple_sep*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+    variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable14 = variable13;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+    variable15 =  variable5 /*e*/;
+    variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+    variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/;
+    ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/;
+  }
+  ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*MapIterator::next*/;
+  while (true) { /*while*/
+    variable6 = ((abstract_collection___Iterator___is_ok_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable3 /*i*/) /*MapIterator::is_ok*/;
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/,  variable0 /*sep*/) /*String::append*/;
+    variable6 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/;
+    variable4 = variable6 /*k=*/;
+    variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*MapIterator::item*/;
+    variable5 = variable6 /*e=*/;
+    variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ ==  NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 =  variable4 /*k*/;
+      variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+      variable12 =  variable1 /*couple_sep*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+      variable15 =  variable5 /*e*/;
+      variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/;
+      ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/;
+    }
+    ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*MapIterator::next*/;
+    continue_60: while(0);
+  }
+  break_60: while(0);
+  variable2 =  variable2 /*s*/;
+  goto return_label59;
+  return_label59: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string___NativeString_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::NativeString::[] (bin/../lib/standard//string.nit:508,2--26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( param0)]);
+}
+void string___NativeString_____braeq(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string::NativeString::[]= (bin/../lib/standard//string.nit:509,2--32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  UNBOX_NativeString( self)[UNTAG_Int( param0)]=UNTAG_Char( param1);
+  tracehead = trace.prev;
+  return;
+}
+void string___NativeString___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "string::NativeString::copy_to (bin/../lib/standard//string.nit:510,2--65)"};
+  trace.prev = tracehead; tracehead = &trace;
+  (void)memcpy(UNBOX_NativeString( param0)+UNTAG_Int( param3), UNBOX_NativeString( self)+UNTAG_Int( param2), UNTAG_Int( param1));
+  tracehead = trace.prev;
+  return;
+}
+val_t string___NativeString___cstring_length(val_t  self) {
+  struct trace_t trace = {NULL, "string::NativeString::cstring_length (bin/../lib/standard//string.nit:512,2--517:10)"};
+  val_t variable0;
+    val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable1 = TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( variable0 /*l*/)]);
+    variable1 = TAG_Bool((variable1)!=( TAG_Char('\0')));
+    if (!UNTAG_Bool(variable1)) break; /* while*/
+    variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*l*/;
+    continue_62: while(0);
+  }
+  break_62: while(0);
+  variable0 =  variable0 /*l*/;
+  goto return_label61;
+  return_label61: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___NativeString___atoi(val_t  self) {
+  struct trace_t trace = {NULL, "string::NativeString::atoi (bin/../lib/standard//string.nit:519,2--15)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(atoi(UNBOX_NativeString( self)));
+}
+val_t string___StringCapable___calloc_string(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::StringCapable::calloc_string (bin/../lib/standard//string.nit:524,2--54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeString((char*)malloc((UNTAG_Int( param0) * sizeof(char))));
+}
+val_t string___Sys___args(val_t  self) {
+  struct trace_t trace = {NULL, "string::Sys::args (bin/../lib/standard//string.nit:530,2--533:20)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*IndexedCollection::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    ((string___Sys___init_args_t)CALL( self,COLOR_string___Sys___init_args))( self) /*Sys::init_args*/;
+  }
+  variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/;
+  goto return_label63;
+  return_label63: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string___Sys___program_name(val_t  self) {
+  struct trace_t trace = {NULL, "string::Sys::program_name (bin/../lib/standard//string.nit:536,2--539:46)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string___Sys___native_argv_t)CALL( self,COLOR_string___Sys___native_argv))( self,  TAG_Int(0)) /*Sys::native_argv*/;
+  variable1 = NEW_string___String___from_cstring(variable0); /*new String*/
+  variable0 = variable1;
+  goto return_label64;
+  return_label64: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void string___Sys___init_args(val_t  self) {
+  struct trace_t trace = {NULL, "string::Sys::init_args (bin/../lib/standard//string.nit:542,2--552:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((string___Sys___native_argc_t)CALL( self,COLOR_string___Sys___native_argc))( self) /*Sys::native_argc*/;
+  variable0 = variable1;
+  variable2 = NEW_array___Array___with_capacity( TAG_Int(0)); /*new Array[String]*/
+  variable1 = variable2;
+  variable2 =  TAG_Int(1);
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int( variable0 /*argc*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = TAG_Int(UNTAG_Int( variable2 /*i*/)-UNTAG_Int( TAG_Int(1)));
+    variable4 = ((string___Sys___native_argv_t)CALL( self,COLOR_string___Sys___native_argv))( self,  variable2 /*i*/) /*Sys::native_argv*/;
+    variable5 = NEW_string___String___from_cstring(variable4); /*new String*/
+    variable4 = variable5;
+    ((array___Array_____braeq_t)CALL( variable1 /*args*/,COLOR_abstract_collection___Map_____braeq))( variable1 /*args*/, variable3, variable4) /*Array::[]=*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_66: while(0);
+  }
+  break_66: while(0);
+  ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/ =  variable1 /*args*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t string___Sys___native_argc(val_t  self) {
+  struct trace_t trace = {NULL, "string::Sys::native_argc (bin/../lib/standard//string.nit:555,2--71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(kernel_Sys_Sys_native_argc_0( self));
+}
+val_t string___Sys___native_argv(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string::Sys::native_argv (bin/../lib/standard//string.nit:557,2--88)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return BOX_NativeString(kernel_Sys_Sys_native_argv_1( self, UNTAG_Int( param0)));
+}
diff --git a/c_src/string._sep.h b/c_src/string._sep.h
new file mode 100644 (file)
index 0000000..c51fd6e
--- /dev/null
@@ -0,0 +1,191 @@
+#ifndef string__sep
+#define string__sep
+#include "array._sep.h"
+#include <nit_common.h>
+#include <string_nit.h>
+
+extern const classtable_elt_t VFT_String[];
+
+extern const classtable_elt_t VFT_NativeString[];
+struct TBOX_NativeString { const classtable_elt_t * vft; char * val;};
+val_t BOX_NativeString(char * val);
+#define UNBOX_NativeString(x) (((struct TBOX_NativeString *)(VAL2OBJ(x)))->val)
+
+extern const classtable_elt_t VFT_StringCapable[];
+extern const int SFT_string[];
+#define ID_String SFT_string[0]
+#define COLOR_String SFT_string[1]
+#define COLOR_string___String____items SFT_string[2]
+#define COLOR_string___String____capacity SFT_string[3]
+#define INIT_TABLE_POS_String SFT_string[4]
+#define COLOR_SUPER_string___String___append SFT_string[5]
+#define COLOR_string___String_____plus SFT_string[6]
+#define COLOR_string___String_____star SFT_string[7]
+#define COLOR_string___String___to_i SFT_string[8]
+#define COLOR_string___String___to_hex SFT_string[9]
+#define COLOR_string___String___a_to SFT_string[10]
+#define COLOR_string___String___to_cstring SFT_string[11]
+#define COLOR_string___String___substring SFT_string[12]
+#define COLOR_string___String___substring_from SFT_string[13]
+#define COLOR_string___String___has_substring SFT_string[14]
+#define COLOR_string___String___has_prefix SFT_string[15]
+#define COLOR_string___String___has_suffix SFT_string[16]
+#define COLOR_string___String___init SFT_string[17]
+#define COLOR_string___String___from SFT_string[18]
+#define COLOR_string___String___with_capacity SFT_string[19]
+#define COLOR_string___String___with_native SFT_string[20]
+#define COLOR_string___String___from_cstring SFT_string[21]
+#define COLOR_string___String___filled_with SFT_string[22]
+#define COLOR_string___String___to_upper SFT_string[23]
+#define COLOR_string___String___to_lower SFT_string[24]
+#define COLOR_string___String___items SFT_string[25]
+#define COLOR_string___String___capacity SFT_string[26]
+#define COLOR_string___Object___to_s SFT_string[27]
+#define COLOR_string___Object___inspect SFT_string[28]
+#define COLOR_string___Object___inspect_head SFT_string[29]
+#define COLOR_string___Object___args SFT_string[30]
+#define COLOR_string___Int___fill_string SFT_string[31]
+#define COLOR_string___Int___to_hex SFT_string[32]
+#define COLOR_string___Int___to_base SFT_string[33]
+#define COLOR_string___Float___to_precision SFT_string[34]
+#define COLOR_string___Collection___join SFT_string[35]
+#define COLOR_string___Map___map_join SFT_string[36]
+#define ID_NativeString SFT_string[37]
+#define COLOR_NativeString SFT_string[38]
+#define INIT_TABLE_POS_NativeString SFT_string[39]
+#define COLOR_string___NativeString_____bra SFT_string[40]
+#define COLOR_string___NativeString_____braeq SFT_string[41]
+#define COLOR_string___NativeString___copy_to SFT_string[42]
+#define COLOR_string___NativeString___cstring_length SFT_string[43]
+#define COLOR_string___NativeString___atoi SFT_string[44]
+#define ID_StringCapable SFT_string[45]
+#define COLOR_StringCapable SFT_string[46]
+#define INIT_TABLE_POS_StringCapable SFT_string[47]
+#define COLOR_string___StringCapable___calloc_string SFT_string[48]
+#define COLOR_string___Sys____args_cache SFT_string[49]
+#define COLOR_string___Sys___program_name SFT_string[50]
+#define COLOR_string___Sys___init_args SFT_string[51]
+#define COLOR_string___Sys___native_argc SFT_string[52]
+#define COLOR_string___Sys___native_argv SFT_string[53]
+typedef val_t (* string___String_____bra_t)(val_t  self, val_t  param0);
+val_t string___String_____bra(val_t  self, val_t  param0);
+typedef void (* string___String_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void string___String_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef void (* string___String___add_t)(val_t  self, val_t  param0);
+void string___String___add(val_t  self, val_t  param0);
+typedef void (* string___String___enlarge_t)(val_t  self, val_t  param0);
+void string___String___enlarge(val_t  self, val_t  param0);
+typedef void (* string___String___append_t)(val_t  self, val_t  param0);
+void string___String___append(val_t  self, val_t  param0);
+typedef val_t (* string___String_____plus_t)(val_t  self, val_t  param0);
+val_t string___String_____plus(val_t  self, val_t  param0);
+typedef val_t (* string___String_____star_t)(val_t  self, val_t  param0);
+val_t string___String_____star(val_t  self, val_t  param0);
+typedef val_t (* string___String___to_s_t)(val_t  self);
+val_t string___String___to_s(val_t  self);
+typedef val_t (* string___String___to_i_t)(val_t  self);
+val_t string___String___to_i(val_t  self);
+typedef val_t (* string___String___to_hex_t)(val_t  self);
+val_t string___String___to_hex(val_t  self);
+typedef val_t (* string___String___a_to_t)(val_t  self, val_t  param0);
+val_t string___String___a_to(val_t  self, val_t  param0);
+typedef val_t (* string___String___to_cstring_t)(val_t  self);
+val_t string___String___to_cstring(val_t  self);
+typedef val_t (* string___String___substring_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string___String___substring(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string___String___substring_from_t)(val_t  self, val_t  param0);
+val_t string___String___substring_from(val_t  self, val_t  param0);
+typedef val_t (* string___String___has_substring_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string___String___has_substring(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string___String___has_prefix_t)(val_t  self, val_t  param0);
+val_t string___String___has_prefix(val_t  self, val_t  param0);
+typedef val_t (* string___String___has_suffix_t)(val_t  self, val_t  param0);
+val_t string___String___has_suffix(val_t  self, val_t  param0);
+typedef val_t (* string___String_____l_t)(val_t  self, val_t  param0);
+val_t string___String_____l(val_t  self, val_t  param0);
+typedef void (* string___String___init_t)(val_t  self, int* init_table);
+void string___String___init(val_t  self, int* init_table);
+val_t NEW_string___String___init();
+typedef void (* string___String___from_t)(val_t  self, val_t  param0, int* init_table);
+void string___String___from(val_t  self, val_t  param0, int* init_table);
+val_t NEW_string___String___from(val_t  param0);
+typedef void (* string___String___with_capacity_t)(val_t  self, val_t  param0, int* init_table);
+void string___String___with_capacity(val_t  self, val_t  param0, int* init_table);
+val_t NEW_string___String___with_capacity(val_t  param0);
+typedef void (* string___String___with_native_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void string___String___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_string___String___with_native(val_t  param0, val_t  param1);
+typedef void (* string___String___from_cstring_t)(val_t  self, val_t  param0, int* init_table);
+void string___String___from_cstring(val_t  self, val_t  param0, int* init_table);
+val_t NEW_string___String___from_cstring(val_t  param0);
+typedef void (* string___String___filled_with_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void string___String___filled_with(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_string___String___filled_with(val_t  param0, val_t  param1);
+typedef void (* string___String___output_t)(val_t  self);
+void string___String___output(val_t  self);
+typedef val_t (* string___String_____eqeq_t)(val_t  self, val_t  param0);
+val_t string___String_____eqeq(val_t  self, val_t  param0);
+typedef val_t (* string___String___to_upper_t)(val_t  self);
+val_t string___String___to_upper(val_t  self);
+typedef val_t (* string___String___to_lower_t)(val_t  self);
+val_t string___String___to_lower(val_t  self);
+#define ATTR_string___String____items(recv) ATTR(recv, COLOR_string___String____items)
+typedef val_t (* string___String___items_t)(val_t  self);
+val_t string___String___items(val_t  self);
+#define ATTR_string___String____capacity(recv) ATTR(recv, COLOR_string___String____capacity)
+typedef val_t (* string___String___capacity_t)(val_t  self);
+val_t string___String___capacity(val_t  self);
+typedef val_t (* string___Object___to_s_t)(val_t  self);
+val_t string___Object___to_s(val_t  self);
+typedef val_t (* string___Object___inspect_t)(val_t  self);
+val_t string___Object___inspect(val_t  self);
+typedef val_t (* string___Object___inspect_head_t)(val_t  self);
+val_t string___Object___inspect_head(val_t  self);
+typedef val_t (* string___Object___args_t)(val_t  self);
+val_t string___Object___args(val_t  self);
+typedef val_t (* string___Bool___to_s_t)(val_t  self);
+val_t string___Bool___to_s(val_t  self);
+typedef void (* string___Int___fill_string_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+void string___Int___fill_string(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* string___Int___to_s_t)(val_t  self);
+val_t string___Int___to_s(val_t  self);
+typedef val_t (* string___Int___to_hex_t)(val_t  self);
+val_t string___Int___to_hex(val_t  self);
+typedef val_t (* string___Int___to_base_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string___Int___to_base(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string___Float___to_s_t)(val_t  self);
+val_t string___Float___to_s(val_t  self);
+typedef val_t (* string___Float___to_precision_t)(val_t  self, val_t  param0);
+val_t string___Float___to_precision(val_t  self, val_t  param0);
+typedef val_t (* string___Char___to_s_t)(val_t  self);
+val_t string___Char___to_s(val_t  self);
+typedef val_t (* string___Collection___to_s_t)(val_t  self);
+val_t string___Collection___to_s(val_t  self);
+typedef val_t (* string___Collection___join_t)(val_t  self, val_t  param0);
+val_t string___Collection___join(val_t  self, val_t  param0);
+typedef val_t (* string___Map___map_join_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string___Map___map_join(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string___NativeString_____bra_t)(val_t  self, val_t  param0);
+val_t string___NativeString_____bra(val_t  self, val_t  param0);
+typedef void (* string___NativeString_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void string___NativeString_____braeq(val_t  self, val_t  param0, val_t  param1);
+typedef void (* string___NativeString___copy_to_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void string___NativeString___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* string___NativeString___cstring_length_t)(val_t  self);
+val_t string___NativeString___cstring_length(val_t  self);
+typedef val_t (* string___NativeString___atoi_t)(val_t  self);
+val_t string___NativeString___atoi(val_t  self);
+typedef val_t (* string___StringCapable___calloc_string_t)(val_t  self, val_t  param0);
+val_t string___StringCapable___calloc_string(val_t  self, val_t  param0);
+#define ATTR_string___Sys____args_cache(recv) ATTR(recv, COLOR_string___Sys____args_cache)
+typedef val_t (* string___Sys___args_t)(val_t  self);
+val_t string___Sys___args(val_t  self);
+typedef val_t (* string___Sys___program_name_t)(val_t  self);
+val_t string___Sys___program_name(val_t  self);
+typedef void (* string___Sys___init_args_t)(val_t  self);
+void string___Sys___init_args(val_t  self);
+typedef val_t (* string___Sys___native_argc_t)(val_t  self);
+val_t string___Sys___native_argc(val_t  self);
+typedef val_t (* string___Sys___native_argv_t)(val_t  self, val_t  param0);
+val_t string___Sys___native_argv(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/string_search._sep.c b/c_src/string_search._sep.c
new file mode 100644 (file)
index 0000000..bf22411
--- /dev/null
@@ -0,0 +1,819 @@
+#include "string_search._sep.h"
+val_t string_search___Pattern___search_index_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::Pattern::search_index_in (bin/../lib/standard//string_search.nit:21,2--24:48)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method search_index_in called (bin/../lib/standard//string_search.nit:21,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t string_search___Pattern___search_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::Pattern::search_in (bin/../lib/standard//string_search.nit:26,2--28:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method search_in called (bin/../lib/standard//string_search.nit:26,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t string_search___Pattern___search_all_in(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::Pattern::search_all_in (bin/../lib/standard//string_search.nit:30,2--39:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[Match]*/
+  variable1 = variable2;
+  variable3 = ((string_search___Pattern___search_in_t)CALL( self,COLOR_string_search___Pattern___search_in))( self,  variable0 /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*match*/ ==  NIT_NULL /*null*/) || (( variable2 /*match*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*match*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*match*/,COLOR_kernel___Object_____eqeq))( variable2 /*match*/,  NIT_NULL /*null*/) /*Match::==*/)))))));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    ((array___AbstractArray___add_t)CALL( variable1 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res*/,  variable2 /*match*/) /*Array::add*/;
+    variable3 = ((string_search___Match___after_t)CALL( variable2 /*match*/,COLOR_string_search___Match___after))( variable2 /*match*/) /*Match::after*/;
+    variable3 = ((string_search___Pattern___search_in_t)CALL( self,COLOR_string_search___Pattern___search_in))( self,  variable0 /*s*/, variable3) /*Pattern::search_in*/;
+    variable2 = variable3 /*match=*/;
+    continue_1: while(0);
+  }
+  break_1: while(0);
+  variable1 =  variable1 /*res*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string_search___Pattern___split_in(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::Pattern::split_in (bin/../lib/standard//string_search.nit:42,2--57:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_array___Array___init(); /*new Array[Match]*/
+  variable1 = variable2;
+  variable2 =  TAG_Int(0);
+  variable4 = ((string_search___Pattern___search_in_t)CALL( self,COLOR_string_search___Pattern___search_in))( self,  variable0 /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
+  variable3 = variable4;
+  while (true) { /*while*/
+    variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*match*/ ==  NIT_NULL /*null*/) || (( variable3 /*match*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*match*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*match*/,COLOR_kernel___Object_____eqeq))( variable3 /*match*/,  NIT_NULL /*null*/) /*Match::==*/)))))));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable5 = ((string_search___Match___from_t)CALL( variable3 /*match*/,COLOR_string_search___Match___from))( variable3 /*match*/) /*Match::from*/;
+    variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( variable2 /*i*/));
+    variable4 = variable5;
+    variable5 = NEW_string_search___Match___init( variable0 /*s*/,  variable2 /*i*/,  variable4 /*len*/); /*new Match*/
+    ((array___AbstractArray___add_t)CALL( variable1 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res*/, variable5) /*Array::add*/;
+    variable5 = ((string_search___Match___after_t)CALL( variable3 /*match*/,COLOR_string_search___Match___after))( variable3 /*match*/) /*Match::after*/;
+    variable2 = variable5 /*i=*/;
+    variable5 = ((string_search___Pattern___search_in_t)CALL( self,COLOR_string_search___Pattern___search_in))( self,  variable0 /*s*/,  variable2 /*i*/) /*Pattern::search_in*/;
+    variable3 = variable5 /*match=*/;
+    continue_3: while(0);
+  }
+  break_3: while(0);
+  variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( variable2 /*i*/));
+  variable5 = NEW_string_search___Match___init( variable0 /*s*/,  variable2 /*i*/, variable4); /*new Match*/
+  variable4 = variable5;
+  ((array___AbstractArray___add_t)CALL( variable1 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res*/, variable4) /*Array::add*/;
+  variable1 =  variable1 /*res*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string_search___BM_Pattern___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::to_s (bin/../lib/standard//string_search.nit:67,2--33)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string_search___BM_Pattern___search_index_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::search_index_in (bin/../lib/standard//string_search.nit:69,2--93:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+      val_t variable7;
+        val_t variable8;
+      val_t variable9;
+      val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*from*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string_search.nit:72,3--18\n"); nit_exit(1);}
+  variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable2 = variable3;
+  variable4 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+  variable3 = variable4;
+  variable4 =  variable1 /*from*/;
+  while (true) { /*while*/
+    variable5 = TAG_Int(UNTAG_Int( variable2 /*n*/)-UNTAG_Int( variable3 /*m*/));
+    variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1)));
+    variable5 = TAG_Bool(UNTAG_Int( variable4 /*j*/)<UNTAG_Int(variable5));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable6 = TAG_Int(UNTAG_Int( variable3 /*m*/)-UNTAG_Int( TAG_Int(1)));
+    variable5 = variable6;
+    while (true) { /*while*/
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/;
+        variable7 = ((string___String_____bra_t)CALL(variable7,COLOR_abstract_collection___Map_____bra))(variable7,  variable5 /*i*/) /*String::[]*/;
+        variable8 = TAG_Int(UNTAG_Int( variable5 /*i*/)+UNTAG_Int( variable4 /*j*/));
+        variable8 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/, variable8) /*String::[]*/;
+        variable7 = TAG_Bool((variable7)==(variable8));
+      }
+      variable6 = variable7;
+      if (!UNTAG_Bool(variable6)) break; /* while*/
+      variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_7: while(0);
+    }
+    break_7: while(0);
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*i*/)<UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable2 =  variable4 /*j*/;
+      goto return_label5;
+    } else { /*if*/
+      variable7 = ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/;
+      variable8 =  variable5 /*i*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable10 = variable9;
+      if (UNTAG_Bool(variable10)) { /* and */
+        variable10 = variable7;
+        variable10 = ATTR_array___AbstractArray____length(variable10) /*Array::_length*/;
+        variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+      }
+      variable9 = variable10;
+      if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable9 = variable7;
+      variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
+      variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+      goto return_label8;
+      return_label8: while(false);
+      variable7 = variable9;
+      variable6 = variable7;
+      variable8 = TAG_Int(UNTAG_Int( variable5 /*i*/)+UNTAG_Int( variable4 /*j*/));
+      variable8 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/, variable8) /*String::[]*/;
+      variable8 = ((string_search___BM_Pattern___bc_t)CALL( self,COLOR_string_search___BM_Pattern___bc))( self, variable8) /*BM_Pattern::bc*/;
+      variable8 = TAG_Int(UNTAG_Int(variable8)-UNTAG_Int( variable3 /*m*/));
+      variable8 = TAG_Int(UNTAG_Int(variable8)+UNTAG_Int( TAG_Int(1)));
+      variable8 = TAG_Int(UNTAG_Int(variable8)+UNTAG_Int( variable5 /*i*/));
+      variable7 = variable8;
+      variable8 = TAG_Bool(UNTAG_Int( variable6 /*gs*/)>UNTAG_Int( variable7 /*bc*/));
+      if (UNTAG_Bool(variable8)) { /*if*/
+        variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int( variable6 /*gs*/)) /*j*/;
+      } else { /*if*/
+        variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int( variable7 /*bc*/)) /*j*/;
+      }
+    }
+    continue_6: while(0);
+  }
+  break_6: while(0);
+  variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable5;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___BM_Pattern___search_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::search_in (bin/../lib/standard//string_search.nit:96,2--103:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((string_search___BM_Pattern___search_index_in_t)CALL( self,COLOR_string_search___Pattern___search_index_in))( self,  variable0 /*s*/,  variable1 /*from*/) /*BM_Pattern::search_index_in*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*to*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable2 =  NIT_NULL /*null*/;
+    goto return_label9;
+  } else { /*if*/
+    variable3 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+    variable4 = NEW_string_search___Match___init( variable0 /*s*/,  variable2 /*to*/, variable3); /*new Match*/
+    variable3 = variable4;
+    variable2 = variable3;
+    goto return_label9;
+  }
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void string_search___BM_Pattern___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::init (bin/../lib/standard//string_search.nit:107,2--115:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_BM_Pattern].i]) return;
+  ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/ =  variable0 /*motif*/;
+  variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*motif*/,COLOR_abstract_collection___Collection___length))( variable0 /*motif*/) /*String::length*/;
+  ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/ = variable1;
+  variable1 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+  variable2 = NEW_array___Array___with_capacity(variable1); /*new Array[Int]*/
+  variable1 = variable2;
+  ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/ = variable1;
+  variable1 = NEW_array___ArrayMap___init(); /*new ArrayMap[Char, Int]*/
+  ATTR_string_search___BM_Pattern____bc_table( self) /*BM_Pattern::_bc_table*/ = variable1;
+  ((string_search___BM_Pattern___compute_gs_t)CALL( self,COLOR_string_search___BM_Pattern___compute_gs))( self) /*BM_Pattern::compute_gs*/;
+  ((string_search___BM_Pattern___compute_bc_t)CALL( self,COLOR_string_search___BM_Pattern___compute_bc))( self) /*BM_Pattern::compute_bc*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_BM_Pattern].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t string_search___BM_Pattern___bc(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::bc (bin/../lib/standard//string_search.nit:124,2--129:17)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_string_search___BM_Pattern____bc_table( self) /*BM_Pattern::_bc_table*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*e*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_string_search___BM_Pattern____bc_table( self) /*BM_Pattern::_bc_table*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*e*/) /*Map::[]*/;
+    goto return_label11;
+  } else { /*if*/
+    variable1 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+    goto return_label11;
+  }
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void string_search___BM_Pattern___compute_bc(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::compute_bc (bin/../lib/standard//string_search.nit:139,2--146:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/;
+  variable0 = variable1;
+  variable2 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+  variable1 = variable2;
+  variable2 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable3 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+    variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int(variable3));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ATTR_string_search___BM_Pattern____bc_table( self) /*BM_Pattern::_bc_table*/;
+    variable4 = ((string___String_____bra_t)CALL( variable0 /*x*/,COLOR_abstract_collection___Map_____bra))( variable0 /*x*/,  variable2 /*i*/) /*String::[]*/;
+    variable5 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( variable2 /*i*/));
+    variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
+    ((abstract_collection___Map_____braeq_t)CALL(variable3,COLOR_abstract_collection___Map_____braeq))(variable3, variable4, variable5) /*Map::[]=*/;
+    variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_13: while(0);
+  }
+  break_13: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t string_search___BM_Pattern___suffixes(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::suffixes (bin/../lib/standard//string_search.nit:150,2--170:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+    val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/;
+  variable0 = variable1;
+  variable2 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+  variable1 = variable2;
+  variable3 = NEW_array___Array___filled_with( variable1 /*m*/,  variable1 /*m*/); /*new Array[Int]*/
+  variable2 = variable3;
+  variable3 = TAG_Int((int)0) /*decl variable f*/;
+  variable5 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+  variable4 = variable5;
+  variable6 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(2)));
+  variable5 = variable6;
+  while (true) { /*while*/
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+    if (!UNTAG_Bool(variable6)) break; /* while*/
+    variable6 = TAG_Bool(UNTAG_Int( variable5 /*i*/)>UNTAG_Int( variable4 /*g*/));
+    variable7 = variable6;
+    if (UNTAG_Bool(variable7)) { /* and */
+      variable7 = TAG_Int(UNTAG_Int( variable5 /*i*/)+UNTAG_Int( variable1 /*m*/));
+      variable7 = TAG_Int(UNTAG_Int(variable7)-UNTAG_Int( TAG_Int(1)));
+      variable7 = TAG_Int(UNTAG_Int(variable7)-UNTAG_Int( variable3 /*f*/));
+      variable8 = variable7;
+      variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable10 = variable9;
+      if (UNTAG_Bool(variable10)) { /* and */
+        variable10 = ATTR_array___AbstractArray____length( variable2 /*suff*/) /*Array::_length*/;
+        variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+      }
+      variable9 = variable10;
+      if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable9 = ATTR_array___Array____items( variable2 /*suff*/) /*Array::_items*/;
+      variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+      goto return_label16;
+      return_label16: while(false);
+      variable7 = variable9;
+      variable8 = TAG_Int(UNTAG_Int( variable5 /*i*/)-UNTAG_Int( variable4 /*g*/));
+      variable7 = TAG_Bool(UNTAG_Int(variable7)<UNTAG_Int(variable8));
+    }
+    variable6 = variable7;
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = TAG_Int(UNTAG_Int( variable5 /*i*/)+UNTAG_Int( variable1 /*m*/));
+      variable6 = TAG_Int(UNTAG_Int(variable6)-UNTAG_Int( TAG_Int(1)));
+      variable6 = TAG_Int(UNTAG_Int(variable6)-UNTAG_Int( variable3 /*f*/));
+      variable7 = variable6;
+      variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable9 = variable8;
+      if (UNTAG_Bool(variable9)) { /* and */
+        variable9 = ATTR_array___AbstractArray____length( variable2 /*suff*/) /*Array::_length*/;
+        variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+      }
+      variable8 = variable9;
+      if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable8 = ATTR_array___Array____items( variable2 /*suff*/) /*Array::_items*/;
+      variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+      goto return_label17;
+      return_label17: while(false);
+      variable6 = variable8;
+      ((array___Array_____braeq_t)CALL( variable2 /*suff*/,COLOR_abstract_collection___Map_____braeq))( variable2 /*suff*/,  variable5 /*i*/, variable6) /*Array::[]=*/;
+    } else { /*if*/
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*i*/)<UNTAG_Int( variable4 /*g*/));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable4 =  variable5 /*i*/ /*g=*/;
+      }
+      variable3 =  variable5 /*i*/ /*f=*/;
+      while (true) { /*while*/
+        variable6 = TAG_Bool(UNTAG_Int( variable4 /*g*/)>=UNTAG_Int( TAG_Int(0)));
+        variable7 = variable6;
+        if (UNTAG_Bool(variable7)) { /* and */
+          variable7 = ((string___String_____bra_t)CALL( variable0 /*x*/,COLOR_abstract_collection___Map_____bra))( variable0 /*x*/,  variable4 /*g*/) /*String::[]*/;
+          variable8 = TAG_Int(UNTAG_Int( variable4 /*g*/)+UNTAG_Int( variable1 /*m*/));
+          variable8 = TAG_Int(UNTAG_Int(variable8)-UNTAG_Int( TAG_Int(1)));
+          variable8 = TAG_Int(UNTAG_Int(variable8)-UNTAG_Int( variable3 /*f*/));
+          variable8 = ((string___String_____bra_t)CALL( variable0 /*x*/,COLOR_abstract_collection___Map_____bra))( variable0 /*x*/, variable8) /*String::[]*/;
+          variable7 = TAG_Bool((variable7)==(variable8));
+        }
+        variable6 = variable7;
+        if (!UNTAG_Bool(variable6)) break; /* while*/
+        variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1))) /*g*/;
+        continue_18: while(0);
+      }
+      break_18: while(0);
+      variable6 = TAG_Int(UNTAG_Int( variable3 /*f*/)-UNTAG_Int( variable4 /*g*/));
+      ((array___Array_____braeq_t)CALL( variable2 /*suff*/,COLOR_abstract_collection___Map_____braeq))( variable2 /*suff*/,  variable5 /*i*/, variable6) /*Array::[]=*/;
+    }
+    variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_15: while(0);
+  }
+  break_15: while(0);
+  variable0 =  variable2 /*suff*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void string_search___BM_Pattern___compute_gs(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::BM_Pattern::compute_gs (bin/../lib/standard//string_search.nit:173,2--197:9)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  val_t variable5;
+    val_t variable6;
+      val_t variable7;
+      val_t variable8;
+    val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_string_search___BM_Pattern____motif( self) /*BM_Pattern::_motif*/;
+  variable0 = variable1;
+  variable2 = ATTR_string_search___BM_Pattern____length( self) /*BM_Pattern::_length*/;
+  variable1 = variable2;
+  variable3 = ((string_search___BM_Pattern___suffixes_t)CALL( self,COLOR_string_search___BM_Pattern___suffixes))( self) /*BM_Pattern::suffixes*/;
+  variable2 = variable3;
+  variable3 =  TAG_Int(0);
+  while (true) { /*while*/
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)<UNTAG_Int( variable1 /*m*/));
+    if (!UNTAG_Bool(variable4)) break; /* while*/
+    variable4 = ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/;
+    ((array___Array_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable3 /*i*/,  variable1 /*m*/) /*Array::[]=*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_20: while(0);
+  }
+  break_20: while(0);
+  variable4 =  TAG_Int(0);
+  variable5 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+  variable3 = variable5 /*i=*/;
+  while (true) { /*while*/
+    variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*i*/)>=UNTAG_Int(variable5));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable5 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+    variable5 = TAG_Bool(( variable3 /*i*/)==(variable5));
+    variable6 = variable5;
+    if (!UNTAG_Bool(variable6)) { /* or */
+      variable6 =  variable3 /*i*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable8 = variable7;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = ATTR_array___AbstractArray____length( variable2 /*suff*/) /*Array::_length*/;
+        variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+      }
+      variable7 = variable8;
+      if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable7 = ATTR_array___Array____items( variable2 /*suff*/) /*Array::_items*/;
+      variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+      goto return_label22;
+      return_label22: while(false);
+      variable6 = variable7;
+      variable7 = TAG_Int(UNTAG_Int( variable3 /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable6 = TAG_Bool((variable6)==(variable7));
+    }
+    variable5 = variable6;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      while (true) { /*while*/
+        variable5 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+        variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( variable3 /*i*/));
+        variable5 = TAG_Bool(UNTAG_Int( variable4 /*j*/)<UNTAG_Int(variable5));
+        if (!UNTAG_Bool(variable5)) break; /* while*/
+        variable5 = ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/;
+        variable6 =  variable4 /*j*/;
+        variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable8 = variable7;
+        if (UNTAG_Bool(variable8)) { /* and */
+          variable8 = variable5;
+          variable8 = ATTR_array___AbstractArray____length(variable8) /*Array::_length*/;
+          variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+        }
+        variable7 = variable8;
+        if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable7 = variable5;
+        variable7 = ATTR_array___Array____items(variable7) /*Array::_items*/;
+        variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+        goto return_label24;
+        return_label24: while(false);
+        variable5 = variable7;
+        variable5 = TAG_Bool((variable5)==( variable1 /*m*/));
+        if (UNTAG_Bool(variable5)) { /*if*/
+          variable5 = ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/;
+          variable6 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+          variable6 = TAG_Int(UNTAG_Int(variable6)-UNTAG_Int( variable3 /*i*/));
+          ((array___Array_____braeq_t)CALL(variable5,COLOR_abstract_collection___Map_____braeq))(variable5,  variable4 /*j*/, variable6) /*Array::[]=*/;
+        }
+        variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int( TAG_Int(1))) /*j*/;
+        continue_23: while(0);
+      }
+      break_23: while(0);
+    }
+    variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_21: while(0);
+  }
+  break_21: while(0);
+  variable3 =  TAG_Int(0) /*i=*/;
+  while (true) { /*while*/
+    variable5 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+    variable5 = TAG_Bool(UNTAG_Int( variable3 /*i*/)<UNTAG_Int(variable5));
+    if (!UNTAG_Bool(variable5)) break; /* while*/
+    variable5 = ATTR_string_search___BM_Pattern____gs( self) /*BM_Pattern::_gs*/;
+    variable6 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+    variable7 =  variable3 /*i*/;
+    variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    variable9 = variable8;
+    if (UNTAG_Bool(variable9)) { /* and */
+      variable9 = ATTR_array___AbstractArray____length( variable2 /*suff*/) /*Array::_length*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+    }
+    variable8 = variable9;
+    if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+    variable8 = ATTR_array___Array____items( variable2 /*suff*/) /*Array::_items*/;
+    variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
+    goto return_label26;
+    return_label26: while(false);
+    variable7 = variable8;
+    variable6 = TAG_Int(UNTAG_Int(variable6)-UNTAG_Int(variable7));
+    variable7 = TAG_Int(UNTAG_Int( variable1 /*m*/)-UNTAG_Int( TAG_Int(1)));
+    variable7 = TAG_Int(UNTAG_Int(variable7)-UNTAG_Int( variable3 /*i*/));
+    ((array___Array_____braeq_t)CALL(variable5,COLOR_abstract_collection___Map_____braeq))(variable5, variable6, variable7) /*Array::[]=*/;
+    variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_25: while(0);
+  }
+  break_25: while(0);
+  tracehead = trace.prev;
+  return;
+}
+val_t string_search___Match___string(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::Match::string (bin/../lib/standard//string_search.nit:204,2--205:30)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_string_search___Match____string( self) /*Match::_string*/;
+}
+val_t string_search___Match___from(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::Match::from (bin/../lib/standard//string_search.nit:207,2--208:25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_string_search___Match____from( self) /*Match::_from*/;
+}
+val_t string_search___Match___length(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::Match::length (bin/../lib/standard//string_search.nit:210,2--211:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_string_search___Match____length( self) /*Match::_length*/;
+}
+val_t string_search___Match___after(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::Match::after (bin/../lib/standard//string_search.nit:213,2--215:42)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_string_search___Match____from( self) /*Match::_from*/;
+  variable1 = ATTR_string_search___Match____length( self) /*Match::_length*/;
+  variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int(variable1));
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t string_search___Match___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::Match::to_s (bin/../lib/standard//string_search.nit:217,2--218:59)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_string_search___Match____string( self) /*Match::_string*/;
+  variable1 = ATTR_string_search___Match____from( self) /*Match::_from*/;
+  variable2 = ATTR_string_search___Match____length( self) /*Match::_length*/;
+  variable0 = ((string___String___substring_t)CALL(variable0,COLOR_string___String___substring))(variable0, variable1, variable2) /*String::substring*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void string_search___Match___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "string_search::Match::init (bin/../lib/standard//string_search.nit:220,2--229:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Match].i]) return;
+  variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*s*/ ==  NIT_NULL /*null*/) || (( variable0 /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))( variable0 /*s*/,  NIT_NULL /*null*/) /*String::==*/)))));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'non_null_string'  failed: bin/../lib/standard//string_search.nit:223,3--35\n"); nit_exit(1);}
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*len*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'positive_length'  failed: bin/../lib/standard//string_search.nit:224,3--34\n"); nit_exit(1);}
+  variable3 = TAG_Bool(UNTAG_Int( variable1 /*f*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'valid_from'  failed: bin/../lib/standard//string_search.nit:225,3--27\n"); nit_exit(1);}
+  variable3 = TAG_Int(UNTAG_Int( variable1 /*f*/)+UNTAG_Int( variable2 /*len*/));
+  variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable3 = TAG_Bool(UNTAG_Int(variable3)<=UNTAG_Int(variable4));
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert 'valid_after'  failed: bin/../lib/standard//string_search.nit:226,3--41\n"); nit_exit(1);}
+  ATTR_string_search___Match____string( self) /*Match::_string*/ =  variable0 /*s*/;
+  ATTR_string_search___Match____from( self) /*Match::_from*/ =  variable1 /*f*/;
+  ATTR_string_search___Match____length( self) /*Match::_length*/ =  variable2 /*len*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Match].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t string_search___Char___search_index_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::Char::search_index_in (bin/../lib/standard//string_search.nit:235,2--242:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*from*/)<UNTAG_Int( variable2 /*stop*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable3 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/,  variable1 /*from*/) /*String::[]*/;
+    variable3 = TAG_Bool((variable3)==( self));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable2 =  variable1 /*from*/;
+      goto return_label30;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*from*/;
+    continue_31: while(0);
+  }
+  break_31: while(0);
+  variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  goto return_label30;
+  return_label30: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___Char___search_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::Char::search_in (bin/../lib/standard//string_search.nit:245,2--251:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((string_search___Char___search_index_in_t)CALL( self,COLOR_string_search___Pattern___search_index_in))( self,  variable0 /*s*/,  variable1 /*from*/) /*Char::search_index_in*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*pos*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable2 =  NIT_NULL /*null*/;
+    goto return_label32;
+  } else { /*if*/
+    variable3 = NEW_string_search___Match___init( variable0 /*s*/,  variable2 /*pos*/,  TAG_Int(1)); /*new Match*/
+    variable2 = variable3;
+    goto return_label32;
+  }
+  return_label32: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___String___search_index_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::String::search_index_in (bin/../lib/standard//string_search.nit:258,2--270:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+        val_t variable6;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(UNTAG_Int( variable1 /*from*/)>=UNTAG_Int( TAG_Int(0)));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: bin/../lib/standard//string_search.nit:260,3--18\n"); nit_exit(1);}
+  variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*String::length*/;
+  variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+  variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int(variable4));
+  variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  while (true) { /*while*/
+    variable3 = TAG_Bool(UNTAG_Int( variable1 /*from*/)<UNTAG_Int( variable2 /*stop*/));
+    if (!UNTAG_Bool(variable3)) break; /* while*/
+    variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1)));
+    variable3 = variable4;
+    while (true) { /*while*/
+      variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)>=UNTAG_Int( TAG_Int(0)));
+      variable5 = variable4;
+      if (UNTAG_Bool(variable5)) { /* and */
+        variable5 = ((string___String_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self,  variable3 /*i*/) /*String::[]*/;
+        variable6 = TAG_Int(UNTAG_Int( variable3 /*i*/)+UNTAG_Int( variable1 /*from*/));
+        variable6 = ((string___String_____bra_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____bra))( variable0 /*s*/, variable6) /*String::[]*/;
+        variable5 = TAG_Bool((variable5)==(variable6));
+      }
+      variable4 = variable5;
+      if (!UNTAG_Bool(variable4)) break; /* while*/
+      variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*i*/;
+      continue_35: while(0);
+    }
+    break_35: while(0);
+    variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)<UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable2 =  variable1 /*from*/;
+      goto return_label33;
+    }
+    variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*from*/;
+    continue_34: while(0);
+  }
+  break_34: while(0);
+  variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  variable2 = variable3;
+  goto return_label33;
+  return_label33: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___String___search_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::String::search_in (bin/../lib/standard//string_search.nit:273,2--279:34)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable3 = ((string_search___String___search_index_in_t)CALL( self,COLOR_string_search___Pattern___search_index_in))( self,  variable0 /*s*/,  variable1 /*from*/) /*String::search_index_in*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(UNTAG_Int( variable2 /*pos*/)<UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable2 =  NIT_NULL /*null*/;
+    goto return_label36;
+  } else { /*if*/
+    variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*String::length*/;
+    variable4 = NEW_string_search___Match___init( variable0 /*s*/,  variable2 /*pos*/, variable3); /*new Match*/
+    variable3 = variable4;
+    variable2 = variable3;
+    goto return_label36;
+  }
+  return_label36: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___String___search(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::String::search (bin/../lib/standard//string_search.nit:283,2--284:61)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string_search___Pattern___search_in_t)CALL( variable0 /*p*/,COLOR_string_search___Pattern___search_in))( variable0 /*p*/,  self,  TAG_Int(0)) /*Pattern::search_in*/;
+  goto return_label37;
+  return_label37: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string_search___String___search_from(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "string_search::String::search_from (bin/../lib/standard//string_search.nit:286,2--289:80)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((string_search___Pattern___search_in_t)CALL( variable0 /*p*/,COLOR_string_search___Pattern___search_in))( variable0 /*p*/,  self,  variable1 /*from*/) /*Pattern::search_in*/;
+  goto return_label38;
+  return_label38: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+val_t string_search___String___search_all(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::String::search_all (bin/../lib/standard//string_search.nit:291,2--298:73)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((string_search___Pattern___search_all_in_t)CALL( variable0 /*p*/,COLOR_string_search___Pattern___search_all_in))( variable0 /*p*/,  self) /*Pattern::search_all_in*/;
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string_search___String___split_with(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "string_search::String::split_with (bin/../lib/standard//string_search.nit:300,2--307:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((string_search___Pattern___split_in_t)CALL( variable0 /*p*/,COLOR_string_search___Pattern___split_in))( variable0 /*p*/,  self) /*Pattern::split_in*/;
+  variable1 = variable2;
+  variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*matches*/,COLOR_abstract_collection___Collection___length))( variable1 /*matches*/) /*Array::length*/;
+  variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[String]*/
+  variable3 = variable4;
+  variable2 = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*matches*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*matches*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = ((string_search___Match___to_s_t)CALL( variable4 /*m*/,COLOR_string___Object___to_s))( variable4 /*m*/) /*Match::to_s*/;
+    ((array___AbstractArray___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/, variable5) /*Array::add*/;
+    continue_41: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_41: while(0);
+  variable1 =  variable2 /*res*/;
+  goto return_label40;
+  return_label40: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t string_search___String___split(val_t  self) {
+  struct trace_t trace = {NULL, "string_search::String::split (bin/../lib/standard//string_search.nit:310,2--312:52)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((string_search___String___split_with_t)CALL( self,COLOR_string_search___String___split_with))( self,  TAG_Char('\n')) /*String::split_with*/;
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
diff --git a/c_src/string_search._sep.h b/c_src/string_search._sep.h
new file mode 100644 (file)
index 0000000..df587f8
--- /dev/null
@@ -0,0 +1,110 @@
+#ifndef string_search__sep
+#define string_search__sep
+#include "string._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Pattern[];
+
+extern const classtable_elt_t VFT_BM_Pattern[];
+
+extern const classtable_elt_t VFT_Match[];
+extern const int SFT_string_search[];
+#define ID_Pattern SFT_string_search[0]
+#define COLOR_Pattern SFT_string_search[1]
+#define INIT_TABLE_POS_Pattern SFT_string_search[2]
+#define COLOR_string_search___Pattern___search_index_in SFT_string_search[3]
+#define COLOR_string_search___Pattern___search_in SFT_string_search[4]
+#define COLOR_string_search___Pattern___search_all_in SFT_string_search[5]
+#define COLOR_string_search___Pattern___split_in SFT_string_search[6]
+#define ID_BM_Pattern SFT_string_search[7]
+#define COLOR_BM_Pattern SFT_string_search[8]
+#define COLOR_string_search___BM_Pattern____motif SFT_string_search[9]
+#define COLOR_string_search___BM_Pattern____length SFT_string_search[10]
+#define COLOR_string_search___BM_Pattern____gs SFT_string_search[11]
+#define COLOR_string_search___BM_Pattern____bc_table SFT_string_search[12]
+#define INIT_TABLE_POS_BM_Pattern SFT_string_search[13]
+#define COLOR_string_search___BM_Pattern___init SFT_string_search[14]
+#define COLOR_string_search___BM_Pattern___bc SFT_string_search[15]
+#define COLOR_string_search___BM_Pattern___compute_bc SFT_string_search[16]
+#define COLOR_string_search___BM_Pattern___suffixes SFT_string_search[17]
+#define COLOR_string_search___BM_Pattern___compute_gs SFT_string_search[18]
+#define ID_Match SFT_string_search[19]
+#define COLOR_Match SFT_string_search[20]
+#define COLOR_string_search___Match____string SFT_string_search[21]
+#define COLOR_string_search___Match____from SFT_string_search[22]
+#define COLOR_string_search___Match____length SFT_string_search[23]
+#define INIT_TABLE_POS_Match SFT_string_search[24]
+#define COLOR_string_search___Match___string SFT_string_search[25]
+#define COLOR_string_search___Match___from SFT_string_search[26]
+#define COLOR_string_search___Match___length SFT_string_search[27]
+#define COLOR_string_search___Match___after SFT_string_search[28]
+#define COLOR_string_search___Match___init SFT_string_search[29]
+#define COLOR_string_search___String___search SFT_string_search[30]
+#define COLOR_string_search___String___search_from SFT_string_search[31]
+#define COLOR_string_search___String___search_all SFT_string_search[32]
+#define COLOR_string_search___String___split_with SFT_string_search[33]
+#define COLOR_string_search___String___split SFT_string_search[34]
+typedef val_t (* string_search___Pattern___search_index_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___Pattern___search_index_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___Pattern___search_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___Pattern___search_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___Pattern___search_all_in_t)(val_t  self, val_t  param0);
+val_t string_search___Pattern___search_all_in(val_t  self, val_t  param0);
+typedef val_t (* string_search___Pattern___split_in_t)(val_t  self, val_t  param0);
+val_t string_search___Pattern___split_in(val_t  self, val_t  param0);
+typedef val_t (* string_search___BM_Pattern___to_s_t)(val_t  self);
+val_t string_search___BM_Pattern___to_s(val_t  self);
+typedef val_t (* string_search___BM_Pattern___search_index_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___BM_Pattern___search_index_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___BM_Pattern___search_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___BM_Pattern___search_in(val_t  self, val_t  param0, val_t  param1);
+typedef void (* string_search___BM_Pattern___init_t)(val_t  self, val_t  param0, int* init_table);
+void string_search___BM_Pattern___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_string_search___BM_Pattern___init(val_t  param0);
+#define ATTR_string_search___BM_Pattern____motif(recv) ATTR(recv, COLOR_string_search___BM_Pattern____motif)
+#define ATTR_string_search___BM_Pattern____length(recv) ATTR(recv, COLOR_string_search___BM_Pattern____length)
+typedef val_t (* string_search___BM_Pattern___bc_t)(val_t  self, val_t  param0);
+val_t string_search___BM_Pattern___bc(val_t  self, val_t  param0);
+#define ATTR_string_search___BM_Pattern____gs(recv) ATTR(recv, COLOR_string_search___BM_Pattern____gs)
+#define ATTR_string_search___BM_Pattern____bc_table(recv) ATTR(recv, COLOR_string_search___BM_Pattern____bc_table)
+typedef void (* string_search___BM_Pattern___compute_bc_t)(val_t  self);
+void string_search___BM_Pattern___compute_bc(val_t  self);
+typedef val_t (* string_search___BM_Pattern___suffixes_t)(val_t  self);
+val_t string_search___BM_Pattern___suffixes(val_t  self);
+typedef void (* string_search___BM_Pattern___compute_gs_t)(val_t  self);
+void string_search___BM_Pattern___compute_gs(val_t  self);
+#define ATTR_string_search___Match____string(recv) ATTR(recv, COLOR_string_search___Match____string)
+typedef val_t (* string_search___Match___string_t)(val_t  self);
+val_t string_search___Match___string(val_t  self);
+#define ATTR_string_search___Match____from(recv) ATTR(recv, COLOR_string_search___Match____from)
+typedef val_t (* string_search___Match___from_t)(val_t  self);
+val_t string_search___Match___from(val_t  self);
+#define ATTR_string_search___Match____length(recv) ATTR(recv, COLOR_string_search___Match____length)
+typedef val_t (* string_search___Match___length_t)(val_t  self);
+val_t string_search___Match___length(val_t  self);
+typedef val_t (* string_search___Match___after_t)(val_t  self);
+val_t string_search___Match___after(val_t  self);
+typedef val_t (* string_search___Match___to_s_t)(val_t  self);
+val_t string_search___Match___to_s(val_t  self);
+typedef void (* string_search___Match___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void string_search___Match___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_string_search___Match___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* string_search___Char___search_index_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___Char___search_index_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___Char___search_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___Char___search_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___String___search_index_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___String___search_index_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___String___search_in_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___String___search_in(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___String___search_t)(val_t  self, val_t  param0);
+val_t string_search___String___search(val_t  self, val_t  param0);
+typedef val_t (* string_search___String___search_from_t)(val_t  self, val_t  param0, val_t  param1);
+val_t string_search___String___search_from(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* string_search___String___search_all_t)(val_t  self, val_t  param0);
+val_t string_search___String___search_all(val_t  self, val_t  param0);
+typedef val_t (* string_search___String___split_with_t)(val_t  self, val_t  param0);
+val_t string_search___String___split_with(val_t  self, val_t  param0);
+typedef val_t (* string_search___String___split_t)(val_t  self);
+val_t string_search___String___split(val_t  self);
+#endif
diff --git a/c_src/symbol._sep.c b/c_src/symbol._sep.c
new file mode 100644 (file)
index 0000000..c02b840
--- /dev/null
@@ -0,0 +1,53 @@
+#include "symbol._sep.h"
+val_t symbol___String___to_symbol(val_t  self) {
+  struct trace_t trace = {NULL, "symbol::String::to_symbol (bin/../lib/standard//symbol.nit:20,2--29:16)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_1; static int once_bool_variable1_1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable1_1) variable1 = once_value_variable1_1;
+  else {
+    variable1 = NEW_hash___HashMap___init(); /*new HashMap[String, Symbol]*/
+    once_value_variable1_1 = variable1;
+    once_bool_variable1_1 = true;
+  }
+  variable0 = variable1;
+  variable1 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable0 /*symbol_dictionary*/,COLOR_abstract_collection___Map___has_key))( variable0 /*symbol_dictionary*/,  self) /*HashMap::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable0 /*symbol_dictionary*/,COLOR_abstract_collection___Map_____bra))( variable0 /*symbol_dictionary*/,  self) /*HashMap::[]*/;
+    variable0 = variable1;
+    goto return_label0;
+  } else { /*if*/
+    variable2 = NEW_symbol___Symbol___init( self); /*new Symbol*/
+    variable1 = variable2;
+    ((hash___HashMap_____braeq_t)CALL( variable0 /*symbol_dictionary*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*symbol_dictionary*/,  self,  variable1 /*symbol*/) /*HashMap::[]=*/;
+    variable0 =  variable1 /*symbol*/;
+    goto return_label0;
+  }
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t symbol___Symbol___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "symbol::Symbol::to_s (bin/../lib/standard//symbol.nit:37,2--39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_symbol___Symbol____string( self) /*Symbol::_string*/;
+  variable0 = ((string___String___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*String::to_s*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void symbol___Symbol___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "symbol::Symbol::init (bin/../lib/standard//symbol.nit:39,2--40:39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Symbol].i]) return;
+  ATTR_symbol___Symbol____string( self) /*Symbol::_string*/ =  variable0 /*s*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Symbol].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/symbol._sep.h b/c_src/symbol._sep.h
new file mode 100644 (file)
index 0000000..dc5ef62
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef symbol__sep
+#define symbol__sep
+#include "hash._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_Symbol[];
+extern const int SFT_symbol[];
+#define COLOR_symbol___String___to_symbol SFT_symbol[0]
+#define ID_Symbol SFT_symbol[1]
+#define COLOR_Symbol SFT_symbol[2]
+#define COLOR_symbol___Symbol____string SFT_symbol[3]
+#define INIT_TABLE_POS_Symbol SFT_symbol[4]
+#define COLOR_symbol___Symbol___init SFT_symbol[5]
+typedef val_t (* symbol___String___to_symbol_t)(val_t  self);
+val_t symbol___String___to_symbol(val_t  self);
+#define ATTR_symbol___Symbol____string(recv) ATTR(recv, COLOR_symbol___Symbol____string)
+typedef val_t (* symbol___Symbol___to_s_t)(val_t  self);
+val_t symbol___Symbol___to_s(val_t  self);
+typedef void (* symbol___Symbol___init_t)(val_t  self, val_t  param0, int* init_table);
+void symbol___Symbol___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_symbol___Symbol___init(val_t  param0);
+#endif
diff --git a/c_src/syntax._sep.c b/c_src/syntax._sep.c
new file mode 100644 (file)
index 0000000..a19a30c
--- /dev/null
@@ -0,0 +1,154 @@
+#include "syntax._sep.h"
+val_t syntax___SrcModuleLoader___file_type(val_t  self) {
+  struct trace_t trace = {NULL, "syntax::SrcModuleLoader::file_type (src/syntax//syntax.nit:31,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_string___String___with_native(BOX_NativeString("nit"), TAG_Int(3)); /*new String*/
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax___SrcModuleLoader___parse_file(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4) {
+  struct trace_t trace = {NULL, "syntax::SrcModuleLoader::parse_file (src/syntax//syntax.nit:33,2--49:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+    val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable6 = NEW_lexer___Lexer___init( variable1 /*file*/,  variable2 /*filename*/); /*new Lexer*/
+  variable5 = variable6;
+  variable7 = NEW_parser___Parser___init( variable5 /*lexer*/); /*new Parser*/
+  variable6 = variable7;
+  variable8 = ((parser___Parser___parse_t)CALL( variable6 /*parser*/,COLOR_parser___Parser___parse))( variable6 /*parser*/) /*Parser::parse*/;
+  variable7 = variable8;
+  variable8 = ((parser_nodes___Start___n_base_t)CALL( variable7 /*node_tree*/,COLOR_parser_nodes___Start___n_base))( variable7 /*node_tree*/) /*Start::n_base*/;
+  variable8 = TAG_Bool((variable8 ==  NIT_NULL /*null*/) || ((variable8 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable8, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable8,COLOR_kernel___Object_____eqeq))(variable8,  NIT_NULL /*null*/) /*PModule::==*/)))));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable9 = ((parser_nodes___Start___n_eof_t)CALL( variable7 /*node_tree*/,COLOR_parser_nodes___Start___n_eof))( variable7 /*node_tree*/) /*Start::n_eof*/;
+    variable8 = variable9;
+    variable9 = TAG_Bool(( variable8 /*err*/==NIT_NULL) || VAL_ISA( variable8 /*err*/, COLOR_PError, ID_PError)) /*cast PError*/;
+    if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/syntax//syntax.nit:40,4--24\n"); nit_exit(1);}
+    variable9 = NEW_string___String___init(); /*new String*/
+    variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable11) /*String::append*/;
+    variable12 = ((parser_prod___Token___locate_t)CALL( variable8 /*err*/,COLOR_parser_prod___PNode___locate))( variable8 /*err*/) /*PError::locate*/;
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable15) /*String::append*/;
+    variable16 = ((lexer___PError___message_t)CALL( variable8 /*err*/,COLOR_lexer___PError___message))( variable8 /*err*/) /*PError::message*/;
+    variable17 = variable16;
+    ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable17) /*String::append*/;
+    variable18 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable19 = variable18;
+    ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable19) /*String::append*/;
+    ((mmloader___ToolContext___error_t)CALL( variable0 /*context*/,COLOR_mmloader___ToolContext___error))( variable0 /*context*/, variable9) /*ToolContext::error*/;
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  variable9 = ((parser_nodes___Start___n_base_t)CALL( variable7 /*node_tree*/,COLOR_parser_nodes___Start___n_base))( variable7 /*node_tree*/) /*Start::n_base*/;
+  variable8 = variable9;
+  variable9 = TAG_Bool(( variable8 /*node_module*/==NIT_NULL) || VAL_ISA( variable8 /*node_module*/, COLOR_AModule, ID_AModule)) /*cast AModule*/;
+  if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert failed: src/syntax//syntax.nit:45,3--32\n"); nit_exit(1);}
+  variable10 = NEW_syntax_base___MMSrcModule___init( variable0 /*context*/,  variable8 /*node_module*/,  variable4 /*dir*/,  variable3 /*name*/); /*new MMSrcModule*/
+  variable9 = variable10;
+  variable5 =  variable9 /*module*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable5;
+}
+void syntax___SrcModuleLoader___process_metamodel(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "syntax::SrcModuleLoader::process_metamodel (src/syntax//syntax.nit:52,2--55:31)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  ((syntax___MMSrcModule___process_supermodules_t)CALL( variable1 /*module*/,COLOR_syntax___MMSrcModule___process_supermodules))( variable1 /*module*/,  variable0 /*context*/) /*MMSrcModule::process_supermodules*/;
+  ((syntax___MMSrcModule___process_syntax_t)CALL( variable1 /*module*/,COLOR_syntax___MMSrcModule___process_syntax))( variable1 /*module*/,  variable0 /*context*/) /*MMSrcModule::process_syntax*/;
+  tracehead = trace.prev;
+  return;
+}
+void syntax___SrcModuleLoader___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "syntax::SrcModuleLoader::init (src/syntax//syntax.nit:58,2--5)"};
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SrcModuleLoader].i]) return;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SrcModuleLoader].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax___MMContext___tc(val_t  self) {
+  struct trace_t trace = {NULL, "syntax::MMContext::tc (src/syntax//syntax.nit:62,2--63:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax___MMContext____tc( self) /*MMContext::_tc*/;
+}
+void syntax___MMContext___tc__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax::MMContext::tc= (src/syntax//syntax.nit:62,2--63:47)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax___MMContext____tc( self) /*MMContext::_tc*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void syntax___MMSrcModule___process_supermodules(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax::MMSrcModule::process_supermodules (src/syntax//syntax.nit:67,2--70:36)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
+  ((mmbuilder___AModule___import_super_modules_t)CALL(variable1,COLOR_mmbuilder___AModule___import_super_modules))(variable1,  variable0 /*tc*/,  self) /*AModule::import_super_modules*/;
+  tracehead = trace.prev;
+  return;
+}
+void syntax___MMSrcModule___process_syntax(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax::MMSrcModule::process_syntax (src/syntax//syntax.nit:74,2--85:35)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((mmbuilder___MMSrcModule___do_mmbuilder_t)CALL( self,COLOR_mmbuilder___MMSrcModule___do_mmbuilder))( self,  variable0 /*tc*/) /*MMSrcModule::do_mmbuilder*/;
+  variable1 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  ((control_flow___MMSrcModule___do_control_flow_t)CALL( self,COLOR_control_flow___MMSrcModule___do_control_flow))( self,  variable0 /*tc*/) /*MMSrcModule::do_control_flow*/;
+  variable1 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  ((typing___MMSrcModule___do_typing_t)CALL( self,COLOR_typing___MMSrcModule___do_typing))( self,  variable0 /*tc*/) /*MMSrcModule::do_typing*/;
+  variable1 = ((mmloader___ToolContext___error_count_t)CALL( variable0 /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable0 /*tc*/) /*ToolContext::error_count*/;
+  variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    exit(UNTAG_Int( TAG_Int(1)));
+  }
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/syntax._sep.h b/c_src/syntax._sep.h
new file mode 100644 (file)
index 0000000..b0354ba
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef syntax__sep
+#define syntax__sep
+#include "mmbuilder._sep.h"
+#include "control_flow._sep.h"
+#include "typing._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_SrcModuleLoader[];
+extern const int SFT_syntax[];
+#define ID_SrcModuleLoader SFT_syntax[0]
+#define COLOR_SrcModuleLoader SFT_syntax[1]
+#define INIT_TABLE_POS_SrcModuleLoader SFT_syntax[2]
+#define COLOR_syntax___SrcModuleLoader___init SFT_syntax[3]
+#define COLOR_syntax___MMContext____tc SFT_syntax[4]
+#define COLOR_syntax___MMContext___tc SFT_syntax[5]
+#define COLOR_syntax___MMContext___tc__eq SFT_syntax[6]
+#define COLOR_syntax___MMSrcModule___process_supermodules SFT_syntax[7]
+#define COLOR_syntax___MMSrcModule___process_syntax SFT_syntax[8]
+typedef val_t (* syntax___SrcModuleLoader___file_type_t)(val_t  self);
+val_t syntax___SrcModuleLoader___file_type(val_t  self);
+typedef val_t (* syntax___SrcModuleLoader___parse_file_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+val_t syntax___SrcModuleLoader___parse_file(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4);
+typedef void (* syntax___SrcModuleLoader___process_metamodel_t)(val_t  self, val_t  param0, val_t  param1);
+void syntax___SrcModuleLoader___process_metamodel(val_t  self, val_t  param0, val_t  param1);
+typedef void (* syntax___SrcModuleLoader___init_t)(val_t  self, int* init_table);
+void syntax___SrcModuleLoader___init(val_t  self, int* init_table);
+val_t NEW_syntax___SrcModuleLoader___init();
+#define ATTR_syntax___MMContext____tc(recv) ATTR(recv, COLOR_syntax___MMContext____tc)
+typedef val_t (* syntax___MMContext___tc_t)(val_t  self);
+val_t syntax___MMContext___tc(val_t  self);
+typedef void (* syntax___MMContext___tc__eq_t)(val_t  self, val_t  param0);
+void syntax___MMContext___tc__eq(val_t  self, val_t  param0);
+typedef void (* syntax___MMSrcModule___process_supermodules_t)(val_t  self, val_t  param0);
+void syntax___MMSrcModule___process_supermodules(val_t  self, val_t  param0);
+typedef void (* syntax___MMSrcModule___process_syntax_t)(val_t  self, val_t  param0);
+void syntax___MMSrcModule___process_syntax(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/syntax_base._sep.c b/c_src/syntax_base._sep.c
new file mode 100644 (file)
index 0000000..91b10a4
--- /dev/null
@@ -0,0 +1,1282 @@
+#include "syntax_base._sep.h"
+val_t syntax_base___MMSrcModule___node(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcModule::node (src/syntax//syntax_base.nit:26,2--27:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcModule____node( self) /*MMSrcModule::_node*/;
+}
+val_t syntax_base___MMSrcModule___src_local_classes(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcModule::src_local_classes (src/syntax//syntax_base.nit:29,2--30:62)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcModule____src_local_classes( self) /*MMSrcModule::_src_local_classes*/;
+}
+void syntax_base___MMSrcModule___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcModule::init (src/syntax//syntax_base.nit:32,2--36:58)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcModule].i]) return;
+  ((abstractmetamodel___MMModule___init_t)CALL( self,COLOR_abstractmetamodel___MMModule___init))( self,  variable3 /*name*/,  variable2 /*dir*/,  variable0 /*c*/, init_table /*YYY*/) /*MMModule::init*/;
+  ATTR_syntax_base___MMSrcModule____node( self) /*MMSrcModule::_node*/ =  variable1 /*source*/;
+  variable4 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMSrcLocalClass]*/
+  ATTR_syntax_base___MMSrcModule____src_local_classes( self) /*MMSrcModule::_src_local_classes*/ = variable4;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcModule].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___MMGlobalClass___check_visibility(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "syntax_base::MMGlobalClass::check_visibility (src/syntax//syntax_base.nit:41,2--55:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable4 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
+  variable4 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___module))(variable4) /*MMLocalClass::module*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*pm*/==NIT_NULL) || VAL_ISA( variable3 /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+  if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/syntax//syntax_base.nit:44,3--27\n"); nit_exit(1);}
+  variable5 = ((abstractmetamodel___MMModule___visibility_for_t)CALL( variable2 /*cm*/,COLOR_abstractmetamodel___MMModule___visibility_for))( variable2 /*cm*/,  variable3 /*pm*/) /*MMSrcModule::visibility_for*/;
+  variable4 = variable5;
+  variable5 = TAG_Bool(( variable4 /*vpm*/)==( TAG_Int(3)));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable3 =  TAG_Bool(true);
+    goto return_label1;
+  } else { /*if*/
+    variable5 = TAG_Bool(( variable4 /*vpm*/)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  self;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      variable11 =  variable2 /*cm*/;
+      variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  variable1 /*n*/, variable5) /*AbsSyntaxVisitor::error*/;
+      variable3 =  TAG_Bool(false);
+      goto return_label1;
+    } else { /*if*/
+      variable5 = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___visibility_level))( self) /*MMGlobalClass::visibility_level*/;
+      variable5 = TAG_Bool(UNTAG_Int(variable5)>=UNTAG_Int( TAG_Int(3)));
+      if (UNTAG_Bool(variable5)) { /*if*/
+        variable5 = NEW_string___String___init(); /*new String*/
+        variable6 = NEW_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
+        variable7 = variable6;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+        variable8 =  self;
+        variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+        variable9 = NEW_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  variable1 /*n*/, variable5) /*AbsSyntaxVisitor::error*/;
+        variable3 =  TAG_Bool(false);
+        goto return_label1;
+      }
+    }
+  }
+  variable3 =  TAG_Bool(true);
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t syntax_base___MMSrcLocalClass___nodes(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalClass::nodes (src/syntax//syntax_base.nit:62,2--63:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcLocalClass____nodes( self) /*MMSrcLocalClass::_nodes*/;
+}
+val_t syntax_base___MMSrcLocalClass___formal_dict(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalClass::formal_dict (src/syntax//syntax_base.nit:65,2--66:71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/;
+}
+void syntax_base___MMSrcLocalClass___formal_dict__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalClass::formal_dict= (src/syntax//syntax_base.nit:65,2--66:71)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalClass::src_local_properties (src/syntax//syntax_base.nit:68,2--69:68)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcLocalClass____src_local_properties( self) /*MMSrcLocalClass::_src_local_properties*/;
+}
+void syntax_base___MMSrcLocalClass___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalClass::init (src/syntax//syntax_base.nit:71,2--75:64)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcLocalClass].i]) return;
+  ((abstractmetamodel___MMLocalClass___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___init))( self,  variable0 /*n*/,  variable2 /*a*/, init_table /*YYY*/) /*MMLocalClass::init*/;
+  variable3 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[PClassdef]*/
+  ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3,  variable1 /*cla*/) /*Array::add*/;
+  ATTR_syntax_base___MMSrcLocalClass____nodes( self) /*MMSrcLocalClass::_nodes*/ = variable3;
+  variable3 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, MMSrcLocalProperty]*/
+  ATTR_syntax_base___MMSrcLocalClass____src_local_properties( self) /*MMSrcLocalClass::_src_local_properties*/ = variable3;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcLocalClass].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___MMGlobalProperty___check_visibility(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "syntax_base::MMGlobalProperty::check_visibility (src/syntax//syntax_base.nit:80,2--98:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable5 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( self) /*MMGlobalProperty::local_class*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___module))(variable5) /*MMLocalClass::module*/;
+  variable4 = variable5;
+  variable5 = TAG_Bool(( variable4 /*pm*/==NIT_NULL) || VAL_ISA( variable4 /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
+  if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert failed: src/syntax//syntax_base.nit:83,3--27\n"); nit_exit(1);}
+  variable6 = ((abstractmetamodel___MMModule___visibility_for_t)CALL( variable2 /*cm*/,COLOR_abstractmetamodel___MMModule___visibility_for))( variable2 /*cm*/,  variable4 /*pm*/) /*MMSrcModule::visibility_for*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(( variable5 /*vpm*/)==( TAG_Int(3)));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable4 =  TAG_Bool(true);
+    goto return_label3;
+  } else { /*if*/
+    variable6 = TAG_Bool(( variable5 /*vpm*/)==( TAG_Int(0)));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 =  self;
+      variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+      variable12 =  variable2 /*cm*/;
+      variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  variable1 /*n*/, variable6) /*AbsSyntaxVisitor::error*/;
+      variable4 =  TAG_Bool(false);
+      goto return_label3;
+    } else { /*if*/
+      variable6 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( self) /*MMGlobalProperty::visibility_level*/;
+      variable6 = TAG_Bool(UNTAG_Int(variable6)>=UNTAG_Int( TAG_Int(3)));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable6 = NEW_string___String___init(); /*new String*/
+        variable7 = NEW_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+        variable9 =  self;
+        variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+        variable10 = NEW_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
+        variable11 = variable10;
+        ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  variable1 /*n*/, variable6) /*AbsSyntaxVisitor::error*/;
+        variable4 =  TAG_Bool(false);
+        goto return_label3;
+      } else { /*if*/
+        variable6 = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( self) /*MMGlobalProperty::visibility_level*/;
+        variable6 = TAG_Bool(UNTAG_Int(variable6)>=UNTAG_Int( TAG_Int(2)));
+        variable7 = variable6;
+        if (UNTAG_Bool(variable7)) { /* and */
+          variable7 =  TAG_Bool(!UNTAG_Bool( variable3 /*allows_protected*/));
+        }
+        variable6 = variable7;
+        if (UNTAG_Bool(variable6)) { /*if*/
+          variable6 = NEW_string___String___init(); /*new String*/
+          variable7 = NEW_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
+          variable8 = variable7;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+          variable9 =  self;
+          variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+          variable10 = NEW_string___String___with_native(BOX_NativeString(" is protected and can only acceded by self."), TAG_Int(43)); /*new String*/
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  variable1 /*n*/, variable6) /*AbsSyntaxVisitor::error*/;
+          variable4 =  TAG_Bool(false);
+          goto return_label3;
+        }
+      }
+    }
+  }
+  variable4 =  TAG_Bool(true);
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable4;
+}
+val_t syntax_base___MMSrcLocalProperty___node(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcLocalProperty::node (src/syntax//syntax_base.nit:108,2--109:26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMSrcLocalProperty::_node*/;
+}
+void syntax_base___MMSrcAttribute___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcAttribute::init (src/syntax//syntax_base.nit:116,2--119:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcAttribute].i]) return;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self,  variable0 /*name*/,  variable1 /*cla*/,  self, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMSrcAttribute::_node*/ =  variable2 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcAttribute].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___MMReadImplementationMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMReadImplementationMethod::init (src/syntax//syntax_base.nit:139,2--142:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMReadImplementationMethod].i]) return;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self,  variable0 /*name*/,  variable1 /*cla*/,  self, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMReadImplementationMethod::_node*/ =  variable2 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMReadImplementationMethod].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___MMWriteImplementationMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMWriteImplementationMethod::init (src/syntax//syntax_base.nit:150,2--153:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i]) return;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self,  variable0 /*name*/,  variable1 /*cla*/,  self, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMWriteImplementationMethod::_node*/ =  variable2 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___MMMethSrcMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMMethSrcMethod::init (src/syntax//syntax_base.nit:162,2--165:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMMethSrcMethod].i]) return;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self,  variable0 /*name*/,  variable1 /*cla*/,  self, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMMethSrcMethod::_node*/ =  variable2 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMMethSrcMethod].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___MMSrcTypeProperty___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::MMSrcTypeProperty::init (src/syntax//syntax_base.nit:173,2--176:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcTypeProperty].i]) return;
+  ((abstractmetamodel___MMLocalProperty___init_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___init))( self,  variable0 /*name*/,  variable1 /*cla*/,  self, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  ATTR_syntax_base___MMSrcLocalProperty____node( self) /*MMSrcTypeProperty::_node*/ =  variable2 /*n*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSrcTypeProperty].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___Variable___name(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::Variable::name (src/syntax//syntax_base.nit:183,2--184:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___Variable____name( self) /*Variable::_name*/;
+}
+val_t syntax_base___Variable___decl(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::Variable::decl (src/syntax//syntax_base.nit:186,2--187:27)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___Variable____decl( self) /*Variable::_decl*/;
+}
+val_t syntax_base___Variable___stype(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::Variable::stype (src/syntax//syntax_base.nit:189,2--190:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/;
+}
+void syntax_base___Variable___stype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::Variable::stype= (src/syntax//syntax_base.nit:189,2--190:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___Variable___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::Variable::init (src/syntax//syntax_base.nit:192,2--197:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Variable].i]) return;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/syntax//syntax_base.nit:194,3--18\n"); nit_exit(1);}
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*d*/ ==  NIT_NULL /*null*/) || (( variable1 /*d*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*d*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*d*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*d*/,COLOR_kernel___Object_____eqeq))( variable1 /*d*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/syntax//syntax_base.nit:195,3--18\n"); nit_exit(1);}
+  ATTR_syntax_base___Variable____name( self) /*Variable::_name*/ =  variable0 /*n*/;
+  ATTR_syntax_base___Variable____decl( self) /*Variable::_decl*/ =  variable1 /*d*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Variable].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_bool (src/syntax//syntax_base.nit:206,2--209:64)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_11; static int once_bool_variable1_11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_11) variable1 = once_value_variable1_11;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_11 = variable1;
+    once_bool_variable1_11 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label10;
+  return_label10: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_int(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_int (src/syntax//syntax_base.nit:212,2--215:63)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_13; static int once_bool_variable1_13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_13) variable1 = once_value_variable1_13;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_13 = variable1;
+    once_bool_variable1_13 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_float(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_float (src/syntax//syntax_base.nit:218,2--221:65)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_15; static int once_bool_variable1_15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_15) variable1 = once_value_variable1_15;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_15 = variable1;
+    once_bool_variable1_15 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label14;
+  return_label14: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_char(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_char (src/syntax//syntax_base.nit:224,2--227:64)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_17; static int once_bool_variable1_17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_17) variable1 = once_value_variable1_17;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_17 = variable1;
+    once_bool_variable1_17 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label16;
+  return_label16: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_string(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_string (src/syntax//syntax_base.nit:230,2--233:66)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_19; static int once_bool_variable1_19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_19) variable1 = once_value_variable1_19;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("String"), TAG_Int(6)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_19 = variable1;
+    once_bool_variable1_19 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label18;
+  return_label18: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_collection (src/syntax//syntax_base.nit:236,2--239:70)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_21; static int once_bool_variable1_21;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_21) variable1 = once_value_variable1_21;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Collection"), TAG_Int(10)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_21 = variable1;
+    once_bool_variable1_21 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label20;
+  return_label20: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_array(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_array (src/syntax//syntax_base.nit:242,2--245:84)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  static val_t once_value_variable2_23; static int once_bool_variable2_23;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable2_23) variable2 = once_value_variable2_23;
+  else {
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
+    variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+    once_value_variable2_23 = variable2;
+    once_bool_variable2_23 = true;
+  }
+  variable1 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable1,COLOR_abstractmetamodel___MMModule___class_by_name))(variable1, variable2) /*MMSrcModule::class_by_name*/;
+  variable2 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*stype*/) /*Array::add*/;
+  variable1 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable1,COLOR_genericity___MMLocalClass___get_instantiate_type))(variable1, variable2) /*MMLocalClass::get_instantiate_type*/;
+  goto return_label22;
+  return_label22: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_discrete (src/syntax//syntax_base.nit:248,2--251:68)"};
+  val_t variable0;
+  val_t variable1;
+  static val_t once_value_variable1_25; static int once_bool_variable1_25;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable1_25) variable1 = once_value_variable1_25;
+  else {
+    variable1 = NEW_string___String___with_native(BOX_NativeString("Discrete"), TAG_Int(8)); /*new String*/
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    once_value_variable1_25 = variable1;
+    once_bool_variable1_25 = true;
+  }
+  variable0 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___class_by_name))(variable0, variable1) /*MMSrcModule::class_by_name*/;
+  variable0 = ((genericity___MMLocalClass___get_type_t)CALL(variable0,COLOR_static_type___MMLocalClass___get_type))(variable0) /*MMLocalClass::get_type*/;
+  goto return_label24;
+  return_label24: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_range(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_range (src/syntax//syntax_base.nit:254,2--257:84)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  static val_t once_value_variable2_27; static int once_bool_variable2_27;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_variable2_27) variable2 = once_value_variable2_27;
+  else {
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Range"), TAG_Int(5)); /*new String*/
+    variable2 = ((symbol___String___to_symbol_t)CALL(variable2,COLOR_symbol___String___to_symbol))(variable2) /*String::to_symbol*/;
+    once_value_variable2_27 = variable2;
+    once_bool_variable2_27 = true;
+  }
+  variable1 = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable1,COLOR_abstractmetamodel___MMModule___class_by_name))(variable1, variable2) /*MMSrcModule::class_by_name*/;
+  variable2 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
+  ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2,  variable0 /*stype*/) /*Array::add*/;
+  variable1 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable1,COLOR_genericity___MMLocalClass___get_instantiate_type))(variable1, variable2) /*MMLocalClass::get_instantiate_type*/;
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t syntax_base___AbsSyntaxVisitor___type_none(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::type_none (src/syntax//syntax_base.nit:260,2--263:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+  variable0 = ((static_type___MMModule___type_none_t)CALL(variable0,COLOR_static_type___MMModule___type_none))(variable0) /*MMSrcModule::type_none*/;
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___AbsSyntaxVisitor___module(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::module (src/syntax//syntax_base.nit:266,2--267:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
+}
+void syntax_base___AbsSyntaxVisitor___module__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::module= (src/syntax//syntax_base.nit:266,2--267:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AbsSyntaxVisitor___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::local_class (src/syntax//syntax_base.nit:269,2--270:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/;
+}
+void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::local_class= (src/syntax//syntax_base.nit:269,2--270:53)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AbsSyntaxVisitor___local_property(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::local_property (src/syntax//syntax_base.nit:272,2--273:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/;
+}
+void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::local_property= (src/syntax//syntax_base.nit:272,2--273:59)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AbsSyntaxVisitor___tc(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::tc (src/syntax//syntax_base.nit:275,2--276:31)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
+}
+void syntax_base___AbsSyntaxVisitor___error(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::error (src/syntax//syntax_base.nit:278,2--281:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((parser_prod___PNode___locate_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___locate))( variable0 /*n*/) /*PNode::locate*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 =  variable1 /*s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  ((mmloader___ToolContext___error_t)CALL(variable2,COLOR_mmloader___ToolContext___error))(variable2, variable3) /*ToolContext::error*/;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___AbsSyntaxVisitor___warning(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::warning (src/syntax//syntax_base.nit:284,2--287:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 = ((parser_prod___PNode___locate_t)CALL( variable0 /*n*/,COLOR_parser_prod___PNode___locate))( variable0 /*n*/) /*PNode::locate*/;
+  variable7 = variable6;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+  variable8 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 =  variable1 /*s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable10) /*String::append*/;
+  variable11 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable12 = variable11;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable12) /*String::append*/;
+  ((mmloader___ToolContext___warning_t)CALL(variable2,COLOR_mmloader___ToolContext___warning))(variable2, variable3) /*ToolContext::warning*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::check_conform (src/syntax//syntax_base.nit:290,2--300:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 = TAG_Bool(( variable2 /*stype*/ ==  NIT_NULL /*null*/) || (( variable2 /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*stype*/,COLOR_kernel___Object_____eqeq))( variable2 /*stype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  variable4 = variable3;
+  if (!UNTAG_Bool(variable4)) { /* or */
+    variable4 = TAG_Bool(( variable1 /*subtype*/ ==  NIT_NULL /*null*/) || (( variable1 /*subtype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*subtype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*subtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*subtype*/,COLOR_kernel___Object_____eqeq))( variable1 /*subtype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  }
+  variable3 = variable4;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 =  TAG_Bool(false);
+    goto return_label31;
+  }
+  variable3 = ((static_type___MMType_____l_t)CALL( variable1 /*subtype*/,COLOR_static_type___MMType_____l))( variable1 /*subtype*/,  variable2 /*stype*/) /*MMType::<*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable3 =  TAG_Bool(true);
+    goto return_label31;
+  }
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable4 = NEW_string___String___with_native(BOX_NativeString("Type error: expected "), TAG_Int(21)); /*new String*/
+  variable5 = variable4;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+  variable6 =  variable2 /*stype*/;
+  variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+  variable7 = NEW_string___String___with_native(BOX_NativeString(", got "), TAG_Int(6)); /*new String*/
+  variable8 = variable7;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+  variable9 =  variable1 /*subtype*/;
+  variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+  variable10 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable11 = variable10;
+  ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+  ((syntax_base___AbsSyntaxVisitor___error_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___error))( self,  variable0 /*n*/, variable3) /*AbsSyntaxVisitor::error*/;
+  variable3 =  TAG_Bool(false);
+  goto return_label31;
+  return_label31: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+void syntax_base___AbsSyntaxVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "syntax_base::AbsSyntaxVisitor::init (src/syntax//syntax_base.nit:304,2--307:18)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i]) return;
+  ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/ =  variable0 /*tc*/;
+  ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/ =  variable1 /*module*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void syntax_base___PNode___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::PNode::accept_abs_syntax_visitor (src/syntax//syntax_base.nit:314,2--77)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((parser_prod___PNode___visit_all_t)CALL( self,COLOR_parser_prod___PNode___visit_all))( self,  variable0 /*v*/) /*PNode::visit_all*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___Token___to_symbol(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::Token::to_symbol (src/syntax//syntax_base.nit:320,2--329:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ATTR_syntax_base___Token____symbol( self) /*Token::_symbol*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(( variable0 /*s*/ ==  NIT_NULL /*null*/) || (( variable0 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))( variable0 /*s*/,  NIT_NULL /*null*/) /*Symbol::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((lexer___Token___text_t)CALL( self,COLOR_lexer___Token___text))( self) /*Token::text*/;
+    variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
+    variable0 = variable1 /*s=*/;
+    ATTR_syntax_base___Token____symbol( self) /*Token::_symbol*/ =  variable0 /*s*/;
+  }
+  variable0 =  variable0 /*s*/;
+  goto return_label34;
+  return_label34: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t syntax_base___PClassdef___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::PClassdef::local_class (src/syntax//syntax_base.nit:334,2--335:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method local_class called (src/syntax//syntax_base.nit:334,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___AAttrPropdef___prop(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AAttrPropdef::prop (src/syntax//syntax_base.nit:339,2--340:26)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method prop called (src/syntax//syntax_base.nit:339,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___AAttrPropdef___readmethod(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AAttrPropdef::readmethod (src/syntax//syntax_base.nit:342,2--343:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method readmethod called (src/syntax//syntax_base.nit:342,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___AAttrPropdef___writemethod(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AAttrPropdef::writemethod (src/syntax//syntax_base.nit:345,2--346:30)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method writemethod called (src/syntax//syntax_base.nit:345,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___AMethPropdef___method(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::AMethPropdef::method (src/syntax//syntax_base.nit:350,2--351:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method method called (src/syntax//syntax_base.nit:350,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___ATypePropdef___prop(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::ATypePropdef::prop (src/syntax//syntax_base.nit:355,2--356:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method prop called (src/syntax//syntax_base.nit:355,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___PParam___position(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::PParam::position (src/syntax//syntax_base.nit:360,2--361:19)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method position called (src/syntax//syntax_base.nit:360,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___PParam___variable(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::PParam::variable (src/syntax//syntax_base.nit:363,2--364:24)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method variable called (src/syntax//syntax_base.nit:363,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___PType___get_local_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::PType::get_local_class (src/syntax//syntax_base.nit:368,2--371:56)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method get_local_class called (src/syntax//syntax_base.nit:368,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___PType___get_stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::PType::get_stype (src/syntax//syntax_base.nit:373,2--375:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method get_stype called (src/syntax//syntax_base.nit:373,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t syntax_base___PType___get_unchecked_stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::PType::get_unchecked_stype (src/syntax//syntax_base.nit:377,2--381:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method get_unchecked_stype called (src/syntax//syntax_base.nit:377,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void syntax_base___PType___check_conform(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::PType::check_conform (src/syntax//syntax_base.nit:383,2--386:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method check_conform called (src/syntax//syntax_base.nit:383,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___AType___get_local_class(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AType::get_local_class (src/syntax//syntax_base.nit:393,2--413:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AType___n_id_t)CALL( self,COLOR_parser_nodes___AType___n_id))( self) /*AType::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TClassid::to_symbol*/;
+  variable1 = variable2;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable2 = variable3;
+  variable4 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable3 = variable4;
+  variable4 = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable3 /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable3 /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*Map::==*/)))))));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable3 /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable3 /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+    variable5 = ((abstract_collection___Map___has_key_t)CALL(variable5,COLOR_abstract_collection___Map___has_key))(variable5,  variable1 /*name*/) /*Map::has_key*/;
+  }
+  variable4 = variable5;
+  variable5 = variable4;
+  if (!UNTAG_Bool(variable5)) { /* or */
+    variable5 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable3 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable3 /*cla*/) /*MMSrcLocalClass::global_properties*/;
+    variable5 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5 ==  NIT_NULL /*null*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5,  NIT_NULL /*null*/) /*Set::==*/)))))));
+    variable6 = variable5;
+    if (UNTAG_Bool(variable6)) { /* and */
+      variable6 = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL( variable3 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))( variable3 /*cla*/,  variable1 /*name*/) /*MMSrcLocalClass::has_global_property_by_name*/;
+    }
+    variable5 = variable6;
+  }
+  variable4 = variable5;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((parser_nodes___AType___n_id_t)CALL( self,COLOR_parser_nodes___AType___n_id))( self) /*AType::n_id*/;
+    variable5 = NEW_string___String___init(); /*new String*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+    variable8 =  variable1 /*name*/;
+    variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(" is a formal type"), TAG_Int(17)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable4, variable5) /*AbsSyntaxVisitor::error*/;
+    ATTR_syntax_base___AType____stype_cached( self) /*AType::_stype_cached*/ =  TAG_Bool(true);
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label35;
+  }
+  variable4 = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL( variable2 /*mod*/,COLOR_abstractmetamodel___MMModule___has_global_class_named))( variable2 /*mod*/,  variable1 /*name*/) /*MMSrcModule::has_global_class_named*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+    variable4 = ((parser_nodes___AType___n_id_t)CALL( self,COLOR_parser_nodes___AType___n_id))( self) /*AType::n_id*/;
+    variable5 = NEW_string___String___init(); /*new String*/
+    variable6 = NEW_string___String___with_native(BOX_NativeString("Type error: class "), TAG_Int(18)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+    variable8 =  variable1 /*name*/;
+    variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+    variable9 = NEW_string___String___with_native(BOX_NativeString(" not found in module "), TAG_Int(21)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+    variable11 =  variable2 /*mod*/;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, variable4, variable5) /*AbsSyntaxVisitor::error*/;
+    ATTR_syntax_base___AType____stype_cached( self) /*AType::_stype_cached*/ =  TAG_Bool(true);
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label35;
+  }
+  variable5 = ((abstractmetamodel___MMModule___class_by_name_t)CALL( variable2 /*mod*/,COLOR_abstractmetamodel___MMModule___class_by_name))( variable2 /*mod*/,  variable1 /*name*/) /*MMSrcModule::class_by_name*/;
+  variable4 = variable5;
+  variable5 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable4 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable4 /*local_class*/) /*MMLocalClass::global*/;
+  ((syntax_base___MMGlobalClass___check_visibility_t)CALL(variable5,COLOR_syntax_base___MMGlobalClass___check_visibility))(variable5,  variable0 /*v*/,  self,  variable2 /*mod*/) /*MMGlobalClass::check_visibility*/;
+  variable1 =  variable4 /*local_class*/;
+  goto return_label35;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t syntax_base___AType___get_unchecked_stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AType::get_unchecked_stype (src/syntax//syntax_base.nit:416,2--469:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+    val_t variable15;
+    val_t variable16;
+    val_t variable17;
+    val_t variable18;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_syntax_base___AType____stype_cached( self) /*AType::_stype_cached*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_syntax_base___AType____stype_cache( self) /*AType::_stype_cache*/;
+    goto return_label36;
+  }
+  ATTR_syntax_base___AType____stype_cached( self) /*AType::_stype_cached*/ =  TAG_Bool(true);
+  variable2 = ((parser_nodes___AType___n_id_t)CALL( self,COLOR_parser_nodes___AType___n_id))( self) /*AType::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TClassid::to_symbol*/;
+  variable1 = variable2;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable2 = variable3;
+  variable4 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable3 = variable4;
+  variable4 = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable3 /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable3 /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+  variable4 = ((abstract_collection___Map___has_key_t)CALL(variable4,COLOR_abstract_collection___Map___has_key))(variable4,  variable1 /*name*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+    variable4 = ((list___List___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*List::length*/;
+    variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable1 /*name*/;
+      variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*AbsSyntaxVisitor::error*/;
+      variable1 =  NIT_NULL /*null*/;
+      goto return_label36;
+    }
+    variable5 = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable3 /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable3 /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+    variable5 = ((abstract_collection___Map_____bra_t)CALL(variable5,COLOR_abstract_collection___Map_____bra))(variable5,  variable1 /*name*/) /*Map::[]*/;
+    variable4 = variable5;
+    ATTR_syntax_base___AType____stype_cache( self) /*AType::_stype_cache*/ =  variable4 /*formal*/;
+    variable1 =  variable4 /*formal*/;
+    goto return_label36;
+  }
+  variable4 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable3 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable3 /*cla*/) /*MMSrcLocalClass::global_properties*/;
+  variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*Set::==*/)))))));
+  variable5 = variable4;
+  if (UNTAG_Bool(variable5)) { /* and */
+    variable5 = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL( variable3 /*cla*/,COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))( variable3 /*cla*/,  variable1 /*name*/) /*MMSrcLocalClass::has_global_property_by_name*/;
+  }
+  variable4 = variable5;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+    variable4 = ((list___List___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*List::length*/;
+    variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int( TAG_Int(0)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable1 /*name*/;
+      variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*AbsSyntaxVisitor::error*/;
+      variable1 =  NIT_NULL /*null*/;
+      goto return_label36;
+    }
+    variable5 = ((genericity___MMLocalClass___get_type_t)CALL( variable3 /*cla*/,COLOR_static_type___MMLocalClass___get_type))( variable3 /*cla*/) /*MMSrcLocalClass::get_type*/;
+    variable5 = ((virtualtype___MMType___select_virtual_type_t)CALL(variable5,COLOR_virtualtype___MMType___select_virtual_type))(variable5,  variable1 /*name*/) /*MMType::select_virtual_type*/;
+    variable5 = ((virtualtype___MMTypeProperty___stype_t)CALL(variable5,COLOR_virtualtype___MMTypeProperty___stype))(variable5) /*MMTypeProperty::stype*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable4 /*t*/ ==  NIT_NULL /*null*/) || (( variable4 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*t*/,COLOR_kernel___Object_____eqeq))( variable4 /*t*/,  NIT_NULL /*null*/) /*MMVirtualType::==*/)))));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Type error: circular definition in formal type "), TAG_Int(47)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  variable1 /*name*/;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*AbsSyntaxVisitor::error*/;
+      variable1 =  NIT_NULL /*null*/;
+      goto return_label36;
+    }
+    ATTR_syntax_base___AType____stype_cache( self) /*AType::_stype_cache*/ =  variable4 /*t*/;
+    variable1 =  variable4 /*t*/;
+    goto return_label36;
+  }
+  variable5 = ((syntax_base___AType___get_local_class_t)CALL( self,COLOR_syntax_base___PType___get_local_class))( self,  variable0 /*v*/) /*AType::get_local_class*/;
+  variable4 = variable5;
+  variable5 = TAG_Bool(( variable4 /*local_class*/ ==  NIT_NULL /*null*/) || (( variable4 /*local_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*local_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*local_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*local_class*/,COLOR_kernel___Object_____eqeq))( variable4 /*local_class*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label36;
+  }
+  variable6 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+  variable6 = ((list___List___length_t)CALL(variable6,COLOR_abstract_collection___Collection___length))(variable6) /*List::length*/;
+  variable5 = variable6;
+  variable6 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable4 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable4 /*local_class*/) /*MMLocalClass::arity*/;
+  variable6 = TAG_Bool((variable6)!=( variable5 /*arity*/));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("Type error: '"), TAG_Int(13)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 =  variable4 /*local_class*/;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString("' has "), TAG_Int(6)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+    variable12 = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable4 /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable4 /*local_class*/) /*MMLocalClass::arity*/;
+    variable13 = variable12;
+    variable13 = ((string___String___to_s_t)CALL(variable13,COLOR_string___Object___to_s))(variable13) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+    variable14 = NEW_string___String___with_native(BOX_NativeString(" parameters which differs from the "), TAG_Int(35)); /*new String*/
+    variable15 = variable14;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+    variable16 =  variable5 /*arity*/;
+    variable16 = ((string___String___to_s_t)CALL(variable16,COLOR_string___Object___to_s))(variable16) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable16) /*String::append*/;
+    variable17 = NEW_string___String___with_native(BOX_NativeString(" params."), TAG_Int(8)); /*new String*/
+    variable18 = variable17;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable18) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*AbsSyntaxVisitor::error*/;
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label36;
+  }
+  variable6 = TAG_Bool(UNTAG_Int( variable5 /*arity*/)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable7 = NEW_array___Array___init(); /*new Array[MMType]*/
+    variable6 = variable7;
+    variable7 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+    variable7 = ((list___List___iterator_t)CALL(variable7,COLOR_abstract_collection___Collection___iterator))(variable7) /*List::iterator*/;
+    while (true) { /*for*/
+      variable8 = ((list___ListIterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*ListIterator::is_ok*/;
+      if (!UNTAG_Bool(variable8)) break; /*for*/
+      variable8 = ((list___ListIterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*ListIterator::item*/;
+      variable9 = ((syntax_base___PType___get_unchecked_stype_t)CALL( variable8 /*p*/,COLOR_syntax_base___PType___get_unchecked_stype))( variable8 /*p*/,  variable0 /*v*/) /*PType::get_unchecked_stype*/;
+      ((array___AbstractArray___add_t)CALL( variable6 /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable6 /*tab*/, variable9) /*Array::add*/;
+      continue_37: while(0);
+      ((list___ListIterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*ListIterator::next*/;
+    }
+    break_37: while(0);
+    variable8 = ((genericity___MMLocalClass___get_instantiate_type_t)CALL( variable4 /*local_class*/,COLOR_genericity___MMLocalClass___get_instantiate_type))( variable4 /*local_class*/,  variable6 /*tab*/) /*MMLocalClass::get_instantiate_type*/;
+    variable7 = variable8;
+    ATTR_syntax_base___AType____stype_cache( self) /*AType::_stype_cache*/ =  variable7 /*t*/;
+    variable1 =  variable7 /*t*/;
+    goto return_label36;
+  } else { /*if*/
+    variable7 = ((genericity___MMLocalClass___get_type_t)CALL( variable4 /*local_class*/,COLOR_static_type___MMLocalClass___get_type))( variable4 /*local_class*/) /*MMLocalClass::get_type*/;
+    variable6 = variable7;
+    ATTR_syntax_base___AType____stype_cache( self) /*AType::_stype_cache*/ =  variable6 /*t*/;
+    variable1 =  variable6 /*t*/;
+    goto return_label36;
+  }
+  return_label36: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t syntax_base___AType___get_stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AType::get_stype (src/syntax//syntax_base.nit:473,2--477:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((syntax_base___AType___get_unchecked_stype_t)CALL( self,COLOR_syntax_base___PType___get_unchecked_stype))( self,  variable0 /*v*/) /*AType::get_unchecked_stype*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    ((syntax_base___AType___check_conform_t)CALL( self,COLOR_syntax_base___PType___check_conform))( self,  variable0 /*v*/) /*AType::check_conform*/;
+  }
+  variable1 =  variable1 /*t*/;
+  goto return_label38;
+  return_label38: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void syntax_base___AType___check_conform(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "syntax_base::AType::check_conform (src/syntax//syntax_base.nit:480,2--493:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((syntax_base___AType___get_unchecked_stype_t)CALL( self,COLOR_syntax_base___PType___get_unchecked_stype))( self,  variable0 /*v*/) /*AType::get_unchecked_stype*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*st*/ ==  NIT_NULL /*null*/) || (( variable1 /*st*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*st*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*st*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*st*/,COLOR_kernel___Object_____eqeq))( variable1 /*st*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label39;
+  }
+  variable3 = ((static_type___MMType___local_class_t)CALL( variable1 /*st*/,COLOR_static_type___MMType___local_class))( variable1 /*st*/) /*MMType::local_class*/;
+  variable2 = variable3;
+  variable4 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+  variable4 = ((list___List___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*List::length*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(UNTAG_Int( variable3 /*arity*/)>UNTAG_Int( TAG_Int(0)));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_range___Range___without_last( TAG_Int(0),  variable3 /*arity*/); /*new Range[Int]*/
+    variable4 = ((range___Range___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Range::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((abstract_collection___Iterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*Iterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((abstract_collection___Iterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*Iterator::item*/;
+      variable7 = ((parser_nodes___AType___n_types_t)CALL( self,COLOR_parser_nodes___AType___n_types))( self) /*AType::n_types*/;
+      variable7 = ((list___List_____bra_t)CALL(variable7,COLOR_abstract_collection___Map_____bra))(variable7,  variable5 /*i*/) /*List::[]*/;
+      variable6 = variable7;
+      variable8 = ((syntax_base___PType___get_stype_t)CALL( variable6 /*p*/,COLOR_syntax_base___PType___get_stype))( variable6 /*p*/,  variable0 /*v*/) /*PType::get_stype*/;
+      variable7 = variable8;
+      variable9 = ((genericity___MMLocalClass___get_formal_t)CALL( variable2 /*local_class*/,COLOR_genericity___MMLocalClass___get_formal))( variable2 /*local_class*/,  variable5 /*i*/) /*MMLocalClass::get_formal*/;
+      variable9 = ((type_formal___MMTypeFormal___bound_t)CALL(variable9,COLOR_type_formal___MMTypeFormal___bound))(variable9) /*MMTypeFormalParameter::bound*/;
+      variable8 = variable9;
+      variable9 = TAG_Bool(( variable8 /*bt*/ ==  NIT_NULL /*null*/) || (( variable8 /*bt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable8 /*bt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable8 /*bt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable8 /*bt*/,COLOR_kernel___Object_____eqeq))( variable8 /*bt*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+      if (UNTAG_Bool(variable9)) { /*if*/
+        goto return_label39;
+      }
+      variable9 = ((static_type___MMType___adapt_to_t)CALL( variable8 /*bt*/,COLOR_static_type___MMType___adapt_to))( variable8 /*bt*/,  variable1 /*st*/) /*MMType::adapt_to*/;
+      variable8 = variable9 /*bt=*/;
+      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  variable6 /*p*/,  variable7 /*pt*/,  variable8 /*bt*/) /*AbsSyntaxVisitor::check_conform*/;
+      continue_40: while(0);
+      ((abstract_collection___Iterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*Iterator::next*/;
+    }
+    break_40: while(0);
+  }
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t syntax_base___PExpr___stype(val_t  self) {
+  struct trace_t trace = {NULL, "syntax_base::PExpr::stype (src/syntax//syntax_base.nit:500,2--502:19)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method stype called (src/syntax//syntax_base.nit:500,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
diff --git a/c_src/syntax_base._sep.h b/c_src/syntax_base._sep.h
new file mode 100644 (file)
index 0000000..3a7bda3
--- /dev/null
@@ -0,0 +1,287 @@
+#ifndef syntax_base__sep
+#define syntax_base__sep
+#include "parser._sep.h"
+#include "mmloader._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMSrcModule[];
+
+extern const classtable_elt_t VFT_MMSrcLocalClass[];
+
+extern const classtable_elt_t VFT_MMSrcLocalProperty[];
+
+extern const classtable_elt_t VFT_MMSrcAttribute[];
+
+extern const classtable_elt_t VFT_MMSrcMethod[];
+
+extern const classtable_elt_t VFT_MMAttrImplementationMethod[];
+
+extern const classtable_elt_t VFT_MMReadImplementationMethod[];
+
+extern const classtable_elt_t VFT_MMWriteImplementationMethod[];
+
+extern const classtable_elt_t VFT_MMMethSrcMethod[];
+
+extern const classtable_elt_t VFT_MMSrcTypeProperty[];
+
+extern const classtable_elt_t VFT_Variable[];
+
+extern const classtable_elt_t VFT_AbsSyntaxVisitor[];
+extern const int SFT_syntax_base[];
+#define ID_MMSrcModule SFT_syntax_base[0]
+#define COLOR_MMSrcModule SFT_syntax_base[1]
+#define COLOR_syntax_base___MMSrcModule____node SFT_syntax_base[2]
+#define COLOR_syntax_base___MMSrcModule____src_local_classes SFT_syntax_base[3]
+#define INIT_TABLE_POS_MMSrcModule SFT_syntax_base[4]
+#define COLOR_syntax_base___MMSrcModule___node SFT_syntax_base[5]
+#define COLOR_syntax_base___MMSrcModule___src_local_classes SFT_syntax_base[6]
+#define COLOR_syntax_base___MMSrcModule___init SFT_syntax_base[7]
+#define COLOR_syntax_base___MMGlobalClass___check_visibility SFT_syntax_base[8]
+#define ID_MMSrcLocalClass SFT_syntax_base[9]
+#define COLOR_MMSrcLocalClass SFT_syntax_base[10]
+#define COLOR_syntax_base___MMSrcLocalClass____nodes SFT_syntax_base[11]
+#define COLOR_syntax_base___MMSrcLocalClass____formal_dict SFT_syntax_base[12]
+#define COLOR_syntax_base___MMSrcLocalClass____src_local_properties SFT_syntax_base[13]
+#define INIT_TABLE_POS_MMSrcLocalClass SFT_syntax_base[14]
+#define COLOR_syntax_base___MMSrcLocalClass___nodes SFT_syntax_base[15]
+#define COLOR_syntax_base___MMSrcLocalClass___formal_dict SFT_syntax_base[16]
+#define COLOR_syntax_base___MMSrcLocalClass___formal_dict__eq SFT_syntax_base[17]
+#define COLOR_syntax_base___MMSrcLocalClass___src_local_properties SFT_syntax_base[18]
+#define COLOR_syntax_base___MMSrcLocalClass___init SFT_syntax_base[19]
+#define COLOR_syntax_base___MMGlobalProperty___check_visibility SFT_syntax_base[20]
+#define ID_MMSrcLocalProperty SFT_syntax_base[21]
+#define COLOR_MMSrcLocalProperty SFT_syntax_base[22]
+#define COLOR_syntax_base___MMSrcLocalProperty____node SFT_syntax_base[23]
+#define INIT_TABLE_POS_MMSrcLocalProperty SFT_syntax_base[24]
+#define COLOR_syntax_base___MMSrcLocalProperty___node SFT_syntax_base[25]
+#define ID_MMSrcAttribute SFT_syntax_base[26]
+#define COLOR_MMSrcAttribute SFT_syntax_base[27]
+#define INIT_TABLE_POS_MMSrcAttribute SFT_syntax_base[28]
+#define COLOR_syntax_base___MMSrcAttribute___init SFT_syntax_base[29]
+#define ID_MMSrcMethod SFT_syntax_base[30]
+#define COLOR_MMSrcMethod SFT_syntax_base[31]
+#define INIT_TABLE_POS_MMSrcMethod SFT_syntax_base[32]
+#define ID_MMAttrImplementationMethod SFT_syntax_base[33]
+#define COLOR_MMAttrImplementationMethod SFT_syntax_base[34]
+#define INIT_TABLE_POS_MMAttrImplementationMethod SFT_syntax_base[35]
+#define ID_MMReadImplementationMethod SFT_syntax_base[36]
+#define COLOR_MMReadImplementationMethod SFT_syntax_base[37]
+#define INIT_TABLE_POS_MMReadImplementationMethod SFT_syntax_base[38]
+#define COLOR_syntax_base___MMReadImplementationMethod___init SFT_syntax_base[39]
+#define ID_MMWriteImplementationMethod SFT_syntax_base[40]
+#define COLOR_MMWriteImplementationMethod SFT_syntax_base[41]
+#define INIT_TABLE_POS_MMWriteImplementationMethod SFT_syntax_base[42]
+#define COLOR_syntax_base___MMWriteImplementationMethod___init SFT_syntax_base[43]
+#define ID_MMMethSrcMethod SFT_syntax_base[44]
+#define COLOR_MMMethSrcMethod SFT_syntax_base[45]
+#define INIT_TABLE_POS_MMMethSrcMethod SFT_syntax_base[46]
+#define COLOR_syntax_base___MMMethSrcMethod___init SFT_syntax_base[47]
+#define ID_MMSrcTypeProperty SFT_syntax_base[48]
+#define COLOR_MMSrcTypeProperty SFT_syntax_base[49]
+#define INIT_TABLE_POS_MMSrcTypeProperty SFT_syntax_base[50]
+#define COLOR_syntax_base___MMSrcTypeProperty___init SFT_syntax_base[51]
+#define ID_Variable SFT_syntax_base[52]
+#define COLOR_Variable SFT_syntax_base[53]
+#define COLOR_syntax_base___Variable____name SFT_syntax_base[54]
+#define COLOR_syntax_base___Variable____decl SFT_syntax_base[55]
+#define COLOR_syntax_base___Variable____stype SFT_syntax_base[56]
+#define INIT_TABLE_POS_Variable SFT_syntax_base[57]
+#define COLOR_syntax_base___Variable___name SFT_syntax_base[58]
+#define COLOR_syntax_base___Variable___decl SFT_syntax_base[59]
+#define COLOR_syntax_base___Variable___stype SFT_syntax_base[60]
+#define COLOR_syntax_base___Variable___stype__eq SFT_syntax_base[61]
+#define COLOR_syntax_base___Variable___init SFT_syntax_base[62]
+#define ID_AbsSyntaxVisitor SFT_syntax_base[63]
+#define COLOR_AbsSyntaxVisitor SFT_syntax_base[64]
+#define COLOR_syntax_base___AbsSyntaxVisitor____module SFT_syntax_base[65]
+#define COLOR_syntax_base___AbsSyntaxVisitor____local_class SFT_syntax_base[66]
+#define COLOR_syntax_base___AbsSyntaxVisitor____local_property SFT_syntax_base[67]
+#define COLOR_syntax_base___AbsSyntaxVisitor____tc SFT_syntax_base[68]
+#define INIT_TABLE_POS_AbsSyntaxVisitor SFT_syntax_base[69]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_bool SFT_syntax_base[70]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_int SFT_syntax_base[71]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_float SFT_syntax_base[72]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_char SFT_syntax_base[73]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_string SFT_syntax_base[74]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_collection SFT_syntax_base[75]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_array SFT_syntax_base[76]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_discrete SFT_syntax_base[77]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_range SFT_syntax_base[78]
+#define COLOR_syntax_base___AbsSyntaxVisitor___type_none SFT_syntax_base[79]
+#define COLOR_syntax_base___AbsSyntaxVisitor___module SFT_syntax_base[80]
+#define COLOR_syntax_base___AbsSyntaxVisitor___module__eq SFT_syntax_base[81]
+#define COLOR_syntax_base___AbsSyntaxVisitor___local_class SFT_syntax_base[82]
+#define COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq SFT_syntax_base[83]
+#define COLOR_syntax_base___AbsSyntaxVisitor___local_property SFT_syntax_base[84]
+#define COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq SFT_syntax_base[85]
+#define COLOR_syntax_base___AbsSyntaxVisitor___tc SFT_syntax_base[86]
+#define COLOR_syntax_base___AbsSyntaxVisitor___error SFT_syntax_base[87]
+#define COLOR_syntax_base___AbsSyntaxVisitor___warning SFT_syntax_base[88]
+#define COLOR_syntax_base___AbsSyntaxVisitor___check_conform SFT_syntax_base[89]
+#define COLOR_syntax_base___AbsSyntaxVisitor___init SFT_syntax_base[90]
+#define COLOR_syntax_base___PNode___accept_abs_syntax_visitor SFT_syntax_base[91]
+#define COLOR_syntax_base___Token____symbol SFT_syntax_base[92]
+#define COLOR_syntax_base___Token___to_symbol SFT_syntax_base[93]
+#define COLOR_syntax_base___PClassdef___local_class SFT_syntax_base[94]
+#define COLOR_syntax_base___AAttrPropdef___prop SFT_syntax_base[95]
+#define COLOR_syntax_base___AAttrPropdef___readmethod SFT_syntax_base[96]
+#define COLOR_syntax_base___AAttrPropdef___writemethod SFT_syntax_base[97]
+#define COLOR_syntax_base___AMethPropdef___method SFT_syntax_base[98]
+#define COLOR_syntax_base___ATypePropdef___prop SFT_syntax_base[99]
+#define COLOR_syntax_base___PParam___position SFT_syntax_base[100]
+#define COLOR_syntax_base___PParam___variable SFT_syntax_base[101]
+#define COLOR_syntax_base___PType___get_local_class SFT_syntax_base[102]
+#define COLOR_syntax_base___PType___get_stype SFT_syntax_base[103]
+#define COLOR_syntax_base___PType___get_unchecked_stype SFT_syntax_base[104]
+#define COLOR_syntax_base___PType___check_conform SFT_syntax_base[105]
+#define COLOR_syntax_base___AType____stype_cache SFT_syntax_base[106]
+#define COLOR_syntax_base___AType____stype_cached SFT_syntax_base[107]
+#define COLOR_syntax_base___PExpr___stype SFT_syntax_base[108]
+#define ATTR_syntax_base___MMSrcModule____node(recv) ATTR(recv, COLOR_syntax_base___MMSrcModule____node)
+typedef val_t (* syntax_base___MMSrcModule___node_t)(val_t  self);
+val_t syntax_base___MMSrcModule___node(val_t  self);
+#define ATTR_syntax_base___MMSrcModule____src_local_classes(recv) ATTR(recv, COLOR_syntax_base___MMSrcModule____src_local_classes)
+typedef val_t (* syntax_base___MMSrcModule___src_local_classes_t)(val_t  self);
+val_t syntax_base___MMSrcModule___src_local_classes(val_t  self);
+typedef void (* syntax_base___MMSrcModule___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+void syntax_base___MMSrcModule___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
+val_t NEW_syntax_base___MMSrcModule___init(val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* syntax_base___MMGlobalClass___check_visibility_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t syntax_base___MMGlobalClass___check_visibility(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_syntax_base___MMSrcLocalClass____nodes(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____nodes)
+typedef val_t (* syntax_base___MMSrcLocalClass___nodes_t)(val_t  self);
+val_t syntax_base___MMSrcLocalClass___nodes(val_t  self);
+#define ATTR_syntax_base___MMSrcLocalClass____formal_dict(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____formal_dict)
+typedef val_t (* syntax_base___MMSrcLocalClass___formal_dict_t)(val_t  self);
+val_t syntax_base___MMSrcLocalClass___formal_dict(val_t  self);
+typedef void (* syntax_base___MMSrcLocalClass___formal_dict__eq_t)(val_t  self, val_t  param0);
+void syntax_base___MMSrcLocalClass___formal_dict__eq(val_t  self, val_t  param0);
+#define ATTR_syntax_base___MMSrcLocalClass____src_local_properties(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____src_local_properties)
+typedef val_t (* syntax_base___MMSrcLocalClass___src_local_properties_t)(val_t  self);
+val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t  self);
+typedef void (* syntax_base___MMSrcLocalClass___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMSrcLocalClass___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMSrcLocalClass___init(val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* syntax_base___MMGlobalProperty___check_visibility_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+val_t syntax_base___MMGlobalProperty___check_visibility(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_syntax_base___MMSrcLocalProperty____node(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalProperty____node)
+typedef val_t (* syntax_base___MMSrcLocalProperty___node_t)(val_t  self);
+val_t syntax_base___MMSrcLocalProperty___node(val_t  self);
+typedef void (* syntax_base___MMSrcAttribute___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMSrcAttribute___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMSrcAttribute___init(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* syntax_base___MMReadImplementationMethod___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMReadImplementationMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMReadImplementationMethod___init(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* syntax_base___MMWriteImplementationMethod___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMWriteImplementationMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMWriteImplementationMethod___init(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* syntax_base___MMMethSrcMethod___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMMethSrcMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMMethSrcMethod___init(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* syntax_base___MMSrcTypeProperty___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void syntax_base___MMSrcTypeProperty___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_syntax_base___MMSrcTypeProperty___init(val_t  param0, val_t  param1, val_t  param2);
+#define ATTR_syntax_base___Variable____name(recv) ATTR(recv, COLOR_syntax_base___Variable____name)
+typedef val_t (* syntax_base___Variable___name_t)(val_t  self);
+val_t syntax_base___Variable___name(val_t  self);
+#define ATTR_syntax_base___Variable____decl(recv) ATTR(recv, COLOR_syntax_base___Variable____decl)
+typedef val_t (* syntax_base___Variable___decl_t)(val_t  self);
+val_t syntax_base___Variable___decl(val_t  self);
+#define ATTR_syntax_base___Variable____stype(recv) ATTR(recv, COLOR_syntax_base___Variable____stype)
+typedef val_t (* syntax_base___Variable___stype_t)(val_t  self);
+val_t syntax_base___Variable___stype(val_t  self);
+typedef void (* syntax_base___Variable___stype__eq_t)(val_t  self, val_t  param0);
+void syntax_base___Variable___stype__eq(val_t  self, val_t  param0);
+typedef void (* syntax_base___Variable___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void syntax_base___Variable___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_syntax_base___Variable___init(val_t  param0, val_t  param1);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_bool_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_int_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_int(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_float_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_float(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_char_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_char(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_string_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_string(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_collection_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_array_t)(val_t  self, val_t  param0);
+val_t syntax_base___AbsSyntaxVisitor___type_array(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_discrete_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t  self);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_range_t)(val_t  self, val_t  param0);
+val_t syntax_base___AbsSyntaxVisitor___type_range(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_none_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_none(val_t  self);
+#define ATTR_syntax_base___AbsSyntaxVisitor____module(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____module)
+typedef val_t (* syntax_base___AbsSyntaxVisitor___module_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___module(val_t  self);
+typedef void (* syntax_base___AbsSyntaxVisitor___module__eq_t)(val_t  self, val_t  param0);
+void syntax_base___AbsSyntaxVisitor___module__eq(val_t  self, val_t  param0);
+#define ATTR_syntax_base___AbsSyntaxVisitor____local_class(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____local_class)
+typedef val_t (* syntax_base___AbsSyntaxVisitor___local_class_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___local_class(val_t  self);
+typedef void (* syntax_base___AbsSyntaxVisitor___local_class__eq_t)(val_t  self, val_t  param0);
+void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t  self, val_t  param0);
+#define ATTR_syntax_base___AbsSyntaxVisitor____local_property(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____local_property)
+typedef val_t (* syntax_base___AbsSyntaxVisitor___local_property_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___local_property(val_t  self);
+typedef void (* syntax_base___AbsSyntaxVisitor___local_property__eq_t)(val_t  self, val_t  param0);
+void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t  self, val_t  param0);
+#define ATTR_syntax_base___AbsSyntaxVisitor____tc(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____tc)
+typedef val_t (* syntax_base___AbsSyntaxVisitor___tc_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___tc(val_t  self);
+typedef void (* syntax_base___AbsSyntaxVisitor___error_t)(val_t  self, val_t  param0, val_t  param1);
+void syntax_base___AbsSyntaxVisitor___error(val_t  self, val_t  param0, val_t  param1);
+typedef void (* syntax_base___AbsSyntaxVisitor___warning_t)(val_t  self, val_t  param0, val_t  param1);
+void syntax_base___AbsSyntaxVisitor___warning(val_t  self, val_t  param0, val_t  param1);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___check_conform_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef void (* syntax_base___AbsSyntaxVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void syntax_base___AbsSyntaxVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_syntax_base___AbsSyntaxVisitor___init(val_t  param0, val_t  param1);
+typedef void (* syntax_base___PNode___accept_abs_syntax_visitor_t)(val_t  self, val_t  param0);
+void syntax_base___PNode___accept_abs_syntax_visitor(val_t  self, val_t  param0);
+#define ATTR_syntax_base___Token____symbol(recv) ATTR(recv, COLOR_syntax_base___Token____symbol)
+typedef val_t (* syntax_base___Token___to_symbol_t)(val_t  self);
+val_t syntax_base___Token___to_symbol(val_t  self);
+typedef val_t (* syntax_base___PClassdef___local_class_t)(val_t  self);
+val_t syntax_base___PClassdef___local_class(val_t  self);
+typedef val_t (* syntax_base___AAttrPropdef___prop_t)(val_t  self);
+val_t syntax_base___AAttrPropdef___prop(val_t  self);
+typedef val_t (* syntax_base___AAttrPropdef___readmethod_t)(val_t  self);
+val_t syntax_base___AAttrPropdef___readmethod(val_t  self);
+typedef val_t (* syntax_base___AAttrPropdef___writemethod_t)(val_t  self);
+val_t syntax_base___AAttrPropdef___writemethod(val_t  self);
+typedef val_t (* syntax_base___AMethPropdef___method_t)(val_t  self);
+val_t syntax_base___AMethPropdef___method(val_t  self);
+typedef val_t (* syntax_base___ATypePropdef___prop_t)(val_t  self);
+val_t syntax_base___ATypePropdef___prop(val_t  self);
+typedef val_t (* syntax_base___PParam___position_t)(val_t  self);
+val_t syntax_base___PParam___position(val_t  self);
+typedef val_t (* syntax_base___PParam___variable_t)(val_t  self);
+val_t syntax_base___PParam___variable(val_t  self);
+typedef val_t (* syntax_base___PType___get_local_class_t)(val_t  self, val_t  param0);
+val_t syntax_base___PType___get_local_class(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___PType___get_stype_t)(val_t  self, val_t  param0);
+val_t syntax_base___PType___get_stype(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___PType___get_unchecked_stype_t)(val_t  self, val_t  param0);
+val_t syntax_base___PType___get_unchecked_stype(val_t  self, val_t  param0);
+typedef void (* syntax_base___PType___check_conform_t)(val_t  self, val_t  param0);
+void syntax_base___PType___check_conform(val_t  self, val_t  param0);
+#define ATTR_syntax_base___AType____stype_cache(recv) ATTR(recv, COLOR_syntax_base___AType____stype_cache)
+#define ATTR_syntax_base___AType____stype_cached(recv) ATTR(recv, COLOR_syntax_base___AType____stype_cached)
+typedef val_t (* syntax_base___AType___get_local_class_t)(val_t  self, val_t  param0);
+val_t syntax_base___AType___get_local_class(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___AType___get_unchecked_stype_t)(val_t  self, val_t  param0);
+val_t syntax_base___AType___get_unchecked_stype(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___AType___get_stype_t)(val_t  self, val_t  param0);
+val_t syntax_base___AType___get_stype(val_t  self, val_t  param0);
+typedef void (* syntax_base___AType___check_conform_t)(val_t  self, val_t  param0);
+void syntax_base___AType___check_conform(val_t  self, val_t  param0);
+typedef val_t (* syntax_base___PExpr___stype_t)(val_t  self);
+val_t syntax_base___PExpr___stype(val_t  self);
+#endif
diff --git a/c_src/time._sep.c b/c_src/time._sep.c
new file mode 100644 (file)
index 0000000..c9b842e
--- /dev/null
@@ -0,0 +1,7 @@
+#include "time._sep.h"
+val_t time___Object___get_time(val_t  self) {
+  struct trace_t trace = {NULL, "time::Object::get_time (bin/../lib/standard//time.nit:18,2--67)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return TAG_Int(kernel_Any_Any_get_time_0( self));
+}
diff --git a/c_src/time._sep.h b/c_src/time._sep.h
new file mode 100644 (file)
index 0000000..e747edb
--- /dev/null
@@ -0,0 +1,10 @@
+#ifndef time__sep
+#define time__sep
+#include "kernel._sep.h"
+#include <nit_common.h>
+#include <time_nit.h>
+extern const int SFT_time[];
+#define COLOR_time___Object___get_time SFT_time[0]
+typedef val_t (* time___Object___get_time_t)(val_t  self);
+val_t time___Object___get_time(val_t  self);
+#endif
diff --git a/c_src/type_formal._sep.c b/c_src/type_formal._sep.c
new file mode 100644 (file)
index 0000000..9813a3e
--- /dev/null
@@ -0,0 +1,133 @@
+#include "type_formal._sep.h"
+val_t type_formal___MMType___direct_type(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMType::direct_type (src/metamodel//type_formal.nit:24,2--25:40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  self;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t type_formal___MMTypeFormal___name(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::name (src/metamodel//type_formal.nit:31,2--32:28)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_type_formal___MMTypeFormal____name( self) /*MMTypeFormal::_name*/;
+}
+val_t type_formal___MMTypeFormal___bound(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::bound (src/metamodel//type_formal.nit:34,2--35:29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+}
+val_t type_formal___MMTypeFormal_____l(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::< (src/metamodel//type_formal.nit:37,2--76)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*t*/ ==  NIT_NULL /*null*/) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  variable2 = variable1;
+  if (UNTAG_Bool(variable2)) { /* and */
+    variable2 = TAG_Bool(( variable0 /*t*/ ==  self) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/,  self) /*MMType::==*/)))));
+    variable3 = variable2;
+    if (!UNTAG_Bool(variable3)) { /* or */
+      variable3 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+      variable3 = ((static_type___MMType___is_supertype_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___is_supertype))( variable0 /*t*/, variable3) /*MMType::is_supertype*/;
+    }
+    variable2 = variable3;
+  }
+  variable1 = variable2;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t type_formal___MMTypeFormal___is_supertype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::is_supertype (src/metamodel//type_formal.nit:38,2--59)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+  variable1 = ((static_type___MMType___is_supertype_t)CALL(variable1,COLOR_static_type___MMType___is_supertype))(variable1,  variable0 /*t*/) /*MMType::is_supertype*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t type_formal___MMTypeFormal___direct_type(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::direct_type (src/metamodel//type_formal.nit:39,2--52)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+  variable0 = ((type_formal___MMType___direct_type_t)CALL(variable0,COLOR_type_formal___MMType___direct_type))(variable0) /*MMType::direct_type*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t type_formal___MMTypeFormal___local_class(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::local_class (src/metamodel//type_formal.nit:40,2--43:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 =  NIT_NULL /*null*/;
+    goto return_label4;
+  }
+  variable0 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+  variable0 = ((static_type___MMType___local_class_t)CALL(variable0,COLOR_static_type___MMType___local_class))(variable0) /*MMType::local_class*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t type_formal___MMTypeFormal___select_property(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::select_property (src/metamodel//type_formal.nit:46,2--51:34)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(( variable0 /*g*/ ==  NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/,  NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label5;
+  } else { /*if*/
+    variable1 = ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/;
+    variable1 = ((static_type___MMType___select_property_t)CALL(variable1,COLOR_static_type___MMType___select_property))(variable1,  variable0 /*g*/) /*MMType::select_property*/;
+    goto return_label5;
+  }
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t type_formal___MMTypeFormal___to_s(val_t  self) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::to_s (src/metamodel//type_formal.nit:55,2--37)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_type_formal___MMTypeFormal____name( self) /*MMTypeFormal::_name*/;
+  variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void type_formal___MMTypeFormal___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "type_formal::MMTypeFormal::init (src/metamodel//type_formal.nit:57,2--60:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormal].i]) return;
+  ATTR_type_formal___MMTypeFormal____name( self) /*MMTypeFormal::_name*/ =  variable0 /*name*/;
+  ATTR_type_formal___MMTypeFormal____bound( self) /*MMTypeFormal::_bound*/ =  variable1 /*bound*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeFormal].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/type_formal._sep.h b/c_src/type_formal._sep.h
new file mode 100644 (file)
index 0000000..428c483
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef type_formal__sep
+#define type_formal__sep
+#include "inheritance._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMTypeFormal[];
+extern const int SFT_type_formal[];
+#define COLOR_type_formal___MMType___direct_type SFT_type_formal[0]
+#define ID_MMTypeFormal SFT_type_formal[1]
+#define COLOR_MMTypeFormal SFT_type_formal[2]
+#define COLOR_type_formal___MMTypeFormal____name SFT_type_formal[3]
+#define COLOR_type_formal___MMTypeFormal____bound SFT_type_formal[4]
+#define INIT_TABLE_POS_MMTypeFormal SFT_type_formal[5]
+#define COLOR_type_formal___MMTypeFormal___name SFT_type_formal[6]
+#define COLOR_type_formal___MMTypeFormal___bound SFT_type_formal[7]
+#define COLOR_type_formal___MMTypeFormal___init SFT_type_formal[8]
+typedef val_t (* type_formal___MMType___direct_type_t)(val_t  self);
+val_t type_formal___MMType___direct_type(val_t  self);
+#define ATTR_type_formal___MMTypeFormal____name(recv) ATTR(recv, COLOR_type_formal___MMTypeFormal____name)
+typedef val_t (* type_formal___MMTypeFormal___name_t)(val_t  self);
+val_t type_formal___MMTypeFormal___name(val_t  self);
+#define ATTR_type_formal___MMTypeFormal____bound(recv) ATTR(recv, COLOR_type_formal___MMTypeFormal____bound)
+typedef val_t (* type_formal___MMTypeFormal___bound_t)(val_t  self);
+val_t type_formal___MMTypeFormal___bound(val_t  self);
+typedef val_t (* type_formal___MMTypeFormal_____l_t)(val_t  self, val_t  param0);
+val_t type_formal___MMTypeFormal_____l(val_t  self, val_t  param0);
+typedef val_t (* type_formal___MMTypeFormal___is_supertype_t)(val_t  self, val_t  param0);
+val_t type_formal___MMTypeFormal___is_supertype(val_t  self, val_t  param0);
+typedef val_t (* type_formal___MMTypeFormal___direct_type_t)(val_t  self);
+val_t type_formal___MMTypeFormal___direct_type(val_t  self);
+typedef val_t (* type_formal___MMTypeFormal___local_class_t)(val_t  self);
+val_t type_formal___MMTypeFormal___local_class(val_t  self);
+typedef val_t (* type_formal___MMTypeFormal___select_property_t)(val_t  self, val_t  param0);
+val_t type_formal___MMTypeFormal___select_property(val_t  self, val_t  param0);
+typedef val_t (* type_formal___MMTypeFormal___to_s_t)(val_t  self);
+val_t type_formal___MMTypeFormal___to_s(val_t  self);
+typedef void (* type_formal___MMTypeFormal___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void type_formal___MMTypeFormal___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_type_formal___MMTypeFormal___init(val_t  param0, val_t  param1);
+#endif
diff --git a/c_src/typing._sep.c b/c_src/typing._sep.c
new file mode 100644 (file)
index 0000000..61d8b35
--- /dev/null
@@ -0,0 +1,3410 @@
+#include "typing._sep.h"
+void typing___MMSrcModule___do_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::MMSrcModule::do_typing (src/syntax//typing.nit:23,2--28:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = NEW_typing___TypingVisitor___init( variable0 /*tc*/,  self); /*new TypingVisitor*/
+  variable1 = variable2;
+  variable2 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable1 /*tv*/,COLOR_parser_prod___Visitor___visit))( variable1 /*tv*/, variable2) /*TypingVisitor::visit*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___TypingVisitor___visit(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::visit (src/syntax//typing.nit:39,2--41:40)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ ==  NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/,  NIT_NULL /*null*/) /*PNode::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    ((typing___PNode___accept_typing_t)CALL( variable0 /*n*/,COLOR_typing___PNode___accept_typing))( variable0 /*n*/,  self) /*PNode::accept_typing*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___variable_ctx(val_t  self) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::variable_ctx (src/syntax//typing.nit:44,2--45:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___TypingVisitor____variable_ctx( self) /*TypingVisitor::_variable_ctx*/;
+}
+void typing___TypingVisitor___variable_ctx__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::variable_ctx= (src/syntax//typing.nit:44,2--45:54)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___TypingVisitor____variable_ctx( self) /*TypingVisitor::_variable_ctx*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___self_type(val_t  self) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::self_type (src/syntax//typing.nit:47,2--48:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___TypingVisitor____self_type( self) /*TypingVisitor::_self_type*/;
+}
+void typing___TypingVisitor___self_type__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::self_type= (src/syntax//typing.nit:47,2--48:42)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___TypingVisitor____self_type( self) /*TypingVisitor::_self_type*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___top_block(val_t  self) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::top_block (src/syntax//typing.nit:50,2--51:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___TypingVisitor____top_block( self) /*TypingVisitor::_top_block*/;
+}
+void typing___TypingVisitor___top_block__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::top_block= (src/syntax//typing.nit:50,2--51:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___TypingVisitor____top_block( self) /*TypingVisitor::_top_block*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___explicit_super_init_calls(val_t  self) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::explicit_super_init_calls (src/syntax//typing.nit:53,2--54:66)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___TypingVisitor____explicit_super_init_calls( self) /*TypingVisitor::_explicit_super_init_calls*/;
+}
+void typing___TypingVisitor___explicit_super_init_calls__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::explicit_super_init_calls= (src/syntax//typing.nit:53,2--54:66)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___TypingVisitor____explicit_super_init_calls( self) /*TypingVisitor::_explicit_super_init_calls*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___explicit_other_init_call(val_t  self) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::explicit_other_init_call (src/syntax//typing.nit:56,2--57:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___TypingVisitor____explicit_other_init_call( self) /*TypingVisitor::_explicit_other_init_call*/;
+}
+void typing___TypingVisitor___explicit_other_init_call__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::explicit_other_init_call= (src/syntax//typing.nit:56,2--57:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___TypingVisitor____explicit_other_init_call( self) /*TypingVisitor::_explicit_other_init_call*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void typing___TypingVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::init (src/syntax//typing.nit:59,2--26)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i]) return;
+  ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self,  param0,  param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___TypingVisitor___get_default_constructor_for(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, "typing::TypingVisitor::get_default_constructor_for (src/syntax//typing.nit:61,2--96:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+      val_t variable13;
+      val_t variable14;
+      val_t variable15;
+      val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  self;
+  variable5 = NEW_array___Array___init(); /*new Array[MMMethod]*/
+  variable4 = variable5;
+  variable6 = NEW_array___Array___init(); /*new Array[MMMethod]*/
+  variable5 = variable6;
+  variable7 = ((genericity___MMLocalProperty___signature_t)CALL( variable2 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable2 /*prop*/) /*MMMethod::signature*/;
+  variable7 = ((static_type___MMSignature___arity_t)CALL(variable7,COLOR_static_type___MMSignature___arity))(variable7) /*MMSignature::arity*/;
+  variable6 = variable7;
+  variable7 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable1 /*c*/) /*MMLocalClass::global_properties*/;
+  variable7 = ((abstract_collection___Collection___iterator_t)CALL(variable7,COLOR_abstract_collection___Collection___iterator))(variable7) /*Set::iterator*/;
+  while (true) { /*for*/
+    variable8 = ((abstract_collection___Iterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable8)) break; /*for*/
+    variable8 = ((abstract_collection___Iterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*Iterator::item*/;
+    variable9 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable8 /*g*/) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable9)))) { /*if*/
+      goto continue_4;
+    }
+    variable9 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*g*/) /*MMGlobalProperty::intro*/;
+    variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable9,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable9) /*MMConcreteProperty::local_class*/;
+    variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable9 ==  variable1 /*c*/) || ((variable9 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable9, variable1 /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))(variable9,  variable1 /*c*/) /*MMLocalClass::==*/)))))));
+    if (UNTAG_Bool(variable9)) { /*if*/
+      goto continue_4;
+    }
+    variable10 = ((inheritance___MMLocalClass_____bra_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable1 /*c*/,  variable8 /*g*/) /*MMLocalClass::[]*/;
+    variable9 = variable10;
+    variable10 = TAG_Bool(( variable9 /*gp*/==NIT_NULL) || VAL_ISA( variable9 /*gp*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+    if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:73,4--25\n"); nit_exit(1);}
+    variable11 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*g*/) /*MMGlobalProperty::intro*/;
+    variable11 = ((genericity___MMLocalProperty___signature_t)CALL(variable11,COLOR_static_type___MMLocalProperty___signature))(variable11) /*MMConcreteProperty::signature*/;
+    variable11 = ((static_type___MMSignature___arity_t)CALL(variable11,COLOR_static_type___MMSignature___arity))(variable11) /*MMSignature::arity*/;
+    variable10 = variable11;
+    variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*prop*/ ==  NIT_NULL /*null*/) || (( variable2 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))( variable2 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))))));
+    variable12 = variable11;
+    if (UNTAG_Bool(variable12)) { /* and */
+      variable12 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*g*/) /*MMGlobalProperty::intro*/;
+      variable12 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable12,COLOR_abstractmetamodel___MMLocalProperty___name))(variable12) /*MMConcreteProperty::name*/;
+      variable13 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable2 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable2 /*prop*/) /*MMMethod::name*/;
+      variable12 = TAG_Bool((variable12 == variable13) || ((variable12 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable12,variable13)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))(variable12, variable13) /*Symbol::==*/)))));
+    }
+    variable11 = variable12;
+    if (UNTAG_Bool(variable11)) { /*if*/
+      variable11 = TAG_Bool(( variable10 /*garity*/)==( TAG_Int(0)));
+      variable12 = variable11;
+      if (!UNTAG_Bool(variable12)) { /* or */
+        variable12 = TAG_Bool(( variable10 /*garity*/)==( variable6 /*parity*/));
+      }
+      variable11 = variable12;
+      if (UNTAG_Bool(variable11)) { /*if*/
+        variable3 =  variable9 /*gp*/;
+        goto return_label3;
+      } else { /*if*/
+        ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/,  variable9 /*gp*/) /*Array::add*/;
+      }
+    } else { /*if*/
+      variable11 = TAG_Bool(( variable10 /*garity*/)==( TAG_Int(0)));
+      if (UNTAG_Bool(variable11)) { /*if*/
+        ((array___AbstractArray___add_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*candidates*/,  variable9 /*gp*/) /*Array::add*/;
+        ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/,  variable9 /*gp*/) /*Array::add*/;
+      } else { /*if*/
+        ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/,  variable9 /*gp*/) /*Array::add*/;
+      }
+    }
+    continue_4: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*Iterator::next*/;
+  }
+  break_4: while(0);
+  variable7 = ((array___AbstractArray___length_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___Collection___length))( variable4 /*candidates*/) /*Array::length*/;
+  variable7 = TAG_Bool((variable7)==( TAG_Int(1)));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    variable7 = ((abstract_collection___IndexedCollection___first_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___Collection___first))( variable4 /*candidates*/) /*Array::first*/;
+    variable3 = variable7;
+    goto return_label3;
+  } else { /*if*/
+    variable7 = ((array___AbstractArray___is_empty_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___Collection___is_empty))( variable5 /*false_candidates*/) /*Array::is_empty*/;
+    if (UNTAG_Bool(variable7)) { /*if*/
+      variable7 = NEW_string___String___init(); /*new String*/
+      variable8 = NEW_string___String___with_native(BOX_NativeString("Fatal error: there is no available constrctor in "), TAG_Int(49)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+      variable10 =  variable1 /*c*/;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable3 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable3 /*v*/,  variable0 /*n*/, variable7) /*TypingVisitor::warning*/;
+      variable3 =  NIT_NULL /*null*/;
+      goto return_label3;
+    } else { /*if*/
+      variable7 = NEW_string___String___init(); /*new String*/
+      variable8 = NEW_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+      variable10 =  variable1 /*c*/;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+      variable13 = ((string___Collection___join_t)CALL( variable5 /*false_candidates*/,COLOR_string___Collection___join))( variable5 /*false_candidates*/, variable13) /*Array::join*/;
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
+      variable15 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable16 = variable15;
+      ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable3 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable3 /*v*/,  variable0 /*n*/, variable7) /*TypingVisitor::error*/;
+      variable3 =  NIT_NULL /*null*/;
+      goto return_label3;
+    }
+  }
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable3;
+}
+val_t typing___VariableContext_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::VariableContext::[] (src/syntax//typing.nit:104,2--111:14)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*s*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*s*/) /*Map::[]*/;
+    goto return_label5;
+  } else { /*if*/
+    variable1 =  NIT_NULL /*null*/;
+    goto return_label5;
+  }
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void typing___VariableContext___add(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::VariableContext::add (src/syntax//typing.nit:115,2--118:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
+  variable2 = ((syntax_base___Variable___name_t)CALL( variable0 /*v*/,COLOR_syntax_base___Variable___name))( variable0 /*v*/) /*Variable::name*/;
+  ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2,  variable0 /*v*/) /*Map::[]=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___VariableContext___stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::VariableContext::stype (src/syntax//typing.nit:122,2--126:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___Variable___stype_t)CALL( variable0 /*v*/,COLOR_syntax_base___Variable___stype))( variable0 /*v*/) /*Variable::stype*/;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t typing___VariableContext___sub(val_t  self) {
+  struct trace_t trace = {NULL, "typing::VariableContext::sub (src/syntax//typing.nit:132,2--135:53)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_typing___SubVariableContext___with( self,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new SubVariableContext*/
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___VariableContext___sub_with(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "typing::VariableContext::sub_with (src/syntax//typing.nit:138,2--141:47)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = NEW_typing___SubVariableContext___with( self,  variable0 /*v*/,  variable1 /*t*/); /*new SubVariableContext*/
+  goto return_label9;
+  return_label9: while(false);
+  tracehead = trace.prev;
+  return variable2;
+}
+void typing___VariableContext___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, "typing::VariableContext::init (src/syntax//typing.nit:144,2--146:38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i]) return;
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[Symbol, Variable]*/
+  ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/ = variable0;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___SubVariableContext___prev(val_t  self) {
+  struct trace_t trace = {NULL, "typing::SubVariableContext::prev (src/syntax//typing.nit:152,2--37)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___SubVariableContext____prev( self) /*SubVariableContext::_prev*/;
+}
+val_t typing___SubVariableContext_____bra(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::SubVariableContext::[] (src/syntax//typing.nit:156,2--161:16)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_typing___VariableContext____dico( self) /*SubVariableContext::_dico*/;
+  variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*s*/) /*Map::has_key*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_typing___VariableContext____dico( self) /*SubVariableContext::_dico*/;
+    variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1,  variable0 /*s*/) /*Map::[]*/;
+    goto return_label11;
+  } else { /*if*/
+    variable1 = ((typing___SubVariableContext___prev_t)CALL( self,COLOR_typing___SubVariableContext___prev))( self) /*SubVariableContext::prev*/;
+    variable1 = ((typing___VariableContext_____bra_t)CALL(variable1,COLOR_typing___VariableContext_____bra))(variable1,  variable0 /*s*/) /*VariableContext::[]*/;
+    goto return_label11;
+  }
+  return_label11: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t typing___SubVariableContext___stype(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::SubVariableContext::stype (src/syntax//typing.nit:165,2--170:21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ATTR_typing___SubVariableContext____variable( self) /*SubVariableContext::_variable*/;
+  variable1 = TAG_Bool((variable1 ==  variable0 /*v*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*v*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*v*/) /*Variable::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ATTR_typing___SubVariableContext____var_type( self) /*SubVariableContext::_var_type*/;
+    goto return_label12;
+  }
+  variable1 = ((typing___SubVariableContext___prev_t)CALL( self,COLOR_typing___SubVariableContext___prev))( self) /*SubVariableContext::prev*/;
+  variable1 = ((typing___VariableContext___stype_t)CALL(variable1,COLOR_typing___VariableContext___stype))(variable1,  variable0 /*v*/) /*VariableContext::stype*/;
+  goto return_label12;
+  return_label12: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void typing___SubVariableContext___with(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "typing::SubVariableContext::with (src/syntax//typing.nit:173,2--178:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i]) return;
+  ((typing___VariableContext___init_t)CALL( self,COLOR_typing___VariableContext___init))( self, init_table /*YYY*/) /*SubVariableContext::init*/;
+  ATTR_typing___SubVariableContext____prev( self) /*SubVariableContext::_prev*/ =  variable0 /*p*/;
+  ATTR_typing___SubVariableContext____variable( self) /*SubVariableContext::_variable*/ =  variable1 /*v*/;
+  ATTR_typing___SubVariableContext____var_type( self) /*SubVariableContext::_var_type*/ =  variable2 /*t*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___PNode___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::PNode::accept_typing (src/syntax//typing.nit:186,2--189:16)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self,  variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  ((typing___PNode___after_typing_t)CALL( self,COLOR_typing___PNode___after_typing))( self,  variable0 /*v*/) /*PNode::after_typing*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___PNode___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::PNode::after_typing (src/syntax//typing.nit:191,2--43)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  tracehead = trace.prev;
+  return;
+}
+void typing___PClassdef___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::PClassdef::accept_typing (src/syntax//typing.nit:195,2--198:7)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___PClassdef___local_class_t)CALL( self,COLOR_syntax_base___PClassdef___local_class))( self) /*PClassdef::local_class*/;
+  variable1 = ((genericity___MMLocalClass___get_type_t)CALL(variable1,COLOR_static_type___MMLocalClass___get_type))(variable1) /*MMSrcLocalClass::get_type*/;
+  ((typing___TypingVisitor___self_type__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type__eq))( variable0 /*v*/, variable1) /*TypingVisitor::self_type=*/;
+  ((typing___PClassdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___PClassdef___accept_typing))( self,  param0) /*super PClassdef::accept_typing*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAttrPropdef___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAttrPropdef::accept_typing (src/syntax//typing.nit:203,2--207:67)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((typing___AAttrPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AAttrPropdef___accept_typing))( self,  param0) /*super AAttrPropdef::accept_typing*/;
+  variable1 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
+    variable2 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
+    variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+    variable3 = ((syntax_base___AAttrPropdef___prop_t)CALL( self,COLOR_syntax_base___AAttrPropdef___prop))( self) /*AAttrPropdef::prop*/;
+    variable3 = ((genericity___MMLocalProperty___signature_t)CALL(variable3,COLOR_static_type___MMLocalProperty___signature))(variable3) /*MMSrcAttribute::signature*/;
+    variable3 = ((static_type___MMSignature___return_type_t)CALL(variable3,COLOR_static_type___MMSignature___return_type))(variable3) /*MMSignature::return_type*/;
+    ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, variable1, variable2, variable3) /*TypingVisitor::check_conform*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___AMethPropdef___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AMethPropdef::accept_typing (src/syntax//typing.nit:213,2--216:7)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_typing___VariableContext___init(); /*new VariableContext*/
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
+  ((typing___AMethPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AMethPropdef___accept_typing))( self,  param0) /*super AMethPropdef::accept_typing*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AConcreteInitPropdef___super_init_calls(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AConcreteInitPropdef::super_init_calls (src/syntax//typing.nit:221,2--70)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AConcreteInitPropdef____super_init_calls( self) /*AConcreteInitPropdef::_super_init_calls*/;
+}
+val_t typing___AConcreteInitPropdef___explicit_super_init_calls(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AConcreteInitPropdef::explicit_super_init_calls (src/syntax//typing.nit:222,2--79)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls( self) /*AConcreteInitPropdef::_explicit_super_init_calls*/;
+}
+void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AConcreteInitPropdef::accept_typing (src/syntax//typing.nit:223,2--259:11)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL( self,COLOR_parser_nodes___AConcreteMethPropdef___n_block))( self) /*AConcreteInitPropdef::n_block*/;
+  ((typing___TypingVisitor___top_block__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block__eq))( variable0 /*v*/, variable1) /*TypingVisitor::top_block=*/;
+  variable1 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+  ((typing___TypingVisitor___explicit_super_init_calls__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls__eq))( variable0 /*v*/, variable1) /*TypingVisitor::explicit_super_init_calls=*/;
+  ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable0 /*v*/,  TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
+  ((typing___AConcreteInitPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing))( self,  param0) /*super AConcreteInitPropdef::accept_typing*/;
+  variable1 = ((typing___TypingVisitor___explicit_other_init_call_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call))( variable0 /*v*/) /*TypingVisitor::explicit_other_init_call*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+  } else { /*if*/
+    variable1 =  TAG_Int(0);
+    variable3 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*Array::length*/;
+    variable2 = variable3;
+    variable3 = NIT_NULL /*decl variable cur_m*/;
+    variable4 = NIT_NULL /*decl variable cur_c*/;
+    variable5 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable5 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+      variable6 =  variable1 /*i*/;
+      variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable8 = variable7;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = variable5;
+        variable8 = ATTR_array___AbstractArray____length(variable8) /*Array::_length*/;
+        variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
+      }
+      variable7 = variable8;
+      if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable7 = variable5;
+      variable7 = ATTR_array___Array____items(variable7) /*Array::_items*/;
+      variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
+      goto return_label20;
+      return_label20: while(false);
+      variable5 = variable7;
+      variable3 = variable5 /*cur_m=*/;
+      variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*cur_m*/) /*MMMethod::global*/;
+      variable5 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable5) /*MMGlobalProperty::intro*/;
+      variable5 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable5) /*MMConcreteProperty::local_class*/;
+      variable4 = variable5 /*cur_c=*/;
+    }
+    variable5 =  TAG_Int(0);
+    while (true) { /*while*/
+      variable6 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*TypingVisitor::local_class*/;
+      variable6 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable6) /*MMSrcLocalClass::cshe*/;
+      variable6 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable6,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable6) /*PartialOrderElement::direct_greaters*/;
+      variable6 = ((array___AbstractArray___length_t)CALL(variable6,COLOR_abstract_collection___Collection___length))(variable6) /*Array::length*/;
+      variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)<UNTAG_Int(variable6));
+      if (!UNTAG_Bool(variable6)) break; /* while*/
+      variable7 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*TypingVisitor::local_class*/;
+      variable7 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable7) /*MMSrcLocalClass::cshe*/;
+      variable7 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable7,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable7) /*PartialOrderElement::direct_greaters*/;
+      variable8 =  variable5 /*j*/;
+      variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable10 = variable9;
+      if (UNTAG_Bool(variable10)) { /* and */
+        variable10 = variable7;
+        variable10 = ATTR_array___AbstractArray____length(variable10) /*Array::_length*/;
+        variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+      }
+      variable9 = variable10;
+      if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable9 = variable7;
+      variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
+      variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+      goto return_label22;
+      return_label22: while(false);
+      variable7 = variable9;
+      variable6 = variable7;
+      variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*cur_c*/ ==  NIT_NULL /*null*/) || (( variable4 /*cur_c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*cur_c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*cur_c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*cur_c*/,COLOR_kernel___Object_____eqeq))( variable4 /*cur_c*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+      variable8 = variable7;
+      if (UNTAG_Bool(variable8)) { /* and */
+        variable8 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable6 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable6 /*c*/) /*MMLocalClass::cshe*/;
+        variable8 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable8,COLOR_partial_order___PartialOrderElement_____leq))(variable8,  variable4 /*cur_c*/) /*PartialOrderElement::<=*/;
+      }
+      variable7 = variable8;
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable7 = TAG_Bool(( variable6 /*c*/ ==  variable4 /*cur_c*/) || (( variable6 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*c*/, variable4 /*cur_c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*c*/,COLOR_kernel___Object_____eqeq))( variable6 /*c*/,  variable4 /*cur_c*/) /*MMLocalClass::==*/)))));
+        if (UNTAG_Bool(variable7)) { /*if*/
+          variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*j*/;
+        }
+        variable7 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___super_init_calls))( self) /*AConcreteInitPropdef::super_init_calls*/;
+        ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7,  variable3 /*cur_m*/) /*Array::add*/;
+        variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
+        variable7 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
+        if (UNTAG_Bool(variable7)) { /*if*/
+          variable7 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+          variable8 =  variable1 /*i*/;
+          variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          variable10 = variable9;
+          if (UNTAG_Bool(variable10)) { /* and */
+            variable10 = variable7;
+            variable10 = ATTR_array___AbstractArray____length(variable10) /*Array::_length*/;
+            variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
+          }
+          variable9 = variable10;
+          if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+          variable9 = variable7;
+          variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
+          variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
+          goto return_label23;
+          return_label23: while(false);
+          variable7 = variable9;
+          variable3 = variable7 /*cur_m=*/;
+          variable7 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*cur_m*/) /*MMMethod::global*/;
+          variable7 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable7,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable7) /*MMGlobalProperty::intro*/;
+          variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable7) /*MMConcreteProperty::local_class*/;
+          variable4 = variable7 /*cur_c=*/;
+        } else { /*if*/
+          variable3 =  NIT_NULL /*null*/ /*cur_m=*/;
+          variable4 =  NIT_NULL /*null*/ /*cur_c=*/;
+        }
+      } else { /*if*/
+        variable8 = ((syntax_base___AMethPropdef___method_t)CALL( self,COLOR_syntax_base___AMethPropdef___method))( self) /*AConcreteInitPropdef::method*/;
+        variable8 = ((typing___TypingVisitor___get_default_constructor_for_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___get_default_constructor_for))( variable0 /*v*/,  self,  variable6 /*c*/, variable8) /*TypingVisitor::get_default_constructor_for*/;
+        variable7 = variable8;
+        variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*p*/ ==  NIT_NULL /*null*/) || (( variable7 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*p*/,COLOR_kernel___Object_____eqeq))( variable7 /*p*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))))));
+        if (UNTAG_Bool(variable8)) { /*if*/
+          variable8 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___super_init_calls))( self) /*AConcreteInitPropdef::super_init_calls*/;
+          ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  variable7 /*p*/) /*Array::add*/;
+        }
+        variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*j*/;
+      }
+      continue_21: while(0);
+    }
+    break_21: while(0);
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___PParam___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::PParam::after_typing (src/syntax//typing.nit:267,2--270:30)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable2 = ((syntax_base___PParam___variable_t)CALL( self,COLOR_syntax_base___PParam___variable))( self) /*PParam::variable*/;
+    ((typing___VariableContext___add_t)CALL(variable1,COLOR_typing___VariableContext___add))(variable1, variable2) /*VariableContext::add*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___PType___stype(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PType::stype (src/syntax//typing.nit:276,2--29)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___PType____stype( self) /*PType::_stype*/;
+}
+void typing___PType___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::PType::after_typing (src/syntax//typing.nit:277,2--279:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___PType___get_stype_t)CALL( self,COLOR_syntax_base___PType___get_stype))( self,  variable0 /*v*/) /*PType::get_stype*/;
+  ATTR_typing___PType____stype( self) /*PType::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___PExpr___stype(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PExpr::stype (src/syntax//typing.nit:284,2--35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/;
+}
+val_t typing___PExpr___is_implicit_self(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PExpr::is_implicit_self (src/syntax//typing.nit:286,2--287:44)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label26;
+  return_label26: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___PExpr___is_self(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PExpr::is_self (src/syntax//typing.nit:289,2--290:35)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label27;
+  return_label27: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___PExpr___is_variable(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PExpr::is_variable (src/syntax//typing.nit:292,2--293:39)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(false);
+  goto return_label28;
+  return_label28: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___PExpr___if_true_variable_ctx(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PExpr::if_true_variable_ctx (src/syntax//typing.nit:295,2--296:61)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/;
+}
+val_t typing___AVardeclExpr___variable(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AVardeclExpr::variable (src/syntax//typing.nit:300,2--301:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/;
+}
+void typing___AVardeclExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AVardeclExpr::after_typing (src/syntax//typing.nit:303,2--315:26)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AVardeclExpr___n_id_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_id))( self) /*AVardeclExpr::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TId::to_symbol*/;
+  variable3 = NEW_syntax_base___Variable___init(variable2,  self); /*new Variable*/
+  variable2 = variable3;
+  variable1 = variable2;
+  ATTR_typing___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/ =  variable1 /*va*/;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  ((typing___VariableContext___add_t)CALL(variable2,COLOR_typing___VariableContext___add))(variable2,  variable1 /*va*/) /*VariableContext::add*/;
+  variable2 = ((parser_nodes___AVardeclExpr___n_type_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_type))( self) /*AVardeclExpr::n_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AVardeclExpr___n_type_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_type))( self) /*AVardeclExpr::n_type*/;
+    variable2 = ((typing___PType___stype_t)CALL(variable2,COLOR_typing___PType___stype))(variable2) /*PType::stype*/;
+    ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*va*/, variable2) /*Variable::stype=*/;
+    variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
+      variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+      variable3 = ((syntax_base___Variable___stype_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype))( variable1 /*va*/) /*Variable::stype*/;
+      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2, variable3) /*TypingVisitor::check_conform*/;
+    }
+  } else { /*if*/
+    variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
+    variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+    ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*va*/, variable2) /*Variable::stype=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___ABlockExpr___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ABlockExpr::accept_typing (src/syntax//typing.nit:321,2--328:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = variable2;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable2 = ((typing___VariableContext___sub_t)CALL(variable2,COLOR_typing___VariableContext___sub))(variable2) /*VariableContext::sub*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
+  ((typing___ABlockExpr___accept_typing_t)CALL( self,COLOR_SUPER_typing___ABlockExpr___accept_typing))( self,  param0) /*super ABlockExpr::accept_typing*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/,  variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AReturnExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AReturnExpr::after_typing (src/syntax//typing.nit:333,2--341:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMSrcLocalProperty::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+  } else { /*if*/
+    variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+    variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+    variable3 = variable2;
+    if (UNTAG_Bool(variable3)) { /* and */
+      variable3 = TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+    }
+    variable2 = variable3;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable2 = NEW_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)); /*new String*/
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+      variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+      variable3 = variable2;
+      if (UNTAG_Bool(variable3)) { /* and */
+        variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+      }
+      variable2 = variable3;
+      if (UNTAG_Bool(variable2)) { /*if*/
+        variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
+        variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+        ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2,  variable1 /*t*/) /*TypingVisitor::check_conform*/;
+      }
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___AIfExpr___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AIfExpr::accept_typing (src/syntax//typing.nit:347,2--363:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2, variable3) /*TypingVisitor::check_conform*/;
+  variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+  variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
+    variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
+  }
+  variable2 = ((parser_nodes___AIfExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_then))( self) /*AIfExpr::n_then*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/,  variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*PExpr::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
+    ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/,  variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___AWhileExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AWhileExpr::after_typing (src/syntax//typing.nit:369,2--371:49)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AWhileExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AWhileExpr___n_expr))( self) /*AWhileExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable1, variable2) /*TypingVisitor::check_conform*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AForExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AForExpr::after_typing (src/syntax//typing.nit:376,2--381:30)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*varctx*/==NIT_NULL) || VAL_ISA( variable1 /*varctx*/, COLOR_SubVariableContext, ID_SubVariableContext)) /*cast SubVariableContext*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:380,3--38\n"); nit_exit(1);}
+  variable2 = ((typing___SubVariableContext___prev_t)CALL( variable1 /*varctx*/,COLOR_typing___SubVariableContext___prev))( variable1 /*varctx*/) /*SubVariableContext::prev*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AForVardeclExpr___variable(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AForVardeclExpr::variable (src/syntax//typing.nit:386,2--387:34)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AForVardeclExpr____variable( self) /*AForVardeclExpr::_variable*/;
+}
+void typing___AForVardeclExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AForVardeclExpr::after_typing (src/syntax//typing.nit:389,2--413:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  static val_t once_value_variable4_36; static int once_bool_variable4_36;
+  val_t variable5;
+  val_t variable6;
+  static val_t once_value_variable6_37; static int once_bool_variable6_37;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = ((typing___VariableContext___sub_t)CALL(variable1,COLOR_typing___VariableContext___sub))(variable1) /*VariableContext::sub*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
+  variable2 = ((parser_nodes___AForVardeclExpr___n_id_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_id))( self) /*AForVardeclExpr::n_id*/;
+  variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TId::to_symbol*/;
+  variable3 = NEW_syntax_base___Variable___init(variable2,  self); /*new Variable*/
+  variable2 = variable3;
+  variable1 = variable2;
+  ATTR_typing___AForVardeclExpr____variable( self) /*AForVardeclExpr::_variable*/ =  variable1 /*variable*/;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  ((typing___VariableContext___add_t)CALL(variable2,COLOR_typing___VariableContext___add))(variable2,  variable1 /*variable*/) /*VariableContext::add*/;
+  variable3 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
+  variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
+  variable2 = variable3;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___type_collection_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_collection))( variable0 /*v*/) /*TypingVisitor::type_collection*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self,  variable2 /*expr_type*/, variable3) /*TypingVisitor::check_conform*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+    goto return_label35;
+  }
+  if (once_bool_variable4_36) variable4 = once_value_variable4_36;
+  else {
+    variable4 = NEW_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
+    variable4 = ((symbol___String___to_symbol_t)CALL(variable4,COLOR_symbol___String___to_symbol))(variable4) /*String::to_symbol*/;
+    once_value_variable4_36 = variable4;
+    once_bool_variable4_36 = true;
+  }
+  variable4 = ((static_type___MMType___select_method_t)CALL( variable2 /*expr_type*/,COLOR_static_type___MMType___select_method))( variable2 /*expr_type*/, variable4) /*MMType::select_method*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*prop*/ ==  NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+    goto return_label35;
+  }
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( variable3 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable3 /*prop*/) /*MMMethod::signature*/;
+  variable5 = ((static_type___MMSignature___return_type_t)CALL(variable5,COLOR_static_type___MMSignature___return_type))(variable5) /*MMSignature::return_type*/;
+  variable4 = variable5;
+  if (once_bool_variable6_37) variable6 = once_value_variable6_37;
+  else {
+    variable6 = NEW_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
+    variable6 = ((symbol___String___to_symbol_t)CALL(variable6,COLOR_symbol___String___to_symbol))(variable6) /*String::to_symbol*/;
+    once_value_variable6_37 = variable6;
+    once_bool_variable6_37 = true;
+  }
+  variable6 = ((static_type___MMType___select_method_t)CALL( variable4 /*iter_type*/,COLOR_static_type___MMType___select_method))( variable4 /*iter_type*/, variable6) /*MMType::select_method*/;
+  variable5 = variable6;
+  variable6 = TAG_Bool(( variable5 /*prop2*/ ==  NIT_NULL /*null*/) || (( variable5 /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))( variable5 /*prop2*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable6)) { /*if*/
+    variable6 = NEW_string___String___init(); /*new String*/
+    variable7 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+    variable9 =  variable4 /*iter_type*/;
+    variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+    variable10 = NEW_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
+    variable11 = variable10;
+    ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*TypingVisitor::error*/;
+    goto return_label35;
+  }
+  variable7 = ((genericity___MMLocalProperty___signature_t)CALL( variable5 /*prop2*/,COLOR_static_type___MMLocalProperty___signature))( variable5 /*prop2*/) /*MMMethod::signature*/;
+  variable7 = ((static_type___MMSignature___return_type_t)CALL(variable7,COLOR_static_type___MMSignature___return_type))(variable7) /*MMSignature::return_type*/;
+  variable6 = variable7;
+  variable7 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
+  variable7 = ((typing___PExpr___is_self_t)CALL(variable7,COLOR_typing___PExpr___is_self))(variable7) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7)))) { /*if*/
+    variable7 = ((static_type___MMType___not_for_self_t)CALL( variable6 /*t*/,COLOR_static_type___MMType___not_for_self))( variable6 /*t*/) /*MMType::not_for_self*/;
+    variable6 = variable7 /*t=*/;
+  }
+  ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*variable*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*variable*/,  variable6 /*t*/) /*Variable::stype=*/;
+  return_label35: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAssertExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAssertExpr::after_typing (src/syntax//typing.nit:418,2--421:90)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable1, variable2) /*TypingVisitor::check_conform*/;
+  variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
+  variable1 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable1,COLOR_typing___PExpr___if_true_variable_ctx))(variable1) /*PExpr::if_true_variable_ctx*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
+    variable1 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable1,COLOR_typing___PExpr___if_true_variable_ctx))(variable1) /*PExpr::if_true_variable_ctx*/;
+    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
+  }
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AVarFormExpr___variable(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AVarFormExpr::variable (src/syntax//typing.nit:426,2--427:50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/;
+}
+void typing___AVarFormExpr___variable__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AVarFormExpr::variable= (src/syntax//typing.nit:426,2--427:50)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_typing___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AVarExpr___is_variable(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AVarExpr::is_variable (src/syntax//typing.nit:431,2--38)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label39;
+  return_label39: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void typing___AVarExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AVarExpr::after_typing (src/syntax//typing.nit:433,2--435:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable2 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarExpr::variable*/;
+  variable1 = ((typing___VariableContext___stype_t)CALL(variable1,COLOR_typing___VariableContext___stype))(variable1, variable2) /*VariableContext::stype*/;
+  ATTR_typing___PExpr____stype( self) /*AVarExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AVarAssignExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AVarAssignExpr::after_typing (src/syntax//typing.nit:440,2--443:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable3 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarAssignExpr::variable*/;
+  variable2 = ((typing___VariableContext___stype_t)CALL(variable2,COLOR_typing___VariableContext___stype))(variable2, variable3) /*VariableContext::stype*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AVarAssignExpr::n_value*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2,  variable1 /*t*/) /*TypingVisitor::check_conform*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AReassignFormExpr___do_lvalue_typing(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "typing::AReassignFormExpr::do_lvalue_typing (src/syntax//typing.nit:448,2--464:68)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = TAG_Bool(( variable1 /*type_lvalue*/ ==  NIT_NULL /*null*/) || (( variable1 /*type_lvalue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_lvalue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_lvalue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_lvalue*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_lvalue*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label42;
+  }
+  variable3 = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_assign_op))( self) /*AReassignFormExpr::n_assign_op*/;
+  variable3 = ((typing___PAssignOp___method_name_t)CALL(variable3,COLOR_typing___PAssignOp___method_name))(variable3) /*PAssignOp::method_name*/;
+  variable2 = variable3;
+  variable4 = ((static_type___MMType___select_method_t)CALL( variable1 /*type_lvalue*/,COLOR_static_type___MMType___select_method))( variable1 /*type_lvalue*/,  variable2 /*name*/) /*MMType::select_method*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*prop*/ ==  NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable2 /*name*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    variable10 =  variable1 /*type_lvalue*/;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+    goto return_label42;
+  }
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMMethod::global*/;
+  variable5 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable4,COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable4,  variable0 /*v*/,  self, variable5,  TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( variable3 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable3 /*prop*/) /*MMMethod::signature*/;
+  variable4 = variable5;
+  ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/ =  variable3 /*prop*/;
+  variable5 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
+  variable5 = ((typing___PExpr___stype_t)CALL(variable5,COLOR_syntax_base___PExpr___stype))(variable5) /*PExpr::stype*/;
+  variable6 = ((static_type___MMSignature_____bra_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature_____bra))( variable4 /*psig*/,  TAG_Int(0)) /*MMSignature::[]*/;
+  variable6 = ((static_type___MMType___not_for_self_t)CALL(variable6,COLOR_static_type___MMType___not_for_self))(variable6) /*MMType::not_for_self*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable5, variable6) /*TypingVisitor::check_conform*/;
+  variable5 = ((static_type___MMSignature___return_type_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature___return_type))( variable4 /*psig*/) /*MMSignature::return_type*/;
+  variable5 = ((static_type___MMType___not_for_self_t)CALL(variable5,COLOR_static_type___MMType___not_for_self))(variable5) /*MMType::not_for_self*/;
+  variable6 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
+  variable6 = ((typing___PExpr___stype_t)CALL(variable6,COLOR_syntax_base___PExpr___stype))(variable6) /*PExpr::stype*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable5, variable6) /*TypingVisitor::check_conform*/;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AReassignFormExpr___assign_method(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AReassignFormExpr::assign_method (src/syntax//typing.nit:467,2--468:39)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/;
+}
+val_t typing___PAssignOp___method_name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::PAssignOp::method_name (src/syntax//typing.nit:472,2--25)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method method_name called (src/syntax//typing.nit:472,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t typing___APlusAssignOp___method_name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::APlusAssignOp::method_name (src/syntax//typing.nit:475,2--52)"};
+  val_t variable0;
+  static val_t once_value_variable0_44; static int once_bool_variable0_44;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_44) variable0 = once_value_variable0_44;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_44 = variable0;
+    once_bool_variable0_44 = true;
+  }
+  goto return_label43;
+  return_label43: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AMinusAssignOp___method_name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AMinusAssignOp::method_name (src/syntax//typing.nit:478,2--52)"};
+  val_t variable0;
+  static val_t once_value_variable0_46; static int once_bool_variable0_46;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_46) variable0 = once_value_variable0_46;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_46 = variable0;
+    once_bool_variable0_46 = true;
+  }
+  goto return_label45;
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void typing___AVarReassignExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AVarReassignExpr::after_typing (src/syntax//typing.nit:482,2--485:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable3 = ((typing___AVarFormExpr___variable_t)CALL( self,COLOR_typing___AVarFormExpr___variable))( self) /*AVarReassignExpr::variable*/;
+  variable2 = ((typing___VariableContext___stype_t)CALL(variable2,COLOR_typing___VariableContext___stype))(variable2, variable3) /*VariableContext::stype*/;
+  variable1 = variable2;
+  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self,  variable0 /*v*/,  variable1 /*t*/) /*AVarReassignExpr::do_lvalue_typing*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ASelfExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASelfExpr::after_typing (src/syntax//typing.nit:490,2--493:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:492,3--28\n"); nit_exit(1);}
+  variable1 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
+  ATTR_typing___PExpr____stype( self) /*ASelfExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ASelfExpr___is_self(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASelfExpr::is_self (src/syntax//typing.nit:496,9--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label49;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AImplicitSelfExpr___is_implicit_self(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AImplicitSelfExpr::is_implicit_self (src/syntax//typing.nit:500,9--50)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  TAG_Bool(true);
+  goto return_label50;
+  return_label50: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void typing___AIfexprExpr___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AIfexprExpr::accept_typing (src/syntax//typing.nit:504,2--525:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
+  variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
+    variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
+  }
+  variable2 = ((parser_nodes___AIfexprExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_then))( self) /*AIfexprExpr::n_then*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/,  variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable2 = ((parser_nodes___AIfexprExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_else))( self) /*AIfexprExpr::n_else*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2, variable3) /*TypingVisitor::check_conform*/;
+  variable3 = ((parser_nodes___AIfexprExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_then))( self) /*AIfexprExpr::n_then*/;
+  variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
+  variable2 = variable3;
+  variable4 = ((parser_nodes___AIfexprExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_else))( self) /*AIfexprExpr::n_else*/;
+  variable4 = ((typing___PExpr___stype_t)CALL(variable4,COLOR_syntax_base___PExpr___stype))(variable4) /*PExpr::stype*/;
+  variable3 = variable4;
+  variable4 = ((static_type___MMType_____l_t)CALL( variable2 /*t*/,COLOR_static_type___MMType_____l))( variable2 /*t*/,  variable3 /*te*/) /*MMType::<*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable2 =  variable3 /*te*/ /*t=*/;
+  } else { /*if*/
+    variable4 = ((static_type___MMType_____l_t)CALL( variable3 /*te*/,COLOR_static_type___MMType_____l))( variable3 /*te*/,  variable2 /*t*/) /*MMType::<*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable3 /*te*/;
+      variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(" is not a subtype of "), TAG_Int(21)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      variable10 =  variable2 /*t*/;
+      variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+      goto return_label51;
+    }
+  }
+  ATTR_typing___PExpr____stype( self) /*AIfexprExpr::_stype*/ =  variable2 /*t*/;
+  return_label51: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___ABoolExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ABoolExpr::after_typing (src/syntax//typing.nit:530,2--532:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ATTR_typing___PExpr____stype( self) /*ABoolExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AOrExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AOrExpr::after_typing (src/syntax//typing.nit:537,2--541:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AOrExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr))( self) /*AOrExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable1, variable2) /*TypingVisitor::check_conform*/;
+  variable1 = ((parser_nodes___AOrExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr2))( self) /*AOrExpr::n_expr2*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable1, variable2) /*TypingVisitor::check_conform*/;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ATTR_typing___PExpr____stype( self) /*AOrExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAndExpr___accept_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAndExpr::accept_typing (src/syntax//typing.nit:546,2--564:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
+  variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
+    variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
+  }
+  variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
+  ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
+  variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
+  variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*VariableContext::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
+    variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
+    ATTR_typing___PExpr____if_true_variable_ctx( self) /*AAndExpr::_if_true_variable_ctx*/ = variable2;
+  } else { /*if*/
+    variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+    ATTR_typing___PExpr____if_true_variable_ctx( self) /*AAndExpr::_if_true_variable_ctx*/ = variable2;
+  }
+  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/,  variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2, variable3) /*TypingVisitor::check_conform*/;
+  variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2, variable3) /*TypingVisitor::check_conform*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ATTR_typing___PExpr____stype( self) /*AAndExpr::_stype*/ = variable2;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ANotExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ANotExpr::after_typing (src/syntax//typing.nit:569,2--572:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ANotExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ANotExpr___n_expr))( self) /*ANotExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable1, variable2) /*TypingVisitor::check_conform*/;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ATTR_typing___PExpr____stype( self) /*ANotExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AIntExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AIntExpr::after_typing (src/syntax//typing.nit:577,2--579:21)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_int_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_int))( variable0 /*v*/) /*TypingVisitor::type_int*/;
+  ATTR_typing___PExpr____stype( self) /*AIntExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AFloatExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AFloatExpr::after_typing (src/syntax//typing.nit:585,2--587:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_float_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_float))( variable0 /*v*/) /*TypingVisitor::type_float*/;
+  ATTR_typing___PExpr____stype( self) /*AFloatExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ACharExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACharExpr::after_typing (src/syntax//typing.nit:592,2--594:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_char_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_char))( variable0 /*v*/) /*TypingVisitor::type_char*/;
+  ATTR_typing___PExpr____stype( self) /*ACharExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AStringFormExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AStringFormExpr::after_typing (src/syntax//typing.nit:599,2--601:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable0 /*v*/) /*TypingVisitor::type_string*/;
+  ATTR_typing___PExpr____stype( self) /*AStringFormExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ASuperstringExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASuperstringExpr::after_typing (src/syntax//typing.nit:606,2--608:24)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable0 /*v*/) /*TypingVisitor::type_string*/;
+  ATTR_typing___PExpr____stype( self) /*ASuperstringExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ANullExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ANullExpr::after_typing (src/syntax//typing.nit:613,2--615:22)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_none_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_none))( variable0 /*v*/) /*TypingVisitor::type_none*/;
+  ATTR_typing___PExpr____stype( self) /*ANullExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AArrayExpr___stype__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AArrayExpr::stype= (src/syntax//typing.nit:620,2--45)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ATTR_typing___PExpr____stype( self) /*AArrayExpr::_stype*/ =  variable0 /*t*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AArrayExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AArrayExpr::after_typing (src/syntax//typing.nit:622,2--634:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+      val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NIT_NULL /*decl variable stype*/;
+  variable2 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
+  variable2 = ((list___List___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*List::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((list___ListIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((list___ListIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ListIterator::item*/;
+    variable5 = ((typing___PExpr___stype_t)CALL( variable3 /*n*/,COLOR_syntax_base___PExpr___stype))( variable3 /*n*/) /*PExpr::stype*/;
+    variable4 = variable5;
+    variable5 = TAG_Bool(( variable1 /*stype*/ ==  NIT_NULL /*null*/) || (( variable1 /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*stype*/,COLOR_kernel___Object_____eqeq))( variable1 /*stype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+    variable6 = variable5;
+    if (!UNTAG_Bool(variable6)) { /* or */
+      variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ntype*/ ==  NIT_NULL /*null*/) || (( variable4 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable4 /*ntype*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+      variable7 = variable6;
+      if (UNTAG_Bool(variable7)) { /* and */
+        variable7 = ((static_type___MMType_____l_t)CALL( variable1 /*stype*/,COLOR_static_type___MMType_____l))( variable1 /*stype*/,  variable4 /*ntype*/) /*MMType::<*/;
+      }
+      variable6 = variable7;
+    }
+    variable5 = variable6;
+    if (UNTAG_Bool(variable5)) { /*if*/
+      variable1 =  variable4 /*ntype*/ /*stype=*/;
+    }
+    continue_64: while(0);
+    ((list___ListIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ListIterator::next*/;
+  }
+  break_64: while(0);
+  variable2 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
+  variable2 = ((list___List___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*List::iterator*/;
+  while (true) { /*for*/
+    variable3 = ((list___ListIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable3)) break; /*for*/
+    variable3 = ((list___ListIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ListIterator::item*/;
+    variable4 = ((typing___PExpr___stype_t)CALL( variable3 /*n*/,COLOR_syntax_base___PExpr___stype))( variable3 /*n*/) /*PExpr::stype*/;
+    ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable4,  variable1 /*stype*/) /*TypingVisitor::check_conform*/;
+    continue_65: while(0);
+    ((list___ListIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ListIterator::next*/;
+  }
+  break_65: while(0);
+  variable2 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/,  variable1 /*stype*/) /*TypingVisitor::type_array*/;
+  ATTR_typing___PExpr____stype( self) /*AArrayExpr::_stype*/ = variable2;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ARangeExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ARangeExpr::after_typing (src/syntax//typing.nit:639,2--654:29)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+      val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___ARangeExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr))( self) /*ARangeExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable1 = variable2;
+  variable3 = ((parser_nodes___ARangeExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr2))( self) /*ARangeExpr::n_expr2*/;
+  variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable1 /*ntype*/ ==  NIT_NULL /*null*/) || (( variable1 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable1 /*ntype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  variable4 = variable3;
+  if (!UNTAG_Bool(variable4)) { /* or */
+    variable4 = TAG_Bool(( variable1 /*ntype*/ ==  NIT_NULL /*null*/) || (( variable1 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable1 /*ntype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  }
+  variable3 = variable4;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    goto return_label66;
+  }
+  variable3 = ((static_type___MMType_____l_t)CALL( variable1 /*ntype*/,COLOR_static_type___MMType_____l))( variable1 /*ntype*/,  variable2 /*ntype2*/) /*MMType::<*/;
+  if (UNTAG_Bool(variable3)) { /*if*/
+    variable1 =  variable2 /*ntype2*/ /*ntype=*/;
+  } else { /*if*/
+    variable3 = ((static_type___MMType_____l_t)CALL( variable2 /*ntype2*/,COLOR_static_type___MMType_____l))( variable2 /*ntype2*/,  variable1 /*ntype*/) /*MMType::<*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+      variable3 = NEW_string___String___init(); /*new String*/
+      variable4 = NEW_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
+      variable5 = variable4;
+      ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+      variable6 =  variable1 /*ntype*/;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+      variable9 =  variable2 /*ntype2*/;
+      variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable3) /*TypingVisitor::error*/;
+      goto return_label66;
+    }
+  }
+  variable4 = ((syntax_base___AbsSyntaxVisitor___type_discrete_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_discrete))( variable0 /*v*/) /*TypingVisitor::type_discrete*/;
+  variable3 = variable4;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self,  variable1 /*ntype*/,  variable3 /*dtype*/) /*TypingVisitor::check_conform*/;
+  variable4 = ((syntax_base___AbsSyntaxVisitor___type_range_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_range))( variable0 /*v*/,  variable1 /*ntype*/) /*TypingVisitor::type_range*/;
+  ATTR_typing___PExpr____stype( self) /*ARangeExpr::_stype*/ = variable4;
+  return_label66: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ASuperExpr___init_in_superclass(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASuperExpr::init_in_superclass (src/syntax//typing.nit:660,2--661:44)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/;
+}
+void typing___ASuperExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASuperExpr::after_typing (src/syntax//typing.nit:662,2--713:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+      val_t variable3;
+      val_t variable4;
+        val_t variable5;
+          val_t variable6;
+          val_t variable7;
+          val_t variable8;
+          val_t variable9;
+          val_t variable10;
+          val_t variable11;
+          val_t variable12;
+          val_t variable13;
+          val_t variable14;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+  variable2 = ((abstractmetamodel___MMConcreteProperty___cprhe_t)CALL(variable2,COLOR_abstractmetamodel___MMConcreteProperty___cprhe))(variable2) /*MMSrcLocalProperty::cprhe*/;
+  variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable2) /*PartialOrderElement::direct_greaters*/;
+  variable1 = variable2;
+  variable2 = ((array___AbstractArray___is_empty_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*precs*/) /*Array::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+    variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    ((abstractmetamodel___MMConcreteProperty___need_super__eq_t)CALL(variable2,COLOR_abstractmetamodel___MMConcreteProperty___need_super__eq))(variable2,  TAG_Bool(true)) /*MMSrcLocalProperty::need_super=*/;
+  } else { /*if*/
+    variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMSrcLocalProperty::global*/;
+    variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool(variable2)) { /*if*/
+      variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*TypingVisitor::local_class*/;
+      variable4 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+      variable4 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___name))(variable4) /*MMSrcLocalProperty::name*/;
+      variable3 = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable3, variable4) /*MMSrcLocalClass::super_methods_named*/;
+      variable2 = variable3;
+      variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*base_precs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*base_precs*/) /*Array::iterator*/;
+      while (true) { /*for*/
+        variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+        if (!UNTAG_Bool(variable4)) break; /*for*/
+        variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+        variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable4 /*p*/) /*MMLocalProperty::global*/;
+        variable5 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable5) /*MMGlobalProperty::is_init*/;
+        if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+          variable5 = NEW_string___String___init(); /*new String*/
+          variable6 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+          variable7 = variable6;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+          variable8 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable4 /*p*/) /*MMLocalProperty::local_class*/;
+          variable9 = variable8;
+          variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
+          variable10 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+          variable12 =  variable4 /*p*/;
+          variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
+          variable13 = NEW_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
+          variable14 = variable13;
+          ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*TypingVisitor::error*/;
+        } else { /*if*/
+          variable5 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
+          variable6 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable4 /*p*/) /*MMLocalProperty::global*/;
+          variable5 = ((static_type___MMType___select_property_t)CALL(variable5,COLOR_static_type___MMType___select_property))(variable5, variable6) /*MMType::select_property*/;
+          ((array___AbstractArray___add_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*precs*/, variable5) /*Array::add*/;
+        }
+        continue_68: while(0);
+        ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+      }
+      break_68: while(0);
+      variable3 = ((array___AbstractArray___is_empty_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*precs*/) /*Array::is_empty*/;
+      if (UNTAG_Bool(variable3)) { /*if*/
+        variable3 = NEW_string___String___init(); /*new String*/
+        variable4 = NEW_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)); /*new String*/
+        variable5 = variable4;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+        variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+        variable6 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___name))(variable6) /*MMSrcLocalProperty::name*/;
+        variable7 = variable6;
+        variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+        variable8 = NEW_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)); /*new String*/
+        variable9 = variable8;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable3) /*TypingVisitor::error*/;
+        goto return_label67;
+      } else { /*if*/
+        variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___length))( variable1 /*precs*/) /*Array::length*/;
+        variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
+        if (UNTAG_Bool(variable3)) { /*if*/
+          variable3 = NEW_string___String___init(); /*new String*/
+          variable4 = NEW_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)); /*new String*/
+          variable5 = variable4;
+          ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+          variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+          variable6 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___name))(variable6) /*MMSrcLocalProperty::name*/;
+          variable7 = variable6;
+          variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+          ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+          variable8 = NEW_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)); /*new String*/
+          variable9 = variable8;
+          ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+          variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+          variable10 = ((string___Collection___join_t)CALL( variable1 /*precs*/,COLOR_string___Collection___join))( variable1 /*precs*/, variable10) /*Array::join*/;
+          variable11 = variable10;
+          ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
+          variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+          variable13 = variable12;
+          ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
+          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable3) /*TypingVisitor::error*/;
+          goto return_label67;
+        }
+      }
+      variable4 = ((abstract_collection___IndexedCollection___first_t)CALL( variable2 /*base_precs*/,COLOR_abstract_collection___Collection___first))( variable2 /*base_precs*/) /*Array::first*/;
+      variable3 = variable4;
+      variable4 = TAG_Bool(( variable3 /*p*/==NIT_NULL) || VAL_ISA( variable3 /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+      if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:684,4--24\n"); nit_exit(1);}
+      ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/ =  variable3 /*p*/;
+      ((typing___ASuperInitCall___register_super_init_call_t)CALL( self,COLOR_typing___ASuperInitCall___register_super_init_call))( self,  variable0 /*v*/,  variable3 /*p*/) /*ASuperExpr::register_super_init_call*/;
+      variable4 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
+      variable4 = ((list___List___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*List::length*/;
+      variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int( TAG_Int(0)));
+      if (UNTAG_Bool(variable4)) { /*if*/
+        variable4 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
+        variable4 = ((array___Collection___to_a_t)CALL(variable4,COLOR_array___Collection___to_a))(variable4) /*List::to_a*/;
+        variable4 = ((typing___AAbsSendExpr___process_signature_t)CALL( self,COLOR_typing___AAbsSendExpr___process_signature))( self,  variable0 /*v*/,  variable3 /*p*/,  TAG_Bool(true), variable4) /*ASuperExpr::process_signature*/;
+        ATTR_typing___AAbsSendExpr____arguments( self) /*ASuperExpr::_arguments*/ = variable4;
+      }
+    } else { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+      goto return_label67;
+    }
+  }
+  variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___first))( variable1 /*precs*/) /*Array::first*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMLocalProperty::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable3 = NEW_array___Array___init(); /*new Array[MMType]*/
+    variable2 = variable3;
+    variable3 = NIT_NULL /*decl variable stype*/;
+    variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*precs*/) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+      variable6 = TAG_Bool(( variable5 /*prop*/==NIT_NULL) || VAL_ISA( variable5 /*prop*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+      if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:699,5--28\n"); nit_exit(1);}
+      variable7 = ((genericity___MMLocalProperty___signature_t)CALL( variable5 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable5 /*prop*/) /*MMMethod::signature*/;
+      variable7 = ((static_type___MMSignature___return_type_t)CALL(variable7,COLOR_static_type___MMSignature___return_type))(variable7) /*MMSignature::return_type*/;
+      variable8 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+      variable7 = ((static_type___MMType___for_module_t)CALL(variable7,COLOR_static_type___MMType___for_module))(variable7, variable8) /*MMType::for_module*/;
+      variable8 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+      variable8 = ((genericity___MMLocalProperty___signature_t)CALL(variable8,COLOR_static_type___MMLocalProperty___signature))(variable8) /*MMSrcLocalProperty::signature*/;
+      variable8 = ((static_type___MMSignature___recv_t)CALL(variable8,COLOR_static_type___MMSignature___recv))(variable8) /*MMSignature::recv*/;
+      variable7 = ((static_type___MMType___adapt_to_t)CALL(variable7,COLOR_static_type___MMType___adapt_to))(variable7, variable8) /*MMType::adapt_to*/;
+      variable6 = variable7;
+      ((array___AbstractArray___add_t)CALL( variable2 /*stypes*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*stypes*/,  variable6 /*t*/) /*Array::add*/;
+      variable7 = TAG_Bool(( variable3 /*stype*/ ==  NIT_NULL /*null*/) || (( variable3 /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*stype*/,COLOR_kernel___Object_____eqeq))( variable3 /*stype*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+      variable8 = variable7;
+      if (!UNTAG_Bool(variable8)) { /* or */
+        variable8 = ((static_type___MMType_____l_t)CALL( variable3 /*stype*/,COLOR_static_type___MMType_____l))( variable3 /*stype*/,  variable6 /*t*/) /*MMType::<*/;
+      }
+      variable7 = variable8;
+      if (UNTAG_Bool(variable7)) { /*if*/
+        variable3 =  variable6 /*t*/ /*stype=*/;
+      }
+      continue_69: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+    }
+    break_69: while(0);
+    variable4 = ((array___AbstractArray___iterator_t)CALL( variable2 /*stypes*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*stypes*/) /*Array::iterator*/;
+    while (true) { /*for*/
+      variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable5)) break; /*for*/
+      variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
+      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self,  variable5 /*t*/,  variable3 /*stype*/) /*TypingVisitor::check_conform*/;
+      continue_70: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
+    }
+    break_70: while(0);
+    ATTR_typing___PExpr____stype( self) /*ASuperExpr::_stype*/ =  variable3 /*stype*/;
+  }
+  variable3 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+  variable2 = variable3;
+  variable3 = TAG_Bool(( variable2 /*p*/==NIT_NULL) || VAL_ISA( variable2 /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+  if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:712,3--26\n"); nit_exit(1);}
+  ATTR_typing___AAbsSendExpr____prop( self) /*ASuperExpr::_prop*/ =  variable2 /*p*/;
+  return_label67: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AAttrFormExpr___prop(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AAttrFormExpr::prop (src/syntax//typing.nit:718,2--719:33)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/;
+}
+void typing___AAttrFormExpr___do_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAttrFormExpr::do_typing (src/syntax//typing.nit:721,2--736:14)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+      val_t variable13;
+      val_t variable14;
+      val_t variable15;
+      val_t variable16;
+      val_t variable17;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrFormExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*type_recv*/ ==  NIT_NULL /*null*/) || (( variable1 /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_recv*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label71;
+  }
+  variable3 = ((parser_nodes___AAttrFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_id))( self) /*AAttrFormExpr::n_id*/;
+  variable3 = ((syntax_base___Token___to_symbol_t)CALL(variable3,COLOR_syntax_base___Token___to_symbol))(variable3) /*TAttrid::to_symbol*/;
+  variable2 = variable3;
+  variable4 = ((static_type___MMType___select_attribute_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___select_attribute))( variable1 /*type_recv*/,  variable2 /*name*/) /*MMType::select_attribute*/;
+  variable3 = variable4;
+  variable4 = TAG_Bool(( variable3 /*prop*/ ==  NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/,  NIT_NULL /*null*/) /*MMAttribute::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = NEW_string___String___init(); /*new String*/
+    variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
+    variable6 = variable5;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+    variable7 =  variable2 /*name*/;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+    variable10 =  variable1 /*type_recv*/;
+    variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+    variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable12 = variable11;
+    ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+    goto return_label71;
+  } else { /*if*/
+    variable4 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+    variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMAttribute::global*/;
+    variable5 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable5) /*MMGlobalProperty::local_class*/;
+    variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___module))(variable5) /*MMLocalClass::module*/;
+    variable4 = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable4,COLOR_abstractmetamodel___MMModule___visibility_for))(variable4, variable5) /*MMSrcModule::visibility_for*/;
+    variable4 = TAG_Bool(UNTAG_Int(variable4)<UNTAG_Int( TAG_Int(3)));
+    if (UNTAG_Bool(variable4)) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 =  variable2 /*name*/;
+      variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
+      variable8 = NEW_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)); /*new String*/
+      variable9 = variable8;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
+      variable10 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMAttribute::global*/;
+      variable10 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable10,COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable10) /*MMGlobalProperty::local_class*/;
+      variable10 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable10,COLOR_abstractmetamodel___MMLocalClass___module))(variable10) /*MMLocalClass::module*/;
+      variable11 = variable10;
+      variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
+      variable14 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+      variable15 = variable14;
+      variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
+      variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable17 = variable16;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+    }
+  }
+  ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/ =  variable3 /*prop*/;
+  return_label71: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAttrExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAttrExpr::after_typing (src/syntax//typing.nit:741,2--749:20)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self,  variable0 /*v*/) /*AAttrExpr::do_typing*/;
+  variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrExpr::prop*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMAttribute::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    goto return_label72;
+  }
+  variable2 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrExpr::prop*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMAttribute::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrExpr::n_expr*/;
+  variable2 = ((typing___PExpr___is_self_t)CALL(variable2,COLOR_typing___PExpr___is_self))(variable2) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+    variable2 = ((static_type___MMType___not_for_self_t)CALL( variable1 /*attr_type*/,COLOR_static_type___MMType___not_for_self))( variable1 /*attr_type*/) /*MMType::not_for_self*/;
+    variable1 = variable2 /*attr_type=*/;
+  }
+  ATTR_typing___PExpr____stype( self) /*AAttrExpr::_stype*/ =  variable1 /*attr_type*/;
+  return_label72: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAttrAssignExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAttrAssignExpr::after_typing (src/syntax//typing.nit:754,2--762:48)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self,  variable0 /*v*/) /*AAttrAssignExpr::do_typing*/;
+  variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrAssignExpr::prop*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMAttribute::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    goto return_label73;
+  }
+  variable2 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrAssignExpr::prop*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMAttribute::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrAssignExpr::n_expr*/;
+  variable2 = ((typing___PExpr___is_self_t)CALL(variable2,COLOR_typing___PExpr___is_self))(variable2) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+    variable2 = ((static_type___MMType___not_for_self_t)CALL( variable1 /*attr_type*/,COLOR_static_type___MMType___not_for_self))( variable1 /*attr_type*/) /*MMType::not_for_self*/;
+    variable1 = variable2 /*attr_type=*/;
+  }
+  variable2 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAttrAssignExpr::n_value*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable2,  variable1 /*attr_type*/) /*TypingVisitor::check_conform*/;
+  return_label73: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAttrReassignExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AAttrReassignExpr::after_typing (src/syntax//typing.nit:767,2--775:31)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self,  variable0 /*v*/) /*AAttrReassignExpr::do_typing*/;
+  variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrReassignExpr::prop*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMAttribute::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    goto return_label74;
+  }
+  variable2 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrReassignExpr::prop*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMAttribute::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrReassignExpr::n_expr*/;
+  variable2 = ((typing___PExpr___is_self_t)CALL(variable2,COLOR_typing___PExpr___is_self))(variable2) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+    variable2 = ((static_type___MMType___not_for_self_t)CALL( variable1 /*attr_type*/,COLOR_static_type___MMType___not_for_self))( variable1 /*attr_type*/) /*MMType::not_for_self*/;
+    variable1 = variable2 /*attr_type=*/;
+  }
+  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self,  variable0 /*v*/,  variable1 /*attr_type*/) /*AAttrReassignExpr::do_lvalue_typing*/;
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AAbsSendExpr___do_typing(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5) {
+  struct trace_t trace = {NULL, "typing::AAbsSendExpr::do_typing (src/syntax//typing.nit:781,2--789:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 =  param4;
+  variable5 =  param5;
+  variable7 = ((typing___AAbsSendExpr___get_property_t)CALL( self,COLOR_typing___AAbsSendExpr___get_property))( self,  variable0 /*v*/,  variable1 /*type_recv*/,  variable2 /*is_implicit_self*/,  variable4 /*name*/) /*AAbsSendExpr::get_property*/;
+  variable6 = variable7;
+  variable7 = TAG_Bool(( variable6 /*prop*/ ==  NIT_NULL /*null*/) || (( variable6 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*prop*/,COLOR_kernel___Object_____eqeq))( variable6 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable7)) { /*if*/
+    goto return_label75;
+  }
+  variable8 = ((typing___AAbsSendExpr___process_signature_t)CALL( self,COLOR_typing___AAbsSendExpr___process_signature))( self,  variable0 /*v*/,  variable6 /*prop*/,  variable3 /*recv_is_self*/,  variable5 /*raw_args*/) /*AAbsSendExpr::process_signature*/;
+  variable7 = variable8;
+  variable8 = TAG_Bool(( variable7 /*args*/ ==  NIT_NULL /*null*/) || (( variable7 /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*args*/,COLOR_kernel___Object_____eqeq))( variable7 /*args*/,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    goto return_label75;
+  }
+  ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/ =  variable6 /*prop*/;
+  ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/ =  variable7 /*args*/;
+  return_label75: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___AAbsSendExpr___get_property(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "typing::AAbsSendExpr::get_property (src/syntax//typing.nit:792,2--816:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+      val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+      val_t variable15;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 = TAG_Bool(( variable1 /*type_recv*/ ==  NIT_NULL /*null*/) || (( variable1 /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_recv*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 =  NIT_NULL /*null*/;
+    goto return_label76;
+  }
+  variable5 = ((static_type___MMType___select_method_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___select_method))( variable1 /*type_recv*/,  variable3 /*name*/) /*MMType::select_method*/;
+  variable4 = variable5;
+  variable5 = TAG_Bool(( variable4 /*prop*/ ==  NIT_NULL /*null*/) || (( variable4 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))( variable4 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  variable6 = variable5;
+  if (UNTAG_Bool(variable6)) { /* and */
+    variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    variable6 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___global))(variable6) /*MMSrcLocalProperty::global*/;
+    variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable6,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable6) /*MMGlobalProperty::is_init*/;
+  }
+  variable5 = variable6;
+  if (UNTAG_Bool(variable5)) { /*if*/
+    variable6 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___local_class))( variable1 /*type_recv*/) /*MMType::local_class*/;
+    variable6 = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable6,  variable3 /*name*/) /*MMLocalClass::super_methods_named*/;
+    variable5 = variable6;
+    variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___length))( variable5 /*props*/) /*Array::length*/;
+    variable6 = TAG_Bool(UNTAG_Int(variable6)>UNTAG_Int( TAG_Int(1)));
+    if (UNTAG_Bool(variable6)) { /*if*/
+      variable6 = NEW_string___String___init(); /*new String*/
+      variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
+      variable9 =  variable3 /*name*/;
+      variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
+      variable10 = NEW_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)); /*new String*/
+      variable11 = variable10;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+      variable12 = ((string___Collection___join_t)CALL( variable5 /*props*/,COLOR_string___Collection___join))( variable5 /*props*/, variable12) /*Array::join*/;
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
+      variable14 = NEW_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)); /*new String*/
+      variable15 = variable14;
+      ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable6) /*TypingVisitor::error*/;
+      variable4 =  NIT_NULL /*null*/;
+      goto return_label76;
+    } else { /*if*/
+      variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___length))( variable5 /*props*/) /*Array::length*/;
+      variable6 = TAG_Bool((variable6)==( TAG_Int(1)));
+      if (UNTAG_Bool(variable6)) { /*if*/
+        variable7 = ((abstract_collection___IndexedCollection___first_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___first))( variable5 /*props*/) /*Array::first*/;
+        variable7 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalProperty___global))(variable7) /*MMLocalProperty::global*/;
+        variable7 = ((static_type___MMType___select_property_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___select_property))( variable1 /*type_recv*/, variable7) /*MMType::select_property*/;
+        variable6 = variable7;
+        variable7 = TAG_Bool(( variable6 /*p*/==NIT_NULL) || VAL_ISA( variable6 /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+        if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:803,5--25\n"); nit_exit(1);}
+        variable4 =  variable6 /*p*/ /*prop=*/;
+      }
+    }
+  }
+  variable5 = TAG_Bool(( variable4 /*prop*/ ==  NIT_NULL /*null*/) || (( variable4 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))( variable4 /*prop*/,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    if (UNTAG_Bool( variable2 /*is_implicit_self*/)) { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  variable3 /*name*/;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      variable11 =  variable1 /*type_recv*/;
+      variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  variable3 /*name*/;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      variable11 =  variable1 /*type_recv*/;
+      variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
+      variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable13 = variable12;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*TypingVisitor::error*/;
+    }
+    variable4 =  NIT_NULL /*null*/;
+    goto return_label76;
+  }
+  variable4 =  variable4 /*prop*/;
+  goto return_label76;
+  return_label76: while(false);
+  tracehead = trace.prev;
+  return variable4;
+}
+val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, "typing::AAbsSendExpr::process_signature (src/syntax//typing.nit:819,2--855:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+  val_t variable6;
+  val_t variable7;
+  val_t variable8;
+  val_t variable9;
+    val_t variable10;
+    val_t variable11;
+    val_t variable12;
+    val_t variable13;
+    val_t variable14;
+      val_t variable15;
+      val_t variable16;
+        val_t variable17;
+        val_t variable18;
+        val_t variable19;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  variable3 =  param3;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*prop*/) /*MMMethod::global*/;
+  variable5 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable4,COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable4,  variable0 /*v*/,  self, variable5,  variable2 /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
+  variable5 = ((genericity___MMLocalProperty___signature_t)CALL( variable1 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable1 /*prop*/) /*MMMethod::signature*/;
+  variable4 = variable5;
+  variable6 = ((vararg___MMSignature___vararg_rank_t)CALL( variable4 /*psig*/,COLOR_vararg___MMSignature___vararg_rank))( variable4 /*psig*/) /*MMSignature::vararg_rank*/;
+  variable5 = variable6;
+  variable7 = ((static_type___MMSignature___arity_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature___arity))( variable4 /*psig*/) /*MMSignature::arity*/;
+  variable6 = variable7;
+  variable7 = TAG_Int((int)0) /*decl variable raw_arity*/;
+  variable8 = TAG_Bool(( variable3 /*raw_args*/ ==  NIT_NULL /*null*/) || (( variable3 /*raw_args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable3 /*raw_args*/,COLOR_kernel___Object_____eqeq))( variable3 /*raw_args*/,  NIT_NULL /*null*/) /*Array::==*/)));
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable7 =  TAG_Int(0) /*raw_arity=*/;
+  } else { /*if*/
+    variable8 = ((array___AbstractArray___length_t)CALL( variable3 /*raw_args*/,COLOR_abstract_collection___Collection___length))( variable3 /*raw_args*/) /*Array::length*/;
+    variable7 = variable8 /*raw_arity=*/;
+  }
+  variable8 = TAG_Bool(UNTAG_Int( variable6 /*par_arity*/)>UNTAG_Int( variable7 /*raw_arity*/));
+  variable9 = variable8;
+  if (!UNTAG_Bool(variable9)) { /* or */
+    variable9 = TAG_Bool(( variable6 /*par_arity*/)!=( variable7 /*raw_arity*/));
+    variable10 = variable9;
+    if (UNTAG_Bool(variable10)) { /* and */
+      variable10 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+      variable10 = TAG_Bool(( variable5 /*par_vararg*/)==(variable10));
+    }
+    variable9 = variable10;
+  }
+  variable8 = variable9;
+  if (UNTAG_Bool(variable8)) { /*if*/
+    variable8 = NEW_string___String___init(); /*new String*/
+    variable9 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
+    variable10 = variable9;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+    variable11 =  variable1 /*prop*/;
+    variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable11) /*String::append*/;
+    variable12 = NEW_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)); /*new String*/
+    variable13 = variable12;
+    ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable13) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable8) /*TypingVisitor::error*/;
+    variable4 =  NIT_NULL /*null*/;
+    goto return_label77;
+  }
+  variable8 =  TAG_Int(0);
+  variable10 = NEW_array___Array___init(); /*new Array[PExpr]*/
+  variable9 = variable10;
+  variable10 = NEW_range___Range___without_last( TAG_Int(0),  variable6 /*par_arity*/); /*new Range[Int]*/
+  variable10 = ((range___Range___iterator_t)CALL(variable10,COLOR_abstract_collection___Collection___iterator))(variable10) /*Range::iterator*/;
+  while (true) { /*for*/
+    variable11 = ((abstract_collection___Iterator___is_ok_t)CALL(variable10,COLOR_abstract_collection___Iterator___is_ok))(variable10) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable11)) break; /*for*/
+    variable11 = ((abstract_collection___Iterator___item_t)CALL(variable10,COLOR_abstract_collection___Iterator___item))(variable10) /*Iterator::item*/;
+    variable12 = NIT_NULL /*decl variable a*/;
+    variable14 = ((static_type___MMSignature_____bra_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature_____bra))( variable4 /*psig*/,  variable11 /*par_idx*/) /*MMSignature::[]*/;
+    variable13 = variable14;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable2 /*recv_is_self*/)))) { /*if*/
+      variable14 = ((static_type___MMType___not_for_self_t)CALL( variable13 /*par_type*/,COLOR_static_type___MMType___not_for_self))( variable13 /*par_type*/) /*MMType::not_for_self*/;
+      variable13 = variable14 /*par_type=*/;
+    }
+    variable14 = TAG_Bool(( variable11 /*par_idx*/)==( variable5 /*par_vararg*/));
+    if (UNTAG_Bool(variable14)) { /*if*/
+      variable15 = NEW_array___Array___init(); /*new Array[PExpr]*/
+      variable14 = variable15;
+      variable15 = TAG_Int(UNTAG_Int( variable7 /*raw_arity*/)-UNTAG_Int( variable6 /*par_arity*/));
+      variable16 = NEW_range___Range___init( TAG_Int(0), variable15); /*new Range[Int]*/
+      variable15 = variable16;
+      variable15 = ((range___Range___iterator_t)CALL(variable15,COLOR_abstract_collection___Collection___iterator))(variable15) /*Range::iterator*/;
+      while (true) { /*for*/
+        variable16 = ((abstract_collection___Iterator___is_ok_t)CALL(variable15,COLOR_abstract_collection___Iterator___is_ok))(variable15) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable16)) break; /*for*/
+        variable16 = ((abstract_collection___Iterator___item_t)CALL(variable15,COLOR_abstract_collection___Iterator___item))(variable15) /*Iterator::item*/;
+        variable17 =  variable8 /*arg_idx*/;
+        variable18 = TAG_Bool(UNTAG_Int( variable17 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        variable19 = variable18;
+        if (UNTAG_Bool(variable19)) { /* and */
+          variable19 = ATTR_array___AbstractArray____length( variable3 /*raw_args*/) /*Array::_length*/;
+          variable19 = TAG_Bool(UNTAG_Int( variable17 /*index*/)<UNTAG_Int(variable19));
+        }
+        variable18 = variable19;
+        if (!UNTAG_Bool(variable18)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+        variable18 = ATTR_array___Array____items( variable3 /*raw_args*/) /*Array::_items*/;
+        variable18 = UNBOX_NativeArray(variable18)[UNTAG_Int( variable17 /*index*/)];
+        goto return_label80;
+        return_label80: while(false);
+        variable17 = variable18;
+        variable12 = variable17 /*a=*/;
+        variable17 = ((typing___PExpr___stype_t)CALL( variable12 /*a*/,COLOR_syntax_base___PExpr___stype))( variable12 /*a*/) /*PExpr::stype*/;
+        ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable17,  variable13 /*par_type*/) /*TypingVisitor::check_conform*/;
+        ((array___AbstractArray___add_t)CALL( variable14 /*star*/,COLOR_abstract_collection___SimpleCollection___add))( variable14 /*star*/,  variable12 /*a*/) /*Array::add*/;
+        variable17 = TAG_Int(UNTAG_Int( variable8 /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
+        variable8 = variable17 /*arg_idx=*/;
+        continue_79: while(0);
+        ((abstract_collection___Iterator___next_t)CALL(variable15,COLOR_abstract_collection___Iterator___next))(variable15) /*Iterator::next*/;
+      }
+      break_79: while(0);
+      variable16 = NEW_parser_prod___AArrayExpr___init_aarrayexpr( variable14 /*star*/); /*new AArrayExpr*/
+      variable15 = variable16;
+      variable16 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/,  variable13 /*par_type*/) /*TypingVisitor::type_array*/;
+      ((typing___AArrayExpr___stype__eq_t)CALL( variable15 /*aa*/,COLOR_typing___AArrayExpr___stype__eq))( variable15 /*aa*/, variable16) /*AArrayExpr::stype=*/;
+      variable12 =  variable15 /*aa*/ /*a=*/;
+    } else { /*if*/
+      variable14 =  variable8 /*arg_idx*/;
+      variable15 = TAG_Bool(UNTAG_Int( variable14 /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      variable16 = variable15;
+      if (UNTAG_Bool(variable16)) { /* and */
+        variable16 = ATTR_array___AbstractArray____length( variable3 /*raw_args*/) /*Array::_length*/;
+        variable16 = TAG_Bool(UNTAG_Int( variable14 /*index*/)<UNTAG_Int(variable16));
+      }
+      variable15 = variable16;
+      if (!UNTAG_Bool(variable15)) { fprintf(stderr, "Assert 'index'  failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
+      variable15 = ATTR_array___Array____items( variable3 /*raw_args*/) /*Array::_items*/;
+      variable15 = UNBOX_NativeArray(variable15)[UNTAG_Int( variable14 /*index*/)];
+      goto return_label81;
+      return_label81: while(false);
+      variable14 = variable15;
+      variable12 = variable14 /*a=*/;
+      variable14 = ((typing___PExpr___stype_t)CALL( variable12 /*a*/,COLOR_syntax_base___PExpr___stype))( variable12 /*a*/) /*PExpr::stype*/;
+      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/,  self, variable14,  variable13 /*par_type*/) /*TypingVisitor::check_conform*/;
+      variable14 = TAG_Int(UNTAG_Int( variable8 /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
+      variable8 = variable14 /*arg_idx=*/;
+    }
+    ((array___AbstractArray___add_t)CALL( variable9 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable9 /*args*/,  variable12 /*a*/) /*Array::add*/;
+    continue_78: while(0);
+    ((abstract_collection___Iterator___next_t)CALL(variable10,COLOR_abstract_collection___Iterator___next))(variable10) /*Iterator::next*/;
+  }
+  break_78: while(0);
+  variable4 =  variable9 /*args*/;
+  goto return_label77;
+  return_label77: while(false);
+  tracehead = trace.prev;
+  return variable4;
+}
+val_t typing___AAbsSendExpr___prop(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AAbsSendExpr::prop (src/syntax//typing.nit:858,2--859:30)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/;
+}
+val_t typing___AAbsSendExpr___arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AAbsSendExpr::arguments (src/syntax//typing.nit:861,2--862:38)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/;
+}
+void typing___ASuperInitCall___register_super_init_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, "typing::ASuperInitCall::register_super_init_call (src/syntax//typing.nit:869,2--896:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+      val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+      val_t variable12;
+      val_t variable13;
+      val_t variable14;
+               val_t variable15;
+               val_t variable16;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 = ((parser_prod___PNode___parent_t)CALL( self,COLOR_parser_prod___PNode___parent))( self) /*ASuperInitCall::parent*/;
+  variable3 = ((typing___TypingVisitor___top_block_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block))( variable0 /*v*/) /*TypingVisitor::top_block*/;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable3) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable3) /*PNode::==*/)))))));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((typing___TypingVisitor___top_block_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block))( variable0 /*v*/) /*TypingVisitor::top_block*/;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( self == variable3) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self, variable3) /*ASuperInitCall::==*/)))))));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 =  variable1 /*property*/;
+    variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+  }
+  variable3 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*TypingVisitor::module*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*property*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*property*/) /*MMMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable4) /*MMConcreteProperty::local_class*/;
+  variable4 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___global))(variable4) /*MMLocalClass::global*/;
+  variable3 = ((abstractmetamodel___MMModule_____bra_t)CALL(variable3,COLOR_abstractmetamodel___MMModule_____bra))(variable3, variable4) /*MMSrcModule::[]*/;
+  variable2 = variable3;
+  variable3 = NIT_NULL /*decl variable prev_class*/;
+  variable4 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+  variable4 = ((array___AbstractArray___is_empty_t)CALL(variable4,COLOR_abstract_collection___Collection___is_empty))(variable4) /*Array::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+    variable4 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+    variable4 = ((abstract_collection___IndexedCollection___last_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___last))(variable4) /*Array::last*/;
+    variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMMethod::global*/;
+    variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
+    variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable4) /*MMConcreteProperty::local_class*/;
+    variable3 = variable4 /*prev_class=*/;
+  }
+  variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*TypingVisitor::local_class*/;
+  variable5 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable5) /*MMSrcLocalClass::cshe*/;
+  variable5 = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable5) /*PartialOrderElement::reverse_linear_extension*/;
+  variable4 = variable5;
+  variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*TypingVisitor::local_class*/;
+  variable5 = TAG_Bool(( variable2 /*cla*/ == variable5) || (( variable2 /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*cla*/,variable5)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))( variable2 /*cla*/, variable5) /*MMLocalClass::==*/)))));
+  if (UNTAG_Bool(variable5)) { /*if*/
+    ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable0 /*v*/,  TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
+  } else { /*if*/
+    variable5 = ((array___AbstractArray___has_t)CALL( variable4 /*order*/,COLOR_abstract_collection___Collection___has))( variable4 /*order*/,  variable2 /*cla*/) /*Array::has*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+      variable5 = NEW_string___String___init(); /*new String*/
+      variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+      variable8 =  variable2 /*cla*/;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+      variable11 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+      variable11 = ((string___Collection___join_t)CALL( variable4 /*order*/,COLOR_string___Collection___join))( variable4 /*order*/, variable11) /*Array::join*/;
+      variable12 = variable11;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
+      variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+      variable14 = variable13;
+      ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable5 = TAG_Bool(( variable2 /*cla*/ ==  variable3 /*prev_class*/) || (( variable2 /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*cla*/, variable3 /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))( variable2 /*cla*/,  variable3 /*prev_class*/) /*MMLocalClass::==*/)))));
+      if (UNTAG_Bool(variable5)) { /*if*/
+        variable5 = NEW_string___String___init(); /*new String*/
+        variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)); /*new String*/
+        variable7 = variable6;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
+        variable8 =  variable2 /*cla*/;
+        variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
+        variable9 = NEW_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)); /*new String*/
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable5) /*TypingVisitor::error*/;
+      } else { /*if*/
+        variable6 = TAG_Bool(( variable3 /*prev_class*/ ==  NIT_NULL /*null*/) || (( variable3 /*prev_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prev_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prev_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prev_class*/,COLOR_kernel___Object_____eqeq))( variable3 /*prev_class*/,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))));
+        variable5 = variable6;
+        variable6 = ((array___AbstractArray___iterator_t)CALL( variable4 /*order*/,COLOR_abstract_collection___Collection___iterator))( variable4 /*order*/) /*Array::iterator*/;
+        while (true) { /*for*/
+          variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
+          if (!UNTAG_Bool(variable7)) break; /*for*/
+          variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
+          variable8 = TAG_Bool(( variable7 /*c*/ ==  variable3 /*prev_class*/) || (( variable7 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*c*/, variable3 /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))( variable7 /*c*/,  variable3 /*prev_class*/) /*MMLocalClass::==*/)))));
+          if (UNTAG_Bool(variable8)) { /*if*/
+            variable5 =  TAG_Bool(true) /*last_is_found=*/;
+          } else { /*if*/
+            variable8 = TAG_Bool(( variable7 /*c*/ ==  variable2 /*cla*/) || (( variable7 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*c*/, variable2 /*cla*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))( variable7 /*c*/,  variable2 /*cla*/) /*MMLocalClass::==*/)))));
+            if (UNTAG_Bool(variable8)) { /*if*/
+              if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable5 /*last_is_found*/)))) { /*if*/
+               variable8 = NEW_string___String___init(); /*new String*/
+               variable9 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)); /*new String*/
+               variable10 = variable9;
+               ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
+               variable11 =  variable7 /*c*/;
+               variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+               ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable11) /*String::append*/;
+               variable12 = NEW_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)); /*new String*/
+               variable13 = variable12;
+               ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable13) /*String::append*/;
+               variable14 =  variable3 /*prev_class*/;
+               variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
+               ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
+               variable15 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+               variable16 = variable15;
+               ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable16) /*String::append*/;
+               ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable8) /*TypingVisitor::error*/;
+              }
+              variable8 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+              ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8,  variable1 /*property*/) /*Array::add*/;
+              goto break_83;
+            }
+          }
+          continue_83: while(0);
+          ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
+        }
+        break_83: while(0);
+      }
+    }
+  }
+  tracehead = trace.prev;
+  return;
+}
+void typing___ANewExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ANewExpr::after_typing (src/syntax//typing.nit:906,2--925:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+    static val_t once_value_variable3_85; static int once_bool_variable3_85;
+    val_t variable9;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((parser_nodes___ANewExpr___n_type_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_type))( self) /*ANewExpr::n_type*/;
+  variable2 = ((typing___PType___stype_t)CALL(variable2,COLOR_typing___PType___stype))(variable2) /*PType::stype*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label84;
+  }
+  variable2 = ((static_type___MMType___local_class_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___local_class))( variable1 /*t*/) /*MMType::local_class*/;
+  variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___global))(variable2) /*MMLocalClass::global*/;
+  variable2 = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalClass___is_abstract))(variable2) /*MMGlobalClass::is_abstract*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 = ((static_type___MMType___local_class_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___local_class))( variable1 /*t*/) /*MMType::local_class*/;
+    variable6 = variable5;
+    variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+    variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
+    variable8 = variable7;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+    goto return_label84;
+  }
+  variable2 = NIT_NULL /*decl variable name*/;
+  variable3 = ((parser_nodes___ANewExpr___n_id_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_id))( self) /*ANewExpr::n_id*/;
+  variable3 = TAG_Bool((variable3 ==  NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3,  NIT_NULL /*null*/) /*TId::==*/)))));
+  if (UNTAG_Bool(variable3)) { /*if*/
+    if (once_bool_variable3_85) variable3 = once_value_variable3_85;
+    else {
+      variable3 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+      variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
+      once_value_variable3_85 = variable3;
+      once_bool_variable3_85 = true;
+    }
+    variable2 = variable3 /*name=*/;
+  } else { /*if*/
+    variable3 = ((parser_nodes___ANewExpr___n_id_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_id))( self) /*ANewExpr::n_id*/;
+    variable3 = ((syntax_base___Token___to_symbol_t)CALL(variable3,COLOR_syntax_base___Token___to_symbol))(variable3) /*TId::to_symbol*/;
+    variable2 = variable3 /*name=*/;
+  }
+  variable3 = ((parser_nodes___ANewExpr___n_args_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_args))( self) /*ANewExpr::n_args*/;
+  variable3 = ((array___Collection___to_a_t)CALL(variable3,COLOR_array___Collection___to_a))(variable3) /*List::to_a*/;
+  ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self,  variable0 /*v*/,  variable1 /*t*/,  TAG_Bool(false),  TAG_Bool(false),  variable2 /*name*/, variable3) /*ANewExpr::do_typing*/;
+  variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ANewExpr::prop*/;
+  variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalProperty___global))(variable3) /*MMMethod::global*/;
+  variable3 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable3) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+    variable3 = NEW_string___String___init(); /*new String*/
+    variable4 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+    variable5 = variable4;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+    variable6 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ANewExpr::prop*/;
+    variable7 = variable6;
+    variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
+    variable8 = NEW_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
+    variable9 = variable8;
+    ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
+    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable3) /*TypingVisitor::error*/;
+  }
+  ATTR_typing___PExpr____stype( self) /*ANewExpr::_stype*/ =  variable1 /*t*/;
+  return_label84: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ASendExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASendExpr::name (src/syntax//typing.nit:932,2--933:18)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method name called (src/syntax//typing.nit:932,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t typing___ASendExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASendExpr::raw_arguments (src/syntax//typing.nit:935,2--936:32)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method raw_arguments called (src/syntax//typing.nit:935,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+void typing___ASendExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASendExpr::after_typing (src/syntax//typing.nit:938,2--940:17)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  ((typing___ASendExpr___do_all_typing_t)CALL( self,COLOR_typing___ASendExpr___do_all_typing))( self,  variable0 /*v*/) /*ASendExpr::do_all_typing*/;
+  tracehead = trace.prev;
+  return;
+}
+void typing___ASendExpr___do_all_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASendExpr::do_all_typing (src/syntax//typing.nit:943,2--958:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+      val_t variable6;
+      val_t variable7;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+  variable2 = ((typing___PExpr___is_implicit_self_t)CALL(variable2,COLOR_typing___PExpr___is_implicit_self))(variable2) /*PExpr::is_implicit_self*/;
+  variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+  variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
+  variable4 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendExpr::name*/;
+  variable5 = ((typing___ASendExpr___raw_arguments_t)CALL( self,COLOR_typing___ASendExpr___raw_arguments))( self) /*ASendExpr::raw_arguments*/;
+  ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self,  variable0 /*v*/, variable1, variable2, variable3, variable4, variable5) /*ASendExpr::do_typing*/;
+  variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+  variable1 = TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    goto return_label87;
+  }
+  variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+  variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalProperty___global))(variable1) /*MMMethod::global*/;
+  variable1 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable1) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalProperty___global))(variable1) /*MMSrcLocalProperty::global*/;
+    variable1 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable1) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+      variable1 = NEW_string___String___init(); /*new String*/
+      variable2 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
+      variable3 = variable2;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+      variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+      variable5 = variable4;
+      variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+      variable6 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
+      variable7 = variable6;
+      ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable1) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+      variable1 = ((typing___PExpr___is_self_t)CALL(variable1,COLOR_typing___PExpr___is_self))(variable1) /*PExpr::is_self*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
+        variable1 = NEW_string___String___init(); /*new String*/
+        variable2 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
+        variable3 = variable2;
+        ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
+        variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+        variable5 = variable4;
+        variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
+        variable6 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
+        variable7 = variable6;
+        ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable1) /*TypingVisitor::error*/;
+      } else { /*if*/
+        variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+        ((typing___ASuperInitCall___register_super_init_call_t)CALL( self,COLOR_typing___ASuperInitCall___register_super_init_call))( self,  variable0 /*v*/, variable1) /*ASendExpr::register_super_init_call*/;
+      }
+    }
+  }
+  variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendExpr::prop*/;
+  variable2 = ((genericity___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMMethod::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ ==  NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/,  NIT_NULL /*null*/) /*MMType::==*/)))))));
+  variable3 = variable2;
+  if (UNTAG_Bool(variable3)) { /* and */
+    variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
+    variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
+    variable3 =  TAG_Bool(!UNTAG_Bool(variable3));
+  }
+  variable2 = variable3;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((static_type___MMType___not_for_self_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___not_for_self))( variable1 /*t*/) /*MMType::not_for_self*/;
+    variable1 = variable2 /*t=*/;
+  }
+  ATTR_typing___PExpr____stype( self) /*ASendExpr::_stype*/ =  variable1 /*t*/;
+  return_label87: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ASendReassignExpr___read_prop(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASendReassignExpr::read_prop (src/syntax//typing.nit:965,2--35)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/;
+}
+void typing___ASendReassignExpr___do_all_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ASendReassignExpr::do_all_typing (src/syntax//typing.nit:966,2--997:23)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  val_t variable5;
+      val_t variable6;
+      val_t variable7;
+      val_t variable8;
+  val_t variable9;
+  val_t variable10;
+  val_t variable11;
+  val_t variable12;
+  val_t variable13;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((typing___ASendExpr___raw_arguments_t)CALL( self,COLOR_typing___ASendExpr___raw_arguments))( self) /*ASendReassignExpr::raw_arguments*/;
+  variable1 = variable2;
+  variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
+  variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable3 = ((typing___PExpr___is_implicit_self_t)CALL(variable3,COLOR_typing___PExpr___is_implicit_self))(variable3) /*PExpr::is_implicit_self*/;
+  variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable4 = ((typing___PExpr___is_self_t)CALL(variable4,COLOR_typing___PExpr___is_self))(variable4) /*PExpr::is_self*/;
+  variable5 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendReassignExpr::name*/;
+  ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self,  variable0 /*v*/, variable2, variable3, variable4, variable5,  variable1 /*raw_args*/) /*ASendReassignExpr::do_typing*/;
+  variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable2 = TAG_Bool((variable2 ==  NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    goto return_label88;
+  }
+  variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMMethod::global*/;
+  variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMSrcLocalProperty::global*/;
+    variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+      variable2 = NEW_string___String___init(); /*new String*/
+      variable3 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
+      variable4 = variable3;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+      variable5 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+      variable6 = variable5;
+      variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+      variable7 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
+      variable8 = variable7;
+      ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+      variable2 = ((typing___PExpr___is_self_t)CALL(variable2,COLOR_typing___PExpr___is_self))(variable2) /*PExpr::is_self*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
+        variable2 = NEW_string___String___init(); /*new String*/
+        variable3 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
+        variable4 = variable3;
+        ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+        variable5 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+        variable6 = variable5;
+        variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
+        variable7 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable2) /*TypingVisitor::error*/;
+      }
+    }
+  }
+  variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable3 = ((genericity___MMLocalProperty___signature_t)CALL(variable3,COLOR_static_type___MMLocalProperty___signature))(variable3) /*MMMethod::signature*/;
+  variable3 = ((static_type___MMSignature___return_type_t)CALL(variable3,COLOR_static_type___MMSignature___return_type))(variable3) /*MMSignature::return_type*/;
+  variable2 = variable3;
+  variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+    variable3 = ((static_type___MMType___not_for_self_t)CALL( variable2 /*t*/,COLOR_static_type___MMType___not_for_self))( variable2 /*t*/) /*MMType::not_for_self*/;
+    variable2 = variable3 /*t=*/;
+  }
+  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self,  variable0 /*v*/,  variable2 /*t*/) /*ASendReassignExpr::do_lvalue_typing*/;
+  variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/ = variable3;
+  variable4 = ((typing___AAbsSendExpr___arguments_t)CALL( self,COLOR_typing___AAbsSendExpr___arguments))( self) /*ASendReassignExpr::arguments*/;
+  variable3 = variable4;
+  variable4 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*ASendReassignExpr::n_value*/;
+  ((array___AbstractArray___add_t)CALL( variable1 /*raw_args*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*raw_args*/, variable4) /*Array::add*/;
+  variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable4 = ((typing___PExpr___stype_t)CALL(variable4,COLOR_syntax_base___PExpr___stype))(variable4) /*PExpr::stype*/;
+  variable5 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable5 = ((typing___PExpr___is_implicit_self_t)CALL(variable5,COLOR_typing___PExpr___is_implicit_self))(variable5) /*PExpr::is_implicit_self*/;
+  variable6 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+  variable6 = ((typing___PExpr___is_self_t)CALL(variable6,COLOR_typing___PExpr___is_self))(variable6) /*PExpr::is_self*/;
+  variable7 = NEW_string___String___init(); /*new String*/
+  variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable9 = variable8;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
+  variable10 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendReassignExpr::name*/;
+  variable11 = variable10;
+  variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
+  variable12 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
+  variable13 = variable12;
+  ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
+  variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
+  ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self,  variable0 /*v*/, variable4, variable5, variable6, variable7,  variable1 /*raw_args*/) /*ASendReassignExpr::do_typing*/;
+  variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable4 = TAG_Bool((variable4 ==  NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4,  NIT_NULL /*null*/) /*MMMethod::==*/)))));
+  if (UNTAG_Bool(variable4)) { /*if*/
+    goto return_label88;
+  }
+  variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+  variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMMethod::global*/;
+  variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
+  if (UNTAG_Bool(variable4)) { /*if*/
+    variable4 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*TypingVisitor::local_property*/;
+    variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMSrcLocalProperty::global*/;
+    variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+      variable4 = NEW_string___String___init(); /*new String*/
+      variable5 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
+      variable6 = variable5;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+      variable7 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+      variable8 = variable7;
+      variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+      variable9 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
+      variable10 = variable9;
+      ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+    } else { /*if*/
+      variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendReassignExpr::n_expr*/;
+      variable4 = ((typing___PExpr___is_self_t)CALL(variable4,COLOR_typing___PExpr___is_self))(variable4) /*PExpr::is_self*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
+        variable4 = NEW_string___String___init(); /*new String*/
+        variable5 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
+        variable6 = variable5;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
+        variable7 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*ASendReassignExpr::prop*/;
+        variable8 = variable7;
+        variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
+        variable9 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
+        variable10 = variable9;
+        ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable4) /*TypingVisitor::error*/;
+      }
+    }
+  }
+  ATTR_typing___AAbsSendExpr____arguments( self) /*ASendReassignExpr::_arguments*/ =  variable3 /*old_args*/;
+  return_label88: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ABinopExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABinopExpr::raw_arguments (src/syntax//typing.nit:1002,2--44)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[PExpr]*/
+  variable1 = ((parser_nodes___ABinopExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___ABinopExpr___n_expr2))( self) /*ABinopExpr::n_expr2*/;
+  ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+  goto return_label89;
+  return_label89: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AEqExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AEqExpr::name (src/syntax//typing.nit:1005,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_91; static int once_bool_variable0_91;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_91) variable0 = once_value_variable0_91;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_91 = variable0;
+    once_bool_variable0_91 = true;
+  }
+  goto return_label90;
+  return_label90: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ANeExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ANeExpr::name (src/syntax//typing.nit:1008,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_93; static int once_bool_variable0_93;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_93) variable0 = once_value_variable0_93;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_93 = variable0;
+    once_bool_variable0_93 = true;
+  }
+  goto return_label92;
+  return_label92: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ALtExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ALtExpr::name (src/syntax//typing.nit:1011,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_95; static int once_bool_variable0_95;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_95) variable0 = once_value_variable0_95;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_95 = variable0;
+    once_bool_variable0_95 = true;
+  }
+  goto return_label94;
+  return_label94: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ALeExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ALeExpr::name (src/syntax//typing.nit:1014,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_97; static int once_bool_variable0_97;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_97) variable0 = once_value_variable0_97;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_97 = variable0;
+    once_bool_variable0_97 = true;
+  }
+  goto return_label96;
+  return_label96: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AGtExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AGtExpr::name (src/syntax//typing.nit:1017,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_99; static int once_bool_variable0_99;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_99) variable0 = once_value_variable0_99;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_99 = variable0;
+    once_bool_variable0_99 = true;
+  }
+  goto return_label98;
+  return_label98: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AGeExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AGeExpr::name (src/syntax//typing.nit:1020,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_101; static int once_bool_variable0_101;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_101) variable0 = once_value_variable0_101;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_101 = variable0;
+    once_bool_variable0_101 = true;
+  }
+  goto return_label100;
+  return_label100: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___APlusExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::APlusExpr::name (src/syntax//typing.nit:1023,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_103; static int once_bool_variable0_103;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_103) variable0 = once_value_variable0_103;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_103 = variable0;
+    once_bool_variable0_103 = true;
+  }
+  goto return_label102;
+  return_label102: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AMinusExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AMinusExpr::name (src/syntax//typing.nit:1026,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_105; static int once_bool_variable0_105;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_105) variable0 = once_value_variable0_105;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_105 = variable0;
+    once_bool_variable0_105 = true;
+  }
+  goto return_label104;
+  return_label104: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AStarshipExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AStarshipExpr::name (src/syntax//typing.nit:1029,2--47)"};
+  val_t variable0;
+  static val_t once_value_variable0_107; static int once_bool_variable0_107;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_107) variable0 = once_value_variable0_107;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_107 = variable0;
+    once_bool_variable0_107 = true;
+  }
+  goto return_label106;
+  return_label106: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AStarExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AStarExpr::name (src/syntax//typing.nit:1032,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_109; static int once_bool_variable0_109;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_109) variable0 = once_value_variable0_109;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_109 = variable0;
+    once_bool_variable0_109 = true;
+  }
+  goto return_label108;
+  return_label108: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ASlashExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ASlashExpr::name (src/syntax//typing.nit:1035,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_111; static int once_bool_variable0_111;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_111) variable0 = once_value_variable0_111;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_111 = variable0;
+    once_bool_variable0_111 = true;
+  }
+  goto return_label110;
+  return_label110: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___APercentExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::APercentExpr::name (src/syntax//typing.nit:1038,2--45)"};
+  val_t variable0;
+  static val_t once_value_variable0_113; static int once_bool_variable0_113;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_113) variable0 = once_value_variable0_113;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_113 = variable0;
+    once_bool_variable0_113 = true;
+  }
+  goto return_label112;
+  return_label112: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AUminusExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AUminusExpr::name (src/syntax//typing.nit:1042,2--51)"};
+  val_t variable0;
+  static val_t once_value_variable0_115; static int once_bool_variable0_115;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_115) variable0 = once_value_variable0_115;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_115 = variable0;
+    once_bool_variable0_115 = true;
+  }
+  goto return_label114;
+  return_label114: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AUminusExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AUminusExpr::raw_arguments (src/syntax//typing.nit:1043,2--40)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  NIT_NULL /*null*/;
+  goto return_label116;
+  return_label116: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void typing___ACallFormExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACallFormExpr::after_typing (src/syntax//typing.nit:1047,2--1063:7)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+        val_t variable4;
+        val_t variable5;
+        val_t variable6;
+        val_t variable7;
+        val_t variable8;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ACallFormExpr::n_expr*/;
+  variable1 = ((typing___PExpr___is_implicit_self_t)CALL(variable1,COLOR_typing___PExpr___is_implicit_self))(variable1) /*PExpr::is_implicit_self*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
+    variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*TId::to_symbol*/;
+    variable1 = variable2;
+    variable3 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable3 = ((typing___VariableContext_____bra_t)CALL(variable3,COLOR_typing___VariableContext_____bra))(variable3,  variable1 /*name*/) /*VariableContext::[]*/;
+    variable2 = variable3;
+    variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*variable*/ ==  NIT_NULL /*null*/) || (( variable2 /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*variable*/,COLOR_kernel___Object_____eqeq))( variable2 /*variable*/,  NIT_NULL /*null*/) /*Variable::==*/)))))));
+    if (UNTAG_Bool(variable3)) { /*if*/
+      variable3 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallFormExpr::n_args*/;
+      variable3 = ((list___List___is_empty_t)CALL(variable3,COLOR_abstract_collection___Collection___is_empty))(variable3) /*List::is_empty*/;
+      if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
+        variable3 = NEW_string___String___init(); /*new String*/
+        variable4 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+        variable5 = variable4;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
+        variable6 =  variable1 /*name*/;
+        variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
+        variable7 = NEW_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)); /*new String*/
+        variable8 = variable7;
+        ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
+        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/,  self, variable3) /*TypingVisitor::error*/;
+      }
+      variable4 = ((typing___ACallFormExpr___variable_create_t)CALL( self,COLOR_typing___ACallFormExpr___variable_create))( self,  variable2 /*variable*/) /*ACallFormExpr::variable_create*/;
+      variable3 = variable4;
+      ((typing___AVarFormExpr___variable__eq_t)CALL( variable3 /*vform*/,COLOR_typing___AVarFormExpr___variable__eq))( variable3 /*vform*/,  variable2 /*variable*/) /*AVarFormExpr::variable=*/;
+      ((parser_prod___Prod___replace_with_t)CALL( self,COLOR_parser_prod___PNode___replace_with))( self,  variable3 /*vform*/) /*ACallFormExpr::replace_with*/;
+      ((typing___PNode___after_typing_t)CALL( variable3 /*vform*/,COLOR_typing___PNode___after_typing))( variable3 /*vform*/,  variable0 /*v*/) /*AVarFormExpr::after_typing*/;
+      goto return_label117;
+    }
+  }
+  ((typing___ACallFormExpr___after_typing_t)CALL( self,COLOR_SUPER_typing___ACallFormExpr___after_typing))( self,  param0) /*super ACallFormExpr::after_typing*/;
+  return_label117: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ACallFormExpr___variable_create(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACallFormExpr::variable_create (src/syntax//typing.nit:1066,2--1067:55)"};
+  trace.prev = tracehead; tracehead = &trace;
+  fprintf(stderr, "Deferred method variable_create called (src/syntax//typing.nit:1066,2)\n");
+  nit_exit(1);
+  tracehead = trace.prev;
+  return NIT_NULL;
+}
+val_t typing___ACallExpr___variable_create(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACallExpr::variable_create (src/syntax//typing.nit:1071,2--1073:40)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallExpr::n_id*/;
+  variable2 = NEW_parser_prod___AVarExpr___init_avarexpr(variable1); /*new AVarExpr*/
+  variable1 = variable2;
+  goto return_label118;
+  return_label118: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t typing___ACallExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallExpr::name (src/syntax//typing.nit:1076,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallExpr::n_id*/;
+  variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*TId::to_symbol*/;
+  goto return_label119;
+  return_label119: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ACallExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallExpr::raw_arguments (src/syntax//typing.nit:1077,2--47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallExpr::n_args*/;
+  variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*List::to_a*/;
+  goto return_label120;
+  return_label120: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ACallAssignExpr___variable_create(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACallAssignExpr::variable_create (src/syntax//typing.nit:1081,2--1083:71)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallAssignExpr::n_id*/;
+  variable2 = ((parser_nodes___AAssignFormExpr___n_assign_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_assign))( self) /*ACallAssignExpr::n_assign*/;
+  variable3 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*ACallAssignExpr::n_value*/;
+  variable4 = NEW_parser_prod___AVarAssignExpr___init_avarassignexpr(variable1, variable2, variable3); /*new AVarAssignExpr*/
+  variable1 = variable4;
+  goto return_label121;
+  return_label121: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t typing___ACallAssignExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallAssignExpr::name (src/syntax//typing.nit:1086,2--54)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallAssignExpr::n_id*/;
+  variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*TId::text*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
+  variable0 = ((string___String_____plus_t)CALL(variable0,COLOR_string___String_____plus))(variable0, variable1) /*String::+*/;
+  variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+  goto return_label122;
+  return_label122: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ACallAssignExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallAssignExpr::raw_arguments (src/syntax//typing.nit:1087,2--1090:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallAssignExpr::n_args*/;
+  variable1 = ((array___Collection___to_a_t)CALL(variable1,COLOR_array___Collection___to_a))(variable1) /*List::to_a*/;
+  variable0 = variable1;
+  variable1 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*ACallAssignExpr::n_value*/;
+  ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*Array::add*/;
+  variable0 =  variable0 /*res*/;
+  goto return_label123;
+  return_label123: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ACallReassignExpr___variable_create(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::ACallReassignExpr::variable_create (src/syntax//typing.nit:1096,2--1098:78)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallReassignExpr::n_id*/;
+  variable2 = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_assign_op))( self) /*ACallReassignExpr::n_assign_op*/;
+  variable3 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*ACallReassignExpr::n_value*/;
+  variable4 = NEW_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable1, variable2, variable3); /*new AVarReassignExpr*/
+  variable1 = variable4;
+  goto return_label124;
+  return_label124: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t typing___ACallReassignExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallReassignExpr::name (src/syntax//typing.nit:1101,2--41)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallReassignExpr::n_id*/;
+  variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*TId::to_symbol*/;
+  goto return_label125;
+  return_label125: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ACallReassignExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ACallReassignExpr::raw_arguments (src/syntax//typing.nit:1102,2--47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallReassignExpr::n_args*/;
+  variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*List::to_a*/;
+  goto return_label126;
+  return_label126: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraExpr::name (src/syntax//typing.nit:1106,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_128; static int once_bool_variable0_128;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_128) variable0 = once_value_variable0_128;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_128 = variable0;
+    once_bool_variable0_128 = true;
+  }
+  goto return_label127;
+  return_label127: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraExpr::raw_arguments (src/syntax//typing.nit:1107,2--47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraExpr::n_args*/;
+  variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*List::to_a*/;
+  goto return_label129;
+  return_label129: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraAssignExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraAssignExpr::name (src/syntax//typing.nit:1111,2--47)"};
+  val_t variable0;
+  static val_t once_value_variable0_131; static int once_bool_variable0_131;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_131) variable0 = once_value_variable0_131;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_131 = variable0;
+    once_bool_variable0_131 = true;
+  }
+  goto return_label130;
+  return_label130: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraAssignExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraAssignExpr::raw_arguments (src/syntax//typing.nit:1112,2--1115:12)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraAssignExpr::n_args*/;
+  variable1 = ((array___Collection___to_a_t)CALL(variable1,COLOR_array___Collection___to_a))(variable1) /*List::to_a*/;
+  variable0 = variable1;
+  variable1 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*ABraAssignExpr::n_value*/;
+  ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*Array::add*/;
+  variable0 =  variable0 /*res*/;
+  goto return_label132;
+  return_label132: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraReassignExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraReassignExpr::name (src/syntax//typing.nit:1121,2--46)"};
+  val_t variable0;
+  static val_t once_value_variable0_134; static int once_bool_variable0_134;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_134) variable0 = once_value_variable0_134;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_134 = variable0;
+    once_bool_variable0_134 = true;
+  }
+  goto return_label133;
+  return_label133: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___ABraReassignExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::ABraReassignExpr::raw_arguments (src/syntax//typing.nit:1122,2--47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraReassignExpr::n_args*/;
+  variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*List::to_a*/;
+  goto return_label135;
+  return_label135: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AInitExpr___name(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AInitExpr::name (src/syntax//typing.nit:1126,2--48)"};
+  val_t variable0;
+  static val_t once_value_variable0_137; static int once_bool_variable0_137;
+  trace.prev = tracehead; tracehead = &trace;
+  if (once_bool_variable0_137) variable0 = once_value_variable0_137;
+  else {
+    variable0 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+    variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
+    once_value_variable0_137 = variable0;
+    once_bool_variable0_137 = true;
+  }
+  goto return_label136;
+  return_label136: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t typing___AInitExpr___raw_arguments(val_t  self) {
+  struct trace_t trace = {NULL, "typing::AInitExpr::raw_arguments (src/syntax//typing.nit:1127,2--47)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((parser_nodes___AInitExpr___n_args_t)CALL( self,COLOR_parser_nodes___AInitExpr___n_args))( self) /*AInitExpr::n_args*/;
+  variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*List::to_a*/;
+  goto return_label138;
+  return_label138: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+void typing___AIsaExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AIsaExpr::after_typing (src/syntax//typing.nit:1131,2--1138:22)"};
+  val_t variable0;
+  val_t variable1;
+    val_t variable2;
+    val_t variable3;
+    val_t variable4;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AIsaExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_expr))( self) /*AIsaExpr::n_expr*/;
+  variable1 = ((typing___PExpr___is_variable_t)CALL(variable1,COLOR_typing___PExpr___is_variable))(variable1) /*PExpr::is_variable*/;
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable2 = ((parser_nodes___AIsaExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_expr))( self) /*AIsaExpr::n_expr*/;
+    variable1 = variable2;
+    variable2 = TAG_Bool(( variable1 /*n*/==NIT_NULL) || VAL_ISA( variable1 /*n*/, COLOR_AVarExpr, ID_AVarExpr)) /*cast AVarExpr*/;
+    if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/syntax//typing.nit:1135,4--24\n"); nit_exit(1);}
+    variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable3 = ((typing___AVarFormExpr___variable_t)CALL( variable1 /*n*/,COLOR_typing___AVarFormExpr___variable))( variable1 /*n*/) /*AVarExpr::variable*/;
+    variable4 = ((parser_nodes___AIsaExpr___n_type_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_type))( self) /*AIsaExpr::n_type*/;
+    variable4 = ((typing___PType___stype_t)CALL(variable4,COLOR_typing___PType___stype))(variable4) /*PType::stype*/;
+    variable2 = ((typing___VariableContext___sub_with_t)CALL(variable2,COLOR_typing___VariableContext___sub_with))(variable2, variable3, variable4) /*VariableContext::sub_with*/;
+    ATTR_typing___PExpr____if_true_variable_ctx( self) /*AIsaExpr::_if_true_variable_ctx*/ = variable2;
+  }
+  variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*TypingVisitor::type_bool*/;
+  ATTR_typing___PExpr____stype( self) /*AIsaExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
+void typing___AProxyExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "typing::AProxyExpr::after_typing (src/syntax//typing.nit:1143,2--1145:23)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((parser_nodes___AProxyExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AProxyExpr___n_expr))( self) /*AProxyExpr::n_expr*/;
+  variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
+  ATTR_typing___PExpr____stype( self) /*AProxyExpr::_stype*/ = variable1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/typing._sep.h b/c_src/typing._sep.h
new file mode 100644 (file)
index 0000000..637d1ae
--- /dev/null
@@ -0,0 +1,411 @@
+#ifndef typing__sep
+#define typing__sep
+#include "syntax_base._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_TypingVisitor[];
+
+extern const classtable_elt_t VFT_VariableContext[];
+
+extern const classtable_elt_t VFT_SubVariableContext[];
+
+extern const classtable_elt_t VFT_AAbsSendExpr[];
+
+extern const classtable_elt_t VFT_ASuperInitCall[];
+
+extern const classtable_elt_t VFT_ASendReassignExpr[];
+extern const int SFT_typing[];
+#define COLOR_typing___MMSrcModule___do_typing SFT_typing[0]
+#define ID_TypingVisitor SFT_typing[1]
+#define COLOR_TypingVisitor SFT_typing[2]
+#define COLOR_typing___TypingVisitor____variable_ctx SFT_typing[3]
+#define COLOR_typing___TypingVisitor____self_type SFT_typing[4]
+#define COLOR_typing___TypingVisitor____top_block SFT_typing[5]
+#define COLOR_typing___TypingVisitor____explicit_super_init_calls SFT_typing[6]
+#define COLOR_typing___TypingVisitor____explicit_other_init_call SFT_typing[7]
+#define INIT_TABLE_POS_TypingVisitor SFT_typing[8]
+#define COLOR_typing___TypingVisitor___variable_ctx SFT_typing[9]
+#define COLOR_typing___TypingVisitor___variable_ctx__eq SFT_typing[10]
+#define COLOR_typing___TypingVisitor___self_type SFT_typing[11]
+#define COLOR_typing___TypingVisitor___self_type__eq SFT_typing[12]
+#define COLOR_typing___TypingVisitor___top_block SFT_typing[13]
+#define COLOR_typing___TypingVisitor___top_block__eq SFT_typing[14]
+#define COLOR_typing___TypingVisitor___explicit_super_init_calls SFT_typing[15]
+#define COLOR_typing___TypingVisitor___explicit_super_init_calls__eq SFT_typing[16]
+#define COLOR_typing___TypingVisitor___explicit_other_init_call SFT_typing[17]
+#define COLOR_typing___TypingVisitor___explicit_other_init_call__eq SFT_typing[18]
+#define COLOR_typing___TypingVisitor___init SFT_typing[19]
+#define COLOR_typing___TypingVisitor___get_default_constructor_for SFT_typing[20]
+#define ID_VariableContext SFT_typing[21]
+#define COLOR_VariableContext SFT_typing[22]
+#define COLOR_typing___VariableContext____dico SFT_typing[23]
+#define INIT_TABLE_POS_VariableContext SFT_typing[24]
+#define COLOR_typing___VariableContext_____bra SFT_typing[25]
+#define COLOR_typing___VariableContext___add SFT_typing[26]
+#define COLOR_typing___VariableContext___stype SFT_typing[27]
+#define COLOR_typing___VariableContext___sub SFT_typing[28]
+#define COLOR_typing___VariableContext___sub_with SFT_typing[29]
+#define COLOR_typing___VariableContext___init SFT_typing[30]
+#define ID_SubVariableContext SFT_typing[31]
+#define COLOR_SubVariableContext SFT_typing[32]
+#define COLOR_typing___SubVariableContext____prev SFT_typing[33]
+#define COLOR_typing___SubVariableContext____variable SFT_typing[34]
+#define COLOR_typing___SubVariableContext____var_type SFT_typing[35]
+#define INIT_TABLE_POS_SubVariableContext SFT_typing[36]
+#define COLOR_typing___SubVariableContext___prev SFT_typing[37]
+#define COLOR_typing___SubVariableContext___with SFT_typing[38]
+#define COLOR_typing___PNode___accept_typing SFT_typing[39]
+#define COLOR_typing___PNode___after_typing SFT_typing[40]
+#define COLOR_SUPER_typing___PClassdef___accept_typing SFT_typing[41]
+#define COLOR_SUPER_typing___AAttrPropdef___accept_typing SFT_typing[42]
+#define COLOR_SUPER_typing___AMethPropdef___accept_typing SFT_typing[43]
+#define COLOR_typing___AConcreteInitPropdef____super_init_calls SFT_typing[44]
+#define COLOR_typing___AConcreteInitPropdef____explicit_super_init_calls SFT_typing[45]
+#define COLOR_typing___AConcreteInitPropdef___super_init_calls SFT_typing[46]
+#define COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls SFT_typing[47]
+#define COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing SFT_typing[48]
+#define COLOR_typing___PType____stype SFT_typing[49]
+#define COLOR_typing___PType___stype SFT_typing[50]
+#define COLOR_typing___PExpr____stype SFT_typing[51]
+#define COLOR_typing___PExpr____if_true_variable_ctx SFT_typing[52]
+#define COLOR_typing___PExpr___is_implicit_self SFT_typing[53]
+#define COLOR_typing___PExpr___is_self SFT_typing[54]
+#define COLOR_typing___PExpr___is_variable SFT_typing[55]
+#define COLOR_typing___PExpr___if_true_variable_ctx SFT_typing[56]
+#define COLOR_typing___AVardeclExpr____variable SFT_typing[57]
+#define COLOR_typing___AVardeclExpr___variable SFT_typing[58]
+#define COLOR_SUPER_typing___ABlockExpr___accept_typing SFT_typing[59]
+#define COLOR_typing___AForVardeclExpr____variable SFT_typing[60]
+#define COLOR_typing___AForVardeclExpr___variable SFT_typing[61]
+#define COLOR_typing___AVarFormExpr____variable SFT_typing[62]
+#define COLOR_typing___AVarFormExpr___variable SFT_typing[63]
+#define COLOR_typing___AVarFormExpr___variable__eq SFT_typing[64]
+#define COLOR_typing___AReassignFormExpr____assign_method SFT_typing[65]
+#define COLOR_typing___AReassignFormExpr___do_lvalue_typing SFT_typing[66]
+#define COLOR_typing___AReassignFormExpr___assign_method SFT_typing[67]
+#define COLOR_typing___PAssignOp___method_name SFT_typing[68]
+#define COLOR_typing___AArrayExpr___stype__eq SFT_typing[69]
+#define COLOR_typing___ASuperExpr____init_in_superclass SFT_typing[70]
+#define COLOR_typing___ASuperExpr___init_in_superclass SFT_typing[71]
+#define COLOR_typing___AAttrFormExpr____prop SFT_typing[72]
+#define COLOR_typing___AAttrFormExpr___prop SFT_typing[73]
+#define COLOR_typing___AAttrFormExpr___do_typing SFT_typing[74]
+#define ID_AAbsSendExpr SFT_typing[75]
+#define COLOR_AAbsSendExpr SFT_typing[76]
+#define COLOR_typing___AAbsSendExpr____prop SFT_typing[77]
+#define COLOR_typing___AAbsSendExpr____arguments SFT_typing[78]
+#define INIT_TABLE_POS_AAbsSendExpr SFT_typing[79]
+#define COLOR_typing___AAbsSendExpr___do_typing SFT_typing[80]
+#define COLOR_typing___AAbsSendExpr___get_property SFT_typing[81]
+#define COLOR_typing___AAbsSendExpr___process_signature SFT_typing[82]
+#define COLOR_typing___AAbsSendExpr___prop SFT_typing[83]
+#define COLOR_typing___AAbsSendExpr___arguments SFT_typing[84]
+#define ID_ASuperInitCall SFT_typing[85]
+#define COLOR_ASuperInitCall SFT_typing[86]
+#define INIT_TABLE_POS_ASuperInitCall SFT_typing[87]
+#define COLOR_typing___ASuperInitCall___register_super_init_call SFT_typing[88]
+#define COLOR_typing___ASendExpr___name SFT_typing[89]
+#define COLOR_typing___ASendExpr___raw_arguments SFT_typing[90]
+#define COLOR_typing___ASendExpr___do_all_typing SFT_typing[91]
+#define ID_ASendReassignExpr SFT_typing[92]
+#define COLOR_ASendReassignExpr SFT_typing[93]
+#define COLOR_typing___ASendReassignExpr____read_prop SFT_typing[94]
+#define INIT_TABLE_POS_ASendReassignExpr SFT_typing[95]
+#define COLOR_typing___ASendReassignExpr___read_prop SFT_typing[96]
+#define COLOR_SUPER_typing___ACallFormExpr___after_typing SFT_typing[97]
+#define COLOR_typing___ACallFormExpr___variable_create SFT_typing[98]
+typedef void (* typing___MMSrcModule___do_typing_t)(val_t  self, val_t  param0);
+void typing___MMSrcModule___do_typing(val_t  self, val_t  param0);
+typedef void (* typing___TypingVisitor___visit_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___visit(val_t  self, val_t  param0);
+#define ATTR_typing___TypingVisitor____variable_ctx(recv) ATTR(recv, COLOR_typing___TypingVisitor____variable_ctx)
+typedef val_t (* typing___TypingVisitor___variable_ctx_t)(val_t  self);
+val_t typing___TypingVisitor___variable_ctx(val_t  self);
+typedef void (* typing___TypingVisitor___variable_ctx__eq_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___variable_ctx__eq(val_t  self, val_t  param0);
+#define ATTR_typing___TypingVisitor____self_type(recv) ATTR(recv, COLOR_typing___TypingVisitor____self_type)
+typedef val_t (* typing___TypingVisitor___self_type_t)(val_t  self);
+val_t typing___TypingVisitor___self_type(val_t  self);
+typedef void (* typing___TypingVisitor___self_type__eq_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___self_type__eq(val_t  self, val_t  param0);
+#define ATTR_typing___TypingVisitor____top_block(recv) ATTR(recv, COLOR_typing___TypingVisitor____top_block)
+typedef val_t (* typing___TypingVisitor___top_block_t)(val_t  self);
+val_t typing___TypingVisitor___top_block(val_t  self);
+typedef void (* typing___TypingVisitor___top_block__eq_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___top_block__eq(val_t  self, val_t  param0);
+#define ATTR_typing___TypingVisitor____explicit_super_init_calls(recv) ATTR(recv, COLOR_typing___TypingVisitor____explicit_super_init_calls)
+typedef val_t (* typing___TypingVisitor___explicit_super_init_calls_t)(val_t  self);
+val_t typing___TypingVisitor___explicit_super_init_calls(val_t  self);
+typedef void (* typing___TypingVisitor___explicit_super_init_calls__eq_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___explicit_super_init_calls__eq(val_t  self, val_t  param0);
+#define ATTR_typing___TypingVisitor____explicit_other_init_call(recv) ATTR(recv, COLOR_typing___TypingVisitor____explicit_other_init_call)
+typedef val_t (* typing___TypingVisitor___explicit_other_init_call_t)(val_t  self);
+val_t typing___TypingVisitor___explicit_other_init_call(val_t  self);
+typedef void (* typing___TypingVisitor___explicit_other_init_call__eq_t)(val_t  self, val_t  param0);
+void typing___TypingVisitor___explicit_other_init_call__eq(val_t  self, val_t  param0);
+typedef void (* typing___TypingVisitor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void typing___TypingVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_typing___TypingVisitor___init(val_t  param0, val_t  param1);
+typedef val_t (* typing___TypingVisitor___get_default_constructor_for_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+val_t typing___TypingVisitor___get_default_constructor_for(val_t  self, val_t  param0, val_t  param1, val_t  param2);
+typedef val_t (* typing___VariableContext_____bra_t)(val_t  self, val_t  param0);
+val_t typing___VariableContext_____bra(val_t  self, val_t  param0);
+typedef void (* typing___VariableContext___add_t)(val_t  self, val_t  param0);
+void typing___VariableContext___add(val_t  self, val_t  param0);
+typedef val_t (* typing___VariableContext___stype_t)(val_t  self, val_t  param0);
+val_t typing___VariableContext___stype(val_t  self, val_t  param0);
+#define ATTR_typing___VariableContext____dico(recv) ATTR(recv, COLOR_typing___VariableContext____dico)
+typedef val_t (* typing___VariableContext___sub_t)(val_t  self);
+val_t typing___VariableContext___sub(val_t  self);
+typedef val_t (* typing___VariableContext___sub_with_t)(val_t  self, val_t  param0, val_t  param1);
+val_t typing___VariableContext___sub_with(val_t  self, val_t  param0, val_t  param1);
+typedef void (* typing___VariableContext___init_t)(val_t  self, int* init_table);
+void typing___VariableContext___init(val_t  self, int* init_table);
+val_t NEW_typing___VariableContext___init();
+#define ATTR_typing___SubVariableContext____prev(recv) ATTR(recv, COLOR_typing___SubVariableContext____prev)
+typedef val_t (* typing___SubVariableContext___prev_t)(val_t  self);
+val_t typing___SubVariableContext___prev(val_t  self);
+#define ATTR_typing___SubVariableContext____variable(recv) ATTR(recv, COLOR_typing___SubVariableContext____variable)
+#define ATTR_typing___SubVariableContext____var_type(recv) ATTR(recv, COLOR_typing___SubVariableContext____var_type)
+typedef val_t (* typing___SubVariableContext_____bra_t)(val_t  self, val_t  param0);
+val_t typing___SubVariableContext_____bra(val_t  self, val_t  param0);
+typedef val_t (* typing___SubVariableContext___stype_t)(val_t  self, val_t  param0);
+val_t typing___SubVariableContext___stype(val_t  self, val_t  param0);
+typedef void (* typing___SubVariableContext___with_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void typing___SubVariableContext___with(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_typing___SubVariableContext___with(val_t  param0, val_t  param1, val_t  param2);
+typedef void (* typing___PNode___accept_typing_t)(val_t  self, val_t  param0);
+void typing___PNode___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___PNode___after_typing_t)(val_t  self, val_t  param0);
+void typing___PNode___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___PClassdef___accept_typing_t)(val_t  self, val_t  param0);
+void typing___PClassdef___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAttrPropdef___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AAttrPropdef___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___AMethPropdef___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AMethPropdef___accept_typing(val_t  self, val_t  param0);
+#define ATTR_typing___AConcreteInitPropdef____super_init_calls(recv) ATTR(recv, COLOR_typing___AConcreteInitPropdef____super_init_calls)
+typedef val_t (* typing___AConcreteInitPropdef___super_init_calls_t)(val_t  self);
+val_t typing___AConcreteInitPropdef___super_init_calls(val_t  self);
+#define ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls(recv) ATTR(recv, COLOR_typing___AConcreteInitPropdef____explicit_super_init_calls)
+typedef val_t (* typing___AConcreteInitPropdef___explicit_super_init_calls_t)(val_t  self);
+val_t typing___AConcreteInitPropdef___explicit_super_init_calls(val_t  self);
+typedef void (* typing___AConcreteInitPropdef___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___PParam___after_typing_t)(val_t  self, val_t  param0);
+void typing___PParam___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___PType____stype(recv) ATTR(recv, COLOR_typing___PType____stype)
+typedef val_t (* typing___PType___stype_t)(val_t  self);
+val_t typing___PType___stype(val_t  self);
+typedef void (* typing___PType___after_typing_t)(val_t  self, val_t  param0);
+void typing___PType___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___PExpr____stype(recv) ATTR(recv, COLOR_typing___PExpr____stype)
+typedef val_t (* typing___PExpr___stype_t)(val_t  self);
+val_t typing___PExpr___stype(val_t  self);
+typedef val_t (* typing___PExpr___is_implicit_self_t)(val_t  self);
+val_t typing___PExpr___is_implicit_self(val_t  self);
+typedef val_t (* typing___PExpr___is_self_t)(val_t  self);
+val_t typing___PExpr___is_self(val_t  self);
+typedef val_t (* typing___PExpr___is_variable_t)(val_t  self);
+val_t typing___PExpr___is_variable(val_t  self);
+#define ATTR_typing___PExpr____if_true_variable_ctx(recv) ATTR(recv, COLOR_typing___PExpr____if_true_variable_ctx)
+typedef val_t (* typing___PExpr___if_true_variable_ctx_t)(val_t  self);
+val_t typing___PExpr___if_true_variable_ctx(val_t  self);
+#define ATTR_typing___AVardeclExpr____variable(recv) ATTR(recv, COLOR_typing___AVardeclExpr____variable)
+typedef val_t (* typing___AVardeclExpr___variable_t)(val_t  self);
+val_t typing___AVardeclExpr___variable(val_t  self);
+typedef void (* typing___AVardeclExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AVardeclExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ABlockExpr___accept_typing_t)(val_t  self, val_t  param0);
+void typing___ABlockExpr___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___AReturnExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AReturnExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AIfExpr___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AIfExpr___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___AWhileExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AWhileExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AForExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AForExpr___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___AForVardeclExpr____variable(recv) ATTR(recv, COLOR_typing___AForVardeclExpr____variable)
+typedef val_t (* typing___AForVardeclExpr___variable_t)(val_t  self);
+val_t typing___AForVardeclExpr___variable(val_t  self);
+typedef void (* typing___AForVardeclExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AForVardeclExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAssertExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AAssertExpr___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___AVarFormExpr____variable(recv) ATTR(recv, COLOR_typing___AVarFormExpr____variable)
+typedef val_t (* typing___AVarFormExpr___variable_t)(val_t  self);
+val_t typing___AVarFormExpr___variable(val_t  self);
+typedef void (* typing___AVarFormExpr___variable__eq_t)(val_t  self, val_t  param0);
+void typing___AVarFormExpr___variable__eq(val_t  self, val_t  param0);
+typedef val_t (* typing___AVarExpr___is_variable_t)(val_t  self);
+val_t typing___AVarExpr___is_variable(val_t  self);
+typedef void (* typing___AVarExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AVarExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AVarAssignExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AVarAssignExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AReassignFormExpr___do_lvalue_typing_t)(val_t  self, val_t  param0, val_t  param1);
+void typing___AReassignFormExpr___do_lvalue_typing(val_t  self, val_t  param0, val_t  param1);
+#define ATTR_typing___AReassignFormExpr____assign_method(recv) ATTR(recv, COLOR_typing___AReassignFormExpr____assign_method)
+typedef val_t (* typing___AReassignFormExpr___assign_method_t)(val_t  self);
+val_t typing___AReassignFormExpr___assign_method(val_t  self);
+typedef val_t (* typing___PAssignOp___method_name_t)(val_t  self);
+val_t typing___PAssignOp___method_name(val_t  self);
+typedef val_t (* typing___APlusAssignOp___method_name_t)(val_t  self);
+val_t typing___APlusAssignOp___method_name(val_t  self);
+typedef val_t (* typing___AMinusAssignOp___method_name_t)(val_t  self);
+val_t typing___AMinusAssignOp___method_name(val_t  self);
+typedef void (* typing___AVarReassignExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AVarReassignExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ASelfExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ASelfExpr___after_typing(val_t  self, val_t  param0);
+typedef val_t (* typing___ASelfExpr___is_self_t)(val_t  self);
+val_t typing___ASelfExpr___is_self(val_t  self);
+typedef val_t (* typing___AImplicitSelfExpr___is_implicit_self_t)(val_t  self);
+val_t typing___AImplicitSelfExpr___is_implicit_self(val_t  self);
+typedef void (* typing___AIfexprExpr___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AIfexprExpr___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___ABoolExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ABoolExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AOrExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AOrExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAndExpr___accept_typing_t)(val_t  self, val_t  param0);
+void typing___AAndExpr___accept_typing(val_t  self, val_t  param0);
+typedef void (* typing___ANotExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ANotExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AIntExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AIntExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AFloatExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AFloatExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ACharExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ACharExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AStringFormExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AStringFormExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ASuperstringExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ASuperstringExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ANullExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ANullExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AArrayExpr___stype__eq_t)(val_t  self, val_t  param0);
+void typing___AArrayExpr___stype__eq(val_t  self, val_t  param0);
+typedef void (* typing___AArrayExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AArrayExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ARangeExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ARangeExpr___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___ASuperExpr____init_in_superclass(recv) ATTR(recv, COLOR_typing___ASuperExpr____init_in_superclass)
+typedef val_t (* typing___ASuperExpr___init_in_superclass_t)(val_t  self);
+val_t typing___ASuperExpr___init_in_superclass(val_t  self);
+typedef void (* typing___ASuperExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ASuperExpr___after_typing(val_t  self, val_t  param0);
+#define ATTR_typing___AAttrFormExpr____prop(recv) ATTR(recv, COLOR_typing___AAttrFormExpr____prop)
+typedef val_t (* typing___AAttrFormExpr___prop_t)(val_t  self);
+val_t typing___AAttrFormExpr___prop(val_t  self);
+typedef void (* typing___AAttrFormExpr___do_typing_t)(val_t  self, val_t  param0);
+void typing___AAttrFormExpr___do_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAttrExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AAttrExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAttrAssignExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AAttrAssignExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAttrReassignExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AAttrReassignExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AAbsSendExpr___do_typing_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+void typing___AAbsSendExpr___do_typing(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5);
+typedef val_t (* typing___AAbsSendExpr___get_property_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+val_t typing___AAbsSendExpr___get_property(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+typedef val_t (* typing___AAbsSendExpr___process_signature_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define ATTR_typing___AAbsSendExpr____prop(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____prop)
+typedef val_t (* typing___AAbsSendExpr___prop_t)(val_t  self);
+val_t typing___AAbsSendExpr___prop(val_t  self);
+#define ATTR_typing___AAbsSendExpr____arguments(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____arguments)
+typedef val_t (* typing___AAbsSendExpr___arguments_t)(val_t  self);
+val_t typing___AAbsSendExpr___arguments(val_t  self);
+typedef void (* typing___ASuperInitCall___register_super_init_call_t)(val_t  self, val_t  param0, val_t  param1);
+void typing___ASuperInitCall___register_super_init_call(val_t  self, val_t  param0, val_t  param1);
+typedef void (* typing___ANewExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ANewExpr___after_typing(val_t  self, val_t  param0);
+typedef val_t (* typing___ASendExpr___name_t)(val_t  self);
+val_t typing___ASendExpr___name(val_t  self);
+typedef val_t (* typing___ASendExpr___raw_arguments_t)(val_t  self);
+val_t typing___ASendExpr___raw_arguments(val_t  self);
+typedef void (* typing___ASendExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ASendExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___ASendExpr___do_all_typing_t)(val_t  self, val_t  param0);
+void typing___ASendExpr___do_all_typing(val_t  self, val_t  param0);
+#define ATTR_typing___ASendReassignExpr____read_prop(recv) ATTR(recv, COLOR_typing___ASendReassignExpr____read_prop)
+typedef val_t (* typing___ASendReassignExpr___read_prop_t)(val_t  self);
+val_t typing___ASendReassignExpr___read_prop(val_t  self);
+typedef void (* typing___ASendReassignExpr___do_all_typing_t)(val_t  self, val_t  param0);
+void typing___ASendReassignExpr___do_all_typing(val_t  self, val_t  param0);
+typedef val_t (* typing___ABinopExpr___raw_arguments_t)(val_t  self);
+val_t typing___ABinopExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___AEqExpr___name_t)(val_t  self);
+val_t typing___AEqExpr___name(val_t  self);
+typedef val_t (* typing___ANeExpr___name_t)(val_t  self);
+val_t typing___ANeExpr___name(val_t  self);
+typedef val_t (* typing___ALtExpr___name_t)(val_t  self);
+val_t typing___ALtExpr___name(val_t  self);
+typedef val_t (* typing___ALeExpr___name_t)(val_t  self);
+val_t typing___ALeExpr___name(val_t  self);
+typedef val_t (* typing___AGtExpr___name_t)(val_t  self);
+val_t typing___AGtExpr___name(val_t  self);
+typedef val_t (* typing___AGeExpr___name_t)(val_t  self);
+val_t typing___AGeExpr___name(val_t  self);
+typedef val_t (* typing___APlusExpr___name_t)(val_t  self);
+val_t typing___APlusExpr___name(val_t  self);
+typedef val_t (* typing___AMinusExpr___name_t)(val_t  self);
+val_t typing___AMinusExpr___name(val_t  self);
+typedef val_t (* typing___AStarshipExpr___name_t)(val_t  self);
+val_t typing___AStarshipExpr___name(val_t  self);
+typedef val_t (* typing___AStarExpr___name_t)(val_t  self);
+val_t typing___AStarExpr___name(val_t  self);
+typedef val_t (* typing___ASlashExpr___name_t)(val_t  self);
+val_t typing___ASlashExpr___name(val_t  self);
+typedef val_t (* typing___APercentExpr___name_t)(val_t  self);
+val_t typing___APercentExpr___name(val_t  self);
+typedef val_t (* typing___AUminusExpr___name_t)(val_t  self);
+val_t typing___AUminusExpr___name(val_t  self);
+typedef val_t (* typing___AUminusExpr___raw_arguments_t)(val_t  self);
+val_t typing___AUminusExpr___raw_arguments(val_t  self);
+typedef void (* typing___ACallFormExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ACallFormExpr___after_typing(val_t  self, val_t  param0);
+typedef val_t (* typing___ACallFormExpr___variable_create_t)(val_t  self, val_t  param0);
+val_t typing___ACallFormExpr___variable_create(val_t  self, val_t  param0);
+typedef val_t (* typing___ACallExpr___variable_create_t)(val_t  self, val_t  param0);
+val_t typing___ACallExpr___variable_create(val_t  self, val_t  param0);
+typedef val_t (* typing___ACallExpr___name_t)(val_t  self);
+val_t typing___ACallExpr___name(val_t  self);
+typedef val_t (* typing___ACallExpr___raw_arguments_t)(val_t  self);
+val_t typing___ACallExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___ACallAssignExpr___variable_create_t)(val_t  self, val_t  param0);
+val_t typing___ACallAssignExpr___variable_create(val_t  self, val_t  param0);
+typedef val_t (* typing___ACallAssignExpr___name_t)(val_t  self);
+val_t typing___ACallAssignExpr___name(val_t  self);
+typedef val_t (* typing___ACallAssignExpr___raw_arguments_t)(val_t  self);
+val_t typing___ACallAssignExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___ACallReassignExpr___variable_create_t)(val_t  self, val_t  param0);
+val_t typing___ACallReassignExpr___variable_create(val_t  self, val_t  param0);
+typedef val_t (* typing___ACallReassignExpr___name_t)(val_t  self);
+val_t typing___ACallReassignExpr___name(val_t  self);
+typedef val_t (* typing___ACallReassignExpr___raw_arguments_t)(val_t  self);
+val_t typing___ACallReassignExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___ABraExpr___name_t)(val_t  self);
+val_t typing___ABraExpr___name(val_t  self);
+typedef val_t (* typing___ABraExpr___raw_arguments_t)(val_t  self);
+val_t typing___ABraExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___ABraAssignExpr___name_t)(val_t  self);
+val_t typing___ABraAssignExpr___name(val_t  self);
+typedef val_t (* typing___ABraAssignExpr___raw_arguments_t)(val_t  self);
+val_t typing___ABraAssignExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___ABraReassignExpr___name_t)(val_t  self);
+val_t typing___ABraReassignExpr___name(val_t  self);
+typedef val_t (* typing___ABraReassignExpr___raw_arguments_t)(val_t  self);
+val_t typing___ABraReassignExpr___raw_arguments(val_t  self);
+typedef val_t (* typing___AInitExpr___name_t)(val_t  self);
+val_t typing___AInitExpr___name(val_t  self);
+typedef val_t (* typing___AInitExpr___raw_arguments_t)(val_t  self);
+val_t typing___AInitExpr___raw_arguments(val_t  self);
+typedef void (* typing___AIsaExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AIsaExpr___after_typing(val_t  self, val_t  param0);
+typedef void (* typing___AProxyExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AProxyExpr___after_typing(val_t  self, val_t  param0);
+#endif
diff --git a/c_src/utils._sep.c b/c_src/utils._sep.c
new file mode 100644 (file)
index 0000000..6ac12dd
--- /dev/null
@@ -0,0 +1,156 @@
+#include "utils._sep.h"
+val_t utils___Object___cmangle(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "utils::Object::cmangle (src/utils.nit:21,1--55:11)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  static val_t once_value_variable2_1; static int once_bool_variable2_1;
+  val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
+    val_t variable8;
+      val_t variable9;
+      val_t variable10;
+      val_t variable11;
+        val_t variable12;
+  trace.prev = tracehead; tracehead = &trace;
+  /* check if p<Array[Symbol] with p:Symbol */
+  if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled at src/utils.nit:22,14--31\n"); nit_exit(1); } /*cast Array[Symbol]*/;
+  variable0 =  param0;
+  if (once_bool_variable2_1) variable2 = once_value_variable2_1;
+  else {
+    variable2 = ((utils___Object___cmangle_table_t)CALL( self,COLOR_utils___Object___cmangle_table))( self) /*Object::cmangle_table*/;
+    once_value_variable2_1 = variable2;
+    once_bool_variable2_1 = true;
+  }
+  variable1 = variable2;
+  variable3 = NEW_string___String___init(); /*new String*/
+  variable2 = variable3;
+  variable3 = ((array___AbstractArray___iterator_t)CALL( variable0 /*symbols*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*symbols*/) /*Array::iterator*/;
+  while (true) { /*for*/
+    variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable4)) break; /*for*/
+    variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
+    variable5 = ((array___AbstractArray___is_empty_t)CALL( variable2 /*res*/,COLOR_abstract_collection___Collection___is_empty))( variable2 /*res*/) /*String::is_empty*/;
+    if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
+      ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  TAG_Char('_')) /*String::add*/;
+      ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  TAG_Char('_')) /*String::add*/;
+      ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  TAG_Char('_')) /*String::add*/;
+    }
+    variable5 =  TAG_Bool(false);
+    variable6 =  TAG_Bool(true);
+    variable8 = ((symbol___Symbol___to_s_t)CALL( variable4 /*sym*/,COLOR_string___Object___to_s))( variable4 /*sym*/) /*Symbol::to_s*/;
+    variable7 = variable8;
+    variable8 = ((array___AbstractArray___iterator_t)CALL( variable7 /*s*/,COLOR_abstract_collection___Collection___iterator))( variable7 /*s*/) /*String::iterator*/;
+    while (true) { /*for*/
+      variable9 = ((array___ArrayIterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*ArrayIterator::is_ok*/;
+      if (!UNTAG_Bool(variable9)) break; /*for*/
+      variable9 = ((array___ArrayIterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*ArrayIterator::item*/;
+      variable10 = TAG_Bool(UNTAG_Char( variable9 /*c*/)>=UNTAG_Char( TAG_Char('a')));
+      variable11 = variable10;
+      if (UNTAG_Bool(variable11)) { /* and */
+        variable11 = TAG_Bool(UNTAG_Char( variable9 /*c*/)<=UNTAG_Char( TAG_Char('z')));
+      }
+      variable10 = variable11;
+      variable11 = variable10;
+      if (!UNTAG_Bool(variable11)) { /* or */
+        variable11 = TAG_Bool(UNTAG_Char( variable9 /*c*/)>=UNTAG_Char( TAG_Char('A')));
+        variable12 = variable11;
+        if (UNTAG_Bool(variable12)) { /* and */
+          variable12 = TAG_Bool(UNTAG_Char( variable9 /*c*/)<=UNTAG_Char( TAG_Char('Z')));
+        }
+        variable11 = variable12;
+      }
+      variable10 = variable11;
+      variable11 = variable10;
+      if (!UNTAG_Bool(variable11)) { /* or */
+        variable11 = TAG_Bool(UNTAG_Char( variable9 /*c*/)>=UNTAG_Char( TAG_Char('0')));
+        variable12 = variable11;
+        if (UNTAG_Bool(variable12)) { /* and */
+          variable12 = TAG_Bool(UNTAG_Char( variable9 /*c*/)<=UNTAG_Char( TAG_Char('9')));
+        }
+        variable11 = variable12;
+      }
+      variable10 = variable11;
+      if (UNTAG_Bool(variable10)) { /*if*/
+        ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  variable9 /*c*/) /*String::add*/;
+        variable5 =  TAG_Bool(false) /*underscore=*/;
+        variable6 =  TAG_Bool(true) /*normal=*/;
+      } else { /*if*/
+        variable10 = TAG_Bool(( variable9 /*c*/)==( TAG_Char('_')));
+        variable11 = variable10;
+        if (UNTAG_Bool(variable11)) { /* and */
+          variable11 =  TAG_Bool(!UNTAG_Bool( variable5 /*underscore*/));
+        }
+        variable10 = variable11;
+        if (UNTAG_Bool(variable10)) { /*if*/
+          ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  variable9 /*c*/) /*String::add*/;
+          variable5 =  TAG_Bool(true) /*underscore=*/;
+          variable6 =  TAG_Bool(true) /*normal=*/;
+        } else { /*if*/
+          variable10 = ((abstract_collection___CoupleMap___has_key_t)CALL( variable1 /*table*/,COLOR_abstract_collection___Map___has_key))( variable1 /*table*/,  variable9 /*c*/) /*HashMap::has_key*/;
+          if (UNTAG_Bool(variable10)) { /*if*/
+            if (UNTAG_Bool( variable6 /*normal*/)) { /*if*/
+              ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  TAG_Char('_')) /*String::add*/;
+              ((string___String___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/,  TAG_Char('_')) /*String::add*/;
+            }
+            variable10 = ((abstract_collection___CoupleMap_____bra_t)CALL( variable1 /*table*/,COLOR_abstract_collection___Map_____bra))( variable1 /*table*/,  variable9 /*c*/) /*HashMap::[]*/;
+            ((string___String___append_t)CALL( variable2 /*res*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*res*/, variable10) /*String::append*/;
+            variable6 =  TAG_Bool(false) /*normal=*/;
+            variable5 =  TAG_Bool(false) /*underscore=*/;
+          }
+        }
+      }
+      continue_3: while(0);
+      ((array___ArrayIterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*ArrayIterator::next*/;
+    }
+    break_3: while(0);
+    continue_2: while(0);
+    ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
+  }
+  break_2: while(0);
+  variable1 =  variable2 /*res*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t utils___Object___cmangle_table(val_t  self) {
+  struct trace_t trace = {NULL, "utils::Object::cmangle_table (src/utils.nit:58,1--74:11)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable1 = NEW_hash___HashMap___init(); /*new HashMap[Char, String]*/
+  variable0 = variable1;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("plus"), TAG_Int(4)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('+'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("minus"), TAG_Int(5)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('-'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("star"), TAG_Int(4)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('*'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("slash"), TAG_Int(5)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('/'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("percent"), TAG_Int(7)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('%'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("bra"), TAG_Int(3)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('['), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("eq"), TAG_Int(2)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('='), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("l"), TAG_Int(1)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('<'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("g"), TAG_Int(1)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('>'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("n"), TAG_Int(1)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('!'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("u"), TAG_Int(1)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('_'), variable1) /*HashMap::[]=*/;
+  variable1 = NEW_string___String___with_native(BOX_NativeString("at"), TAG_Int(2)); /*new String*/
+  ((hash___HashMap_____braeq_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*res*/,  TAG_Char('@'), variable1) /*HashMap::[]=*/;
+  variable0 =  variable0 /*res*/;
+  goto return_label4;
+  return_label4: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
diff --git a/c_src/utils._sep.h b/c_src/utils._sep.h
new file mode 100644 (file)
index 0000000..667fd57
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef utils__sep
+#define utils__sep
+#include "standard._sep.h"
+#include <nit_common.h>
+extern const int SFT_utils[];
+#define COLOR_utils___Object___cmangle SFT_utils[0]
+#define COLOR_utils___Object___cmangle_table SFT_utils[1]
+typedef val_t (* utils___Object___cmangle_t)(val_t  self, val_t  param0);
+val_t utils___Object___cmangle(val_t  self, val_t  param0);
+typedef val_t (* utils___Object___cmangle_table_t)(val_t  self);
+val_t utils___Object___cmangle_table(val_t  self);
+#endif
diff --git a/c_src/vararg._sep.c b/c_src/vararg._sep.c
new file mode 100644 (file)
index 0000000..cfde9ba
--- /dev/null
@@ -0,0 +1,60 @@
+#include "vararg._sep.h"
+val_t vararg___MMSignature___vararg_rank(val_t  self) {
+  struct trace_t trace = {NULL, "vararg::MMSignature::vararg_rank (src/metamodel//vararg.nit:24,2--25:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_vararg___MMSignature____vararg_rank( self) /*MMSignature::_vararg_rank*/;
+}
+void vararg___MMSignature___vararg_rank__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "vararg::MMSignature::vararg_rank= (src/metamodel//vararg.nit:24,2--25:41)"};
+  trace.prev = tracehead; tracehead = &trace;
+  ATTR_vararg___MMSignature____vararg_rank( self) /*MMSignature::_vararg_rank*/ =  param0;
+  tracehead = trace.prev;
+  return;
+}
+val_t vararg___MMSignature___has_vararg(val_t  self) {
+  struct trace_t trace = {NULL, "vararg::MMSignature::has_vararg (src/metamodel//vararg.nit:27,2--30:26)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ATTR_vararg___MMSignature____vararg_rank( self) /*MMSignature::_vararg_rank*/;
+  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int( TAG_Int(0)));
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t vararg___MMSignature___adaptation_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "vararg::MMSignature::adaptation_to (src/metamodel//vararg.nit:33,2--37:10)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((vararg___MMSignature___adaptation_to_t)CALL( self,COLOR_SUPER_vararg___MMSignature___adaptation_to))( self,  variable0 /*r*/) /*super MMSignature::adaptation_to*/;
+  variable1 = variable2;
+  variable2 = ATTR_vararg___MMSignature____vararg_rank( self) /*MMSignature::_vararg_rank*/;
+  ((vararg___MMSignature___vararg_rank__eq_t)CALL( variable1 /*s*/,COLOR_vararg___MMSignature___vararg_rank__eq))( variable1 /*s*/, variable2) /*MMSignature::vararg_rank=*/;
+  variable1 =  variable1 /*s*/;
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void vararg___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
+  struct trace_t trace = {NULL, "vararg::MMSignature::init (src/metamodel//vararg.nit:40,2--43:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  val_t variable3;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  variable2 =  param2;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i]) return;
+  ((vararg___MMSignature___init_t)CALL( self,COLOR_SUPER_vararg___MMSignature___init))( self,  param0,  param1,  param2, init_table) /*super MMSignature::init*/;
+  variable3 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
+  ATTR_vararg___MMSignature____vararg_rank( self) /*MMSignature::_vararg_rank*/ = variable3;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/vararg._sep.h b/c_src/vararg._sep.h
new file mode 100644 (file)
index 0000000..0974cdd
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef vararg__sep
+#define vararg__sep
+#include "genericity._sep.h"
+#include <nit_common.h>
+extern const int SFT_vararg[];
+#define COLOR_vararg___MMSignature____vararg_rank SFT_vararg[0]
+#define COLOR_vararg___MMSignature___vararg_rank SFT_vararg[1]
+#define COLOR_vararg___MMSignature___vararg_rank__eq SFT_vararg[2]
+#define COLOR_vararg___MMSignature___has_vararg SFT_vararg[3]
+#define COLOR_SUPER_vararg___MMSignature___adaptation_to SFT_vararg[4]
+#define COLOR_SUPER_vararg___MMSignature___init SFT_vararg[5]
+#define ATTR_vararg___MMSignature____vararg_rank(recv) ATTR(recv, COLOR_vararg___MMSignature____vararg_rank)
+typedef val_t (* vararg___MMSignature___vararg_rank_t)(val_t  self);
+val_t vararg___MMSignature___vararg_rank(val_t  self);
+typedef void (* vararg___MMSignature___vararg_rank__eq_t)(val_t  self, val_t  param0);
+void vararg___MMSignature___vararg_rank__eq(val_t  self, val_t  param0);
+typedef val_t (* vararg___MMSignature___has_vararg_t)(val_t  self);
+val_t vararg___MMSignature___has_vararg(val_t  self);
+typedef val_t (* vararg___MMSignature___adaptation_to_t)(val_t  self, val_t  param0);
+val_t vararg___MMSignature___adaptation_to(val_t  self, val_t  param0);
+typedef void (* vararg___MMSignature___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+void vararg___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
+val_t NEW_vararg___MMSignature___init(val_t  param0, val_t  param1, val_t  param2);
+#endif
diff --git a/c_src/virtualtype._sep.c b/c_src/virtualtype._sep.c
new file mode 100644 (file)
index 0000000..836e566
--- /dev/null
@@ -0,0 +1,179 @@
+#include "virtualtype._sep.h"
+val_t virtualtype___MMGlobalProperty___is_virtual_type(val_t  self) {
+  struct trace_t trace = {NULL, "virtualtype::MMGlobalProperty::is_virtual_type (src/metamodel//virtualtype.nit:24,2--25:62)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
+  variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
+  goto return_label0;
+  return_label0: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t virtualtype___MMTypeProperty___inherit_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "virtualtype::MMTypeProperty::inherit_to (src/metamodel//virtualtype.nit:31,2--33:35)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = NEW_virtualtype___MMImplicitType___init( self,  variable0 /*t*/); /*new MMImplicitType*/
+  goto return_label1;
+  return_label1: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t virtualtype___MMTypeProperty___stype(val_t  self) {
+  struct trace_t trace = {NULL, "virtualtype::MMTypeProperty::stype (src/metamodel//virtualtype.nit:39,2--50:10)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((static_type___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMTypeProperty::signature*/;
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*MMSignature::==*/)))));
+  if (UNTAG_Bool(variable0)) { /*if*/
+    variable0 =  NIT_NULL /*null*/;
+    goto return_label2;
+  }
+  variable1 = ATTR_virtualtype___MMTypeProperty____stype_cache( self) /*MMTypeProperty::_stype_cache*/;
+  variable0 = variable1;
+  variable1 = TAG_Bool(( variable0 /*r*/ ==  NIT_NULL /*null*/) || (( variable0 /*r*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*r*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*r*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*r*/,COLOR_kernel___Object_____eqeq))( variable0 /*r*/,  NIT_NULL /*null*/) /*MMVirtualType::==*/)))));
+  if (UNTAG_Bool(variable1)) { /*if*/
+    variable1 = NEW_virtualtype___MMVirtualType___init( self); /*new MMVirtualType*/
+    variable0 = variable1 /*r=*/;
+    ATTR_virtualtype___MMTypeProperty____stype_cache( self) /*MMTypeProperty::_stype_cache*/ =  variable0 /*r*/;
+  }
+  variable0 =  variable0 /*r*/;
+  goto return_label2;
+  return_label2: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t virtualtype___MMType___select_virtual_type(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "virtualtype::MMType::select_virtual_type (src/metamodel//virtualtype.nit:55,2--62:12)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 ==  NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  NIT_NULL /*null*/) /*MMLocalClass::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//virtualtype.nit:58,3--28\n"); nit_exit(1);}
+  variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*name*/ ==  NIT_NULL /*null*/) || (( variable0 /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))( variable0 /*name*/,  NIT_NULL /*null*/) /*Symbol::==*/)))))));
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: src/metamodel//virtualtype.nit:59,3--21\n"); nit_exit(1);}
+  variable2 = ((static_type___MMType___local_class_t)CALL( self,COLOR_static_type___MMType___local_class))( self) /*MMType::local_class*/;
+  variable2 = ((virtualtype___MMLocalClass___virtual_type_t)CALL(variable2,COLOR_virtualtype___MMLocalClass___virtual_type))(variable2,  variable0 /*name*/) /*MMLocalClass::virtual_type*/;
+  variable2 = ((static_type___MMType___select_property_t)CALL( self,COLOR_static_type___MMType___select_property))( self, variable2) /*MMType::select_property*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*res*/==NIT_NULL) || VAL_ISA( variable1 /*res*/, COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//virtualtype.nit:61,3--31\n"); nit_exit(1);}
+  variable1 =  variable1 /*res*/;
+  goto return_label3;
+  return_label3: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t virtualtype___MMVirtualType___property(val_t  self) {
+  struct trace_t trace = {NULL, "virtualtype::MMVirtualType::property (src/metamodel//virtualtype.nit:68,2--69:40)"};
+  trace.prev = tracehead; tracehead = &trace;
+  tracehead = trace.prev;
+  return ATTR_virtualtype___MMVirtualType____property( self) /*MMVirtualType::_property*/;
+}
+void virtualtype___MMVirtualType___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, "virtualtype::MMVirtualType::init (src/metamodel//virtualtype.nit:71,2--74:15)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMVirtualType].i]) return;
+  variable1 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable0 /*p*/) /*MMTypeProperty::name*/;
+  variable2 = ((static_type___MMLocalProperty___signature_t)CALL( variable0 /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable0 /*p*/) /*MMTypeProperty::signature*/;
+  variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
+  ((type_formal___MMTypeFormal___init_t)CALL( self,COLOR_type_formal___MMTypeFormal___init))( self, variable1, variable2, init_table /*YYY*/) /*MMTypeFormal::init*/;
+  ATTR_virtualtype___MMVirtualType____property( self) /*MMVirtualType::_property*/ =  variable0 /*p*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMVirtualType].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
+val_t virtualtype___MMVirtualType___for_module(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "virtualtype::MMVirtualType::for_module (src/metamodel//virtualtype.nit:77,2--80:22)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_virtualtype___MMVirtualType____property( self) /*MMVirtualType::_property*/;
+  variable2 = ((static_type___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMTypeProperty::signature*/;
+  variable2 = ((static_type___MMSignature___recv_t)CALL(variable2,COLOR_static_type___MMSignature___recv))(variable2) /*MMSignature::recv*/;
+  variable2 = ((static_type___MMType___for_module_t)CALL(variable2,COLOR_static_type___MMType___for_module))(variable2,  variable0 /*mod*/) /*MMType::for_module*/;
+  variable1 = variable2;
+  variable2 = ((virtualtype___MMVirtualType___adapt_to_t)CALL( self,COLOR_static_type___MMType___adapt_to))( self,  variable1 /*recv*/) /*MMVirtualType::adapt_to*/;
+  variable1 = variable2;
+  goto return_label5;
+  return_label5: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t virtualtype___MMVirtualType___not_for_self(val_t  self) {
+  struct trace_t trace = {NULL, "virtualtype::MMVirtualType::not_for_self (src/metamodel//virtualtype.nit:83,2--85:27)"};
+  val_t variable0;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 = ((type_formal___MMTypeFormal___bound_t)CALL( self,COLOR_type_formal___MMTypeFormal___bound))( self) /*MMVirtualType::bound*/;
+  variable0 = ((static_type___MMType___not_for_self_t)CALL(variable0,COLOR_static_type___MMType___not_for_self))(variable0) /*MMType::not_for_self*/;
+  goto return_label6;
+  return_label6: while(false);
+  tracehead = trace.prev;
+  return variable0;
+}
+val_t virtualtype___MMVirtualType___adapt_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "virtualtype::MMVirtualType::adapt_to (src/metamodel//virtualtype.nit:88,2--93:19)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ATTR_virtualtype___MMVirtualType____property( self) /*MMVirtualType::_property*/;
+  variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMTypeProperty::global*/;
+  variable2 = ((static_type___MMType___select_property_t)CALL( variable0 /*recv*/,COLOR_static_type___MMType___select_property))( variable0 /*recv*/, variable2) /*MMType::select_property*/;
+  variable1 = variable2;
+  variable2 = TAG_Bool(( variable1 /*prop*/==NIT_NULL) || VAL_ISA( variable1 /*prop*/, COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert failed: src/metamodel//virtualtype.nit:92,3--32\n"); nit_exit(1);}
+  variable2 = ((virtualtype___MMTypeProperty___stype_t)CALL( variable1 /*prop*/,COLOR_virtualtype___MMTypeProperty___stype))( variable1 /*prop*/) /*MMTypeProperty::stype*/;
+  variable1 = variable2;
+  goto return_label7;
+  return_label7: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+val_t virtualtype___MMLocalClass___virtual_type(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, "virtualtype::MMLocalClass::virtual_type (src/metamodel//virtualtype.nit:98,2--104:13)"};
+  val_t variable0;
+  val_t variable1;
+  val_t variable2;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable2 = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))( self,  variable0 /*s*/) /*MMLocalClass::get_property_by_name*/;
+  variable1 = variable2;
+  variable2 = ((virtualtype___MMGlobalProperty___is_virtual_type_t)CALL( variable1 /*prop*/,COLOR_virtualtype___MMGlobalProperty___is_virtual_type))( variable1 /*prop*/) /*MMGlobalProperty::is_virtual_type*/;
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable1 =  variable1 /*prop*/;
+    goto return_label8;
+  }
+  variable1 =  NIT_NULL /*null*/;
+  goto return_label8;
+  return_label8: while(false);
+  tracehead = trace.prev;
+  return variable1;
+}
+void virtualtype___MMImplicitType___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
+  struct trace_t trace = {NULL, "virtualtype::MMImplicitType::init (src/metamodel//virtualtype.nit:111,2--20)"};
+  val_t variable0;
+  val_t variable1;
+  trace.prev = tracehead; tracehead = &trace;
+  variable0 =  param0;
+  variable1 =  param1;
+  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitType].i]) return;
+  ((inheritance___MMImplicitProperty___init_t)CALL( self,COLOR_inheritance___MMImplicitProperty___init))( self,  param0,  param1, init_table /*YYY*/) /*MMImplicitProperty::init*/;
+  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMImplicitType].i] = 1;
+  tracehead = trace.prev;
+  return;
+}
diff --git a/c_src/virtualtype._sep.h b/c_src/virtualtype._sep.h
new file mode 100644 (file)
index 0000000..014deee
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef virtualtype__sep
+#define virtualtype__sep
+#include "type_formal._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_MMTypeProperty[];
+
+extern const classtable_elt_t VFT_MMVirtualType[];
+
+extern const classtable_elt_t VFT_MMImplicitType[];
+extern const int SFT_virtualtype[];
+#define COLOR_virtualtype___MMGlobalProperty___is_virtual_type SFT_virtualtype[0]
+#define ID_MMTypeProperty SFT_virtualtype[1]
+#define COLOR_MMTypeProperty SFT_virtualtype[2]
+#define COLOR_virtualtype___MMTypeProperty____stype_cache SFT_virtualtype[3]
+#define INIT_TABLE_POS_MMTypeProperty SFT_virtualtype[4]
+#define COLOR_virtualtype___MMTypeProperty___stype SFT_virtualtype[5]
+#define COLOR_virtualtype___MMType___select_virtual_type SFT_virtualtype[6]
+#define ID_MMVirtualType SFT_virtualtype[7]
+#define COLOR_MMVirtualType SFT_virtualtype[8]
+#define COLOR_virtualtype___MMVirtualType____property SFT_virtualtype[9]
+#define INIT_TABLE_POS_MMVirtualType SFT_virtualtype[10]
+#define COLOR_virtualtype___MMVirtualType___property SFT_virtualtype[11]
+#define COLOR_virtualtype___MMVirtualType___init SFT_virtualtype[12]
+#define COLOR_virtualtype___MMLocalClass___virtual_type SFT_virtualtype[13]
+#define ID_MMImplicitType SFT_virtualtype[14]
+#define COLOR_MMImplicitType SFT_virtualtype[15]
+#define INIT_TABLE_POS_MMImplicitType SFT_virtualtype[16]
+#define COLOR_virtualtype___MMImplicitType___init SFT_virtualtype[17]
+typedef val_t (* virtualtype___MMGlobalProperty___is_virtual_type_t)(val_t  self);
+val_t virtualtype___MMGlobalProperty___is_virtual_type(val_t  self);
+typedef val_t (* virtualtype___MMTypeProperty___inherit_to_t)(val_t  self, val_t  param0);
+val_t virtualtype___MMTypeProperty___inherit_to(val_t  self, val_t  param0);
+#define ATTR_virtualtype___MMTypeProperty____stype_cache(recv) ATTR(recv, COLOR_virtualtype___MMTypeProperty____stype_cache)
+typedef val_t (* virtualtype___MMTypeProperty___stype_t)(val_t  self);
+val_t virtualtype___MMTypeProperty___stype(val_t  self);
+typedef val_t (* virtualtype___MMType___select_virtual_type_t)(val_t  self, val_t  param0);
+val_t virtualtype___MMType___select_virtual_type(val_t  self, val_t  param0);
+#define ATTR_virtualtype___MMVirtualType____property(recv) ATTR(recv, COLOR_virtualtype___MMVirtualType____property)
+typedef val_t (* virtualtype___MMVirtualType___property_t)(val_t  self);
+val_t virtualtype___MMVirtualType___property(val_t  self);
+typedef void (* virtualtype___MMVirtualType___init_t)(val_t  self, val_t  param0, int* init_table);
+void virtualtype___MMVirtualType___init(val_t  self, val_t  param0, int* init_table);
+val_t NEW_virtualtype___MMVirtualType___init(val_t  param0);
+typedef val_t (* virtualtype___MMVirtualType___for_module_t)(val_t  self, val_t  param0);
+val_t virtualtype___MMVirtualType___for_module(val_t  self, val_t  param0);
+typedef val_t (* virtualtype___MMVirtualType___not_for_self_t)(val_t  self);
+val_t virtualtype___MMVirtualType___not_for_self(val_t  self);
+typedef val_t (* virtualtype___MMVirtualType___adapt_to_t)(val_t  self, val_t  param0);
+val_t virtualtype___MMVirtualType___adapt_to(val_t  self, val_t  param0);
+typedef val_t (* virtualtype___MMLocalClass___virtual_type_t)(val_t  self, val_t  param0);
+val_t virtualtype___MMLocalClass___virtual_type(val_t  self, val_t  param0);
+typedef void (* virtualtype___MMImplicitType___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
+void virtualtype___MMImplicitType___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
+val_t NEW_virtualtype___MMImplicitType___init(val_t  param0, val_t  param1);
+#endif
diff --git a/examples/fibonacci.nit b/examples/fibonacci.nit
new file mode 100644 (file)
index 0000000..0df0209
--- /dev/null
@@ -0,0 +1,43 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A simple exemple of refinement where a method is added to the integer class.
+package fibonacci
+
+redef class Int
+       # Calculate the self-th element of the fibonacci sequence.
+       meth fibonacci: Int
+       do
+               if self < 2 then
+                       return 1
+               else
+                       return (self-2).fibonacci + (self-1).fibonacci
+               end
+       end 
+end
+
+# Print usage and exit.
+meth usage
+do
+       print "Usage: fibonnaci <integer>" 
+       exit 0 
+end
+
+# Main part
+if args.length != 1 then
+       usage
+end
+print args.first.to_i.fibonacci
diff --git a/examples/hello_world.nit b/examples/hello_world.nit
new file mode 100644 (file)
index 0000000..da6849a
--- /dev/null
@@ -0,0 +1 @@
+print "hello world"
diff --git a/examples/print_arguments.nit b/examples/print_arguments.nit
new file mode 100644 (file)
index 0000000..01e6cdc
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# How to print arguments of the command line.
+package print_arguments
+
+for a in args do
+       print a
+end
diff --git a/examples/procedural_array.nit b/examples/procedural_array.nit
new file mode 100644 (file)
index 0000000..6d31fc2
--- /dev/null
@@ -0,0 +1,48 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A procedural program (without explicit class definition).
+# This program manipulates arrays of integers.
+package procedural_array
+
+# The sum of the elements of `a'.
+# Uses a 'for' control structure.
+meth array_sum(a: Array[Int]): Int
+do
+       var sum = 0
+       for i in a do
+               sum = sum + i
+       end
+       return sum
+end
+
+# The sum of the elements of `a' (alternative version).
+# Uses a 'while' control structure.
+meth array_sum_alt(a: Array[Int]): Int
+do
+       var sum = 0
+       var i = 0
+       while i < a.length do
+               sum = sum + a[i]
+               i = i + 1
+       end
+       return sum
+end
+
+# The main part of the program.
+var a = [10, 5, 8, 9]
+print(array_sum(a))
+print(array_sum_alt(a))
diff --git a/examples/various/glob.nit b/examples/various/glob.nit
new file mode 100644 (file)
index 0000000..c2dd62b
--- /dev/null
@@ -0,0 +1,359 @@
+# This file is part of Nit Language ( http://nitlanguage.org ).
+#
+# Copyright 2008 Etienne M. Gagnon <egagnon@j-meg.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+package glob
+
+{ A glob is a string pattern where:
+   "*" is 0 or more character except "/" (cannot be adjacent to another "*")
+   "**/" is 0 or more directory levels (must be preceded by "/" or the start)
+   "?" : any character except "/"
+
+Examples:
+
+   "**/*.prm" => any *.prm file in current directory or below
+   "/**/*.nit" => any *.nit file in the entire file system
+   "src/**/*.bak" => any *.bak file in the src subdirectory
+   "a**/" => invalid glob (instead, you might want to write "a*/**/")
+   "a?*/" => any direct subdirectory that starts with an "a",
+             and is at least 2 characters long
+
+Usage
+
+  printn("toto".match_glob("t*o")) # prints => true
+}#
+
+class Glob
+
+  # class that encapsulates a glob pattern
+
+  var _chars = new Array[GlobChar]
+
+    # the glob-chars of the pattern
+
+  var _string : String
+    delegate to_s
+
+    # cached string representation
+
+  init(pattern: String)
+    with error(message: String)
+      is final
+
+    # contructor that expects the glob is a string
+
+    # calls error when the glob string is invalid
+
+  do
+    _string = string
+
+    if not pattern.valid_glob then
+      error("invalid glob pattern")
+    end
+
+    var star_seen = false
+    for c in pattern.chars do
+      if star_seen then
+        if c == '*' then
+          _chars.add(dstar)
+        else
+          _chars.add('*')
+          _chars.add(c)
+        end
+
+        star_seen = false
+
+      else if c == '*' then
+        star_seen = true
+
+      else
+        _chars.add(c)
+      end
+    end
+  end
+
+  fun match(string: String): boolean
+  do
+    var pat_pos = new GlobPosition(_chars)
+    var str_pos = new StringPosition(string.chars)
+
+    pat_pos.match(str_pos)
+    on success do return true
+
+    return false
+  end
+end
+
+redef String
+
+  fun match_glob(pattern: String): Bool
+    with error(message: String)
+      is final
+
+    # returns true if self matches the given glob pattern
+
+    # calls error when the glob pattern is invalid
+
+  do
+    var pat = new Glob(pattern)
+    on error(message) do error(message)
+
+    return pat.match(self)
+  end
+
+  fun valid_glob: Bool
+    is private
+
+    # returns true if self is a valid glob
+
+  do
+    var state = state0
+
+    for c in chars do
+      state = state.target(c.to_symbol)
+      if state == null then return false
+    end
+
+    return state.accept
+  end
+end
+
+redef Char
+  special GlobChar
+
+  # Char has a new super class
+
+  fun to_symbol: Symbol
+    is private
+
+    # converts self into a Symbol
+
+  do
+    if self == '/' then return slash
+    if self == '*' then return star
+    if self == '?' then return qmark
+    return other
+  end
+end
+
+class GlobChar
+  is private
+  is universal
+
+  # super class of Char, which has an additional constant for '**'
+
+  const dstar
+
+    # the constant for '**'
+
+end
+
+class Position
+  is private
+
+  # class that encapsulate a position
+
+  var _pos: Int = 0
+
+  fun next do _pos += 1
+  fun prev do _pos -= 1
+end
+
+class GlobPosition
+  special Position
+  is private
+
+  # class that encapsulate a position in a pattern
+
+  var _chars: Array[GlobChar]
+end
+
+class StringPosition
+  special Position
+  is private
+
+  # class that encapsulate a position in a string
+
+  var _chars: Array[Char]
+
+  fun match(pattern: GlobPosition)
+    with success
+      is final
+
+    # match the rest of this string with the rest of the given pattern
+
+    # calls success when there is a match
+
+    # the implemented algorithm does a recursive exhaustive search
+    # until a match is found.
+
+  do
+    if _pos == _chars.len then
+      # end of string
+
+      if pattern._pos == pattern._chars.len then success
+
+      # not end of pattern
+
+      var pc = pattern._chars[pattern._pos]
+      if pc == '*' or pc == dstar or pc == '/' then
+        pattern.next
+        match(pattern)
+        pattern.prev
+      end
+
+    else if pattern._pos != pattern._chars.len then
+      # not end of pattern
+
+      var sc = _chars[_pos]
+      var pc = pattern._chars[pattern._pos]
+      if pc == dstar then
+        if sc == '/' then
+          pattern.next
+          match(pattern)
+          pattern.prev
+        else
+          next
+          match(pattern)
+          prev
+        end
+
+      else if pc == '*' then
+        pattern.next
+        match(pattern)
+        pattern.prev
+        next
+        match(pattern)
+        prev
+
+      else if pc == '?' or sc == pc then
+        pattern.next
+        next
+        match(pattern)
+        prev
+        pattern.prev
+      end
+    end
+  end
+end
+
+#
+# Automaton for Glob validation
+#
+
+class State
+  is private
+  is universal
+
+  # automaton state class
+
+  const state0, state1, state2, state3, state4, state5, state6
+
+    # states of the automaton
+
+  fun target(symbol: Symbol): nullable State
+
+    # returns the target state, given a symbol
+
+  case state0 do return symbol.state0_target
+  case state1 do return symbol.state1_target
+  case state2 do return symbol.state2_target
+  case state3 do return symbol.state3_target
+  case state4 do return symbol.state4_target
+  case state5 do return symbol.state5_target
+  case state6 do return symbol.state6_target
+  default do abort
+
+  fun accept: Bool
+
+    # returns true if self is an accept state
+
+  case state5 do return false
+  default do return true
+end
+
+class Symbol
+  is private
+  is universal
+
+  # automaton symbol class
+
+  const slash, star, qmark, other
+
+  fun state0_target: nullable State
+
+    # returns the target of state0 (start)
+
+  case slash do return state1
+  case star do return state2
+  case qmark do return state3
+  case other do return state4
+  default do return null
+
+  fun state1_target: nullable State
+
+    # returns the target of state1 (".../")
+
+  case star do return state2
+  case qmark do return state3
+  case other do return state4
+  default do return null
+
+  fun state2_target: nullable State
+
+    # returns the target of state2 (".../*")
+
+  case slash do return state1
+  case star do return state5
+  case qmark do return state3
+  case other do return state4
+  default do return null
+
+  fun state3_target: nullable State
+
+    # returns the target of state3 ("...?")
+
+  case slash do return state1
+  case star do return state6
+  case qmark do return state3
+  case other do return state4
+  default do return null
+
+  fun state4_target: nullable State
+
+    # returns the target of state4 ("...o")
+
+  case slash do return state1
+  case star do return state6
+  case qmark do return state3
+  case other do return state4
+  default do return null
+
+  fun state5_target: nullable State
+
+    # returns the target of state5 (".../**")
+
+  case slash do return state1
+  default do return null
+
+  fun state6_target: nullable State
+
+    # returns the target of state6 ("...o*" or "...?*")
+
+  case slash do return state1
+  case qmark do return state3
+  case other do return state4
+  default do return null
+end
diff --git a/lib/dummy_array.nit b/lib/dummy_array.nit
new file mode 100644 (file)
index 0000000..adecf04
--- /dev/null
@@ -0,0 +1,110 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+class DummyArray
+special Set[Int]
+special ArrayCapable[Int]
+       attr _capacity: Int 
+       redef readable attr _length: Int 
+       attr _keys: NativeArray[Int]
+       attr _values: NativeArray[Int]
+
+       redef meth add(value: Int)
+       do
+               assert full: _length < (_capacity-1)
+               var l = _length
+               _values[l] = value
+               _keys[value] = l
+               _length = l + 1
+       end
+
+       redef meth remove(value: Int)
+       do
+               assert not is_empty
+               var l = _length
+               if l > 1 then
+                       var last = _values[l - 1]
+                       var pos = _keys[value]
+                       _keys[last] = pos
+                       _values[pos] = last
+               end
+               _length = l - 1
+       end
+
+       redef meth has(value: Int): Bool
+       do
+               assert value < _capacity
+               var pos = _keys[value]
+               if pos < _length then
+                       return _values[pos] == value
+               end
+               return false
+       end
+
+       redef meth first: Int
+       do
+               assert _length > 0
+               return _values[0]
+       end
+
+       redef meth is_empty: Bool
+       do
+               return not (_length > 0)
+       end
+
+       redef meth clear
+       do
+               _length = 0
+       end
+
+       redef meth iterator: DummyIterator
+       do
+               return new DummyIterator(self)
+       end
+
+       private meth value_at(pos: Int): Int
+       do
+               return _values[pos]
+       end
+
+       init(capacity: Int)
+       do
+               _capacity = capacity
+               _keys = calloc_array(capacity)
+               _values = calloc_array(capacity)
+       end
+end
+
+class DummyIterator
+special Iterator[Int]
+       attr _array: DummyArray
+       attr _pos: Int
+
+       redef meth item: Int
+       do
+               assert is_ok
+               return _array.value_at(_pos)
+       end
+
+       redef meth is_ok: Bool
+       do
+               return _pos < _array.length
+       end
+
+       redef meth next do _pos = _pos + 1 end
+
+       init(array: DummyArray)
+       do
+               _pos = 0
+               _array = array
+       end
+end
diff --git a/lib/filter_stream.nit b/lib/filter_stream.nit
new file mode 100644 (file)
index 0000000..52076c9
--- /dev/null
@@ -0,0 +1,138 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+class FilterIStream
+special IStream
+       # Filter readed elements
+       readable attr _stream: IStream 
+
+       redef meth eof: Bool
+       do
+               assert stream != null
+               return stream.eof
+       end
+
+       private meth stream=(i: IStream)
+       do
+               _stream = i
+       end
+end
+
+class FilterOStream
+special OStream
+       # Filter outputed elements
+       readable attr _stream: OStream 
+
+       # Can the stream be used to write
+       redef meth is_writable: Bool
+       do
+               assert stream != null
+               return stream.is_writable
+       end
+
+       private meth stream=(i: OStream)
+       do
+               _stream = i
+       end
+end
+
+class StreamCat
+special FilterIStream
+       attr _streams: Iterator[IStream]
+
+       redef meth eof: Bool
+       do
+               if stream == null then
+                       return true
+               else if stream.eof then
+                       stream.close
+                       stream = null
+                       return eof
+               else
+                       return false
+               end
+       end
+
+       redef meth stream: IStream
+       do
+               if _stream == null and _streams.is_ok then
+                       stream = _streams.item
+                       assert _stream != null
+                       _streams.next
+               end
+               return _stream
+       end
+
+       redef meth read_char: Int
+       do
+               assert not eof
+               return stream.read_char
+       end
+
+       redef meth close
+       do
+               while stream != null do
+                       stream.close
+                       stream = null
+               end
+       end
+
+       init with_streams(streams: Array[IStream])
+       do
+               _streams = streams.iterator
+       end
+       init(streams: IStream ...)
+       do
+               _streams = streams.iterator
+       end
+end
+
+class StreamDemux
+special FilterOStream
+       attr _streams: Array[OStream]
+
+       redef meth is_writable: Bool
+       do
+               if stream.is_writable then
+                       return true
+               else
+                       for i in _streams
+                       do
+                               if i.is_writable then
+                                       return true
+                               end
+                       end
+                       return false
+               end
+       end
+
+       redef meth write(s: String)
+       do
+               for i in _streams
+               do
+                       stream = i
+                       if stream.is_writable then
+                               stream.write(s)
+                       end
+               end
+       end
+
+       init with_streams(streams: Array[OStream])
+       do
+               _streams = streams
+       end
+
+       init(streams: OStream ...)
+       do
+               _streams = streams
+       end
+end
diff --git a/lib/game.nit b/lib/game.nit
new file mode 100644 (file)
index 0000000..929ba42
--- /dev/null
@@ -0,0 +1,203 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module contains some classes that help to develop games
+package game
+
+import sdl
+
+# This class helps to count events by unit of time.
+# For example, an FPS counter:
+#      var fps = new TickCounter
+#      while(true) do
+#              screen_draw
+#              if fps.update then
+#                      print(fps)
+#              end
+#      end
+class TickCounter
+       # Register a new tick
+       # Return true every time interval
+       meth update: Bool
+       do
+               return update_with(sdl_get_ticks)
+       end
+
+       # Like `update' but with an explicit time instead of `sdl_get_ticks`
+       meth update_with(time: Int): Bool
+       do
+               var f = _ticks + 1
+               var dt = time - _time
+               var ti = _time_interval
+               if dt < ti then
+                       _ticks = f
+                       return false
+               else if _time == 0 then
+                       _ticks = 0
+                       _time = time
+                       return false
+               else
+                       _count = ti * f / dt
+                       _ticks = 0
+                       _time = time
+                       return true
+               end
+       end
+
+       # The number of ticks in the last time interval
+       readable attr _count: Int 
+       
+       redef meth to_s: String
+       do
+               return _count.to_s
+       end
+
+       # A ticks counter
+       attr _ticks: Int
+
+       # Last update time
+       attr _time: Int
+
+       # The time interval
+       readable writable attr _time_interval: Int
+
+       # Create a new counter (time interval is 1000)
+       init
+       do
+               with_time(1000)
+       end
+       
+       # Create a new counter
+       init with_time(time_interval: Int)
+       do
+               _time_interval = time_interval
+       end
+end
+
+class Rectangle
+       meth left: Int is abstract
+       meth right: Int is abstract
+       meth top: Int is abstract
+       meth bottom: Int is abstract
+       meth width: Int is abstract
+       meth height: Int is abstract
+       
+       meth contain_pixel(x: Int, y: Int): Bool
+       # Is `self' contains the point (`x',`y') ?
+       do
+               return x >= left and
+                       x < right and
+                       y >= top and
+                       y < bottom
+       end
+
+       meth collide(o: Rectangle): Bool
+       do
+               var s_l = left
+               var s_r = right
+               var s_t = top
+               var s_b = bottom
+               var o_l = o.left
+               var o_r = o.right
+               var o_t = o.top
+               var o_b = o.bottom
+               return ((s_l <= o_l and o_l < s_r) or
+                       (s_l < o_r and o_r <= s_r) or
+                       (o_l <= s_l and s_l < o_r) or
+                       (o_l < s_r and s_r <= o_r)) and
+                       ((s_t <= o_t and o_t < s_b) or
+                       (s_t < o_b and o_b <= s_b) or
+                       (o_t <= s_t and s_t < o_b) or
+                       (o_t < s_b and s_b <= o_b))
+       end
+end
+
+# A sprite is a drawable element.
+# It is represented by a main pixel (x,y) and an image (image)
+class Sprite
+special Rectangle
+
+       # Absolute X coordinate of the main pixel in the screen
+       readable writable attr _x: Int
+
+       # Absolute Y coordinate of the main pixel in the screen
+       readable writable attr _y: Int
+
+       # Set two coordinates in one instruction
+       meth set_xy(x: Int, y: Int)
+       do
+               self.x = x
+               self.y = y
+       end
+
+       # The current image of the object
+       readable attr _image: SDL_Surface
+
+       # Relative X cordinate of the main pixel in the image
+       readable attr _x_image: Int
+
+       # Relative Y cordinate of the main pixel in the image
+       readable attr _y_image: Int
+       
+       # Set image and relative coordinates in one instruction
+       meth set_image(i: SDL_Surface, x: Int, y: Int)
+       do
+               _image = i
+               _x_image = x
+               _y_image = y
+       end
+       
+       # Set image centered on the main pixel (adjust x_image and y_image)
+       meth set_centered_image(i: SDL_Surface)
+       do
+               _image = i
+               _x_image = i.width / 2
+               _y_image = i.height / 2
+       end
+
+       redef meth left: Int
+       do
+               return _x - _x_image
+       end
+       
+       redef meth top: Int
+       do
+               return _y - _y_image
+       end
+
+       redef meth right: Int
+       do
+               return _x - _x_image + _image.width
+       end
+
+       redef meth bottom: Int
+       do
+               return _y - _y_image + _image.height
+       end
+
+       redef meth width: Int
+       do
+               return _image.width
+       end
+
+       redef meth height: Int
+       do
+               return _image.height
+       end
+       
+       # Draw the image on the surface
+       meth blit_on(s: SDL_Surface)
+       do
+               _image.blit_on_xy(s, _x - _x_image, _y - _y_image)
+       end
+end
+
diff --git a/lib/nit_common.h b/lib/nit_common.h
new file mode 100644 (file)
index 0000000..8960af8
--- /dev/null
@@ -0,0 +1,117 @@
+#ifndef NIT_COMMON_H
+#define NIT_COMMON_H
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/* *** Types *** */
+typedef int (*fun_t)(int);                                     /* generic function pointer */
+typedef unsigned int cid_t;                                    /* class identifier */
+typedef unsigned long int val_t;       /* value (everything is a val_t) */
+typedef union obj_tu {union classtable_elt_tu * vft; val_t attr;} *obj_t; /* standard object */
+typedef union classtable_elt_tu { int i; fun_t f; cid_t cid;} classtable_elt_t;        /* classtable element */
+
+typedef classtable_elt_t * classtable_t;                       /* classtable */
+
+/*****************************************************************************
+ * Types macros (primitive and less primitives) ******************************
+ *****************************************************************************
+ *
+ * ** types are: **
+ * 
+ * OBJ (obj_t) : standard object representation (including boxes + NIL)
+ * Int (int)   : integers
+ * Char        (car)   : characters
+ * Bool        (int)   : booleans (true or false)
+ * 
+ * X   (x_t)   : generic representatio of the previous four types
+ *
+ * ** macros are: **
+ *
+ * int ISX(val_t v)            : true if v is a X
+ * x_t VAL2X(val_t v)          : convert a val_t to a primitive type (you should check ISX before)
+ * val_t X2VAL(x_t x)          : convert a type to a val_t
+ * int XTAG                    : numeric identifier of a type
+ * int TAG(val_t v)            : return the XTAG (ie TAG(Char2VAL('e')) == CharTag)
+ * 
+ * classtable_t VAL2VFT(val_t v): the virtual function table of a value
+ *
+ * val_t NIT_NULL              : the instance of the None class
+ *****************************************************************************/
+
+#define TAG(x) ((int)(x) & 3)
+#ifndef IntTAG 
+#      define IntTAG 1
+#endif
+#define TAG_Int(x) ((val_t)(((x)<<2)|IntTAG))
+#define UNTAG_Int(x) ((int)(x)>>2)
+#ifndef CharTAG
+#      define CharTAG 2
+#endif
+#define TAG_Char(x) ((val_t)((((int)(x))<<2)|CharTAG))
+#define UNTAG_Char(x) ((char)((int)(x)>>2))
+#ifndef BoolTAG
+#      define BoolTAG 3
+#endif
+#define TAG_Bool(x) ((val_t)(((x)<<2)|BoolTAG))
+#define UNTAG_Bool(x) ((int)(x)>>2)
+#ifndef OBJTAG
+#      define OBJTAG 0
+#endif
+       
+#define ISOBJ(x) (TAG((x)) == OBJTAG)
+#define VAL2OBJ(x) ((obj_t)(x))
+#define OBJ2VAL(o) ((val_t)(o))
+#define VAL2VFT(x) (ISOBJ(x) ? VAL2OBJ(x)->vft : TAG2VFT[TAG(x)])
+/*#define VAL2CID(x) (ISOBJ(x) ? (VAL2OBJ(x)->vft->cid) : (-TAG(x)))*/
+#define VAL2CID(x) (VAL2OBJ(x)->vft->cid)
+
+#define NIT_NULL ((val_t)0)
+#define ISNULL(x) ((x)==NIT_NULL)
+
+/* Equal comparaison */
+/* O = Non nil object ; N = Object or nil ; P = Primitive */
+#define OBJ_IS_BOX(x) ((VAL2OBJ(x)->vft->i) < 0)
+#define IS_BOX(x) (ISOBJ(x) && OBJ_IS_BOX(x))
+#define IS_EQUAL_BOX(x, y) (ISOBJ(y) && (VAL2OBJ(x)[1].vft==VAL2OBJ(y)[1].vft) && (VAL2OBJ(x)->vft==VAL2OBJ(y)->vft))
+#define IS_EQUAL_OO(x, y) ((x)==(y) || (IS_BOX(x) && IS_EQUAL_BOX((x), (y))))
+#define IS_EQUAL_ON(x, y) ((x)==(y) || (IS_BOX(x) && !ISNULL(y) && IS_EQUAL_BOX((x), (y))))
+#define IS_EQUAL_NN(x, y) ((x)==(y) || (!ISNULL(x) && IS_BOX(x) && !ISNULL(y) && IS_EQUAL_BOX((x), (y))))
+
+/* Subclass comparaison */
+/* check is e is a subtype of c2 */
+/* Warning, only subclasse comparaison is performed, not subtype */
+/* e is a val (not nil) */
+/* c a class name (eg: Int) */
+#define VALISA(e, c) (VAL2VFT(e)[COLOR_ ## c].cid == (cid_t) ID_ ## c)
+#define OBJISA(e, c) (VAL2OBJ(e)->vft[COLOR_ ## c].cid == (cid_t) ID_ ## c)
+
+#define VAL_ISA(e, c, i) (VAL2VFT((e))[(c)].cid == (cid_t)(i))
+
+void * alloc(size_t);
+extern val_t G_args;
+extern val_t G_stdin;
+extern val_t G_stdout;
+extern val_t G_stderr;
+extern val_t G_sys;
+
+extern int glob_argc;
+extern char ** glob_argv;
+
+struct trace_t {
+       struct trace_t *prev;
+       const char *text;
+};
+extern struct trace_t *tracehead;
+typedef enum {true = (1==1),false = (0==1)} bool;
+
+void nit_exit(int);
+
+#define CALL(r,c) ((VAL2VFT(r)[c].f))
+#define ATTR(r,c) (*(val_t*)(VAL2OBJ(r)+c))
+#define ATTRS(r,c,o) ((VAL2OBJ(r)+VAL2VFT(r)[c].i)[o].attr)
+
+void prepare_signals(void);
+extern classtable_t TAG2VFT[4];
+#endif
diff --git a/lib/nit_main.c b/lib/nit_main.c
new file mode 100644 (file)
index 0000000..78df533
--- /dev/null
@@ -0,0 +1,47 @@
+#include "nit_common.h"
+#include <signal.h>
+#include <stdarg.h>
+
+void * alloc(size_t s0)
+{
+       static char * alloc_pos = NULL;
+       static size_t alloc_size = 0;
+       void * res;
+       size_t s = ((s0+3)/4)*4;
+       if(alloc_size < s) {
+               alloc_size = s + 1024*1024;
+               alloc_pos = (char *)calloc(alloc_size, 1);
+       }
+       res = alloc_pos;
+       alloc_size -= s;
+       alloc_pos += s;
+       return res;
+}
+
+int glob_argc;
+char **glob_argv;
+val_t G_sys;
+
+void exithandler(int s) {
+       fprintf(stderr, "Recieved signal %d\n", s);
+       nit_exit(1);
+}
+void prepare_signals(void) {
+       signal(SIGINT,exithandler);
+       signal(SIGABRT,exithandler);
+       signal(SIGSEGV,exithandler);
+       signal(SIGILL, exithandler);
+       signal(SIGFPE, exithandler);
+       signal(SIGTERM,exithandler);
+}
+struct trace_t *tracehead = NULL;
+void nit_exit(int i) {
+       fprintf(stderr, ",---- Stack trace -- - -  -\n");
+       while(tracehead != NULL) {
+               fprintf(stderr, "| %s\n",tracehead->text);
+               if (tracehead == tracehead->prev) break;
+               tracehead = tracehead->prev;
+       }
+       fprintf(stderr, "`------------------- - -  -\n");
+       exit(i);
+}
diff --git a/lib/opts.nit b/lib/opts.nit
new file mode 100644 (file)
index 0000000..1e77f35
--- /dev/null
@@ -0,0 +1,259 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# Super class of all option's class
+class Option
+       # Names for the option (including long and short ones)
+       readable attr _names: Array[String]
+
+       # Type of the value of the option
+       type VALUE: Object
+
+       # Human readable description of the option
+       readable attr _helptext: String 
+
+       # Is this option mandatory?
+       readable writable attr _mandatory: Bool 
+
+       # context where the option is located
+       readable writable attr _context: OptionContext 
+
+       # Current value of this option
+       readable writable attr _value: VALUE 
+
+       # Default value of this option
+       readable writable attr _default_value: VALUE
+
+       # Create a new option
+       init init_opt(help: String, default: VALUE, names: Array[String])
+       do
+               if names == null then
+                       _names = new Array[String]
+               else
+                       _names = names.to_a
+               end
+               _helptext = help
+               _mandatory = false
+               _default_value = default
+       end
+
+       # Add new aliases for this option
+       meth add_aliases(names: String...) do _names.add_all(names)
+       
+       # An help text for this option with default settings
+       redef meth to_s do return pretty(2)
+       
+       # A pretty print for this help
+       meth pretty(off: Int): String
+       do
+               var text = "  "
+               text.append(_names.join(", "))
+               text.append("  ")
+               var rest = off - text.length
+               if rest > 0 then text.append(" " * rest)
+               text.append(helptext)
+               #text.append(pretty_default)
+               return text
+       end
+
+       meth pretty_default: String
+       do
+               if default_value != null then
+                       return " ({default_value})"
+               end
+               return ""
+       end
+
+       # Consume parameters for this option
+       protected meth read_param(it: Iterator[String]) is abstract
+end
+
+class OptionText
+special Option
+       init(text: String) do init_opt(text, null, null)
+
+       redef meth pretty(off) do return to_s
+
+       redef meth to_s do return helptext
+end
+
+class OptionBool
+special Option
+       redef type VALUE: Bool
+
+       init(help: String, names: String...) do init_opt(help, false, names)
+
+       redef meth read_param(it) do value = true
+end
+
+# Option with one mandatory parameter
+class OptionParameter
+special Option
+       protected meth convert(str: String): VALUE is abstract
+
+       redef meth read_param(it)
+       do
+               assert context != null
+               if it.is_ok then
+                       value = convert(it.item)
+                       it.next
+               else
+                       # TODO: What to do?
+               end
+       end
+
+       init init_opt(h, d, n) do super
+end
+
+class OptionString
+special OptionParameter
+       redef type VALUE: String
+
+       init(help: String, names: String...) do init_opt(help, null, names)
+
+       redef meth convert(str) do return str
+end
+
+class OptionEnum
+special OptionParameter
+       redef type VALUE: Int
+       attr _enum: Array[String]
+
+       init(enum: Array[String], help: String, default: Int, names: String...)
+       do
+               assert enum != null and enum.length > 0
+               _enum = enum.to_a
+               init_opt("{help} <{enum.join(", ")}>", default, names)
+       end
+
+       redef meth convert(str)
+       do
+               var id = _enum.index_of(str)
+               return id
+       end
+
+       redef meth pretty_default
+       do
+               if default_value != null then
+                       return " ({_enum[default_value]})"
+               else
+                       return ""
+               end
+       end     
+end
+
+class OptionInt
+special OptionParameter
+       redef type VALUE: Int
+
+       init(help: String, default: Int, names: String...) do init_opt(help, default, names)
+       
+       redef meth convert(str) do return str.to_i
+end
+
+class OptionArray
+special OptionParameter
+       redef type VALUE: Array[String]
+
+       init(help: String, names: String...)
+       do
+               _values = new Array[String]
+               init_opt(help, _values, names)
+       end
+
+       attr _values: Array[String]     
+       redef meth convert(str)
+       do
+               _values.add(str)
+               return _values
+       end
+end
+
+class OptionContext
+       readable attr _options: Array[Option] 
+       readable attr _rest: Array[String] 
+
+       attr _optmap: Map[String, Option]
+       
+       meth usage
+       do
+               var lmax = 1
+               for i in _options do
+                       var l = 3
+                       for n in i.names do
+                               l += n.length + 2
+                       end
+                       if lmax < l then lmax = l
+               end
+               
+               for i in _options do
+                       print(i.pretty(lmax))
+               end
+       end
+
+       # Parse ans assign options everywhere is the argument list
+       meth parse(argv: Collection[String])
+       do
+               var it = argv.iterator
+               parse_intern(it)
+       end
+
+       protected meth parse_intern(it: Iterator[String])
+       do
+               var parseargs = true
+               build
+               var rest = _rest
+               
+               while parseargs and it.is_ok do
+                       var str = it.item
+                       if str == "--" then
+                               it.next
+                               rest.add_all(it.to_a)
+                               parseargs = false
+                       else
+                               if _optmap.has_key(str) then
+                                       var opt = _optmap[str]
+                                       it.next
+                                       opt.read_param(it)
+                               else
+                                       rest.add(it.item)
+                                       it.next
+                               end
+                       end
+               end
+       end
+
+       meth add_option(opts: Option...)
+       do
+               for opt in opts do
+                       opt.context = self
+                       _options.add(opt)
+               end
+       end
+
+       init
+       do
+               _options = new Array[Option]
+               _optmap = new HashMap[String, Option]
+               _rest = new Array[String]
+       end
+
+       private meth build
+       do
+               for o in _options do
+                       for n in o.names do
+                               _optmap[n] = o
+                       end
+               end
+       end
+end
diff --git a/lib/sdl.nit b/lib/sdl.nit
new file mode 100644 (file)
index 0000000..f8f1f3e
--- /dev/null
@@ -0,0 +1,204 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# Binding to the SDL multomedia library
+package sdl
+
+universal SDL_Surface
+special Pointer
+       meth width: Int is extern "sdl_surface_width"
+       meth height: Int is extern "sdl_surface_height"
+       
+       meth lock_surface: Int is extern "SDL_LockSurface"
+       meth unlock_surface: Int is extern "SDL_LockSurface"
+
+       meth blit_on(dest: SDL_Surface) is extern "sdl_blit_surface"
+       meth blit_on_xy(dest: SDL_Surface, dest_x: Int, dest_y: Int) is extern "sdl_blit_surface_xy"
+
+       meth update_rect(x: Int, y: Int, w: Int, h: Int) is extern "SDL_UpdateRect"
+       meth update_all
+       do
+               update_rect(0, 0, 0, 0)
+       end
+
+       meth clear is extern "sdl_clear_sruface"
+
+       meth to_display_format: SDL_Surface is extern "SDL_DisplayFormat"
+       meth free is extern "SDL_FreeSurface"
+end
+
+universal SDL_Screen
+special SDL_Surface
+       meth flip is extern "SDL_Flip"
+end
+       
+universal SDL_Event
+special Pointer
+       meth is_keyboard: Bool is extern "sdl_evt_is_keyboard"
+       meth as_keyboard: SDL_KeyboardEvent is extern "sdl_evt_as_keyboard"
+       meth is_mouse_button: Bool is extern "sdl_evt_is_mouse_button"
+       meth as_mouse_button: SDL_MouseButtonEvent is extern "sdl_evt_as_mouse_button"
+       meth is_mouse_motion: Bool is extern "sdl_evt_is_mouse_motion"
+       meth as_mouse_motion: SDL_MouseMotionEvent is extern "sdl_evt_as_mouse_motion"
+       meth is_expose: Bool is extern "sdl_evt_is_expose"
+       meth is_quit: Bool is extern "sdl_evt_is_quit"
+end
+
+universal SDL_ButtonEvent
+special SDL_Event
+       meth is_pressed: Bool is abstract
+end
+
+universal SDL_MouseEvent
+special SDL_Event
+       meth x: Int is abstract
+       meth y: Int is abstract
+end
+
+universal SDL_KeyboardEvent
+special SDL_ButtonEvent
+       redef meth is_pressed: Bool is extern "sdl_keyboard_evt_state"
+end
+
+universal SDL_MouseButtonEvent
+special SDL_ButtonEvent
+special SDL_MouseEvent
+       redef meth is_pressed: Bool is extern "sdl_mouse_button_evt_state"
+       redef meth x: Int is extern "sdl_mouse_button_evt_x"
+       redef meth y: Int is extern "sdl_mouse_button_evt_y"
+       meth button: Int is extern "sdl_mouse_button_evt_button"
+end
+
+universal SDL_MouseMotionEvent
+special SDL_MouseEvent
+       redef meth x: Int is extern "sdl_mouse_evt_x"
+       redef meth y: Int is extern "sdl_mouse_evt_y"
+       meth xrel: Int is extern "sdl_mouse_evt_xrel"
+       meth yrel: Int is extern "sdl_mouse_evt_yrel"
+end
+
+class SDL_EventListener
+       meth on_keyboard(evt: SDL_KeyboardEvent)
+       do end
+       
+       meth on_mouse_button(evt: SDL_MouseButtonEvent)
+       do end
+
+       meth on_mouse_motion(evt: SDL_MouseMotionEvent)
+       do end
+
+       meth on_expose
+       do end
+
+       meth on_quit
+       do end
+end
+
+class SDL_EventProcessor
+       attr _listeners: Array[SDL_EventListener]
+
+       meth add_listener(l: SDL_EventListener)
+       do
+               _listeners.add(l)
+       end
+
+       meth remove_listener(l: SDL_EventListener)
+       do
+               _listeners.remove(l)
+       end
+       
+       meth process_one_event
+       do
+               if sdl_poll_next_event then
+                       process_event(sdl_current_event)
+               end
+       end
+
+       meth process_all_events
+       do
+               while sdl_poll_next_event do
+                       process_event(sdl_current_event)
+               end
+       end
+       
+       private meth process_event(evt: SDL_Event)
+       do
+               var sdl_listeners = _listeners
+               if evt.is_keyboard then
+                       for i in sdl_listeners do
+                               i.on_keyboard(evt.as_keyboard)
+                       end
+               else if evt.is_mouse_button then
+                       for i in sdl_listeners do
+                               i.on_mouse_button(evt.as_mouse_button)
+                       end
+               else if evt.is_mouse_motion then
+                       for i in sdl_listeners do
+                               i.on_mouse_motion(evt.as_mouse_motion)
+                       end
+               else if evt.is_expose then
+                       for i in sdl_listeners do
+                               i.on_expose
+                       end
+               else if evt.is_quit then
+                       for i in sdl_listeners do
+                               i.on_quit
+                       end
+               end
+       end
+
+       init
+       do
+               _listeners = new Array[SDL_EventListener]
+       end
+end
+
+# General
+
+meth sdl_init is extern
+
+# Video
+
+meth sdl_set_video_mode(w: Int, h: Int, d: Int): SDL_Screen is extern
+meth sdl_set_fullscreen_video_mode(w: Int, h: Int, d: Int): SDL_Screen is extern
+
+meth sdl_load_raw_bmp(s: String): SDL_Surface
+do
+       return sdl_load_bmp_native(s.to_cstring)
+end
+meth sdl_load_bmp(s: String): SDL_Surface
+do
+       var raw = sdl_load_raw_bmp(s)
+       var sprite = raw.to_display_format
+       raw.free
+       return sprite
+end
+
+meth sdl_load_bmp_native(s: NativeString): SDL_Surface is extern
+
+meth sdl_show_cursor=(b: Bool) is extern "sdl_show_cursor_1"
+meth sdl_show_cursor: Bool is extern "sdl_show_cursor_0"
+
+# WM
+
+meth sdl_grab=(b: Bool) is extern "sdl_grab_1"
+meth sdl_grab: Bool is extern "sdl_grab_0"
+
+# Events
+
+meth sdl_current_event: SDL_Event is extern
+meth sdl_poll_next_event: Bool is extern
+
+# Time
+
+meth sdl_get_ticks: Int is extern
+meth sdl_delay(ms: Int) is extern
diff --git a/lib/sdl_nit.c b/lib/sdl_nit.c
new file mode 100644 (file)
index 0000000..0dc9db7
--- /dev/null
@@ -0,0 +1,24 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2006 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include "sdl_nit.h"
+
+SDL_Event G_sdl_current_event;
+
+int sdl_blit_surface_xy(SDL_Surface * s, SDL_Surface * d, int x, int y)
+{
+       static SDL_Rect r;
+       r.x = x;
+       r.y = y;
+       return SDL_BlitSurface(s, NULL, d, &r);
+}
diff --git a/lib/sdl_nit.h b/lib/sdl_nit.h
new file mode 100644 (file)
index 0000000..fbab501
--- /dev/null
@@ -0,0 +1,103 @@
+#ifndef __SDL_NIT
+#define __SDL_NIT
+
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2006 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+#include "SDL.h"
+#include "SDL_image.h"
+
+/* General*/
+#define sdl_init(x) \
+       (atexit(SDL_Quit), SDL_Init(SDL_INIT_VIDEO))
+
+/* Surface */
+#define sdl_surface_width(x)   (((SDL_Surface *)(x))->w)
+#define sdl_surface_height(x)  (((SDL_Surface *)(x))->h)
+
+/* Video */
+#define sdl_set_video_mode(x, w, h, d) \
+       (SDL_SetVideoMode(w, h, d, SDL_SWSURFACE | SDL_DOUBLEBUF))
+#define sdl_set_fullscreen_video_mode(x, w, h, d) \
+       (SDL_SetVideoMode(w, h, d, SDL_SWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN))
+
+#define sdl_load_bmp_native(x, c) \
+       (IMG_Load(c))
+
+#define sdl_blit_surface(s, d) \
+       (SDL_BlitSurface((s), NULL, d, NULL))
+int sdl_blit_surface_xy(SDL_Surface * s, SDL_Surface * d, int x, int y);
+
+#define sdl_clear_sruface(s) \
+       (SDL_FillRect((s), NULL, 0))
+
+#define sdl_show_cursor_0(x) \
+       (SDL_ShowCursor(SDL_QUERY) == SDL_ENABLE)
+#define sdl_show_cursor_1(x, b) \
+       (SDL_ShowCursor((b) ? SDL_ENABLE : SDL_DISABLE))
+
+/* WM */
+#define sdl_grab_0(x) \
+       (SDL_WM_GrabInput(SDL_QUERY) == SDL_GRAB_ON)
+#define sdl_grab_1(x, b) \
+       (SDL_WM_GrabInput((b) ? SDL_GRAB_ON : SDL_GRAB_OFF))
+
+/* Event */
+#define sdl_evt_is_keyboard(x) \
+       ((((SDL_Event*)(x))->type == SDL_KEYDOWN) || ((((SDL_Event*)(x))->type == SDL_KEYUP)))
+#define sdl_evt_as_keyboard(x) \
+       (sdl_evt_is_keyboard((x)) ? (x) : NULL)
+#define sdl_evt_is_mouse_button(x) \
+       ((((SDL_Event*)(x))->type == SDL_MOUSEBUTTONDOWN) || ((((SDL_Event*)(x))->type == SDL_MOUSEBUTTONUP)))
+#define sdl_evt_as_mouse_button(x) \
+       (sdl_evt_is_mouse_button((x)) ? (x) : NULL)
+#define sdl_evt_is_mouse_motion(x) \
+       (((SDL_Event*)(x))->type == SDL_MOUSEMOTION)
+#define sdl_evt_as_mouse_motion(x) \
+       (sdl_evt_is_mouse_motion((x)) ? (x) : NULL)
+#define sdl_evt_is_expose(x) \
+       (((SDL_Event*)(x))->type == SDL_VIDEOEXPOSE)
+#define sdl_evt_is_quit(x) \
+       (((SDL_Event*)(x))->type == SDL_QUIT)
+
+#define sdl_keyboard_evt_state(x) \
+       (((SDL_KeyboardEvent*)(x))->state == SDL_PRESSED)
+#define sdl_mouse_button_evt_state(x) \
+       (((SDL_MouseButtonEvent*)(x))->state == SDL_PRESSED)
+#define sdl_mouse_button_evt_x(k) \
+       (((SDL_MouseButtonEvent*)(k))->x)
+#define sdl_mouse_button_evt_y(k) \
+       (((SDL_MouseButtonEvent*)(k))->y)
+#define sdl_mouse_button_evt_button(k) \
+       (((SDL_MouseButtonEvent*)(k))->button)
+#define sdl_mouse_evt_x(k) \
+       (((SDL_MouseMotionEvent*)(k))->x)
+#define sdl_mouse_evt_y(k) \
+       (((SDL_MouseMotionEvent*)(k))->y)
+#define sdl_mouse_evt_xrel(k) \
+       (((SDL_MouseMotionEvent*)(k))->xrel)
+#define sdl_mouse_evt_yrel(k) \
+       (((SDL_MouseMotionEvent*)(k))->yrel)
+                                             
+extern SDL_Event G_sdl_current_event;
+#define sdl_current_event(x) \
+       (&G_sdl_current_event)
+#define sdl_poll_next_event(x) \
+       (SDL_PollEvent(&G_sdl_current_event))
+
+/* Time */
+
+#define sdl_get_ticks(x) \
+       (SDL_GetTicks())
+#define sdl_delay(x, i) \
+       (SDL_Delay((i)))
+#endif
diff --git a/lib/standard/abstract_collection.nit b/lib/standard/abstract_collection.nit
new file mode 100644 (file)
index 0000000..ee2acfb
--- /dev/null
@@ -0,0 +1,423 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module define several abtract collection classes.
+package abstract_collection
+
+import kernel
+
+# The root of the collection hierarchy.
+#
+# Instances of this class offers an iterator method.
+#
+# Colections instances can use the "for" structure:
+#        var x: Collection[U]
+#         ...
+#         for u in x do
+#             # u is a U
+#             ...
+#         end
+# that is equivalent with
+#         var x: Collection[U]
+#         ...
+#         var i = x.iterator
+#         while i.is_ok do
+#             var u = i.item # u is a U
+#             ...
+#             i.next
+#         end
+#
+# This abstract class implements its others methods with an iterator.
+# Subclasses may redefine them with an efficient implementation.
+class Collection[E]
+       # Get a new iterator on the collection.
+       meth iterator: Iterator[E] is abstract
+
+       # Is there no item in the collection ?
+       meth is_empty: Bool is abstract 
+
+       # Number of items in the collection.
+       meth length: Int is abstract
+
+       # Is `item' in the collection ?
+       # Comparaisons are done with ==
+       meth has(item: E): Bool is abstract
+
+       # Is the collection contain only `item' ?
+       # Comparaisons are done with ==
+       # Return true if the collection is empty.
+       meth has_only(item: E): Bool is abstract
+
+       # How many occurences of `item' are in the collection ?
+       # Comparaisons are done with ==
+       meth count(item: E): Int is abstract
+
+       # Return one the item of the collection
+       meth first: E is abstract
+end
+
+# Naive implementation of collections method
+# You only have to define iterator!
+class NaiveCollection[E: Object]
+special Collection[E]
+       redef meth is_empty do return length == 0
+
+       redef meth length
+       do
+               var nb = 0
+               for i in self do nb += nb
+               return nb
+       end
+
+       redef meth has(item)
+       do
+               for i in self do if i == item then return true
+               return false
+       end
+
+       redef meth has_only(item)
+       do
+               for i in self do if i != item then return false
+               return true
+       end
+
+       redef meth count(item)
+       do
+               var nb = 0
+               for i in self do if i == item then nb += 1
+               return nb
+       end
+
+       redef meth first
+       do
+               assert length > 0
+               return iterator.item
+       end
+end
+
+# Instances of the Iterator class generates a series of elements, one at a time.
+# They are mainly used with collections.
+class Iterator[E]
+       # The current item.
+       # Require `is_ok'.
+       meth item: E is abstract
+
+       # Jump to the next item.
+       # Require `is_ok'.
+       meth next is abstract
+
+       # Is there a current item ?
+       meth is_ok: Bool is abstract
+end
+
+# A collection that contains only one item.
+class Container[E]
+special Collection[E]
+
+       redef meth first do return _item
+
+       redef meth is_empty do return false
+
+       redef meth length do return 1
+
+       redef meth has(an_item) do return _item == an_item
+
+       redef meth has_only(an_item) do return _item == an_item
+
+       redef meth count(an_item)
+       do
+               if _item == an_item then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       redef meth iterator do return new ContainerIterator[E](self)
+
+       # Create a new instance with a given initial value.
+       init(e: E) do _item = e
+
+       # The stored item
+       readable writable attr _item: E
+end
+
+# This iterator is quite stupid since it is used for only one item.
+class ContainerIterator[E]
+special Iterator[E]
+       redef meth item do return _container.item
+
+       redef meth next do _is_ok = false
+
+       init(c: Container[E]) do _container = c
+
+       redef readable attr _is_ok: Bool = true
+
+       attr _container: Container[E]
+end
+
+# Items can be removed from this collection
+class RemovableCollection[E]
+special Collection[E]
+       # Remove all items
+       meth clear is abstract
+
+       # Remove an occucence of `item'
+       meth remove(item: E) is abstract
+
+       # Remove all occurences of `item'
+       meth remove_all(item: E) do while has(item) do remove(item)
+end
+
+# Items can be added to these collections.
+class SimpleCollection[E]
+special RemovableCollection[E]
+       # Add an item in a collection.
+       # Ensure col.has(item)
+       meth add(item: E) is abstract
+
+       # Add each item of `coll`.
+       meth add_all(coll: Collection[E]) do if coll != null then for i in coll do add(i)
+end
+
+# Abstract sets.
+#
+# Set contains contains only one element with the same value (according to =).
+#    var s : Set[E]
+#    var a = "Hello"
+#    var b = "Hello"
+#    ...
+#    s.add(a)
+#    s.has(b) # --> true
+class Set[E]
+special SimpleCollection[E]
+
+       redef meth has_only(item)
+       do
+               var l = length
+               if l == 1 then
+                       return has(item)
+               else if l == 0 then
+                       return true
+               else
+                       return false
+               end
+       end
+
+       # Only 0 or 1
+       redef meth count(item)
+       do
+               if has(item) then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       # Synonym of remove since there is only one item
+       redef meth remove_all(item) do remove(item)
+end
+
+# Maps are associative collections: `key' -> `item'.
+#
+# The main operator over maps is [].
+#
+#     var map: Map[U, V]
+#     ...
+#     map[u1] = v1      # Associate 'v1' to 'u1'
+#     map[u2] = v2      # Associate 'v2' to 'u2'
+#     map[u1]            # -> v1
+#     map[u2]            # -> v2
+#     map.has_key(u1)    # -> true
+#     map.has_key(u3)    # -> false
+class Map[K, E]
+special RemovableCollection[E]
+       # Get the item at `key'.    
+       meth [](key: K): E is abstract
+
+       # Set the`item' at `key'.
+       meth []=(key: K, item: E) is abstract
+
+       # Is there an item at `key'.
+       meth has_key(key: K): Bool is abstract
+
+       # Remove the item at `key'
+       meth remove_at(key: K) is abstract
+
+       # Add each (key,value) of `map' into `self'.
+       # If a same key exists in `map' and `self', then the value in self is discarded.
+       meth recover_with(map: Map[K, E])
+       do
+               var i = map.iterator
+               while i.is_ok do
+                       self[i.key] = i.item
+                       i.next
+               end
+       end
+
+       redef meth iterator: MapIterator[K, E] is abstract
+end
+
+# Iterators for Map.
+class MapIterator[K, E]
+special Iterator[E]
+       # The key of the current item.
+       meth key: K is abstract
+
+       # Set a new `item' at `key'.
+       meth item=(item: E) is abstract
+end
+
+# Indexed collection are ordoned collections.
+# The first item is 0. The last is `length'-1.
+class IndexedCollection[E]
+special Map[Int, E]
+special SimpleCollection[E]
+       # Get the first item.
+       # Is equivalent with `self'[0].
+       redef meth first 
+       do 
+               assert not_empty: not is_empty
+               return self[0] 
+       end
+       
+       # Set the first item.
+       # Is equivalent with `self'[0] = `item'.
+       meth first=(item: E)
+       do self[0] = item end
+
+       # Get the last item.
+       # Is equivalent with `self'[`length'-1].
+       meth last: E
+       do 
+               assert not_empty: not is_empty
+               return self[length-1] 
+       end
+
+       # Set the last item.
+       # Is equivalent with `self'[length-1] = `item'.
+       meth last=(item: E) 
+       do 
+               var l = length
+               if l > 0 then
+                       self[l-1] = item
+               else
+                       self[0] = item
+               end
+       end
+
+       # A synonym of `push'
+       redef meth add(e) do push(e)
+
+       # Add an item after the last.
+       meth push(e: E) is abstract
+
+       # Add each item of `coll` after the last.
+       meth append(coll: Collection[E]) do if coll != null then for i in coll do push(i)
+
+       # Remove the last item.
+       meth pop: E is abstract
+
+       # Add an item before the last.
+       meth unshift(e: E) is abstract
+
+       # Remove the first item.
+       # The second item become the first.
+       meth shift: E is abstract
+
+       # Return the index of the first occurence of `item'.
+       # Return -1 if `item' is not found
+       meth index_of(item: E): Int
+       do
+               var i = iterator
+               while i.is_ok do
+                       if i.item == item then return i.index
+                       i.next
+               end
+               return -1
+       end
+
+       redef meth iterator: IndexedIterator[E] is abstract
+end
+
+# Iterators on indexed collections.
+class IndexedIterator[E]
+special MapIterator[Int, E]
+       # The index of the current item.
+       meth index: Int is abstract
+
+       # A synonym of index.
+       redef meth key do return index
+end
+
+# Associatives arrays that internally uses couples to represent each (key, value) pairs.
+class CoupleMap[K, E]
+special Map[K, E]
+       # Return the couple of the corresponding key
+       # Return null if the key is no associated element
+       protected meth couple_at(key: K): Couple[K, E] is abstract
+
+       redef meth [](key)
+       do
+               var c = couple_at(key)
+               if c == null then
+                       return null
+               else
+                       return c.second
+               end
+       end
+
+       redef meth has_key(key) do return couple_at(key) != null
+end
+
+# Iterator on CoupleMap
+#
+# Actually is is a wrapper around an iterator of the internal array of the map.
+class CoupleMapIterator[K, E]
+special MapIterator[K, E]
+       redef meth item do return _iter.item.second
+       
+       redef meth item=(e) do _iter.item.second = e
+
+       redef meth key do return _iter.item.first
+
+       redef meth is_ok do return _iter.is_ok
+
+       redef meth next
+       do 
+               _iter.next
+               while _iter.is_ok and _iter.item == null do _iter.next
+       end
+
+       attr _iter: Iterator[Couple[K,E]]
+
+       init(i: Iterator[Couple[K,E]]) do _iter = i
+end
+
+# Some tools ###################################################################
+
+# Two objects in a simple structure.
+class Couple[F, S]
+
+       # The first element of the couple.
+       readable writable attr _first: F
+
+       # The second element of the couple.
+       readable writable attr _second: S
+
+       # Create a new instance with a first and a second object.
+       init(f: F, s: S)
+       do
+               _first = f
+               _second = s
+       end
+end
diff --git a/lib/standard/array.nit b/lib/standard/array.nit
new file mode 100644 (file)
index 0000000..ae227ec
--- /dev/null
@@ -0,0 +1,578 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module introduces the standard array structure.
+# It also implements two other abstract collections : ArrayMap and ArraySet
+package array
+
+import abstract_collection
+
+# Resizeable one dimention array of objects.
+class AbstractArray[E]
+special IndexedCollection[E]
+       meth enlarge(cap: Int) is abstract
+
+       # The current length
+       redef readable attr _length: Int
+       
+       redef meth is_empty do return _length == 0
+
+       redef meth push(item) do add(item)
+       
+       redef meth pop
+       do
+               assert not_empty: not is_empty
+               var r = last
+               _length -= 1
+               return r
+       end
+
+       redef meth shift
+       do
+               assert not_empty: not is_empty
+               var r = first
+               var i = 1
+               var l = length
+               while i < l do
+                       self[i-1] = self[i]
+                       i += 1
+               end
+               _length = l - 1
+               return r
+       end
+
+       redef meth unshift(item)
+       do
+               var i = length - 1
+               while i > 0 do
+                       self[i+1] = self[i]
+                       i -= 1
+               end
+               self[0] = item
+       end
+
+       meth insert(item: E, pos: Int)
+       do
+               enlarge(length + 1)
+               copy_to(pos, length-pos, self, pos + 1)
+               self[pos] = item
+       end
+
+       redef meth add(item) do self[length] = item
+
+       redef meth clear do _length = 0
+
+       redef meth has(item)
+       do
+               var i = 0
+               var l = length
+               while i < l do
+                       if self[i] == item then return true
+                       i += 1
+               end
+               return false
+       end
+
+       redef meth has_only(item)
+       do
+               var i = 0
+               var l = length
+               while i < l do
+                       if self[i] != item then return false
+                       i += 1
+               end
+               return true
+       end
+
+       redef meth has_key(index) do return index >= 0 and index < length
+
+       redef meth count(item)
+       do
+               var res = 0
+               var i = 0
+               var l = length
+               while i < l do
+                       if self[i] == item then res += 1
+                       i += 1
+               end
+               return res
+       end
+
+       redef meth index_of(item) do return index_of_from(item, 0)
+
+       meth last_index_of(item: E): Int do return last_index_of_from(item, length-1)
+
+       meth index_of_from(item: E, pos: Int): Int
+       do
+               var i = pos
+               var len = length
+               while i < len do
+                       if self[i] == item then
+                               return i
+                       end
+                       i += 1
+               end
+               return -1
+       end
+
+       meth last_index_of_from(item: E, pos: Int): Int
+       do
+               var i = pos
+               while i >= 0 do
+                       if self[i] == item then
+                               return i
+                       else
+                               i -= 1
+                       end
+               end
+               return -1
+       end
+
+       meth reversed: Array[E]
+       do
+               var cmp = _length
+               var result = new Array[E].with_capacity(cmp)
+               while cmp > 0 do
+                       cmp -= 1
+                       result.add(self[cmp])
+               end
+               return result
+       end
+
+       redef meth remove(item) do remove_at(index_of(item))
+
+       redef meth remove_all(item)
+       do
+               var i = index_of(item)
+               while i >= 0 do
+                       remove_at(i)
+                       i = index_of_from(item, i)
+               end
+       end
+
+       redef meth remove_at(i)
+       do
+               var l = length
+               if i >= 0 and i < l then
+                       var j = i + 1
+                       while j < l do
+                               self[j-1] = self[j]
+                               j += 1
+                       end             
+                       _length = l - 1 
+               end
+       end
+
+       protected meth copy_to(start: Int, len: Int, dest: AbstractArray[E], new_start: Int)
+       do
+               # TODO native one
+               var i = len
+               while i > 0 do
+                       i -= 1
+                       dest[new_start+i] = self[start+i]
+               end
+       end
+
+       redef meth output
+       do
+               var i = 0
+               var l = length
+               while i < l do
+                       var e = self[i]
+                       if e != null then e.output
+                       i += 1
+               end
+       end
+
+       redef meth iterator: ArrayIterator[E] do return new ArrayIterator[E](self)
+
+       # Two arrays are equals if they have the same items in the same order.
+       redef meth ==(o)
+       do
+               if not o isa AbstractArray[E] or o is null then return false
+               assert o isa AbstractArray[E]
+               var l = length
+               if o.length != l then return false
+               var i = 0
+               while i < l do
+                       if self[i] != o[i] then return false
+                       i += 1
+               end
+               return true
+       end
+end
+       
+# Resizeable one dimention array of objects.
+#
+# Arrays have a literal representation.
+#     a = [12, 32, 8]
+# is equivalent with:
+#     a = new Array[Int]
+#     a.push(12)
+#     a.push(32)
+#     a.push(8)
+class Array[E]
+special AbstractArray[E]
+special ArrayCapable[E]
+       redef meth [](index)
+       do
+               assert index: index >= 0 and index < _length
+               return _items[index]
+       end
+
+       redef meth []=(index, item)
+       do
+               assert index: index >= 0 and index < _length + 1
+               if _capacity <= index then
+                       enlarge(index + 1)
+               end
+               if _length <= index then
+                       _length = index + 1
+               end
+               _items[index] = item
+       end
+
+       redef meth enlarge(cap)
+       do
+               var c = _capacity
+               if cap <= c then return
+               while c <= cap do c = c * 2 + 2
+               var a = calloc_array(c)
+               if _capacity > 0 then _items.copy_to(a, _length)
+               _items = a
+               _capacity = c
+       end
+
+       # Create an empty array.
+       init
+       do
+               _capacity = 0
+               _length = 0
+       end
+
+       # Create an array with some `items'.
+       init with(objects: E...)
+       do
+               _items = objects._items
+               _capacity = objects._capacity
+               _length = objects.length
+       end
+
+       # Create an empty array with a given capacity.
+       init with_capacity(cap: Int)
+       do
+               assert positive: cap >= 0
+               _items = calloc_array(cap)
+               _capacity = cap
+               _length = 0
+       end
+
+       # Create an array of `count' elements
+       init filled_with(value: E, count: Int)
+       do
+               assert positive: count >= 0
+               _items = calloc_array(count)
+               _capacity = count
+               _length = count
+               var i = 0
+               while i < count do
+                       self[i] = value
+                       i += 1
+               end
+       end
+
+       # Create a array filled with a given native array.
+       init with_native(nat: NativeArray[E], size: Int)
+       do
+               assert positive: size >= 0
+               _items = nat
+               _capacity = size
+               _length = size
+       end
+
+       # The internal storage.
+       attr _items: NativeArray[E]
+
+       # The size of `_items'.
+       attr _capacity: Int
+end
+
+# An `Iterator' on `AbstractArray'
+class ArrayIterator[E]
+special IndexedIterator[E]
+       redef meth item do return _array[_index]
+
+       redef meth item=(e) do _array[_index] = e
+
+       redef meth is_ok do return _index < _array.length
+
+       redef meth next do _index += 1
+
+       init(a: AbstractArray[E])
+       do
+               assert not_nil: a != null
+               _array = a
+               _index = 0
+       end
+
+       redef readable attr _index: Int
+       attr _array: AbstractArray[E]
+end
+
+# Others collections ##########################################################
+
+# A set implemented with an Array.
+class ArraySet[E]
+special Set[E]
+       # The stored elements.
+       attr _array: Array[E]
+
+       redef meth has(e) do return _array.has(e)
+
+       redef meth add(e) do if not _array.has(e) then _array.add(e)
+
+       redef meth is_empty do return _array.is_empty
+
+       redef meth length do return _array.length
+
+       redef meth first
+       do
+               assert _array.length > 0
+               return _array.first
+       end
+
+       redef meth remove(item)
+       do
+               var i = _array.index_of(item)
+               if i >= 0 then remove_at(i)
+       end
+
+       redef meth remove_all(item) do remove(item)
+
+       redef meth clear do _array.clear
+
+       redef meth iterator do return new ArraySetIterator[E](_array.iterator)
+
+       # Assume the capacitydd is at least `cap'.
+       meth enlarge(cap: Int) do _array.enlarge(cap)
+
+       private meth remove_at(i: Int)
+       do
+               _array[i] = _array.last
+               _array.pop
+       end
+
+       # Create an empty set
+       init do _array = new Array[E]
+
+       # Create an empty set with a given capacity.
+       init with_capacity(i: Int) do _array = new Array[E].with_capacity(i)
+end
+
+# Iterators on sets implemented with arrays.
+class ArraySetIterator[E]
+special Iterator[E]
+
+       redef meth is_ok do return _iter.is_ok
+
+       redef meth next do _iter.next
+
+       redef meth item: E do return _iter.item
+
+       init(iter: ArrayIterator[E]) do _iter = iter
+
+       attr _iter: ArrayIterator[E]
+end
+
+
+# Associative arrays implemented with an array of (key, value) pairs.
+class ArrayMap[K, E]
+special CoupleMap[K, E] 
+
+       # O(n)
+       redef meth [](key)
+       do
+               var i = index(key)
+               if i >= 0 then
+                       return _items[i].second
+               else
+                       return null
+               end
+       end
+
+       # O(n)
+       redef meth []=(key, item)
+       do
+               var i = index(key)
+               if i >= 0 then
+                       _items[i].second = item
+               else
+                       _items.push(new Couple[K,E](key, item))
+               end                
+       end
+
+       # O(n)
+       redef meth has_key(key) do return index(key) >= 0
+
+       # O(n)
+       redef meth has(item)
+       do
+               for i in _items do if i.second == item then return true
+               return false
+       end
+
+       # O(n)
+       redef meth has_only(item)
+       do
+               for i in _items do if i.second != item then return false
+               return true
+       end
+
+       # O(1)
+       redef meth length do return _items.length
+
+       redef meth first do return _items.first.first
+
+       # O(n)
+       redef meth count(item)
+       do
+               var nb = 0
+               for i in _items do if i.second == item then nb += 1
+               return nb
+       end
+
+       redef meth iterator: CoupleMapIterator[K, E] do return new CoupleMapIterator[K, E](_items.iterator)
+
+       redef meth is_empty do return _items.is_empty
+
+       redef meth remove(item)
+       do
+               var i = _items.length - 1
+               while i >= 0 do
+                       if _items[i].second == item then
+                               remove_at_index(i)
+                               return
+                       end
+                       i -= 1
+               end
+       end
+
+       redef meth remove_all(item: E)
+       do
+               var i = _items.length - 1
+               while i >= 0 do
+                       if _items[i].second == item then
+                               remove_at_index(i)
+                       end
+                       i -= 1
+               end
+       end
+
+       redef meth remove_at(key)
+       do
+               var i = index(key)
+               if i >= 0 then remove_at_index(i)
+       end
+
+       redef meth clear do _items.clear
+
+       # Assume the capacity to be at least `cap'.
+       meth enlarge(cap: Int) do _items.enlarge(cap)
+
+       redef meth couple_at(key)
+       do
+               var i = index(key)
+               if i >= 0 then
+                       return _items[i]
+               else
+                       return null
+               end
+       end
+
+       # Internal storage.
+       attr _items: Array[Couple[K,E]]
+
+       # fast remove the ith element of the array
+       private meth remove_at_index(i: Int)
+       do
+               _items[i] = _items.last
+               _items.pop
+       end
+
+       # The last positive result given by a index(1) call
+       attr _last_index: Int
+       
+       # Where is the `key' in `_item'?
+       # return -1 if not found
+       private meth index(key: K): Int
+       do
+               var l = _last_index 
+               if l < _items.length and _items[l].first == key then return l
+
+               var i = 0
+               while i < _items.length do
+                       if _items[i].first == key then
+                               _last_index = i
+                               return i
+                       end
+                       i += 1
+               end
+               return -1
+       end
+
+       # A new empty map.
+       init
+       do 
+               _items = new Array[Couple[K,E]]
+       end
+end
+
+# Others tools ################################################################
+
+redef class Iterator[E]
+       # Interate on `self' and build an array
+       meth to_a: Array[E]
+       do
+               var res = new Array[E]
+               while is_ok do
+                       res.add(item)
+                       next
+               end
+               return res
+       end
+end
+
+redef class Collection[E]
+       # Build a new array from a collection
+       meth to_a: Array[E]
+       do
+               return iterator.to_a
+       end
+end
+
+# Native classes ##############################################################
+
+# Subclasses of this class can create native arrays
+class ArrayCapable[E]
+       # Get a new array of `size' elements.
+       protected meth calloc_array(size: Int): NativeArray[E] is intern
+end
+
+# Native C array (void ...).
+class NativeArray[E]
+       meth [](index: Int): E is intern
+       meth []=(index: Int, item: E) is intern
+       meth copy_to(dest: NativeArray[E], length: Int) is intern
+       #meth =(o: NativeArray[E]): Bool is intern
+       #meth !=(o: NativeArray[E]): Bool is intern
+end
diff --git a/lib/standard/environ.nit b/lib/standard/environ.nit
new file mode 100644 (file)
index 0000000..d8ab867
--- /dev/null
@@ -0,0 +1,42 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+import symbol
+
+# TODO prevoir une structure pour recup tout un environ, le modifier et le passer a process
+
+redef class Symbol
+       # Return environement valued for this symbol
+       meth environ: String
+       do
+               environ_default = "" # FIXME: Why this ?!?
+               return new String.from_cstring(to_s.to_cstring.get_environ)
+       end
+
+       # set environement value for this symbol
+       meth environ=(v: String) do to_s.to_cstring.set_environ(v.to_cstring, 1)
+       
+       # set default environement value for this symbol
+       meth environ_default=(v: String) do to_s.to_cstring.set_environ(v.to_cstring, 0)
+               
+       # Unset the environement value of this symbol
+       meth unset do to_s.to_cstring.unset_environ
+end
+
+redef class NativeString
+# Refinned to add environement bindings
+       private meth get_environ: NativeString is extern "string_NativeString_NativeString_get_environ_0"
+       private meth put_environ is extern "string_NativeString_NativeString_put_environ_0" # this one is a bit compilcated to use ... so we dosen't use
+       private meth unset_environ is extern "string_NativeString_NativeString_unset_environ_0"
+       private meth set_environ(value : NativeString, overwrite : Int) is extern "string_NativeString_NativeString_set_environ_2"
+end
diff --git a/lib/standard/environ_nit.h b/lib/standard/environ_nit.h
new file mode 100644 (file)
index 0000000..73858b2
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef __ENVIRON_NIT_H
+#define __ENVIRON_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#define _POSIX_C_SOURCE 1
+#include <stdlib.h>
+
+#define string_NativeString_NativeString_get_environ_0(self) getenv(self)
+#define string_NativeString_NativeString_put_environ_0(self) putenv(self)
+#define string_NativeString_NativeString_unset_environ_0(self) unsetenv(self)
+#define string_NativeString_NativeString_set_environ_2(self, p0, p1) setenv(self, p0, p1)
+
+#endif
diff --git a/lib/standard/environ_prm.h b/lib/standard/environ_prm.h
new file mode 100644 (file)
index 0000000..db652ee
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef __ENVIRON_H
+#define __ENVIRON_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#define _POSIX_C_SOURCE 1
+#include <stdlib.h>
+
+#define string_NativeString_NativeString_get_environ_0(self) getenv(self)
+#define string_NativeString_NativeString_put_environ_0(self) putenv(self)
+#define string_NativeString_NativeString_unset_environ_0(self) unsetenv(self)
+#define string_NativeString_NativeString_set_environ_2(self, p0, p1) setenv(self, p0, p1)
+
+#endif
diff --git a/lib/standard/exec.nit b/lib/standard/exec.nit
new file mode 100644 (file)
index 0000000..171f3e9
--- /dev/null
@@ -0,0 +1,182 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module handle simple system calls
+# Standard input and output can be handleb trougth streams.
+package exec 
+
+import stream
+
+# Simple sub-processus
+class Process
+
+       # The pid of the processus
+       meth id: Int do return _data.id
+
+       # Is the processus finished?
+       meth is_finished: Bool do return _data.is_finished
+
+       # wait the terminaison of the process
+       meth wait
+       do
+               _data.wait
+               assert is_finished
+       end
+       
+       # The status once finished
+       meth status: Int
+       do
+               assert is_finished
+               return _data.status
+       end
+
+       # send a signal to the process
+       meth kill(signal: Int) do _data.kill(signal)
+
+       # send the TERM (15) signal
+       meth term do kill(15)
+
+       # launch a command with some arguments
+       init(command: String, arguments: String...)
+       do
+               execute(command, arguments, 0)
+       end
+
+       # launch a simple command without arguments
+       init init_(command: String)
+       do
+               execute(command, null, 0)
+       end
+
+       # Internal code to handle execusion
+       protected init execute(command: String, arguments: Array[String], pipeflags: Int)
+       do
+               var args = new String
+               var l = 1 # Number of elements in args
+               args.append(command)
+               if arguments != null then
+                       for a in arguments do
+                               args.add('\0')
+                               args.append(a)
+                       end
+                       l += arguments.length
+               end
+               _data = basic_exec_execute(command.to_cstring, args.to_cstring, l, pipeflags)
+       end
+       
+       attr _data: NativeProcess
+       private meth basic_exec_execute(p: NativeString, av: NativeString, ac: Int, pf: Int): NativeProcess is extern "exec_Process_Process_basic_exec_execute_4"
+end
+
+# stdout of the processus is readable
+class IProcess
+special Process
+special IStream
+       attr _in: FDIStream
+       
+       redef meth close do _in.close
+       
+       redef meth read_char do return _in.read_char
+
+       redef meth eof do return _in.eof
+
+       redef init(command: String, arguments: String...)
+       do
+               execute(command, arguments, 2)
+               _in = new FDIStream(_data.out_fd)
+       end
+       
+       redef init init_(command: String)
+       do
+               execute(command, null, 2)
+               _in = new FDIStream(_data.out_fd)
+       end
+end
+
+# stdin of the processus is writable
+class OProcess
+special Process
+special OStream
+       attr _out: OStream
+
+       redef meth close do _out.close
+
+       redef meth is_writable do return _out.is_writable
+
+       redef meth write(s) do _out.write(s)
+       
+       redef init(command: String, arguments: String...)
+       do
+               execute(command, arguments, 1)
+               _out = new FDOStream(_data.in_fd)
+       end
+       
+       redef init init_(command: String)
+       do
+               execute(command, null, 1)
+               _out = new FDOStream(_data.in_fd)
+       end
+end
+
+# stdin and stdout are both accessible
+class IOProcess
+special IProcess
+special OProcess
+special IOStream
+
+       redef meth close
+       do
+               _in.close
+               _out.close
+       end
+
+       redef init(command: String, arguments: String...)
+       do
+               execute(command, arguments, 3)
+               _in = new FDIStream(_data.out_fd)
+               _out = new FDOStream(_data.in_fd)
+       end
+       
+       redef init init_(command: String)
+       do
+               execute(command, null, 3)
+               _in = new FDIStream(_data.out_fd)
+               _out = new FDOStream(_data.in_fd)
+       end
+end
+
+redef class Sys
+       # Execute a shell command and return it's error code
+       meth system(command: String): Int
+       do
+               return command.to_cstring.system        
+       end
+end
+
+redef class NativeString
+       meth system: Int is extern "string_NativeString_NativeString_system_0"
+end
+
+private universal NativeProcess
+special Pointer
+       meth id: Int is extern "exec_NativeProcess_NativeProcess_id_0"
+       meth is_finished: Bool is extern "exec_NativeProcess_NativeProcess_is_finished_0"
+       meth status: Int is extern "exec_NativeProcess_NativeProcess_status_0"
+       meth wait is extern "exec_NativeProcess_NativeProcess_wait_0"
+       meth kill(s: Int) is extern "exec_NativeProcess_NativeProcess_kill_1"
+
+       meth in_fd: Int is extern "exec_NativeProcess_NativeProcess_in_fd_0"
+       meth out_fd: Int is extern "exec_NativeProcess_NativeProcess_out_fd_0"
+       meth err_fd: Int is extern "exec_NativeProcess_NativeProcess_err_fd_0"
+end
+
diff --git a/lib/standard/exec_nit.c b/lib/standard/exec_nit.c
new file mode 100644 (file)
index 0000000..242ed34
--- /dev/null
@@ -0,0 +1,129 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include "exec_nit.h"
+#include <stdlib.h>
+#include <string.h>
+
+se_exec_data_t* exec_Process_Process_basic_exec_execute_4(int c, char *prog, char *args, int len, int pipeflag) {
+       se_exec_data_t* result = NULL;
+       int id;
+       int in_fd[2];
+       int out_fd[2];
+       int err_fd[2];
+       if (pipeflag & 1)
+               pipe(in_fd);
+       if (pipeflag & 2)
+               pipe(out_fd);
+       if (pipeflag & 4)
+               pipe(err_fd);
+                                       
+       id = fork();
+       if (id == 0)
+               { /* child */
+               char **arg = malloc(sizeof(char*) * (len+1));
+               char *c = args;
+               int i;
+
+               /* Prepare args */
+               for(i=0; i<len; i++)
+               {
+                       arg[i] = c;
+                       c += strlen(c) + 1;
+               }
+               arg[len] = NULL;
+               
+               /* Connect pipe */
+               if (pipeflag & 1)
+               {
+                       close(0);
+                       dup2(in_fd[0], 0);
+                       close(in_fd[0]);
+                       close(in_fd[1]);
+               }
+               if (pipeflag & 2)
+               {
+                       close(1);
+                       dup2(out_fd[1], 1);
+                       close(out_fd[0]);
+                       close(out_fd[1]);
+               }
+               if (pipeflag & 4)
+               {
+                       close(2);
+                       dup2(err_fd[1], 2);
+                       close(err_fd[0]);
+                       close(err_fd[1]);
+               }
+
+               /* calls */
+               execvp(prog, arg);
+               abort();
+       }
+       else if (id > 0)
+               { /* father */
+               result = (se_exec_data_t*)malloc(sizeof(se_exec_data_t));
+               result->id = id;
+               result->running = 1;
+               if (pipeflag & 1)
+               {
+                       result->in_fd = in_fd[1];
+                       close(in_fd[0]);
+               } else
+                       result->in_fd = -1;
+                       
+               if (pipeflag & 2)
+               {
+                       result->out_fd = out_fd[0];
+                       close(out_fd[1]);
+               } else
+                       result->out_fd = -1;
+               
+               if (pipeflag & 4)
+               {
+                       result->err_fd = err_fd[0];
+                       close(err_fd[1]);
+               } else
+                       result->err_fd = -1;
+       }
+       return result;
+}
+
+int exec_NativeProcess_NativeProcess_is_finished_0(void*d) {
+       se_exec_data_t*data = (se_exec_data_t*)d;
+       int result = (int)0;
+       int status;
+       if (data->running) {
+               int id = waitpid(data->id, &status, WNOHANG);
+               if (id != 0) {
+                       /* child is finished */
+                       result = (int)(id == data->id);
+                       data->status = WEXITSTATUS(status);
+                       data->running = 0;
+               }
+       }
+       else{
+               result = (int)1;
+       }
+       return result;
+}
+
+void exec_NativeProcess_NativeProcess_wait_0(void*d) {
+       se_exec_data_t*data = (se_exec_data_t*)d;
+       int status;
+       if (data->running) {
+               waitpid(data->id, &status, 0);
+               data->status = WEXITSTATUS(status);
+               data->running = 0;
+       }
+}
diff --git a/lib/standard/exec_nit.h b/lib/standard/exec_nit.h
new file mode 100644 (file)
index 0000000..4f4311e
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef __EXEC_NIT_H
+#define __EXEC_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#define _POSIX_C_SOURCE 1
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <signal.h>
+
+typedef struct se_exec_data se_exec_data_t;
+struct se_exec_data {
+       pid_t id;
+       int running;
+       int status;
+       int in_fd;
+       int out_fd;
+       int err_fd;
+};
+
+#define string_NativeString_NativeString_system_0(self) (system(self))
+
+#define exec_NativeProcess_NativeProcess_id_0(self) (((se_exec_data_t*)self)->id)
+#define exec_NativeProcess_NativeProcess_status_0(self) (((se_exec_data_t*)self)->status)
+#define exec_NativeProcess_NativeProcess_kill_1(self, p0) do{kill(((se_exec_data_t*)(self))->id, (p0));}while(0)
+
+#define exec_NativeProcess_NativeProcess_in_fd_0(self) (((se_exec_data_t*)self)->in_fd)
+#define exec_NativeProcess_NativeProcess_out_fd_0(self) (((se_exec_data_t*)self)->out_fd)
+#define exec_NativeProcess_NativeProcess_err_fd_0(self) (((se_exec_data_t*)self)->err_fd)
+
+int exec_NativeProcess_NativeProcess_is_finished_0(void*);
+void exec_NativeProcess_NativeProcess_wait_0(void*);
+se_exec_data_t* exec_Process_Process_basic_exec_execute_4(int, char *, char *, int, int);
+
+#endif
diff --git a/lib/standard/file.nit b/lib/standard/file.nit
new file mode 100644 (file)
index 0000000..5390293
--- /dev/null
@@ -0,0 +1,295 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module handle file input and output
+package file
+
+intrude import stream
+intrude import string
+import string_search
+
+redef class Object
+# Simple I/O
+
+       # Print `objects' on the standard output (`stdout').
+       protected meth printn(objects: Object...)
+       do
+               stdout.write(objects.to_s)
+       end
+
+       # Print an `object' on the standard output (`stdout') and add a newline.
+       protected meth print(object: Object)
+       do
+               if object != null then
+                       stdout.write(object.to_s)
+               end
+               stdout.write("\n")
+       end
+
+       # Read a character from the standard input (`stdin').
+       protected meth getc: Char
+       do
+               return stdin.read_char.ascii
+       end
+
+       # Read a line from the standard input (`stdin').
+       protected meth gets: String
+       do
+               return stdin.read_line
+       end
+end
+
+# File Abstract Stream
+class FStream
+special IOS
+special NativeFileCapable
+       
+       # The path of the file.
+       readable attr _path: String
+
+       # The FILE *.
+       attr _file: NativeFile
+
+       meth file_stat: FileStat
+       do return _file.file_stat end
+end
+
+# File input stream
+class IFStream
+special FStream
+special BufferedIStream
+       # Misc
+
+       meth reopen
+       do
+               if not eof then close
+               _file = io_open_read(_path.to_cstring)
+               _end_reached = false
+               _buffer_pos = 0
+               _buffer.clear
+       end
+
+       redef meth close
+       do
+               var i = _file.io_close
+               _end_reached = true
+       end
+
+       # Fill the internal read buffer. Needed by read operations.
+       redef meth fill_buffer
+       do
+               var nb = _file.io_read(_buffer._items, _buffer._capacity)
+               if nb <= 0 then
+                       _end_reached = true
+                       nb = 0
+               end
+               _buffer._length = nb
+               _buffer_pos = 0
+       end
+       
+       # End of file?
+       redef readable attr _end_reached: Bool
+
+       # Open the file at `path' for reading.
+       init open(path: String)
+       do
+               _path = path
+               prepare_buffer(10)
+               _file = io_open_read(_path.to_cstring)
+               assert cant_open_file: _file != null
+       end
+
+       private init without_file do end
+end
+
+# File output stream
+class OFStream
+special FStream
+special OStream
+       
+       # Write a string.
+       redef meth write(s)
+       do
+               assert _writable
+               write_native(s.to_cstring, s.length)
+       end
+
+       redef meth is_writable do return _writable
+       
+       redef meth close
+       do
+               var i = _file.io_close
+               _writable = false
+       end
+
+       # Is the file open in write mode
+       attr _writable: Bool
+       
+       # Write `len' bytes from `native'.
+       private meth write_native(native: NativeString, len: Int)
+       do
+               assert _writable
+               var err = _file.io_write(native, len)
+               if err != len then
+                       # Big problem
+                       printn("Problem in writing : ", err, " ", len, "\n")
+               end
+       end
+       
+       # Open the file at `path' for writing.
+       init open(path: String)
+       do
+               _file = io_open_write(path.to_cstring)
+               assert cant_open_file: _file != null
+               _path = path
+               _writable = true
+       end
+       
+       private init without_file do end
+end
+
+###############################################################################
+
+class Stdin
+special IFStream
+       private init do
+               _file = native_stdin
+               _path = "/dev/stdin"
+               prepare_buffer(1)
+       end
+end
+
+class Stdout
+special OFStream
+       private init do
+               _file = native_stdout
+               _path = "/dev/stdout"
+               _writable = true
+       end
+end
+
+class Stderr
+special OFStream
+       private init do
+               _file = native_stderr
+               _path = "/dev/stderr"
+               _writable = true
+       end
+end
+
+###############################################################################
+
+redef class String
+       # return true if a file with this names exists
+       meth file_exists: Bool do return to_cstring.file_exists
+
+       meth file_stat: FileStat do return to_cstring.file_stat
+
+       meth strip_extension(ext: String): String
+       do
+               if has_suffix(ext) then
+                       return substring(0, length - ext.length)
+               end
+               return self
+       end
+
+       meth basename(ext: String): String
+       do
+               var pos = last_index_of_from('/', _length - 1)
+               var n = self
+               if pos >= 0 then
+                       n = substring_from(pos+1)
+               end
+               return n.strip_extension(ext)
+       end
+
+       meth dirname: String
+       do
+               var pos = last_index_of_from('/', _length - 1)
+               if pos >= 0 then
+                       return substring(0, pos)
+               else
+                       return "."
+               end
+       end
+
+       meth file_path: String
+       do
+               var l = _length
+               var pos = last_index_of_from('/', l - 1)
+               if pos >= 0 then
+                       return substring(0, pos)
+               end
+               return "."
+       end
+
+       # Create a directory (and all intermediate directories if needed)
+       meth mkdir
+       do
+               var dirs = self.split_with("/")
+               var path = new String
+               if dirs.is_empty then return
+               if dirs[0].is_empty then
+                       # it was a starting /
+                       path.add('/')
+               end
+               for d in dirs do
+                       if d.is_empty then continue
+                       path.append(d)
+                       path.add('/')
+                       path.to_cstring.file_mkdir
+               end
+       end
+end
+
+redef class NativeString
+       private meth file_exists: Bool is extern "string_NativeString_NativeString_file_exists_0"
+       private meth file_stat: FileStat is extern "string_NativeString_NativeString_file_stat_0"
+       private meth file_mkdir: Bool is extern "string_NativeString_NativeString_file_mkdir_0"
+end
+
+universal FileStat
+special Pointer
+# This class is system dependent ... must reify the vfs
+       meth mode: Int is extern "file_FileStat_FileStat_mode_0"
+       meth atime: Int is extern "file_FileStat_FileStat_atime_0"
+       meth ctime: Int is extern "file_FileStat_FileStat_ctime_0"
+       meth mtime: Int is extern "file_FileStat_FileStat_mtime_0"
+       meth size: Int is extern "file_FileStat_FileStat_size_0"
+end
+
+# Instance of this class are standard FILE * pointers
+private universal NativeFile
+special Pointer
+       meth io_read(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_read_2"
+       meth io_write(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_write_2"
+       meth io_close: Int is extern "file_NativeFile_NativeFile_io_close_0"
+       meth file_stat: FileStat is extern "file_NativeFile_NativeFile_file_stat_0"
+end
+
+private class NativeFileCapable
+       meth io_open_read(path: NativeString): NativeFile is extern "file_NativeFileCapable_NativeFileCapable_io_open_read_1"
+       meth io_open_write(path: NativeString): NativeFile is extern "file_NativeFileCapable_NativeFileCapable_io_open_write_1"
+       meth native_stdin: NativeFile is extern "file_NativeFileCapable_NativeFileCapable_native_stdin_0"
+       meth native_stdout: NativeFile is extern "file_NativeFileCapable_NativeFileCapable_native_stdout_0"
+       meth native_stderr: NativeFile is extern "file_NativeFileCapable_NativeFileCapable_native_stderr_0"
+end
+
+# Standard input.
+meth stdin: IFStream do return once new Stdin
+
+# Standard output.
+meth stdout: OFStream do return once new Stdout
+
+# Standard output for error.
+meth stderr: OFStream do return once new Stderr
diff --git a/lib/standard/file_nit.c b/lib/standard/file_nit.c
new file mode 100644 (file)
index 0000000..cf14118
--- /dev/null
@@ -0,0 +1,49 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#define _POSIX_C_SOURCE 1
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <string.h>
+
+int string_NativeString_NativeString_file_exists_0(char *f){
+       FILE *hdl = fopen(f,"r");
+       if(hdl != NULL){
+               fclose(hdl);
+       }
+       return hdl != NULL;
+}
+
+static int to_nit_file_stat(struct stat* st){
+       struct stat* stat_element;
+       stat_element = malloc(sizeof(struct stat));
+       return (int)memcpy(stat_element, st, sizeof(struct stat));
+}
+
+int string_NativeString_NativeString_file_stat_0(char *f){
+       struct stat buff;
+       if(stat(f, &buff) != -1)
+               return to_nit_file_stat(&buff);
+       return 0;
+}
+
+int file_NativeFile_NativeFile_file_stat_0(FILE *f){
+       struct stat buff;
+       if(fstat(fileno(f), &buff) != -1)
+               return to_nit_file_stat(&buff);
+       return 0;
+}
diff --git a/lib/standard/file_nit.h b/lib/standard/file_nit.h
new file mode 100644 (file)
index 0000000..bca7e90
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef __FILE_H
+#define __FILE_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+extern int string_NativeString_NativeString_file_exists_0(char *f);
+extern void *string_NativeString_NativeString_file_stat_0(char *f);
+extern void *file_NativeFile_NativeFile_file_stat_0(FILE *f);
+
+#define file_NativeFile_NativeFile_io_read_2(p, b, l) fread((b), 1, (l), (FILE*)(p))
+#define file_NativeFile_NativeFile_io_write_2(p, b, l) fwrite((b), 1, (l), (FILE*)(p))
+#define file_NativeFile_NativeFile_io_close_0(self) fclose((FILE*)(self))
+
+#define file_NativeFileCapable_NativeFileCapable_io_open_read_1(self, p0) fopen((p0), "r")
+
+#define file_NativeFileCapable_NativeFileCapable_io_open_write_1(self, p0) fopen((p0), "w")
+#define file_NativeFileCapable_NativeFileCapable_native_stdin_0(self) stdin
+#define file_NativeFileCapable_NativeFileCapable_native_stdout_0(self) stdout
+#define file_NativeFileCapable_NativeFileCapable_native_stderr_0(self) stderr
+#define file_FileStat_FileStat_mode_0(self) (((struct stat*)self)->st_mode)
+#define file_FileStat_FileStat_atime_0(self) (((struct stat*)self)->st_atime)
+#define file_FileStat_FileStat_ctime_0(self) (((struct stat*)self)->st_ctime)
+#define file_FileStat_FileStat_mtime_0(self) (((struct stat*)self)->st_mtime)
+#define file_FileStat_FileStat_size_0(self) (((struct stat*)self)->st_size)
+
+#define string_NativeString_NativeString_file_mkdir_0(p) (mkdir(p, 0777))
+#endif
+
diff --git a/lib/standard/hash.nit b/lib/standard/hash.nit
new file mode 100644 (file)
index 0000000..0efd405
--- /dev/null
@@ -0,0 +1,452 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module is about hashable things.
+# It introduces an hash funtion in objects.
+# It also introduces two classes, an Hashmap and an Hashset.
+package hash
+
+intrude import string
+
+redef class Object
+       # The hash code of the object.
+       # Assuming that a = b -> a.hash = b.hash
+       ##
+       # Without redefinition, it is the `id' of the instance.
+       meth hash: Int do return object_id / 8
+end
+
+redef class String
+       redef meth hash
+       do
+               # djb2 hash algorythm
+               var h = 5381
+               var i = _length - 1
+               var it = _items
+               while i >= 0 do
+                       h = (h * 32) + h + it[i].ascii
+                       i -= 1
+               end
+               return h
+
+       end
+end
+
+redef class Int
+       redef meth hash do return self
+end
+
+redef class Char
+       redef meth hash do return ascii
+end
+
+redef class Bool
+       redef meth hash
+       do
+               if self then
+                       return 1
+               else
+                       return 0
+               end
+       end
+end
+
+# A HashCollection is an array of HashNode[K] indexed by the K hash value
+private class HashCollection[K: Object, N: HashNode[K], E: Object]
+special Collection[E]
+special ArrayCapable[N]
+       attr _array: NativeArray[N] # Used to store items
+       attr _capacity: Int # Size of _array
+       redef readable attr _length: Int # Number of items in the map
+
+       readable attr _first_item: N # First added item (used to visit items in nice order)
+       attr _last_item: N # Last added item (same)
+
+       # The last index accessed
+       attr _last_accessed_index: Int
+
+       # The last key accessed
+       attr _last_accessed_key: K
+
+       # Return the index of the k element
+       meth index_at(k: K): Int
+       do
+               var arr = _array
+               assert k != null
+
+               # Fisrt step: look in the last indexed elt
+               if k == _last_accessed_key then return _last_accessed_index
+
+               # Compute the base position of the key
+               var base = k.hash % _capacity
+               if base < 0 then base = - base
+
+               # Look for the key in the array
+               var cur = base
+               while true do
+                       var c = arr[cur]
+                       if c == null or c.key == k then # REAL equals
+                               _last_accessed_index = cur
+                               _last_accessed_key = k
+                               return cur
+                       end
+                       cur -= 1
+                       if cur < 0 then cur = _capacity - 1
+                       assert no_loop: cur != base
+               end
+               abort
+       end
+
+       # Add a new node (should be free)
+       meth store(index: Int, node: N)
+       do
+               # Store the item in the list
+               if _first_item == null then
+                       _first_item = node
+               else
+                       _last_item.next_item = node
+               end
+               node.prev_item = _last_item
+               node.next_item = null
+               _last_item = node
+               # Then store it in the array
+               assert _array[index] == null
+               _array[index] = node
+               var l = _length
+               _length = l + 1
+               l = (l + 5) * 150 / 100
+               if l >= _capacity then
+                       enlarge(l * 2)
+               end
+       end
+
+       meth remove_index(i: Int)
+       do
+               assert correct_index: i >= 0 and i < _capacity
+               var node = _array[i]
+               assert has_couple: node != null
+               # Remove the item in the list
+               var prev = node.prev_item
+               var next = node.next_item
+               if prev != null then
+                       prev.next_item = next
+               else
+                       _first_item = next
+               end
+               if next != null then
+                       next.prev_item = prev
+               else
+                       _last_item = prev
+               end
+               # Remove the item in the array
+               _array[i] = null
+               _length -= 1
+               # Now replaces things before if needed
+               while true do
+                       i -= 1
+                       if i < 0 then
+                               i = _capacity - 1
+                       end
+                       var n = _array[i]
+                       if n == null then
+                               return
+                       end
+                       var i2 = index_at(n.key)
+                       if i != i2 then
+                               _array[i] = null
+                               assert _array[i2] == null
+                               _array[i2] = n
+                       end
+               end
+       end
+
+       meth raz
+       do
+               var i = _capacity - 1
+               while i >= 0 do
+                       _array[i] = null
+                       i -= 1
+               end
+               _length = 0
+               _first_item = null
+               _last_item = null
+               _last_accessed_key = null
+       end
+
+       meth enlarge(cap: Int)
+       do
+               var old_cap = _capacity
+               # get a new capacity
+               # cap = cap * 130 / 100 + 5 + 1000 # /
+               if cap < _length + 1 then cap = _length + 1
+               if cap <= _capacity then return
+               _capacity = cap
+               _last_accessed_key = null
+
+               # get a new array
+               var new_array = calloc_array(cap)
+               _array = new_array
+
+               # clean the new array
+               var i = cap - 1
+               while i >=0 do
+                       new_array[i] = null
+                       i -= 1
+               end
+
+               if _capacity <= old_cap then return
+
+               var new_array = _array
+               # Reput items in the array
+               var node = _first_item
+               while node != null do
+                       var ind = index_at(node.key)
+                       assert new_array[ind] == null
+                       new_array[ind] = node
+                       node = node.next_item
+               end
+               _last_accessed_key = null
+       end
+end
+
+private class HashNode[K]
+       meth key: K is abstract
+       type N: HashNode[K]
+       readable writable attr _next_item: N
+       readable writable attr _prev_item: N
+end
+
+class HashMap[K, V]
+special CoupleMap[K, V]
+special HashCollection[K, HashMapNode[K, V], V]
+
+       redef meth iterator: HashMapIterator[K, V] do return new HashMapIterator[K,V](self)
+
+       redef meth first
+       do
+               assert _length > 0
+               return _first_item.second
+       end
+
+       redef meth is_empty do return _length == 0
+
+       redef meth count(item)
+       do
+               var nb = 0
+               var i = 0
+               while i < _capacity do
+                       var c = _array[i]
+                       if c != null and c.second == item then nb += 1
+                       i += 1
+               end
+               return nb
+       end
+
+       redef meth has(item)
+       do
+               var i = 0
+               while i < _capacity do
+                       var c = _array[i]
+                       if c != null and c.second == item then return true 
+                       i += 1
+               end
+               return false
+       end
+
+       redef meth has_only(item)
+       do
+               var i = 0
+               while i < _capacity do
+                       var c = _array[i]
+                       if c != null and c.second != item then return false
+                       i += 1
+               end
+               return true
+       end
+
+       redef meth []=(key, v)
+       do
+               assert key != null
+               var i = index_at(key)
+               var c = _array[i]
+               if c != null then
+                       c.first = key
+                       c.second = v
+               else
+                       store(i, new HashMapNode[K, V](key, v))
+               end
+       end
+
+       redef meth remove(item)
+       do
+               var i = 0
+               while i < _capacity do
+                       var c = _array[i]
+                       if c != null and c.second == item then
+                               remove_index(i)
+                               return
+                       end
+                       i += 1
+               end
+       end
+
+       redef meth remove_at(key) do remove_index(index_at(key))
+
+       redef meth clear do raz
+
+       redef meth couple_at(key) do return _array[index_at(key)]
+
+       init
+       do
+               _capacity = 0
+               _length = 0
+               enlarge(0)
+       end
+end
+
+class HashMapNode[K, V]
+special Couple[K, V]
+special HashNode[K]
+       redef meth key do return first
+       redef type N: HashMapNode[K, V]
+
+       redef init(k: K, v: V)
+       do
+               first = k
+               second = v 
+       end
+end
+
+class HashMapIterator[K, V]
+special MapIterator[K, V]
+       redef meth is_ok do return _node != null
+
+       redef meth item
+       do
+               assert is_ok
+               return _node.second
+       end
+
+       redef meth item=(value)
+       do
+               assert is_ok
+               _node.second = value
+       end
+
+       redef meth key
+       do
+               assert is_ok
+               return _node.first
+       end
+
+       redef meth next
+       do
+               assert is_ok
+               _node = _node.next_item
+       end
+
+       # The map to iterate on
+       attr _map: HashMap[K, V]
+
+       # The current node
+       attr _node: HashMapNode[K, V]
+
+       init(map: HashMap[K, V])
+       do
+               _map = map
+               _node = map.first_item
+       end
+end
+
+class HashSet[E]
+special Set[E]
+special HashCollection[E, HashSetNode[E], E]
+
+       redef meth is_empty do return _length == 0
+
+       redef meth first
+       do
+               assert _length > 0
+               return _first_item.key
+       end
+
+       redef meth has(item)
+       do
+               return _array[index_at(item)] != null
+       end
+
+       redef meth add(item)
+       do
+               var i = index_at(item)
+               var c = _array[i]
+               if c != null then
+                       c.key = item
+               else
+                       store(i,new HashSetNode[E](item))
+               end
+       end
+
+       redef meth remove(item) do remove_index(index_at(item))
+
+       redef meth clear do raz
+
+       redef meth iterator do return new HashSetIterator[E](self)
+
+       init
+       do
+               _capacity = 0
+               _length = 0
+               enlarge(0)
+       end
+end
+
+class HashSetNode[E]
+special HashNode[E]
+       redef type N: HashSetNode[E]
+
+       redef readable writable attr _key: E
+
+       init(e: E)
+       do
+               _key = e
+       end
+end
+
+class HashSetIterator[E]
+special Iterator[E]
+       redef meth is_ok do return _node != null
+
+       redef meth item
+       do
+               assert is_ok
+               return _node.key
+       end
+
+       redef meth next
+       do
+               assert is_ok
+               _node = _node.next_item
+       end
+
+       # The set to iterate on
+       attr _set: HashSet[E]
+
+       # The position in the internal map storage
+       attr _node: HashSetNode[E]
+
+       init(set: HashSet[E])
+       do
+               _set = set
+               _node = set.first_item
+       end
+end
+
diff --git a/lib/standard/kernel.nit b/lib/standard/kernel.nit
new file mode 100644 (file)
index 0000000..1377c71
--- /dev/null
@@ -0,0 +1,389 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module is the root of the standard module hierarchy.
+package kernel
+
+import end # Mark this module is a top level one. (must be only one)
+
+###############################################################################
+# System Classes                                                              #
+###############################################################################
+
+# The root of the class hierarchy.
+# Each class implicitely specialize Object.
+interface Object
+       # The unique object identifier in the class
+       meth object_id: Int is intern
+
+       # Return true is `self' and `other' have the same dynamic type
+       meth is_same_type(other: Object): Bool is intern
+
+       # Have `self' and `other' the same value?
+       ##
+       # Implicitely, the default implementation, is ==
+       meth ==(other: Object): Bool do return self is other
+
+       # Have `self' and `other' different values?
+       ##
+       # != is equivament with "not =".
+       meth !=(other: Object): Bool do return not (self == other)
+
+       # Display self on stdout (debug only).
+       meth output
+       do
+               '<'.output
+               object_id.output
+               '>'.output
+       end
+
+       protected meth exit(exit_value: Int) is intern # Quit the program.
+       protected meth sys: Sys is intern # The global sys object
+end
+
+# The main class of the program.
+class Sys
+       # Instructions outside classes implicetely redefine this method.
+       meth main do end
+end
+
+###############################################################################
+# Abstract Classes                                                            #
+###############################################################################
+
+# The ancestor of class where objects are in a total order.
+# In order to work, the method '<' has to be redefined.
+interface Comparable
+       type OTHER: Comparable
+
+       # Is `self' lesser than `other'
+       meth <(other: OTHER): Bool is abstract 
+
+       # not `other' < `self'
+       meth <=(other: OTHER): Bool do return not other < self
+
+       # not `self' < `other' 
+       meth >=(other: OTHER): Bool do return not self < other
+
+       # `other' < `self'
+       meth >(other: OTHER): Bool do return other < self
+
+       # -1 if <, +1 if > and 0 otherwise
+       meth <=>(other: OTHER): Int
+       do
+               if self < other then
+                       return -1
+               else if other < self then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       # c <= self <= d
+       meth is_between(c: OTHER, d: OTHER): Bool
+       do
+               return c <= self and self <= d
+       end
+
+       # The maximum between `self' and `other' (prefers `self' if equals).
+       meth max(other: OTHER): OTHER
+       do
+               if self < other then
+                       return other
+               else
+                       return self
+               end
+       end
+
+       # The minimum between `self' and `c' (prefer `self' if equals)
+       meth min(c: OTHER): OTHER
+       do
+               if c < self then
+                       return c
+               else
+                       return self
+               end
+       end
+end
+
+# Discrete total orders.
+interface Discrete
+special Comparable
+
+       redef type OTHER: Discrete
+
+       # The next element.
+       meth succ: OTHER do return self + 1
+
+       # The previous element.
+       meth prec: OTHER do return self - 1
+
+       # The `i' th successor element.
+       meth +(i: Int): OTHER is abstract
+
+       # The `i' th previous element.
+       meth -(i: Int): OTHER is abstract
+
+       # The distance between self and d.
+       # 10.distance(15)       # --> 5
+       # 'Z'.distance('A')     # --> 25
+       meth distance(d: OTHER): Int
+       do
+               var cursor: OTHER
+               var stop: OTHER
+               if self < d then
+                       cursor = self
+                       stop = d
+               else if self > d then
+                       cursor = d
+                       stop = self
+               else
+                       return 0
+               end
+
+               var nb = 0
+               while cursor < stop do
+                       cursor = cursor.succ
+                       nb += 1
+               end
+               return nb
+       end
+end
+
+###############################################################################
+# Native classes                                                              #
+###############################################################################
+
+# Native booleans.
+# `true' and `false' are the only instances.
+# Boolean are manipulated trought three special operators:
+#       `and', `or', `not'.
+# Booleans are mainly used by conditional statement and loops.
+universal Bool
+       redef meth object_id is intern
+       redef meth ==(b) is intern
+       redef meth !=(b) is intern
+       redef meth output is intern
+end
+
+# Native floating point numbers.
+# Corresponds to C float.
+universal Float
+       redef meth object_id is intern
+       redef meth output is intern
+
+       meth <=(i: Float): Bool is intern
+       meth <(i: Float): Bool is intern
+       meth >=(i: Float): Bool is intern
+       meth >(i: Float): Bool is intern
+       meth +(i: Float): Float is intern
+       meth -: Float is intern
+       meth -(i: Float): Float is intern
+       meth *(i: Float): Float is intern
+       meth /(i: Float): Float is intern
+       
+       # The integer part of `self'.
+       meth to_i: Int is intern
+end
+
+# Native integer numbers.
+# Correspond to C int.
+universal Int
+special Discrete
+       redef type OTHER: Int
+
+       redef meth object_id is intern
+       redef meth ==(i) is intern
+       redef meth !=(i) is intern
+       redef meth output is intern
+
+       redef meth <=(i) is intern
+       redef meth <(i) is intern
+       redef meth >=(i) is intern
+       redef meth >(i) is intern
+       redef meth +(i) is intern
+       meth -: Int is intern
+       redef meth -(i) is intern
+       meth *(i: Int): Int is intern
+       meth /(i: Int): Int is intern
+       meth %(i: Int): Int is intern   
+       meth lshift(i: Int): Int is intern
+       meth rshift(i: Int): Int is intern   
+
+       # The float equivalent of `self'
+       meth to_f: Float is intern
+
+       redef meth succ is intern
+       redef meth prec is intern
+       redef meth distance(i)
+       do
+               var d = self - i
+               if d >= 0 then
+                       return d
+               else
+                       return -d
+               end
+       end
+       
+       redef meth <=>(other)
+       do
+               if self < other then
+                       return -1
+               else if other < self then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       redef meth is_between(c, d)
+       do
+               if self < c or d < self then 
+                       return false
+               else 
+                       return true
+               end
+       end
+
+       redef meth max(other)
+       do
+               if self < other then
+                       return other
+               else
+                       return self
+               end
+       end
+
+       redef meth min(c)
+       do
+               if c < self then
+                       return c
+               else
+                       return self
+               end
+       end
+
+       # The character whose ASCII value is `self'.
+       meth ascii: Char is intern
+
+       # Number of digits of an integer in base `b' plus one if negative)
+       meth digit_count(b: Int): Int
+       do
+               var d: Int # number of digits
+               var n: Int # current number
+               # Sign
+               if self < 0 then
+                       d = 1
+                       n = - self
+               else if self == 0 then
+                       return 1
+               else
+                       d = 0
+                       n = self
+               end
+               # count digits
+               while n > 0 do
+                       d += 1
+                       n = n / b       # euclidian division /          
+               end
+               return d
+       end
+
+       # Return the corresponding digit character
+       # If 0 <= `self' <= 9, return the corresponding character.
+       # If 10 <= `self' <= 36, return the corresponding letter [a..z].
+       meth to_c: Char
+       do
+               assert self >= 0 and self <= 36 # TODO plan for this
+               if self < 10 then
+                       return (self + '0'.ascii).ascii
+               else
+                       return (self + ('a'.ascii - 10)).ascii
+               end
+       end
+end
+
+# Native characters.
+# Characters are denoted with simple quote.
+# eg. 'a' or '\n'.
+universal Char
+special Discrete
+       redef type OTHER: Char
+
+       redef meth object_id is intern
+       redef meth ==(o) is intern
+       redef meth !=(o) is intern
+       redef meth output is intern
+
+       redef meth <=(i) is intern
+       redef meth <(i) is intern
+       redef meth >=(i) is intern
+       redef meth >(i) is intern
+
+       redef meth succ is intern
+       redef meth prec is intern
+
+       redef meth distance(c)
+       do
+               var d = self.ascii - c.ascii
+               if d >= 0 then
+                       return d
+               else
+                       return -d
+               end
+       end
+
+       # If `self' is a digit then return this digit.
+       meth to_i: Int
+       do
+
+               if self == '-' then
+                       return -1
+               else if self >= '0' and self <= '9' then
+                       return self.ascii - '0'.ascii
+               else
+                       return self.to_lower.ascii - ('a'.ascii + 10)
+               end
+       end
+
+       # the ascii value of self
+       meth ascii: Int is intern
+
+       redef meth +(i) is intern
+       redef meth -(i) is intern
+
+       # Char to lower case
+       meth to_lower : Char
+       do
+               if self >= 'A' and self <= 'Z' then
+                       return (ascii + ('a'.distance('A'))).ascii
+               else
+                       return self
+               end
+       end
+
+       # Char to upper case
+       meth to_upper : Char
+       do
+               if self >= 'a' and self <= 'z' then
+                       return (ascii - ('a'.distance('A'))).ascii
+               else
+                       return self
+               end
+       end
+end
+
+# Pointer classes are used to manipulate extern C structures.
+universal Pointer
+end
diff --git a/lib/standard/list.nit b/lib/standard/list.nit
new file mode 100644 (file)
index 0000000..5ab2cf3
--- /dev/null
@@ -0,0 +1,285 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module handle double linked lists
+package list
+
+import abstract_collection
+
+# Double linked lists.
+class List[E]
+special IndexedCollection[E]
+# Access
+       redef meth [](index) do return get_node(index).item
+
+       redef meth []=(index, item) do get_node(index).item = item
+
+       # O(1)
+       redef meth first do return _head.item
+
+       # O(1)
+       redef meth first=(e) do _head.item = e
+
+       # O(1)
+       redef meth last do return _tail.item
+
+       # O(1)
+       redef meth last=(e) do _tail.item = e
+
+# Queries
+
+       # O(1)
+       redef meth is_empty do return _head == null
+
+       # O(n)
+       redef meth length
+       do
+               var l = 0
+               var t = _head
+               while t != null do
+                       l += 1
+                       t = t.next 
+               end
+               return l      
+       end
+
+       # O(n)
+       redef meth has(e) do return search_node_after(e, _head) != null
+
+       redef meth has_only(e)
+       do
+               var node = _head
+               while node != null do
+                       if node.item != e then return false
+                       node = node.next
+               end
+               return true
+       end
+
+       redef meth count(e)
+       do
+               var nb = 0
+               var node = _head
+               while node != null do
+                       if node.item != e then nb += 1
+                       node = node.next
+               end
+               return nb
+       end
+
+       redef meth has_key(index) do return get_node(index) != null
+
+# Add elements
+
+       # O(1)
+       redef meth push(e)
+       do
+               var node = new ListNode[E](e)
+               if _tail == null then
+                       _head = node
+               else
+                       _tail.next = node
+                       node.prev = _tail
+               end
+               _tail = node
+       end
+
+       # O(1)
+       redef meth unshift(e)
+       do
+               var node = new ListNode[E](e)
+               if _head == null then
+                       _tail = node
+               else
+                       node.next = _head
+                       _head.prev = node
+               end
+               _head = node
+       end
+
+       # Append `l' to `self' but clear `l'.
+       ##
+       # O(1)
+       meth link(l: List[E])
+       do
+               if _tail == null then
+                       _head = l._head
+               else if l._head != null then
+                       _tail.next = l._head
+                       _tail.next.prev = _tail
+               end
+               _tail = l._tail
+               l.clear
+       end
+
+# Remove elements
+
+       # O(1)
+       redef meth pop
+       do
+               var node = _tail
+               _tail = node.prev
+               node.prev = null
+               if _tail == null then
+                       _head = null
+               else
+                       _tail.next = null
+               end
+               return node.item
+       end
+
+       # O(1)
+       redef meth shift
+       do
+               var node = _head
+               _head = node.next
+               node.next = null
+               if _head == null then
+                       _tail = null
+               else
+                       _head.prev = null
+               end
+               return node.item
+       end
+
+       redef meth remove(e)
+       do
+               var node = search_node_after(e, _head)
+               if node != null then remove_node(node)
+       end
+
+       redef meth remove_at(i)
+       do
+               var node = get_node(i)
+               if node != null then remove_node(node)
+       end
+
+       redef meth clear
+       do
+               _head = null
+               _tail = null
+       end
+
+
+       redef meth iterator: ListIterator[E] do return new ListIterator[E](_head)
+
+       # Build an empty list.
+       init do end
+       
+       # Build a list filled with the items of `coll'.
+       init from(coll: Collection[E]) do append(coll)
+
+       # The first node of the list
+       attr _head: ListNode[E]
+
+       # The last node of the list
+       attr _tail: ListNode[E]
+
+       # Get the `i'th node. get `null' otherwise.
+       private meth get_node(i: Int): ListNode[E]
+       do
+               var n = _head
+               if i < 0 then
+                       return null
+               end
+               while n != null and i > 0 do
+                       n = n.next
+                       i -= 1
+               end
+               return n 
+       end
+
+       # get the first node that contains e after 'after', null otherwise
+       private meth search_node_after(e: E, after: ListNode[E]): ListNode[E]
+       do
+               var n = after
+               while n != null and n.item != e do n = n.next
+               return n
+       end
+
+       # Remove the node (ie. atach prev and next)
+       private meth remove_node(node: ListNode[E])
+       do
+               if node.prev == null then
+                       _head = node.next
+                       if node.next == null then
+                               _tail = null
+                       else
+                               node.next.prev = null
+                       end
+               else if node.next == null then
+                       _tail = node.prev
+                       node.prev.next = null
+               else
+                       node.prev.next = node.next
+                       node.next.prev = node.prev
+               end
+       end
+
+       private meth insert_before(element: E, node: ListNode[E])
+       do
+               var nnode = new ListNode[E](element)
+               var prev = node.prev
+               if prev == null then
+                       _head = nnode
+               else
+                       prev.next = nnode
+               end
+               nnode.prev = prev
+               nnode.next = node
+               node.prev = nnode
+       end
+end
+
+# This is the iterator class of List
+class ListIterator[E]
+special IndexedIterator[E]
+       redef meth item do return _node.item
+
+       redef meth item=(e) do _node.item = e
+
+       redef meth is_ok do return not _node == null
+
+       redef meth next
+       do
+               _node = _node.next
+               _index += 1
+       end
+
+       # Build a new iterator from `node'.
+       private init(node: ListNode[E])
+       do
+               _node = node
+               _index = 0
+       end
+
+       # The current node of the list
+       attr _node: ListNode[E]
+
+       # The index of the current node
+       redef readable attr _index: Int
+end
+
+# Linked nodes that constitute a linked list.
+private class ListNode[E]
+special Container[E]
+       init(i: E)
+       do 
+               item = i
+       end
+
+       # The next node.
+       readable writable attr _next: ListNode[E]
+
+       # The previous node.
+       readable writable attr _prev: ListNode[E]
+end
diff --git a/lib/standard/math.nit b/lib/standard/math.nit
new file mode 100644 (file)
index 0000000..470c561
--- /dev/null
@@ -0,0 +1,41 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# Mathematical operations
+package math
+
+import kernel
+
+redef class Int
+       meth rand: Int is extern "kernel_Int_Int_rand_0"
+end
+
+redef class Float
+       meth sqrt: Float is extern "kernel_Float_Float_sqrt_0"
+       meth cos: Float is extern "kernel_Float_Float_cos_0"
+       meth sin: Float is extern "kernel_Float_Float_sin_0"
+       meth tan: Float is extern "kernel_Float_Float_tan_0"
+       meth acos: Float is extern "kernel_Float_Float_acos_0"
+       meth asin: Float is extern "kernel_Float_Float_asin_0"
+       meth atan: Float is extern "kernel_Float_Float_atan_0"
+
+       meth pow(e: Float): Float is extern "kernel_Float_Float_pow_1"
+       meth log: Float is extern "kernel_Float_Float_log_0"
+       meth exp: Float is extern "kernel_Float_Float_exp_0"
+       
+       meth rand: Float is extern "kernel_Float_Float_rand_0"
+end
+
+meth atan2(x: Float, y: Float): Float is extern "kernel_Any_Any_atan2_2"
+meth pi: Float is extern "kernel_Any_Any_pi_0"
+meth srand_from(x: Int) is extern "kernel_Any_Any_srand_from_1"
+meth srand is extern "kernel_Any_Any_srand_0"
diff --git a/lib/standard/math_nit.h b/lib/standard/math_nit.h
new file mode 100644 (file)
index 0000000..9d6f75b
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef __MATH_NIT_H
+#define __MATH_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+
+#define kernel_Int_Int_rand_0(self) ((int)(((double)(self))*rand()/(RAND_MAX+1.0)))
+#define kernel_Float_Float_sqrt_0(self) sqrt(self)
+#define kernel_Float_Float_cos_0(self) cos(self)
+#define kernel_Float_Float_sin_0(self) sin(self)
+#define kernel_Float_Float_tan_0(self) tan(self)
+#define kernel_Float_Float_acos_0(self) acos(self)
+#define kernel_Float_Float_asin_0(self) asin(self)
+#define kernel_Float_Float_atan_0(self) atan(self)
+#define kernel_Float_Float_pow_1(self, p0) pow(self, p0)
+#define kernel_Float_Float_log_0(self) log(self)
+#define kernel_Float_Float_exp_0(self) exp(self)
+#define kernel_Float_Float_rand_0(self) (((self)*rand())/(RAND_MAX+1.0))
+#define kernel_Any_Any_atan2_2(self, p0, p1) (atan2((p0),(p1)))
+#define kernel_Any_Any_pi_0(self) (3.14159265) 
+#define kernel_Any_Any_srand_from_1(self, p0) (srand((p0)))
+#define kernel_Any_Any_srand_0(self) (srand(time(NULL)))
+
+#endif
diff --git a/lib/standard/math_prm.h b/lib/standard/math_prm.h
new file mode 100644 (file)
index 0000000..e15ffa2
--- /dev/null
@@ -0,0 +1,36 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+#ifndef __MATH_H
+#define __MATH_H
+
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+
+#define kernel_Int_Int_rand_0(self) ((int)(((double)(self))*rand()/(RAND_MAX+1.0)))
+#define kernel_Float_Float_sqrt_0(self) sqrt(self)
+#define kernel_Float_Float_cos_0(self) cos(self)
+#define kernel_Float_Float_sin_0(self) sin(self)
+#define kernel_Float_Float_tan_0(self) tan(self)
+#define kernel_Float_Float_acos_0(self) acos(self)
+#define kernel_Float_Float_asin_0(self) asin(self)
+#define kernel_Float_Float_atan_0(self) atan(self)
+#define kernel_Float_Float_pow_1(self, p0) pow(self, p0)
+#define kernel_Float_Float_log_0(self) log(self)
+#define kernel_Float_Float_exp_0(self) exp(self)
+#define kernel_Float_Float_rand_0(self) (((self)*rand())/(RAND_MAX+1.0))
+#define kernel_Any_Any_atan2_2(self, p0, p1) (atan2((p0),(p1)))
+#define kernel_Any_Any_pi_0(self) (3.14159265) 
+#define kernel_Any_Any_srand_from_1(self, p0) (srand((p0)))
+#define kernel_Any_Any_srand_0(self) (srand(time(NULL)))
+#endif
diff --git a/lib/standard/range.nit b/lib/standard/range.nit
new file mode 100644 (file)
index 0000000..bf6d6a2
--- /dev/null
@@ -0,0 +1,91 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# Module for range of discrete objects.
+package range
+
+import abstract_collection
+
+# Range of discrete objects. 
+class Range[E: Discrete]
+special Collection[E]
+
+       redef readable attr _first: E
+
+       # Get the last element.
+       readable attr _last: E
+
+       # Get the element after the last one.
+       readable attr _after: E
+
+       redef meth has(item) do return item >= _first and item <= _last
+
+       redef meth has_only(item) do return _first == item and item == _last
+
+       redef meth count(item)
+       do
+               if has(item) then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       redef meth iterator do return new IteratorRange[E](self)
+
+       redef meth length
+       do
+               var nb = _first.distance(_after)
+               if nb > 0 then
+                       return nb
+               else
+                       return 0
+               end
+       end
+
+       redef meth is_empty do return _first >= _after
+
+       # Create a range [`from', `to'].
+       # The syntax [`from'..`to'[ is equivalent.
+       init(from: E, to: E)
+       do
+               _first = from
+               _last = to
+               _after = to.succ
+       end
+
+       # Create a range [`from', `to'[.
+       # The syntax [`from'..`to'[ is equivalent.
+       init without_last(from: E, to: E)
+       do
+               _first = from
+               _last = to.prec
+               _after = to
+       end
+end
+
+class IteratorRange[E: Discrete]
+       # Iterator on ranges.
+special Iterator[E]
+       attr _range: Range[E]   
+       redef readable attr _item: E
+
+       redef meth is_ok do return _item < _range.after
+       
+       redef meth next do _item = _item.succ
+       
+       init(r: Range[E])
+       do
+               _range = r
+               _item = r.first
+       end
+end
diff --git a/lib/standard/sorter.nit b/lib/standard/sorter.nit
new file mode 100644 (file)
index 0000000..d24a02a
--- /dev/null
@@ -0,0 +1,98 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module contains classes used to sorts arrays.
+# In order to provide your own sort class you should define a subclass of AbstractSorter with
+# a custom `compare' function.
+package sorter
+
+import array
+
+# This abstract class generalizes ways to sort an array
+class AbstractSorter[E: Object]
+       # Compare `a' and `b'.
+       # Returns:
+       #       -1 if a < b
+       #       0  if a = b
+       #       1  if a > b
+       protected meth compare(a: E, b: E): Int is abstract
+
+       # Sort `array' using the `compare' function.
+       meth sort(array: Array[E]) do sub_sort(array, 0, array.length-1)
+
+       # Sort `array' between `from' and `to' indices
+       private meth sub_sort(array: Array[E], from: Int, to: Int)
+       do
+               if from >= to then
+                       return
+               else if from + 7 < to then
+                       quick_sort(array, from, to)
+               else
+                       bubble_sort(array, from, to)
+               end
+       end
+
+       # Quick-sort `array' between `from' and `to' indices
+       private meth quick_sort(array: Array[E], from: Int, to: Int)
+       do
+               var pivot = array[from]
+               var i = from
+               var j = to
+               while j > i do
+                       while i <= to and compare(array[i], pivot) <= 0 do i += 1
+                       while j > i and compare(array[j], pivot) >= 0 do j -= 1
+                       if j > i then
+                               var t = array[i]
+                               array[i] = array[j]
+                               array[j] = t
+                       end
+               end
+               array[from] = array[i-1]
+               array[i-1] = pivot
+               sub_sort(array, from, i-2)
+               sub_sort(array, i, to)
+       end
+       
+       # Bubble-sort `array' between `from' and `to' indices
+       private meth bubble_sort(array: Array[E], from: Int, to: Int)
+       do
+               var i = from
+               while i < to do
+                       var min = i
+                       var min_v = array[i]
+                       var j = i
+                       while j <= to do
+                               if compare(min_v, array[j]) > 0 then
+                                       min = j
+                                       min_v = array[j]
+                               end
+                               j += 1
+                       end
+                       if min != i then
+                               array[min] = array[i]
+                               array[i] = min_v
+                       end
+                       i += 1
+               end
+       end
+end
+
+# This class uses the operator <=> to sort arrays.
+# You can also use the `sort' method of the `Array' class.
+class ComparableSorter[E: Comparable]
+special AbstractSorter[E]
+       # Return a <=> b
+       redef meth compare(a, b) do return a <=> b
+
+       init do end
+end
+
diff --git a/lib/standard/standard.nit b/lib/standard/standard.nit
new file mode 100644 (file)
index 0000000..224aebe
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module is implicitely imported by every module.
+package standard
+
+import environ 
+import time
+import string_search
+import sorter
+import file
+import exec
+import stream
+import hash
+import list
+import symbol
+import string
+import array
+import range
+import abstract_collection
+import math
+import kernel
diff --git a/lib/standard/stream.nit b/lib/standard/stream.nit
new file mode 100644 (file)
index 0000000..f93a17b
--- /dev/null
@@ -0,0 +1,270 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module handle abstract input and output streams
+package stream
+
+import string
+
+# Abstract stream class
+class IOS
+       # close the stream
+       meth close is abstract
+end
+
+# Abstract input streams
+class IStream
+special IOS
+       # Read a character. Return its ASCII value, -1 on EOF or timeout
+       meth read_char: Int is abstract
+
+       # Read at most i bytes
+       meth read(i: Int): String
+       do
+               var s = new String.with_capacity(i)
+               while i > 0 and not eof do
+                       var c = read_char
+                       if c >= 0 then
+                               s.add(c.ascii)
+                               i -= 1
+                       end
+               end
+               return s
+       end
+
+       # Read a string until the end of the line.
+       meth read_line: String
+       do
+               assert not eof
+               var s = new String
+               append_line_to(s)
+               return s
+       end
+
+       # Read all the stream until the eof.
+       meth read_all: String
+       do
+               var s = ""
+               while not eof do
+                       var c = read_char
+                       if c >= 0 then s.add(c.ascii)
+               end
+               return s
+       end
+
+       # Read a string until the end of the line and append it to `s'.
+       meth append_line_to(s: String)
+       do
+               while true do
+                       var x = read_char
+                       if x == -1 then
+                               if eof then return
+                       else
+                               var c = x.ascii
+                               s.push(c)
+                               if c == '\n' then return
+                       end
+               end
+       end
+
+       # Is there something to read.
+       meth eof: Bool is abstract
+end
+
+# Abstract output stream
+class OStream
+special IOS
+       # write a string
+       meth write(s: String) is abstract
+
+       # Can the stream be used to write
+       meth is_writable: Bool is abstract
+end
+
+# Input streams with a buffer
+class BufferedIStream
+special IStream
+       redef meth read_char
+       do
+               assert not eof
+               if _buffer_pos >= _buffer.length then
+                       fill_buffer
+               end
+               if _buffer_pos >= _buffer.length then
+                       return -1
+               end
+               var c = _buffer[_buffer_pos]
+               _buffer_pos += 1
+               return c.ascii
+       end
+
+       redef meth read(i)
+       do
+               var s = new String.with_capacity(i)
+               var j = _buffer_pos
+               var k = _buffer.length
+               while i > 0 do
+                       if j >= k then
+                               fill_buffer
+                               if eof then return s
+                               j = _buffer_pos
+                               k = _buffer.length
+                       end
+                       while j < k and i > 0 do
+                               s.add(_buffer[j])
+                               j +=  1
+                               i -= 1
+                       end
+               end
+               _buffer_pos = j
+               return s
+       end
+
+       redef meth read_all
+       do
+               var s = ""
+               while not eof do
+                       var j = _buffer_pos
+                       var k = _buffer.length
+                       while j < k do
+                               s.add(_buffer[j])
+                               j += 1
+                       end
+                       _buffer_pos = j
+                       fill_buffer
+               end
+               return s
+       end   
+
+       redef meth append_line_to(s)
+       do
+               while true do
+                       # First phase: look for a '\n'
+                       var i = _buffer_pos
+                       while i < _buffer.length and _buffer[i] != '\n' do i += 1
+
+                       # if there is something to append
+                       if i > _buffer_pos then
+                               # Enlarge the string (if needed)
+                               s.enlarge(s.length + i - _buffer_pos)
+
+                               # Copy from the buffer to the string
+                               var j = _buffer_pos
+                               while j < i do
+                                       s.add(_buffer[j])
+                                       j += 1
+                               end
+                       end
+
+                       if i < _buffer.length then
+                               # so \n is in _buffer[i]
+                               _buffer_pos = i + 1 # skip \n
+                               return
+                       else
+                               # so \n is not found
+                               _buffer_pos = i
+                               if end_reached then
+                                       return
+                               else
+                                       fill_buffer
+                               end
+                       end
+               end
+       end
+
+       redef meth eof do return _buffer_pos >= _buffer.length and end_reached
+
+       # The buffer
+       attr _buffer: String
+
+       # The current position in the buffer
+       attr _buffer_pos: Int
+
+       # Fill the buffer
+       protected meth fill_buffer is abstract
+
+       # Is the last fill_buffer reach the end 
+       protected meth end_reached: Bool is abstract
+
+       # Allocate a `_buffer' for a given `capacity'.
+       protected meth prepare_buffer(capacity: Int)
+       do
+               _buffer = new String.with_capacity(capacity)
+               _buffer_pos = 0 # need to read
+       end
+end
+
+class IOStream
+special IStream
+special OStream
+end
+
+##############################################################"
+
+class FDStream
+special IOS
+       # File description
+       attr _fd: Int
+
+       redef meth close do native_close(_fd)
+
+       private meth native_close(i: Int): Int is extern "stream_FDStream_FDStream_native_close_1"
+       private meth native_read_char(i: Int): Int is extern "stream_FDStream_FDStream_native_read_char_1"
+       private meth native_read(i: Int, buf: NativeString, len: Int): Int is extern "stream_FDStream_FDStream_native_read_3"
+       private meth native_write(i: Int, buf: NativeString, len: Int): Int is extern "stream_FDStream_FDStream_native_write_3"
+
+       init(fd: Int) do _fd = fd
+end
+
+class FDIStream
+special FDStream
+special IStream
+       redef readable attr _eof: Bool
+       
+       redef meth read_char
+       do
+               var nb = native_read_char(_fd)
+               if nb == -1 then _eof = true
+               return nb
+       end
+
+       redef init(fd: Int) do super
+end
+
+class FDOStream
+special FDStream
+special OStream
+       redef readable attr _is_writable: Bool
+
+       redef meth write(s)
+       do
+               var nb = native_write(_fd, s.to_cstring, s.length)
+               if nb < s.length then _is_writable = false
+       end
+
+       redef init(fd: Int)
+       do
+               super
+               _is_writable = true
+       end
+end
+
+class FDIOStream
+special FDIStream
+special FDOStream
+special IOStream
+       redef init(fd: Int)
+       do
+               _fd = fd
+               _is_writable = true
+       end
+end
diff --git a/lib/standard/stream_nit.c b/lib/standard/stream_nit.c
new file mode 100644 (file)
index 0000000..c48e2ce
--- /dev/null
@@ -0,0 +1,30 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include <unistd.h>
+
+int stream_FDStream_FDStream_native_read_char_1(void *s, int fd) {
+       int result;
+       char buf;
+       ssize_t r = read(fd, &buf, 1);
+       if (r == 0) 
+               result = -1;
+       else 
+               result = buf;
+       return result;
+}
+
+void stream_FDStream_FDStream_write_char_1(void *s, int fd, int c) {
+       write(fd, &c, 1);
+}
+
diff --git a/lib/standard/stream_nit.h b/lib/standard/stream_nit.h
new file mode 100644 (file)
index 0000000..5572144
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef __STREAM_NIT_H
+#define __STREAM_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include <unistd.h>
+
+#define stream_FDStream_FDStream_native_close_1(self, p0) (close(p0))
+
+int stream_FDStream_FDStream_native_read_char_1(int s, int fd);
+void stream_FDStream_FDStream_write_char_1(int s, int fd, int c);
+#define stream_FDStream_FDStream_native_read_3(s, i, b, l) read((i), ((b)), ((l)))
+#define stream_FDStream_FDStream_native_write_3(s, i, b, l) write((i), ((b)), ((l)))
+
+#endif
diff --git a/lib/standard/string.nit b/lib/standard/string.nit
new file mode 100644 (file)
index 0000000..a9ebc63
--- /dev/null
@@ -0,0 +1,559 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module is about character strings.
+package string
+
+intrude import array
+
+###############################################################################
+# String                                                                      #
+###############################################################################
+
+# Strings are arrays of characters.
+class String
+special AbstractArray[Char]
+special Comparable
+special StringCapable
+       
+       redef type OTHER: String
+
+       redef meth [](index) do return _items[index]
+
+       redef meth []=(index, item)
+       do
+               if index == length then
+                       add(item)
+                       return
+               end
+               assert index >= 0 and index < length
+               _items[index] = item
+       end
+
+       redef meth add(c)
+       do
+               if _capacity <= length then enlarge(length + 5)
+               _items[length] = c
+               _length += 1
+       end
+
+       redef meth enlarge(cap)
+       do
+               var c = _capacity
+               if cap <= c then return
+               while c <= cap do c = c * 2 + 2
+               var a = calloc_string(c)
+               _items.copy_to(a, length, 0, 0)
+               _items = a
+               _capacity = c
+       end
+
+       redef meth append(s)
+       do
+               if s isa String then
+                       var sl = s.length
+                       if _capacity < length + sl then enlarge(length + sl)
+                       s.items.copy_to(_items, sl, 0, length)
+                       _length += sl
+               else
+                       super
+               end
+       end
+
+       # The concatenation of `self' with `r'
+       meth +(s: String): String
+       do
+               var r = new String.with_capacity(length + s.length)
+               r.append(self)
+               r.append(s)
+               return r
+       end
+       
+       # i repetitions of self
+       meth *(i: Int): String
+       do
+               assert i >= 0
+               var r = new String.with_capacity(length * i)
+               while i > 0 do
+                       r.append(self)
+                       i -= 1
+               end
+               return r
+       end
+
+       # Clone.
+       redef meth to_s: String do return new String.from(self)
+
+       # If `self' contains only digits, return the corresponding integer
+       meth to_i: Int
+       do
+               # Shortcut
+               return to_cstring.atoi
+       end
+
+       # If `self' contains only digits and alpha <= 'f', return the corresponding integer. 
+       meth to_hex: Int do return a_to(16)
+
+       # If `self' contains only digits and letters, return the corresponding integer in a given base
+       meth a_to(base: Int) : Int
+       do
+               var i = 0
+               var neg = false
+               
+               for c in self
+               do
+                       var v = c.to_i
+                       if v > base then
+                               if neg then
+                                       return -i
+                               else
+                                       return i
+                               end
+                       else if v < 0 then
+                               neg = true
+                       else
+                               i = i * base + v
+                       end
+               end
+               if neg then
+                       return -i
+               else
+                       return i
+               end
+       end
+
+       # Return a null terminated char *
+       meth to_cstring: NativeString
+       do
+               self[length] = '\0'
+               _length -= 1
+               return _items
+       end
+
+       # Create a substring.
+       #
+       # "abcd".substring(1, 2)        # --> "bc"
+       # "abcd".substring(-1, 2)       # --> "a"
+       # "abcd".substring(1, 0)     # --> ""
+       # "abcd".substring(2, 5)     # --> "cd"
+       meth substring(from: Int, count: Int): String
+       do
+               assert count >= 0
+               count += from
+               if from < 0 then from = 0
+               if count > length then count = length
+               if from < count then
+                       var r = new String.with_capacity(count - from)
+                       while from < count do
+                               r.push(_items[from])
+                               from += 1
+                       end
+                       return r
+               else
+                       return ""
+               end
+       end
+
+       # Create a substring with the string beginning at the 'from' position
+       #
+       # "abcd".substring(1)   # --> "bcd"
+       # "abcd".substring(-1)  # --> "abcd"
+       # "abcd".substring(2)     # --> "cd"
+       meth substring_from(from: Int): String
+       do
+               assert from < length
+               return substring(from, length - from)
+       end
+
+       # is this string a substring of the 'of' string from pos 'pos'
+       #
+       # "bc".is_substring("abcd",1)   # --> true
+       # "bc".is_substring("abcd",2)   # --> false
+       meth has_substring(str: String, pos: Int): Bool
+       do
+               var itsindex = str.length - 1
+               var myindex = pos + itsindex
+               var myitems = _items
+               var itsitems = str._items
+               if myindex > length or itsindex > myindex  then return false
+               while itsindex > 0 do
+                       if myitems[myindex] != itsitems[itsindex] then return false
+                       myindex -= myindex
+                       itsindex -= itsindex
+               end
+               return true
+       end
+
+       # Is this string prefixed by 'prefix'
+       #
+       # "abc".is_prefix("abcd")       # --> true
+       # "bc".is_prefix("abcd")        # --> false
+       meth has_prefix(prefix: String): Bool do return has_substring(prefix,0)
+
+       # Is this string suffixed by 'suffix'
+       #
+       # "abcd".has_suffix("abc")      # --> false
+       # "abcd".has_suffix("bcd")      # --> true
+       meth has_suffix(suffix: String): Bool do return has_substring(suffix, length - suffix.length)
+
+       redef meth <(s)
+       do
+               var i = 0
+               var l1 = length
+               var l2 = s.length
+               while i < l1 and i < l2 do
+                       var c1 = self[i].ascii
+                       var c2 = s[i].ascii
+                       if c1 < c2 then
+                               return true
+                       else if c2 < c1 then
+                               return false
+                       end
+                       i += 1
+               end
+               if l1 < l2 then
+                       return true
+               else
+                       return false
+               end
+       end
+
+       # Create a new empty string.
+       init
+       do
+               with_capacity(5)
+       end
+
+       init from(s: String)
+       do
+               _capacity = s.length + 1
+               _length = s.length
+               _items = calloc_string(_capacity)
+               s.items.copy_to(_items, _length, 0, 0)
+       end
+
+       # Create a new empty string with a given capacity.
+       init with_capacity(cap: Int)
+       do
+               assert cap >= 0
+               # _items = new NativeString.calloc(cap)
+               _items = calloc_string(cap)
+               _capacity = cap
+               _length = 0
+       end
+
+       # Create a new string from a given char *.
+       init with_native(nat: NativeString, size: Int)
+       do
+               assert size >= 0
+               _items = nat
+               _capacity = size
+               _length = size
+       end
+
+       # Create a new string from a null terminated char *.
+       init from_cstring(str: NativeString)
+       do
+               var size = str.cstring_length
+               _items = str
+               _capacity = size + 1 # Since there is a trailing \n
+               _length = size
+       end
+
+       # Create a string of `count' chararter `c'
+       init filled_with(c: Char, count: Int)
+       do
+               with_capacity(count)
+               var i = 0
+               while i < count do
+                       _items[i] = c
+                       i += 1
+               end
+               _length = count
+       end
+
+       redef meth output
+       do
+               var i = 0
+               while i < length do
+                       _items[i].output
+                       i += 1
+               end
+       end
+
+       redef meth ==(o)
+       do
+               if not o isa String or o is null then return false
+               assert o isa String
+               var l = length
+               if o.length != l then return false
+               var i = 0
+               var it = _items
+               var oit = o._items
+               while i < l do
+                       if it[i] != oit[i] then return false
+                       i += 1
+               end
+               return true
+       end
+
+       # String to upper case
+       meth to_upper: String
+       do
+               var s = new String.with_capacity(length)
+               for i in self do s.add(i.to_upper)
+               return s
+       end
+
+       # String to lower case
+       meth to_lower : String
+       do
+               var s = new String.with_capacity(length)
+               for i in self do s.add(i.to_lower)
+               return s
+       end
+
+       readable private attr _items: NativeString 
+       readable private attr _capacity: Int 
+end
+
+###############################################################################
+# Refinement                                                                  #
+###############################################################################
+
+redef class Object
+       #   meth class_name: String is extern intern # The name of the class
+
+       # User redeable representation of `self'.
+       meth to_s: String do return inspect
+
+       # Developper readable representation of `self'.
+       # Usualy, it uses the form "<CLASSNAME:#OBJECTID bla bla bla>"
+       meth inspect: String
+       do
+               var r = inspect_head
+               r.add('>')
+               return r
+       end
+
+       # Return "<CLASSNAME:#OBJECTID".
+       # This fuction is mainly used with the redefinition of the inspect(0) method
+       protected meth inspect_head: String
+       do
+               return "<{object_id.to_hex}"
+       end
+
+       protected meth args: IndexedCollection[String]
+       do
+               return sys.args
+       end
+end
+
+redef class Bool
+       redef meth to_s
+       do 
+               if self then 
+                       return once "true" 
+               else 
+                       return once "false" 
+               end
+       end   
+end
+
+redef class Int
+       meth fill_string(s: String, base: Int, signed: Bool)
+       # Fill `s' with the digits in base 'base' of `self' (and with the '-' sign if 'signed' and negative).
+       # assume < to_c max const of char
+       do
+               var n: Int
+               # Sign
+               if self < 0 then
+                       n = - self
+                       s[0] = '-'
+               else if self == 0 then
+                       s[0] = '0'
+                       return
+               else
+                       n = self
+               end
+               # Fill digits
+               var pos = digit_count(base) - 1
+               while pos >= 0 and n > 0 do 
+                       s[pos] = (n % base).to_c
+                       n = n / base # /
+                       pos -= 1
+               end
+       end
+
+       # return displayable int in base 10 and signed
+       redef meth to_s do return to_base(10,true)
+       
+       # return displayable int in hexadecimal (unsigned (not now))
+       meth to_hex: String do return to_base(16,false)
+
+       # return displayable int in base base and signed
+       meth to_base(base: Int, signed: Bool): String
+       do
+               var l = digit_count(base)
+               var s = new String.filled_with(' ', l)
+               fill_string(s, base, signed)
+               return s
+       end
+end
+
+redef class Float
+       redef meth to_s do return to_precision(6)
+
+       # `self' representation with `nb' digits after the '.'.
+       meth to_precision(nb: Int): String
+       do
+               if nb == 0 then return to_i.to_s
+
+               var i = to_i
+               var dec = 1.0
+               while nb > 0 do
+                       dec = dec * 10.0
+                       nb -= 1
+               end
+               var d = ((self-i.to_f)*dec).to_i
+               return "{i}.{d}"
+       end
+end
+
+redef class Char
+       redef meth to_s
+       do
+               var s = new String.with_capacity(1)
+               s[0] = self
+               return s
+       end
+end
+
+redef class Collection[E]
+       # Concatenate elements.
+       redef meth to_s
+       do
+               var s = new String
+               for e in self do if e != null then s.append(e.to_s)
+               return s
+       end
+
+       # Concatenate and separate each elements with `sep'. 
+       meth join(sep: String): String
+       do
+               if is_empty then return ""
+               
+               var s = new String # Result
+
+               # Concat first item
+               var i = iterator
+               var e = i.item
+               if e != null then s.append(e.to_s)
+               
+               # Concat other items
+               i.next
+               while i.is_ok do
+                       s.append(sep)
+                       e = i.item
+                       if e != null then s.append(e.to_s)
+                       i.next
+               end
+               return s
+       end
+end
+
+redef class Map[K,V]
+       # Concatenate couple of 'key value' separate by 'couple_sep' and separate each couple with `sep'. 
+       meth map_join(sep: String, couple_sep: String): String
+       do
+               if is_empty then return ""
+               
+               var s = new String # Result
+
+               # Concat first item
+               var i = iterator
+               var k = i.key
+               var e = i.item
+               if e != null then s.append("{k}{couple_sep}{e}")
+               
+               # Concat other items
+               i.next
+               while i.is_ok do
+                       s.append(sep)
+                       k = i.key
+                       e = i.item
+                       if e != null then s.append("{k}{couple_sep}{e}")
+                       i.next
+               end
+               return s
+       end
+end
+
+###############################################################################
+# Native classe                                                               #
+###############################################################################
+
+# Native strings are simple C char *
+class NativeString
+       meth [](index: Int): Char is intern
+       meth []=(index: Int, item: Char) is intern
+       meth copy_to(dest: NativeString, length: Int, from: Int, to: Int) is intern
+       
+       # Position of the first nul character.
+       meth cstring_length: Int
+       do
+               var l = 0
+               while self[l] != '\0' do l += 1
+               return l
+       end
+       meth atoi: Int is intern
+end
+
+# StringCapable objects can create native strings
+class StringCapable
+       protected meth calloc_string(size: Int): NativeString is intern
+end
+
+redef class Sys
+       attr _args_cache: IndexedCollection[String]
+
+       redef meth args: IndexedCollection[String]
+       do
+               if _args_cache == null then init_args
+               return _args_cache
+       end
+       
+       # The name of the program as given by the OS
+       meth program_name: String
+       do
+               return new String.from_cstring(native_argv(0))
+       end
+
+       # Initialize `args' with the contents of `native_argc' and `native_argv'.
+       private meth init_args
+       do
+               var argc = native_argc
+               var args = new Array[String].with_capacity(0)
+               var i = 1
+               while i < argc do
+                       args[i-1] = new String.from_cstring(native_argv(i))
+                       i += 1
+               end
+               _args_cache = args
+       end
+
+       private meth native_argc: Int is extern "kernel_Sys_Sys_native_argc_0" # First argument of the main C function.
+       
+       private meth native_argv(i: Int): NativeString is extern "kernel_Sys_Sys_native_argv_1" # Second argument of the main C function.
+end
+
diff --git a/lib/standard/string_nit.h b/lib/standard/string_nit.h
new file mode 100644 (file)
index 0000000..5653f27
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef __STRING_NIT_H
+#define __STRING_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2004-2008 Jean Privat <jean@pryen.org>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#define kernel_Sys_Sys_native_argc_0(self) (glob_argc)
+#define kernel_Sys_Sys_native_argv_1(self, p0) (glob_argv[(p0)])
+
+#endif
diff --git a/lib/standard/string_search.nit b/lib/standard/string_search.nit
new file mode 100644 (file)
index 0000000..9e22e48
--- /dev/null
@@ -0,0 +1,313 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module is about string search and matching.
+# It includes some good features
+package string_search
+
+import string
+
+# Patterns are string motifs.
+class Pattern
+       # Search `self' into `s' from a certain position.
+       # Return the position of the first character of the matching section.
+       # Return -1 if not found.
+       meth search_index_in(s: String, from: Int): Int is abstract
+
+       # Search `self' into `s' from a certain position.
+       # Return null if not found.
+       meth search_in(s: String, from: Int): Match is abstract
+
+       # Search all `self' occucences into `s'.
+       meth search_all_in(s: String): Array[Match]
+       do
+               var res = new Array[Match] # Result
+               var match = search_in(s, 0)
+               while match != null do
+                       res.add(match)
+                       match = search_in(s, match.after)
+               end
+               return res
+       end
+
+       # Split `s' using `self' is separator.
+       meth split_in(s: String): Array[Match]
+       do
+               var res = new Array[Match] # Result
+               var i = 0 # Cursor
+               var match = search_in(s, 0)
+               while match != null do
+                       # Compute the splited part length
+                       var len = match.from - i
+                       res.add(new Match(s, i, len))
+                       i = match.after
+                       match = search_in(s, i)
+               end
+               # Add the last part
+               res.add(new Match(s, i, s.length - i))
+               return res
+       end
+end
+
+# BM_Pattern are precompiled string motif for the Boyer-Moore Fast String Searching Algorithm
+# (cf. A Fast String Searching Algorithm, with R.S. Boyer.
+# Communications of the Association for Computing Machinery, 20(10), 1977, pp. 762-772.)
+# see also http://www.cs.utexas.edu/users/moore/best-ideas/string-searching/index.html
+class BM_Pattern
+special Pattern 
+       redef meth to_s do return _motif
+
+       # boyer-moore search gives the position of the first occurence of a pattern starting at position `from'
+       redef meth search_index_in(s, from)
+       do
+               assert from >= 0
+               var n = s.length
+               var m = _length
+
+               var j = from
+               while j < n - m + 1 do
+                       var i = m - 1 # Cursor in the pattern
+                       while i >= 0 and _motif[i] == s[i + j] do i -= 1
+                       if (i < 0) then
+                               return j
+                       else
+                               var gs = _gs[i] # Good shift
+                               var bc = bc(s[i+j]) - m + 1 + i # Bad char
+                               # Both are true, do move to the best
+                               if gs > bc then
+                                       j += gs
+                               else
+                                       j += bc
+                               end
+                       end
+               end
+               return -1 # found nothing
+       end
+
+       # boyer-moore search. Return null if not found 
+       redef meth search_in(s, from)
+       do
+               var to = search_index_in(s, from)
+               if to < 0 then
+                       return null
+               else
+                       return new Match(s, to, _length)
+               end
+       end
+
+       # Compile a new motif 
+       init(motif: String)
+       do
+               _motif = motif
+               _length = motif.length
+               _gs = new Array[Int].with_capacity(_length)
+               _bc_table = new ArrayMap[Char, Int]
+               compute_gs
+               compute_bc
+       end
+
+       # searched motif
+       attr _motif: String
+
+       # length of the motif
+       attr _length: Int
+
+       private meth bc(e: Char): Int
+       do 
+               if _bc_table.has_key(e) then
+                       return _bc_table[e]
+               else
+                       return _length
+               end
+       end
+
+       # good shifts
+       attr _gs: Array[Int]
+       
+       # bad characters
+       attr _bc_table: Map[Char, Int]
+
+       private meth compute_bc
+       do
+               var x = _motif
+               var m = _length
+               var i = 0
+               while i < m - 1 do
+                       _bc_table[x[i]] = m - i - 1
+                       i += 1
+               end
+       end
+
+       private meth suffixes: Array[Int]
+       do
+               var x = _motif
+               var m = _length
+               var suff = new Array[Int].filled_with(m, m)
+
+               var f: Int
+               var g = m - 1
+               var i = m - 2
+               while i >= 0 do
+                       if i > g and suff[i+m-1-f] < i - g then
+                               suff[i] = suff[i+m-1-f]
+                       else
+                               if i < g then g = i
+                               f = i
+                               while g >= 0 and x[g] == x[g + m - 1 - f] do g -= 1
+                               suff[i] = f - g
+                       end
+                       i -= 1
+               end
+               return suff
+       end
+
+       private meth compute_gs
+       do
+               var x = _motif
+               var m = _length
+               var suff = suffixes
+               var i = 0
+               while i < m do
+                       _gs[i] = m
+                       i += 1
+               end
+               var j = 0
+               i = m - 1
+               while i >= -1 do
+                       if i == -1 or suff[i] == i + 1 then
+                               while j < m - 1 - i do
+                                       if _gs[j] == m then _gs[j] = m - 1 - i
+                                       j += 1
+                               end
+                       end
+                       i -= 1
+               end
+               i = 0
+               while i < m - 1 do
+                       _gs[m - 1 - suff[i]] = m - 1 - i
+                       i += 1
+               end
+       end
+end
+
+# Matches are a part of a string.
+class Match
+       # The base string matched
+       readable attr _string: String
+
+       # The starting position in the string
+       readable attr _from: Int
+
+       # The length of the mathching part
+       readable attr _length: Int
+
+       # The position of the first character just after the matching part.
+       # May be out of the base string
+       meth after: Int do return _from + _length
+
+       # The contents of the mathing part
+       redef meth to_s do return _string.substring(_from, _length)
+
+       # Matches `len' characters of `s' from `f'.
+       init(s: String, f: Int, len: Int)
+       do
+               assert non_null_string: s != null 
+               assert positive_length: len >= 0
+               assert valid_from: f >= 0
+               assert valid_after: f + len <= s.length
+               _string = s
+               _from = f
+               _length = len
+       end
+end
+
+redef class Char
+special Pattern
+       redef meth search_index_in(s, from)
+       do
+               var stop = s.length
+               while from < stop do
+                       if s[from] == self then return from
+                       from += 1
+               end
+               return -1
+       end
+
+       redef meth search_in(s, from)
+       do
+               var pos = search_index_in(s, from)
+               if pos < 0 then
+                       return null
+               else
+                       return new Match(s, pos, 1)
+               end
+       end
+end
+
+redef class String
+special Pattern
+       redef meth search_index_in(s, from)
+       do
+               assert from >= 0
+               var stop = s.length - length + 1
+               while from < stop do
+                       var i = length - 1
+                       while i >= 0 and self[i] == s[i + from] do i -= 1
+                       # Test if we found
+                       if i < 0 then return from
+                       # Not found so try next one
+                       from += 1
+               end
+               return -1
+       end
+
+       redef meth search_in(s, from)
+       do
+               var pos = search_index_in(s, from)
+               if pos < 0 then
+                       return null
+               else
+                       return new Match(s, pos, length)
+               end
+       end
+
+       # Like `search_from' but from the first chararter.
+       meth search(p: Pattern): Match do return p.search_in(self, 0)
+
+       # Search the given pattern into self from a.
+       # The search starts at `from'.
+       # Return null if not found.
+       meth search_from(p: Pattern, from: Int): Match do return p.search_in(self, from)
+
+       # Search all occurences of p into self.
+       #
+       #   var a = new Array[Int]
+       #   for i in "hello world".searches('o') do
+       #       a.add(i.from)
+       #   end
+       #   a    # -> [4, 7]
+       meth search_all(p: Pattern): Array[Match] do return p.search_all_in(self)
+
+       # Split self using p is separator.
+       #   "hello world".split('o')     # -> ["hell", " w", "rld"]
+       meth split_with(p: Pattern): Array[String]
+       do
+               var matches = p.split_in(self)
+               var res = new Array[String].with_capacity(matches.length)
+               for m in matches do res.add(m.to_s)
+               return res
+       end
+
+       # Split self using '\n' is separator.
+       #   "hello\nworld".split     # -> ["hello","world"]
+       meth split: Array[String] do return split_with('\n')
+end
diff --git a/lib/standard/symbol.nit b/lib/standard/symbol.nit
new file mode 100644 (file)
index 0000000..d953f36
--- /dev/null
@@ -0,0 +1,41 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+# This module introduce the Symbol class
+package symbol
+
+import string
+private import hash
+
+redef class String
+       # Get the unique corresponding to the string
+       meth to_symbol: Symbol
+       do
+               var symbol_dictionary = once new HashMap[String, Symbol]
+               if symbol_dictionary.has_key(self) then
+                       return symbol_dictionary[self]
+               else
+                       var symbol = new Symbol(self)
+                       symbol_dictionary[self] = symbol
+                       return symbol
+               end
+       end
+end
+
+# A symbol is a unique unmutable string
+class Symbol
+       attr _string: String
+       redef meth to_s do return _string.to_s
+
+       # Only used by String::to_symbol
+       private init(s: String) do _string = s
+end
diff --git a/lib/standard/time.nit b/lib/standard/time.nit
new file mode 100644 (file)
index 0000000..043d075
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# This file is free software, which comes along with NIT.  This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+# PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You  are  allowed  to  redistribute it and sell it, alone or is a part of
+# another product.
+
+package time
+
+import kernel
+
+redef class Object
+       protected meth get_time: Int is extern "kernel_Any_Any_get_time_0"
+end
diff --git a/lib/standard/time_nit.h b/lib/standard/time_nit.h
new file mode 100644 (file)
index 0000000..3ecef80
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef __TIME_NIT_H
+#define __TIME_NIT_H
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Floréal Morandat <morandat@lirmm.fr> 
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A 
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include <time.h>
+#define kernel_Any_Any_get_time_0(self) time(NULL)
+
+#endif
diff --git a/src/abstracttool.nit b/src/abstracttool.nit
new file mode 100644 (file)
index 0000000..fe04e28
--- /dev/null
@@ -0,0 +1,112 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# Base module for nit tools that load, manipulate or transform NIT models
+package abstracttool
+
+import mmloader
+import syntax
+
+class AbstractCompiler
+special ToolContext
+
+       init
+       do
+               super
+               register_loader(new SrcModuleLoader)
+       end
+
+       meth exec_cmd_line
+       do
+               process_options
+
+               if opt_help.value then
+                       option_context.usage
+                       exit(0)
+               end
+
+               if option_context.rest.length == 0 then
+                       option_context.usage
+                       exit(1)
+               end
+
+               var rest = option_context.rest
+               var to_do = new Array[MMModule]
+               for i in [0..rest.length[ do
+                       var mod = get_module_from_filename(rest[i])
+                       to_do.add(mod)
+               end
+               if opt_log.value then
+                       dump_context_info
+               end
+
+               if not to_do.is_empty and not opt_only_metamodel.value then
+                       perform_work(to_do)
+               end
+       end
+
+       meth perform_work(mods: Array[MMModule]) is abstract
+
+       meth dump_context_info
+       do
+               for mod in module_hierarchy do
+                       mod.dump_module_info
+               end     
+               var tab = new Array[MMModule]
+               tab.add_all(module_hierarchy)
+               var name = module_hierarchy.select_smallests(tab).join("-")
+
+               var f = new OFStream.open("{name}.full_class_hierarchy.new.dot")
+                       f.write(class_hierarchy.to_dot)
+               f.close
+
+               f = new OFStream.open("{name}.module_hierarchy.new.dot")
+                       f.write(module_hierarchy.to_dot)
+               f.close
+       end
+end
+
+redef class MMModule
+       meth dump_module_info
+       do
+               var p = filename.file_path
+               var fname = "{p}/{name}"
+               var f = new OFStream.open("{fname}.class_hierarchy.new.dot")
+               f.write(class_specialization_hierarchy.to_dot)
+               f.close
+
+               f = new OFStream.open("{fname}.properties.log")
+               for cla in local_classes do
+                       cla.dump_properties(f)
+                       f.write("\n")
+               end
+               f.close
+       end
+end
+
+redef class MMLocalClass
+       meth dump_properties(file: OStream)
+       do
+               file.write("class {self}\n")
+               for p in global_properties do
+                       var lp = self[p]
+                       file.write("\t{lp}{lp.signature}\n")
+               end
+               file.write("end # {self}\n")
+       end
+end
diff --git a/src/compiling/compiling.nit b/src/compiling/compiling.nit
new file mode 100644 (file)
index 0000000..5f7aeca
--- /dev/null
@@ -0,0 +1,122 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compute and generate tables for classes and modules.
+package compiling
+
+import compiling_base
+private import compiling_methods
+private import compiling_global
+private import syntax
+
+redef class MMSrcModule
+       # Compile the program
+       # Generate all sep files (_sep.[ch]), the main file (_table.c) and the build file (_build.sh)
+       # Then execute the build.sh
+       meth compile_prog_to_c(tc: ToolContext)
+       do
+               for m in mhe.greaters_and_self do
+                       assert m isa MMSrcModule
+                       m.local_analysis(tc)
+               end
+
+               var ga = global_analysis(tc)
+
+               tc.base_dir.mkdir
+
+               var files = new Array[String]
+               var includes = new ArraySet[String]
+               files.add("$CLIBDIR/nit_main.c")
+               for m in mhe.greaters_and_self do
+                       assert m isa MMSrcModule
+                       files.add("{tc.base_dir}/{m.name}.{tc.ext_prefix}_sep.c")
+                       m.compile_separate_module(tc, ga)
+                       var native_name = m.filename.strip_extension(".nit")
+                       if (native_name + "_nit.h").file_exists then
+                               includes.add("-I {native_name.dirname}")
+                       end
+                       native_name.append("_nit.c")
+                       if native_name.file_exists then files.add(native_name)
+               end
+
+               files.add("{tc.base_dir}/{name}.{tc.ext_prefix}_tables.c")
+               compile_main(tc, ga)
+
+               var fn = "{tc.base_dir}/{name}.{tc.ext_prefix}_build.sh"
+               var f = new OFStream.open(fn)
+               f.write("#!/bin/sh\n")
+               f.write("CLIBDIR=\"{tc.clibdir}\"\n")
+               f.write("{tc.bindir}/gccx -d {tc.base_dir} -I $CLIBDIR {includes.join(" ")}")
+               if tc.output_file != null then 
+                       f.write(" -o {tc.output_file}")
+               else if tc.ext_prefix.is_empty then
+                       f.write(" -o {name}")
+               else
+                       f.write(" -o {name}_{tc.ext_prefix}")
+               end
+               if tc.boost then f.write(" -O")
+               f.write(" \"$@\" \\\n  {files.join("\\\n  ")}\n")
+               f.close
+
+               if not tc.no_cc then 
+                       sys.system("sh {fn}")
+               end
+       end
+
+       # Compile the main file
+       private meth compile_main(tc: ToolContext, ga: GlobalAnalysis)
+       do
+               var v = new CompilerVisitor(self)
+               v.tc = tc
+               v.global_analysis = ga
+               v.add_decl("#include <nit_common.h>")
+               compile_tables_to_c(v)
+               compile_main_part(v)
+               var f = new OFStream.open("{tc.base_dir}/{name}.{tc.ext_prefix}_tables.c")
+               for m in mhe.greaters_and_self do
+                       f.write("#include \"{m.name}.{tc.ext_prefix}_sep.h\"\n")
+               end
+               f.write(v.to_s)
+               f.close
+       end
+
+       # Compile the sep files (of the current module only)
+       private meth compile_separate_module(tc: ToolContext, ga: GlobalAnalysis)
+       do
+               var v = new CompilerVisitor(self)
+               v.tc = tc
+               v.global_analysis = ga
+               v.add_decl("#include <nit_common.h>")
+               var native_name = filename.strip_extension(".nit")
+               native_name.append("_nit.h")
+               if native_name.file_exists then v.add_decl("#include <{native_name.basename("")}>")
+               declare_class_tables_to_c(v)
+               compile_mod_to_c(v)
+               var f = new OFStream.open("{tc.base_dir}/{name}.{tc.ext_prefix}_sep.h")
+               f.write("#ifndef {name}_{tc.ext_prefix}_sep\n")
+               f.write("#define {name}_{tc.ext_prefix}_sep\n")
+               for m in mhe.direct_greaters do f.write("#include \"{m.name}.{tc.ext_prefix}_sep.h\"\n")
+               f.write(v.ctx.decls.join("\n"))
+               f.write("\n#endif\n")
+               f.close
+               var f = new OFStream.open("{tc.base_dir}/{name}.{tc.ext_prefix}_sep.c")
+               f.write("#include \"{name}.{tc.ext_prefix}_sep.h\"\n")
+               f.write(v.ctx.instrs.join("\n"))
+               f.write("\n")
+               f.close
+       end
+end
+
diff --git a/src/compiling/compiling_base.nit b/src/compiling/compiling_base.nit
new file mode 100644 (file)
index 0000000..9256cbe
--- /dev/null
@@ -0,0 +1,304 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Common things for NIT compilation and C generation
+package compiling_base
+
+import syntax
+private import utils
+
+redef class ToolContext
+       readable writable attr _global: Bool 
+       readable writable attr _attr_sim: Bool 
+       readable writable attr _base_dir: String
+       readable writable attr _clibdir: String
+       readable writable attr _bindir: String
+       readable writable attr _output_file: String
+       readable writable attr _boost: Bool
+       readable writable attr _no_cc: Bool
+       readable writable attr _ext_prefix: String 
+end
+
+# Class used to generate files.
+# Note that in fact it is not a visitor.
+# Note also that this class is unefficient and poorly designed thus requires love.
+class CompilerVisitor
+       # Add a line in the current declaration block
+       meth add_decl(s: String)
+       do
+               if _indent_level >= 8 then
+                       _ctx.decls.add("\t\t" + s)
+               else
+                       _ctx.decls.add("  " * _indent_level + s)
+               end
+       end
+
+       # Add a line in the current instr block
+       meth add_instr(s: String)
+       do
+               if _indent_level >= 8 then
+                       _ctx.instrs.add("\t\t" + s)
+               else
+                       _ctx.instrs.add("  " * _indent_level + s)
+               end
+       end
+
+       # Return a unique new number for the instance
+       meth new_number: Int
+       do
+               var res = _number_cpt
+               _number_cpt = res + 1
+               return res
+       end
+       # next number for new_number
+       attr _number_cpt: Int
+
+       # Add an indent level.
+       # New decl and instr will be indented.
+       meth indent do _indent_level += 1
+
+       # Remove an indent level.
+       meth unindent
+       do
+               _indent_level -= 1
+               if _indent_level < 0 then _indent_level = 0
+       end
+
+       # Return a big string containing all decl and instr
+       redef meth to_s
+       do
+               var out = new Array[String]
+               out.append(_ctx.decls)
+               out.append(_ctx.instrs)
+               out.add("")
+               return out.join("\n")
+       end
+
+       # The current module processed
+       readable writable attr _module: MMSrcModule 
+
+       # Where instr and decl are stored
+       readable writable attr _ctx: CContext = new CContext
+
+       # The current indent lever
+       readable writable attr _indent_level: Int 
+
+       # The current ToolContext
+       readable writable attr _tc: ToolContext 
+
+       # Create a new CompilerVisitor based on a module
+       init(module: MMSrcModule) do _module = module
+end
+
+# Where instr and decl are stored for a module
+# Note that this class is as badly designed as CompilerVisitor
+class CContext
+       readable attr _decls: Array[String] = new Array[String] 
+       readable attr _instrs: Array[String] = new Array[String]
+
+       meth append(c: CContext)
+       do
+               _instrs.append(c.decls)
+               _instrs.append(c.instrs)
+       end
+
+       init do end
+end
+
+redef class MMGlobalProperty
+       # C symbol refering a method inocation
+       meth meth_call: String
+       do
+               return "CALL_{intro.cname}"
+       end
+
+       # C symbol refering an attribure access
+       meth attr_access: String
+       do
+               return "ATTR_{intro.cname}"
+       end
+
+       # C symbol refering the color of the global property
+       meth color_id: String
+       do
+               return "COLOR_{intro.cname}"
+       end
+
+end
+
+redef class MMGlobalClass
+       # C symbol refering the identifier of the class
+       meth id_id: String
+       do
+               return "ID_{intro.name}"
+       end
+
+       # C symbol refering the color of the class (for subtype tests)
+       meth color_id: String
+       do
+               return "COLOR_{intro.name}"
+       end
+
+       # C symbol refering the init table position of the class (for constructor linearization)
+       meth init_table_pos_id: String
+       do
+               return "INIT_TABLE_POS_{intro.name}"
+       end
+end
+
+redef class MMLocalClass
+       # Cached primitive_info result
+       attr _primitive_info_cache: PrimitiveInfo
+
+       # If primitive_info result cached?
+       attr _primitive_info_b: Bool
+
+       # Return the primitive information of the class.
+       # Return null if the class is not primitive
+       # FIXME: Only here since there is no universal type yet
+       meth primitive_info: PrimitiveInfo
+       do
+               if _primitive_info_b == true then return _primitive_info_cache
+
+               var ctypes = once primitive_ctypes
+               if ctypes.has_key(name) then
+                       _primitive_info_cache = ctypes[name]
+                       _primitive_info_b = true
+                       return _primitive_info_cache
+               end
+               var i = ctypes.iterator
+               while i.is_ok do
+                       var n = i.key
+                       if module.has_global_class_named(n) then
+                               var c = module.class_by_name(n)
+                               if cshe < c then
+                                       _primitive_info_cache = i.item
+                                       _primitive_info_b = true
+                                       return _primitive_info_cache
+                               end
+                       end
+                       i.next
+               end
+               _primitive_info_b = true
+               return null
+       end
+
+       # Static information of primitive types
+       private meth primitive_ctypes: HashMap[Symbol, PrimitiveInfo]
+       do
+               var res = new HashMap[Symbol, PrimitiveInfo]
+               var pnames = ["Int", "Char", "Bool", "Float", "NativeString", "NativeArray", "Pointer"]
+               var tagged = [true,  true,   true,   false,   false,          false,         false]
+               var cnames = ["int", "char", "int",  "float", "char *",       "val_t *",     "void *"]
+               for i in [0..pnames.length[ do
+                       var n = pnames[i].to_symbol
+                       var pi = new PrimitiveInfo
+                       pi.name = n
+                       pi.tagged = tagged[i]
+                       pi.cname = cnames[i]
+                       res[n] = pi
+               end
+               return res
+       end
+end
+
+# Information about a primitive class
+class PrimitiveInfo
+       # The name of the class
+       readable writable attr _name: Symbol 
+
+       # Is the class tagged (aka not boxed)
+       readable writable attr _tagged: Bool 
+
+       # The corresponding c type for the primitive value
+       readable writable attr _cname: String 
+
+       private init do end
+end
+
+redef class MMType
+       # The corresponding c type
+       meth cname: String
+       do
+               var pi = local_class.primitive_info
+               if pi == null then
+                       return "val_t"
+               else
+                       return pi.cname
+               end
+       end
+
+       # The default c value for uninitialized types.
+       # Return "null" for non primitive types and something more specific for primitive types
+       meth default_cvalue: String
+       do
+               var pi = local_class.primitive_info
+               if pi != null and pi.tagged then
+                       return "TAG_{local_class.name}(({pi.cname})0)"
+               else
+                       return "NIT_NULL"
+               end
+       end
+
+       # Box (or tag) a primitive value
+       # Is identity if not primitive
+       meth boxtype(s: String): String
+       do
+               var pi = local_class.primitive_info
+               if pi == null then
+                       return s
+               else if pi.tagged then
+                       return "TAG_{local_class.name}({s})"
+               else
+                       return "BOX_{local_class.name}({s})"
+               end
+       end
+
+       # Unbox (or untag) a primitive value
+       # Is identity if not primitive
+       meth unboxtype(s: String): String
+       do
+               var pi = local_class.primitive_info
+               if pi == null then
+                       return s
+               else if pi.tagged then
+                       return "UNTAG_{local_class.name}({s})"
+               else
+                       return "UNBOX_{local_class.name}({s})"
+               end
+       end
+end
+
+redef class MMLocalProperty
+       # Cacher result of cname
+       attr _cname_cache: String
+
+       # The mangled name of the method
+       meth cname: String
+       do
+               if _cname_cache == null then
+                       _cname_cache = cmangle(concrete_property.module.name, concrete_property.local_class.name, name)
+               end
+               return _cname_cache
+       end
+
+       # C symbol refering the color of the super call of a super property
+       meth color_id_for_super: String
+       do
+               return "COLOR_SUPER_{cname}"
+       end
+end
+
diff --git a/src/compiling/compiling_global.nit b/src/compiling/compiling_global.nit
new file mode 100644 (file)
index 0000000..4915ea2
--- /dev/null
@@ -0,0 +1,917 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compute and generate tables for classes and modules.
+package compiling_global
+
+#import compiling_base
+private import compiling_methods
+private import syntax
+
+# Something that store color of table elements
+class ColorContext
+       attr _colors: HashMap[TableElt, Int]
+
+       # The color of a table element.
+       meth color(e: TableElt): Int
+       do
+               return _colors[e]
+       end
+
+       # Is a table element already colored?
+       meth has_color(e: TableElt): Bool
+       do
+               return _colors != null and _colors.has_key(e)
+       end
+
+       # Assign a color to a table element.
+       meth color=(e: TableElt, c: Int)
+       do
+               if _colors == null then _colors = new HashMap[TableElt, Int]
+               _colors[e] = c
+               var idx = c
+               for i in [0..e.length[ do
+                       _colors[e.item(i)] = idx
+                       idx = idx + 1
+               end
+       end
+end
+
+# All information and results of the global analysis.
+class GlobalAnalysis
+special ColorContext
+       # Associate global classes to compiled classes
+       readable attr _compiled_classes: HashMap[MMGlobalClass, CompiledClass] 
+
+       # The main module of the program globally analysed
+       readable attr _module: MMModule 
+
+       # FIXME: do something better.
+       readable writable attr _max_class_table_length: Int
+
+       init(module: MMSrcModule)
+       do
+               _compiled_classes = new HashMap[MMGlobalClass, CompiledClass]
+               _module = module
+       end
+end
+
+redef class CompilerVisitor
+       # The global analysis result, if any
+       readable writable attr _global_analysis: GlobalAnalysis 
+end
+
+# A compiled class is a class in a program
+class CompiledClass
+special ColorContext
+       # The corresponding local class in the main module of the prgram
+       readable attr _local_class: MMLocalClass 
+
+       # The identifier of the class
+       readable writable attr _id: Int 
+
+       # The full class table of the class
+       readable writable attr _class_table: Array[TableElt] 
+
+       # The full instance table of the class
+       readable writable attr _instance_table: Array[TableElt] 
+
+       # The proper class table part (no superclasses but all refinements)
+       readable writable attr _class_layout: TableEltComposite 
+
+       # The proper instance table part (no superclasses but all refinements)
+       readable writable attr _instance_layout: TableEltComposite 
+
+       init(c: MMLocalClass) do _local_class = c
+end
+
+redef class MMGlobalProperty
+       # The position of the property in the local class table part
+       # FIXME: It's ugly. store this somewhere else please
+       readable writable attr _pos_of: Int 
+end
+
+redef class MMSrcLocalClass
+       # The table element of the attribute position (for accessor simulation)
+       readable attr _base_attr_pos: TableEltBaseAttrPos 
+
+       # The table element of the subtype check
+       readable attr _class_color_pos: TableEltClassColorPos
+
+       # The proper local class table part (nor superclasses nor refinments)
+       readable attr _class_layout: Array[LocalTableElt] 
+
+       # The proper local instance table part (nor superclasses nor refinments)
+       readable attr _instance_layout: Array[LocalTableElt] 
+
+       # Build the local layout of the class and feed the module table
+       meth build_layout_in(tc: ToolContext, module_table: Array[LocalTableElt])
+       do
+               var intro_methods = new Array[MMGlobalProperty] # FIXME: Remove this
+               var intro_attributes = new Array[MMGlobalProperty] # FIXME: Remove this
+               var clt = new Array[LocalTableElt]
+               _class_layout = clt
+               var ilt = new Array[LocalTableElt]
+               _instance_layout = ilt
+
+               if global.intro == self then
+                       module_table.add(new TableEltClassIdPos(self))
+                       _class_color_pos = new TableEltClassColorPos(self)
+                       module_table.add(_class_color_pos)
+                       #clt.add(_class_color_pos)
+                       clt.add(new TableEltClassInitTablePos(self))
+               end
+               for p in src_local_properties do
+                       var pg = p.global
+                       if pg.intro == p then
+                               if p isa MMSrcAttribute then
+                                       pg.pos_of = intro_attributes.length
+                                       intro_attributes.add(pg)
+                                       ilt.add(new TableEltAttrPos(p))
+                               else if p isa MMSrcMethod then
+                                       pg.pos_of = intro_methods.length
+                                       intro_methods.add(pg)
+                                       clt.add(new TableEltMethPos(p))
+                               end
+                       end
+                       if p isa MMSrcMethod and p.need_super then
+                               clt.add(new TableEltSuperPos(p))
+                       end
+               end
+               if tc.attr_sim and not intro_attributes.is_empty then
+                       _base_attr_pos = new TableEltBaseAttrPos(self)
+                       clt.add(_base_attr_pos)
+               else
+                       module_table.append(ilt)
+               end
+               module_table.append(clt)
+       end
+end
+
+redef class MMSrcModule
+       # The local table of the module (refers things introduced in the module)
+       attr _local_table: Array[LocalTableElt]
+
+       # Builds the local tables and local classes layouts
+       meth local_analysis(tc: ToolContext)
+       do
+               var lt = new Array[LocalTableElt]
+               _local_table = lt
+               for c in src_local_classes do
+                       c.build_layout_in(tc, lt)
+               end
+       end
+
+       # Do the complete global analysis
+       meth global_analysis(cctx: ToolContext): GlobalAnalysis
+       do
+               #print "Do the complete global analysis"
+               var ga = new GlobalAnalysis(self)
+               var smallest_classes = new Array[MMLocalClass]
+               var global_properties = new HashSet[MMGlobalProperty]
+               var ctab = new Array[TableElt]
+               var itab = new Array[TableElt]
+
+               ctab.add(new TableEltClassSelfId)
+               itab.add(new TableEltVftPointer)
+               
+               var pclassid = -1
+               var classid = 3
+
+               # We have to work on ALL the classes of the module
+               var classes = new Array[MMLocalClass]
+               for c in local_classes do
+                       c.compute_super_classes
+                       classes.add(c)
+               end
+               (new ClassSorter).sort(classes)
+
+               for c in classes do
+                       # Finish processing the class (if invisible)
+                       c.compute_ancestors
+                       c.inherit_global_properties
+
+                       # Associate a CompiledClass to the class
+                       var cc = new CompiledClass(c)
+                       ga.compiled_classes[c.global] = cc
+
+                       # Assign a unique class identifier
+                       # (negative are for primitive classes)
+                       var gc = c.global
+                       var bm = gc.module
+                       if c.primitive_info != null then
+                               cc.id = pclassid
+                               pclassid = pclassid - 4
+                       else
+                               cc.id = classid
+                               classid = classid + 4
+                       end
+
+                       # Register is the class is a leaf
+                       if c.cshe.direct_smallers.is_empty then
+                               smallest_classes.add(c)
+                       end
+
+                       # Store the colortableelt in the class table pool
+                       var bc = c.global.intro
+                       assert bc isa MMSrcLocalClass
+                       ctab.add(bc.class_color_pos)
+               end
+
+               # Compute core and crown classes for colorization
+               var crown_classes = new HashSet[MMLocalClass]
+               var core_classes = new HashSet[MMLocalClass] 
+               for c in smallest_classes do
+                       while c.cshe.direct_greaters.length == 1 do
+                               c = c.cshe.direct_greaters.first
+                       end
+                       crown_classes.add(c)
+                       core_classes.add_all(c.cshe.greaters_and_self)
+               end
+               #print("nbclasses: {classes.length} leaves: {smallest_classes.length} crown: {crown_classes.length} core: {core_classes.length}")
+
+               # Colorize core color for typechecks
+               colorize(ga, ctab, crown_classes, 0)
+
+               # Compute tables for typechecks
+               var maxcolor = 0
+               for c in classes do
+                       var cc = ga.compiled_classes[c.global]
+                       if core_classes.has(c) then
+                               # For core classes, just build the table
+                               cc.class_table = build_tables(ga, c, ctab)
+                               if maxcolor < cc.class_table.length then maxcolor = cc.class_table.length
+                       else
+                               # For other classes, it's easier: just append to the parent tables
+                               var sc = c.cshe.direct_greaters.first
+                               var scc = ga.compiled_classes[sc.global]
+                               cc.class_table = scc.class_table.to_a
+                               var bc = c.global.intro
+                               assert bc isa MMSrcLocalClass
+                               var colpos = bc.class_color_pos
+                               var colposcolor = cc.class_table.length
+                               ga.color(colpos) = colposcolor
+                               cc.class_table.add(colpos)
+                               if maxcolor < colposcolor then maxcolor = colposcolor
+                       end
+               end
+               ga.max_class_table_length = maxcolor + 1
+
+               # Fill class table and instance tables pools
+               for c in classes do
+                       var cc = ga.compiled_classes[c.global]
+                       var cte = new TableEltComposite(cc)
+                       var ite = new TableEltComposite(cc)
+                       for sc in c.crhe.greaters_and_self do
+                               if sc isa MMSrcLocalClass then
+                                       cte.add(sc, sc.class_layout)
+                                       ite.add(sc, sc.instance_layout)
+                               end
+                               cc.class_layout = cte
+                               cc.instance_layout = ite
+                       end
+
+                       if core_classes.has(c) then
+                               if cte.length > 0 then
+                                       ctab.add(cte)
+                               end
+                               if not cctx.attr_sim and ite.length > 0 then
+                                       itab.add(ite)
+                               end
+                       end
+               end
+
+               # Colorize all elements in pools tables
+               colorize(ga, ctab, crown_classes, maxcolor+1)
+               colorize(ga, itab, crown_classes, 0)
+
+               # Build class and instance tables now things are colored
+               ga.max_class_table_length = 0 
+               for c in classes do
+                       var cc = ga.compiled_classes[c.global]
+                       if core_classes.has(c) then
+                               # For core classes, just build the table
+                               cc.class_table = build_tables(ga, c, ctab)
+                               cc.instance_table = build_tables(ga, c, itab)
+                       else
+                               # For other classes, it's easier: just append to the parent tables
+                               var sc = c.cshe.direct_greaters.first
+                               var scc = ga.compiled_classes[sc.global]
+                               cc.class_table = scc.class_table.to_a
+                               var bc = c.global.intro
+                               assert bc isa MMSrcLocalClass
+                               var colpos = bc.class_color_pos
+                               cc.class_table[ga.color(colpos)] = colpos
+                               while cc.class_table.length <= maxcolor do
+                                       cc.class_table.add(null)
+                               end
+                               append_to_table(ga, cc.class_table, cc.class_layout)
+                               cc.instance_table = scc.instance_table.to_a
+                               append_to_table(ga, cc.instance_table, cc.instance_layout)
+                       end
+
+                       if cctx.attr_sim then
+                               cc.instance_table = build_tables(ga, c, itab)
+                               for sc in c.cshe.greaters_and_self do
+                                       var scc = ga.compiled_classes[sc.global]
+                                       append_to_table(cc, cc.instance_table, scc.instance_layout)
+                               end
+                       end
+               end
+
+               return ga
+       end
+
+       private meth append_to_table(cc: ColorContext, table: Array[TableElt], cmp: TableEltComposite)
+       do
+               for j in [0..cmp.length[ do
+                       var e = cmp.item(j)
+                       cc.color(e) = table.length
+                       table.add(e)
+               end
+       end
+
+       private meth build_tables(ga: GlobalAnalysis, c: MMLocalClass, elts: Array[TableElt]): Array[TableElt]
+       do
+               var tab = new HashMap[Int, TableElt]
+               var len = 0
+               for e in elts do
+                       if e.is_related_to(c) then
+                               var col = ga.color(e)
+                               var l = col + e.length
+                               tab[col] = e
+                               if len < l then
+                                       len = l
+                               end
+                       end
+               end
+               var res = new Array[TableElt]
+               var i = 0
+               while i < len do
+                       if tab.has_key(i) then
+                               var e = tab[i]
+                               for j in [0..e.length[ do
+                                       res[i] = e.item(j)
+                                       i = i + 1
+                               end
+                       else
+                               res[i] = null
+                               i = i + 1
+                       end
+               end
+               return res
+       end
+
+       # Perform coloring
+       meth colorize(ga: GlobalAnalysis, elts: Array[TableElt], classes: Collection[MMLocalClass], startcolor: Int)
+       do
+               var colors = new HashMap[Int, Array[TableElt]]
+               var rel_classes = new Array[MMLocalClass]
+               for e in elts do
+                       var color = -1
+                       var len = e.length
+                       if ga.has_color(e) then
+                               color = ga.color(e)
+                       else
+                               rel_classes.clear
+                               for c in classes do
+                                       if e.is_related_to(c) then
+                                               rel_classes.add(c)
+                                       end
+                               end
+                               var trycolor = startcolor
+                               while trycolor != color do
+                                       color = trycolor
+                                       for c in rel_classes do
+                                               var idx = 0 
+                                               while idx < len do
+                                                       if colors.has_key(trycolor + idx) and not free_color(colors[trycolor + idx], c) then
+                                                               trycolor = trycolor + idx + 1
+                                                               idx = 0
+                                                       else
+                                                               idx = idx + 1
+                                                       end
+                                               end
+                                       end
+                               end
+                               ga.color(e) = color
+                       end
+                       for idx in [0..len[ do
+                               if colors.has_key(color + idx) then
+                                       colors[color + idx].add(e)
+                               else
+                                       colors[color + idx] = [e]
+                               end
+                       end
+               end
+       end
+
+       private meth free_color(es: Array[TableElt], c: MMLocalClass): Bool
+       do
+               for e2 in es do
+                       if e2.is_related_to(c) then
+                               return false
+                       end
+               end
+               return true
+       end
+
+       # Compile module and class tables
+       meth compile_tables_to_c(v: CompilerVisitor)
+       do
+               for m in mhe.greaters_and_self do
+                       assert m isa MMSrcModule
+                       m.compile_local_table_to_c(v)
+               end
+
+               for c in local_classes do
+                       c.compile_tables_to_c(v)
+               end
+               var s = "classtable_t TAG2VFT[4] = \{NULL"
+               for t in ["Int","Char","Bool"] do
+                       if has_global_class_named(t.to_symbol) then
+                               s.append(", (const classtable_t)VFT_{t}")
+                       else
+                               s.append(", NULL")
+                       end
+               end
+               s.append("};")
+               v.add_instr(s)
+       end
+
+       # Declare class table (for _sep.h)
+       meth declare_class_tables_to_c(v: CompilerVisitor)
+       do
+               for c in local_classes do
+                       if c.global.module == self then
+                               c.declare_tables_to_c(v)
+                       end
+               end
+       end
+
+       # Compile main part (for _table.c)
+       meth compile_main_part(v: CompilerVisitor)
+       do
+               v.add_instr("int main(int argc, char **argv) \{")
+               v.indent
+               v.add_instr("prepare_signals();")
+               v.add_instr("glob_argc = argc; glob_argv = argv;")
+               var sysname = once "Sys".to_symbol
+               if not has_global_class_named(sysname) then
+                       print("No main")
+               else
+                       var sys = class_by_name(sysname).get_type
+                       var main = sys.select_method(once "init".to_symbol)
+                       if main == null then
+                               main = sys.select_method(once "main".to_symbol)
+                       end
+                       if main == null then
+                               print("No main")
+                       else
+                               v.add_instr("G_sys = NEW_Sys();")
+                               v.add_instr("{main.cname}(G_sys);")
+                       end
+               end
+               v.add_instr("return 0;")
+               v.unindent
+               v.add_instr("}")
+       end
+       
+       # Compile sep files 
+       meth compile_mod_to_c(v: CompilerVisitor)
+       do
+               if not v.tc.global then
+                       v.add_decl("extern const int SFT_{name}[];")
+               end
+               var i = 0
+               for e in _local_table do
+                       if v.tc.global then
+                               v.add_decl("#define {e.symbol} {e.value(v.global_analysis)}")
+                       else
+                               v.add_decl("#define {e.symbol} SFT_{name}[{i}]")
+                               i = i + 1
+                       end
+               end
+               for c in src_local_classes do
+                       for p in c.src_local_properties do
+                               var pg = p.global
+                               if pg.intro == p and p isa MMAttribute then
+                                       if v.tc.attr_sim then
+                                               var bc = pg.local_class
+                                               assert bc isa MMSrcLocalClass
+                                               var s = bc.base_attr_pos.symbol
+                                               v.add_decl("#define {pg.attr_access}(recv) ATTRS(recv, {s}, {pg.pos_of})")
+                                       else
+                                               v.add_decl("#define {pg.attr_access}(recv) ATTR(recv, {pg.color_id})")
+                                       end
+                               end
+                               assert p isa MMSrcLocalProperty
+                               p.compile_property_to_c(v)
+                       end
+               end
+       end
+
+       # Compile module file for the current module
+       meth compile_local_table_to_c(v: CompilerVisitor)
+       do
+               if v.tc.global or _local_table.is_empty then
+                       return
+               end
+
+               v.add_instr("const int SFT_{name}[{_local_table.length}] = \{")
+               v.indent
+               for e in _local_table do
+                       v.add_instr(e.value(v.global_analysis) + ",")
+               end
+               v.unindent
+               v.add_instr("\};")
+       end
+end
+
+class TableElt
+       meth is_related_to(c: MMLocalClass): Bool is abstract
+       meth length: Int do return 1
+       meth item(i: Int): TableElt do return self
+       meth compile_to_c(v: CompilerVisitor, c: MMLocalClass): String is abstract
+end
+
+class LocalTableElt
+special TableElt
+       meth symbol: String is abstract
+       meth value(ga: GlobalAnalysis): String is abstract
+end
+
+class TableEltPropPos
+special LocalTableElt
+       attr _property: MMSrcLocalProperty
+       redef meth symbol do return _property.global.color_id
+       redef meth value(ga) do return "{ga.color(self)} /* Property {_property} */"
+
+       init(p: MMSrcLocalProperty)
+       do
+               _property = p
+       end
+end
+
+class TableEltMethPos
+special TableEltPropPos
+       redef meth compile_to_c(v, c)
+       do
+               var p = c[_property.global]
+               return p.cname
+       end
+       init(p) do super 
+end
+
+class TableEltSuperPos
+special TableEltPropPos
+       redef meth symbol do return _property.color_id_for_super
+       redef meth compile_to_c(v, c)
+       do
+               var pc = _property.local_class
+               var g = _property.global
+               var lin = c.che.linear_extension
+               var found = false
+               for s in lin do
+                       #print "{c.module}::{c} for {pc.module}::{pc}::{_property} try {s.module}:{s}"
+                       if s == pc then
+                               found = true
+                       else if found and c.che < s then
+                               var p = s[g]
+                               if p != null and p isa MMConcreteProperty then
+                                       #print "found {s.module}::{s}::{p}"
+                                       return p.cname
+                               end
+                       end
+               end
+               assert false
+               return null
+       end
+
+       init(p) do super 
+end
+
+class TableEltAttrPos
+special TableEltPropPos
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               var p = c[_property.global]
+               return "/* {ga.color(self)}: Attribute {c}::{p} */"
+       end
+
+       init(p) do super 
+end
+
+class TableEltClassPos
+special LocalTableElt
+       attr _local_class: MMLocalClass
+       redef meth is_related_to(c)
+       do
+               var bc = c.module[_local_class.global]
+               return c.cshe <= bc
+       end
+
+       init(c: MMLocalClass)
+       do
+               _local_class = c
+       end
+end
+
+class TableEltClassIdPos
+special TableEltClassPos
+       redef meth symbol do return _local_class.global.id_id
+       redef meth value(ga)
+       do
+               return "{ga.compiled_classes[_local_class.global].id} /* Id of {_local_class} */"
+       end
+
+       init(c) do super
+end
+
+class TableEltClassInitTablePos
+special TableEltClassPos
+       redef meth symbol do return _local_class.global.init_table_pos_id
+       redef meth value(ga)
+       do
+               return "{ga.color(self)} /* Color of {_local_class} */"
+       end
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               var cc = ga.compiled_classes[_local_class.global]
+               var linext = c.cshe.reverse_linear_extension
+               var i = 0
+               while linext[i].global != _local_class.global do
+                       i += 1
+               end
+               return "{i} /* {ga.color(self)}: {c} < {cc.local_class}: superclass init_table position */"
+       end
+
+       init(c) do super
+end
+
+class TableEltClassColorPos
+special TableEltClassPos
+       redef meth symbol do return _local_class.global.color_id
+       redef meth value(ga)
+       do
+               return "{ga.color(self)} /* Color of {_local_class} */"
+       end
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               var cc = ga.compiled_classes[_local_class.global]
+               return "{cc.id} /* {ga.color(self)}: {c} < {cc.local_class}: superclass typecheck marker */"
+       end
+
+       init(c) do super
+end
+
+class TableEltBaseAttrPos
+special LocalTableElt
+       attr _local_class: MMSrcLocalClass
+       redef meth symbol do return "COLOR_{_local_class.module}_{_local_class.name}_BASEATTR"
+       redef meth value(ga)
+       do
+               return "{ga.color(self)} /* BaseAttrPos of {_local_class} */"
+       end
+
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               var cc = ga.compiled_classes[c.global]
+               return "{cc.color(_local_class.instance_layout.first)} /* {ga.color(self)}: Base attribut offset of {_local_class.module}::{_local_class} in {c} */"
+       end
+
+       init(c: MMSrcLocalClass)
+       do
+               _local_class = c
+       end
+end
+
+class TableEltComposite
+special TableElt
+       attr _table: Array[LocalTableElt]
+       attr _cc: CompiledClass
+       attr _offsets: HashMap[MMLocalClass, Int]
+       redef meth length do return _table.length
+       redef meth is_related_to(c) do return c.cshe <= _cc.local_class
+
+       meth add(c: MMLocalClass, tab: Array[LocalTableElt])
+       do
+               _offsets[c] = _table.length
+               _table.append(tab)
+       end
+
+       redef meth item(i) do return _table[i]
+
+       redef meth compile_to_c(v, c) do abort
+
+       init(cc: CompiledClass)
+       do
+               _cc = cc
+               _table = new Array[LocalTableElt]
+               _offsets = new HashMap[MMLocalClass, Int]
+       end
+end
+
+class TableEltClassSelfId
+special TableElt
+       redef meth is_related_to(c) do return true
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               return "{v.global_analysis.compiled_classes[c.global].id} /* {ga.color(self)}: Identity */"
+       end
+
+       init do end
+end
+
+class TableEltVftPointer
+special TableElt
+       redef meth is_related_to(c) do return true
+       redef meth compile_to_c(v, c)
+       do
+               var ga = v.global_analysis
+               return "/* {ga.color(self)}: Pointer to the classtable */"
+       end
+
+       init do end
+end
+
+# Used to sort local class in a deterministic total order
+# The total order superset the class refinement and the class specialisation relations
+class ClassSorter
+special AbstractSorter[MMLocalClass]
+       redef meth compare(a, b) do return a.compare(b)
+       init do end
+end
+
+redef class MMLocalClass
+       # Comparaison in a total order that superset the class refinement and the class specialisation relations
+       meth compare(b: MMLocalClass): Int
+       do
+               var a = self
+               if a == b then
+                       return 0
+               else if a.module.mhe < b.module then
+                       return 1
+               else if b.module.mhe < a.module then
+                       return -1
+               end
+               var ar = a.cshe.rank
+               var br = b.cshe.rank
+               if ar > br then
+                       return 1
+               else if br > ar then
+                       return -1
+               else
+                       return b.name.to_s <=> a.name.to_s
+               end
+       end
+
+       # Declaration and macros related to the class table
+       meth declare_tables_to_c(v: CompilerVisitor)
+       do
+               v.add_decl("")
+               var pi = primitive_info
+               v.add_decl("extern const classtable_elt_t VFT_{name}[];")
+               if pi == null then
+                       # v.add_decl("val_t NEW_{name}(void);")
+               else if not pi.tagged then
+                       var t = pi.cname
+                       var tbox = "struct TBOX_{name}"
+                       v.add_decl("{tbox} \{ const classtable_elt_t * vft; {t} val;};")
+                       v.add_decl("val_t BOX_{name}({t} val);")
+                       v.add_decl("#define UNBOX_{name}(x) ((({tbox} *)(VAL2OBJ(x)))->val)")
+               end
+       end
+
+       # Compilation of table and new (or box)
+       meth compile_tables_to_c(v: CompilerVisitor)
+       do
+               var cc = v.global_analysis.compiled_classes[self.global]
+               var ctab =  cc.class_table
+               var clen = ctab.length
+               if v.global_analysis.max_class_table_length > ctab.length then
+                       clen = v.global_analysis.max_class_table_length
+               end
+
+               v.add_instr("const classtable_elt_t VFT_{name}[{clen}] = \{")
+               v.indent
+               for e in ctab do
+                       if e == null then
+                               v.add_instr("\{0} /* Class Hole :( */,")
+                       else
+                               v.add_instr("\{(int) {e.compile_to_c(v, self)}},")
+                       end
+               end
+               if clen > ctab.length then
+                       v.add_instr("\{0},"*(clen-ctab.length))
+               end
+               v.unindent
+               v.add_instr("};")
+               var itab = cc.instance_table
+               for e in itab do
+                       if e == null then
+                               v.add_instr("/* Instance Hole :( */")
+                       else
+                               v.add_instr(e.compile_to_c(v, self))
+                       end
+               end
+
+               var pi = primitive_info
+               if pi == null then
+                       v.clear
+                       var s = "val_t NEW_{name}(void)"
+                       v.add_instr(s + " \{")
+                       v.indent
+                       var ctx_old = v.ctx
+                       v.ctx = new CContext
+
+                       v.method_params = ["OBJ2VAL(obj)"]
+
+                       v.add_instr("obj_t obj;")
+                       v.add_instr("obj = alloc(sizeof(val_t) * {itab.length});")
+                       v.add_instr("obj->vft = (classtable_elt_t*)VFT_{name};")
+                       for g in global_properties do
+                               var p = self[g]
+                               var t = p.signature.return_type
+                               if p isa MMAttribute and t != null then
+                                       # FIXME: Not compatible with sep compilation
+                                       var pi = p.concrete_property
+                                       assert pi isa MMSrcAttribute
+                                       var np = pi.node
+                                       assert np isa AAttrPropdef
+                                       var ne = np.n_expr
+                                       if ne != null then
+                                               var e = ne.compile_expr(v)
+                                               v.add_instr("{p.global.attr_access}(obj) = {e};")
+                                       else
+                                               var pi = t.local_class.primitive_info
+                                               if pi != null and pi.tagged then
+                                                       var default = t.default_cvalue
+                                                       v.add_instr("{p.global.attr_access}(obj) = {default};")
+                                               end
+                                       end
+                               end
+                       end
+                       v.add_instr("return OBJ2VAL(obj);")
+                       ctx_old.append(v.ctx)
+                       v.ctx = ctx_old
+                       v.unindent
+                       v.add_instr("}")
+
+                       var init_table_size = cshe.greaters.length + 1
+                       var init_table_decl = "int init_table[{init_table_size}] = \{0{", 0" * (init_table_size-1)}};"
+
+                       for g in global_properties do
+                               var p = self[g]
+                               if not p.global.is_init or p.global.intro.local_class.global != global then continue
+                               v.clear
+                               var params = new Array[String]
+                               var args = ["self"]
+                               for i in [0..p.signature.arity[ do
+                                       params.add("val_t p{i}")
+                                       args.add("p{i}")
+                               end
+                               args.add("init_table")
+                               var s = "val_t NEW_{p.global.intro.cname}({params.join(", ")})"
+                               v.add_instr(s + " \{")
+                               v.indent
+                               v.add_instr(init_table_decl)
+                               v.add_instr("val_t self = NEW_{name}();")
+                               v.add_instr("{p.concrete_property.cname}({args.join(", ")});")
+                               v.add_instr("return self;")
+                               v.unindent
+                               v.add_instr("}")
+                       end
+               else if not pi.tagged then
+                       var t = pi.cname
+                       var tbox = "struct TBOX_{name}"
+                       v.add_instr("val_t BOX_{name}({t} val) \{")
+                       v.indent
+                       v.add_instr("{tbox} *box = ({tbox}*)alloc(sizeof({tbox}));")
+                       v.add_instr("box->vft = VFT_{name};")
+                       v.add_instr("box->val = val;")
+                       v.add_instr("return OBJ2VAL(box);")
+                       v.unindent
+                       v.add_instr("}")
+               end
+       end
+end
+
diff --git a/src/compiling/compiling_methods.nit b/src/compiling/compiling_methods.nit
new file mode 100644 (file)
index 0000000..baa66bf
--- /dev/null
@@ -0,0 +1,1279 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compile method bodies, statments and expressions to C.
+package compiling_methods
+
+import compiling_base
+private import syntax
+
+redef class CompilerVisitor
+       # Compile a statment node
+       meth compile_stmt(n: PExpr)
+       do
+               n.prepare_compile_stmt(self)
+               var i = _variable_index
+               n.compile_stmt(self)
+               _variable_index = i
+       end
+
+       # Compile is expression node
+       meth compile_expr(n: PExpr): String
+       do
+               var i = _variable_index
+               var s = n.compile_expr(self)
+               _variable_index = i
+               if s[0] == ' ' then
+                       return s
+               end
+               if s == variable(_variable_index-1) then
+                       return s
+               end
+               var v = get_var
+               add_assignment(v, s)
+               return v
+       end
+
+       # Ensure that a c expression is a var
+       meth ensure_var(s: String): String
+       do
+               if s.substring(0,3) == "variable" then
+                       return s
+               end
+               var v = get_var
+               add_assignment(v, s)
+               return v
+       end
+
+       # Add a assignment between a variable and an expression
+       meth add_assignment(v: String, s: String)
+       do
+               if v != s then
+                       add_instr("{v} = {s};")
+               end
+       end
+
+       # Return the ith variable
+       protected meth variable(i: Int): String
+       do
+               return "variable{i}"
+       end
+
+       # Next available variable number
+       attr _variable_index: Int
+
+       # Total number of variable
+       attr _variable_index_max: Int
+
+       # Return the next available variable
+       meth get_var: String
+       do
+               var v = variable(_variable_index)
+               _variable_index = _variable_index + 1
+               if _variable_index > _variable_index_max then
+                       add_decl("val_t {v};")
+                       _variable_index_max = _variable_index 
+               end
+               return v
+       end
+
+       # Mark the variable available
+       meth free_var(v: String)
+       do
+               # FIXME: So ugly..
+               if v == variable(_variable_index-1) then
+                       _variable_index = _variable_index - 1
+               end
+       end
+
+       # Clear all status related to a method body
+       meth clear
+       do
+               _has_return = false
+               indent_level = 0
+               _variable_index = 0
+               _variable_index_max = 0
+       end
+
+       # Association between nit variable and the corrsponding c variable
+       readable attr _varnames: Map[Variable, String] = new HashMap[Variable, String] 
+
+       # Is a "return" found in the method body
+       readable writable attr _has_return: Bool
+
+       # Association between parameters and the corresponding c variables
+       readable writable attr _method_params: Array[String] 
+
+       # Current method compiled
+       readable writable attr _method: MMSrcMethod
+
+       # Where a nit return must branch
+       readable writable attr _return_label: String 
+       
+       # Where a nit break must branch
+       readable writable attr _break_label: String 
+       
+       # Where a nit continue must branch
+       readable writable attr _continue_label: String 
+
+       # Variable where a functionnal nit return must store its value
+       readable writable attr _return_value: String 
+       
+       redef init(module: MMSrcModule)
+       do
+               super
+               clear
+       end
+
+       meth invoke_super_init_calls_after(start_prop: MMMethod)
+       do
+               var n = method.node
+               assert n isa AConcreteInitPropdef
+
+               if n.super_init_calls.is_empty then return
+               var i = 0
+               var j = 0
+               #var s = ""
+               if start_prop != null then
+                       while n.super_init_calls[i] != start_prop do
+                               #s.append(" {n.super_init_calls[i]}")
+                               i += 1
+                       end
+                       i += 1
+                       #s.append(" {start_prop}")
+
+                       while n.explicit_super_init_calls[j] != start_prop do
+                               j += 1
+                       end
+                       j += 1
+               end
+               var stop_prop: MMMethod
+               if j < n.explicit_super_init_calls.length then
+                       stop_prop = n.explicit_super_init_calls[j]
+               end
+               var l = n.super_init_calls.length
+               #s.append(" [")
+               while i < l do
+                       var p = n.super_init_calls[i]
+                       if p == stop_prop then break
+                       var cargs = method_params
+                       if p.signature.arity == 0 then
+                               cargs = [method_params[0]]
+                       end
+                       #s.append(" {p}")
+                       p.compile_call(self, cargs)
+                       i += 1
+               end
+               #s.append(" ]")
+               #while i < l do
+               #       s.append(" {n.super_init_calls[i]}")
+               #       i += 1
+               #end
+               #if stop_prop != null then s.append(" (stop at {stop_prop})")
+               #n.printl("implicit calls in {n.method}: {s}") 
+       end
+end
+
+###############################################################################
+
+redef class MMMethod
+       # Compile a call on self for given arguments
+       # Most calls are compiled with a table access,
+       # primitive calles are inlined
+       # == and != are guarded and possibly inlined
+       meth compile_call(v: CompilerVisitor, cargs: Array[String]): String
+       do
+               var i = concrete_property
+               assert i isa MMSrcMethod
+               if i.node isa AInternMethPropdef or 
+                       (i.local_class.name == (once "Array".to_symbol) and name == (once "[]".to_symbol))
+               then
+                       var e = i.do_compile_inside(v, cargs)
+                       return e
+               end
+               var ee = once "==".to_symbol
+               var ne = once "!=".to_symbol
+               if name == ne then
+                       var eqp = signature.recv.select_method(ee)
+                       var eqcall = eqp.compile_call(v, cargs)
+                       return "TAG_Bool(!UNTAG_Bool({eqcall}))"
+               end
+               if global.is_init then
+                       cargs = cargs.to_a
+                       cargs.add("init_table /*YYY*/")
+               end
+
+               var m = "(({cname}_t)CALL({cargs[0]},{global.color_id}))"
+               var vcall = "{m}({cargs.join(", ")}) /*{local_class}::{name}*/"
+               if name == ee then
+                       vcall = "UNTAG_Bool({vcall})"
+                       var obj = once "Object".to_symbol
+                       if i.local_class.name == obj then
+                               vcall = "(({m}=={i.cname})?(IS_EQUAL_NN({cargs[0]},{cargs[1]})):({vcall}))"
+                       end
+                       vcall = "TAG_Bool(({cargs.first} == {cargs[1]}) || (({cargs.first} != NIT_NULL) && {vcall}))"
+               end
+               if signature.return_type != null then
+                       return vcall
+               else
+                       v.add_instr(vcall + ";")
+                       return null
+               end
+       end
+
+       # Compile a call as constructor with given args
+       meth compile_constructor_call(v: CompilerVisitor, cargs: Array[String]): String
+       do
+               var recv = v.get_var
+               var stype = signature.recv
+               v.add_instr("{recv} = NEW_{global.intro.cname}({cargs.join(", ")}); /*new {stype}*/")
+               return recv
+       end
+
+       # Compile a call as call-next-method on self with given args
+       meth compile_super_call(v: CompilerVisitor, cargs: Array[String]): String
+       do
+               var m = "(({cname}_t)CALL({cargs[0]},{color_id_for_super}))"
+               var vcall = "{m}({cargs.join(", ")}) /*super {local_class}::{name}*/"
+               return vcall
+       end
+end
+
+redef class MMAttribute
+       # Compile an acces on selffor a given reciever.
+       # Result is a valid C left-value for assigment
+       meth compile_access(v: CompilerVisitor, recv: String): String
+       do
+               return "{global.attr_access}({recv}) /*{local_class}::{name}*/"
+       end
+end
+
+redef class MMSrcLocalProperty
+       # Compile the property as a C property
+       meth compile_property_to_c(v: CompilerVisitor) do end
+end
+
+redef class MMSrcMethod
+       # Compile and declare the signature to C
+       protected meth decl_csignature(v: CompilerVisitor, args: Array[String]): String
+       do
+               var params = new Array[String]
+               var params_new: Array[String]
+               if global.is_init then
+                       params_new = new Array[String]
+               end
+               params.add("val_t {args[0]}")
+               for i in [0..signature.arity[ do
+                       var p = "val_t {args[i+1]}"
+                       params.add(p)
+                       if params_new != null then params_new.add(p)
+               end
+               if global.is_init then
+                       params.add("int* init_table")
+               end
+               var ret: String
+               if signature.return_type != null then
+                       ret = "val_t"
+               else
+                       ret = "void"
+               end
+               var p = params.join(", ")
+               var s = "{ret} {cname}({p})"
+               v.add_decl("typedef {ret} (* {cname}_t)({p});")
+               v.add_decl(s + ";")
+               if params_new != null then
+                       v.add_decl("val_t NEW_{cname}({params_new.join(", ")});")
+               end
+               return s
+       end
+
+       redef meth compile_property_to_c(v)
+       do
+               v.clear
+               var args = new Array[String]
+               args.add(" self")
+               for i in [0..signature.arity[ do
+                       args.add(" param{i}")
+               end
+               var cs = decl_csignature(v, args)
+
+               v.add_instr("{cs} \{")
+               v.indent
+               var ctx_old = v.ctx
+               v.ctx = new CContext
+
+               v.add_decl("struct trace_t trace = \{NULL, \"{module.name}::{local_class.name}::{name} ({node.locate})\"};")
+               v.add_instr("trace.prev = tracehead; tracehead = &trace;")
+               var s = do_compile_inside(v, args)
+               v.add_instr("tracehead = trace.prev;")
+               if s == null then
+                       v.add_instr("return;")
+               else
+                       v.add_instr("return {s};")
+               end
+
+               ctx_old.append(v.ctx)
+               v.ctx = ctx_old
+               v.unindent
+               v.add_instr("}")
+       end
+
+       # Compile the method body inline
+       meth do_compile_inside(v: CompilerVisitor, params: Array[String]): String is abstract
+end
+
+redef class MMReadImplementationMethod
+       redef meth do_compile_inside(v, params)
+       do
+               return node.prop.compile_access(v, params[0])
+       end
+end
+
+redef class MMWriteImplementationMethod
+       redef meth do_compile_inside(v, params)
+       do
+               v.add_assignment(node.prop.compile_access(v, params[0]), params[1])
+               return null
+       end
+end
+
+redef class MMMethSrcMethod
+       redef meth do_compile_inside(v, params)
+       do
+               return node.do_compile_inside(v, self, params)
+       end
+end
+
+redef class MMType
+       # Compile a subtype check to self
+       # Return a NIT Bool
+       meth compile_cast(v: CompilerVisitor, recv: String): String
+       do
+               # Fixme: handle formaltypes
+               var g = local_class.global
+               return "TAG_Bool(({recv}==NIT_NULL) || VAL_ISA({recv}, {g.color_id}, {g.id_id})) /*cast {self}*/"
+       end
+
+       # Compile a cast assertion
+       meth compile_type_check(v: CompilerVisitor, recv: String, n: PNode)
+       do
+               # Fixme: handle formaltypes
+               var g = local_class.global
+               v.add_instr("if (({recv}!=NIT_NULL) && !VAL_ISA({recv}, {g.color_id}, {g.id_id})) \{ fprintf(stderr, \"Cast failled at {n.locate}\\n\"); nit_exit(1); } /*cast {self}*/;")
+       end
+end
+
+###############################################################################
+
+redef class AMethPropdef
+       # Compile the method body
+       meth do_compile_inside(v: CompilerVisitor, method: MMSrcMethod, params: Array[String]): String is abstract
+end
+
+redef class AConcreteMethPropdef
+       redef meth do_compile_inside(v, method, params)
+       do
+               var orig_meth: MMLocalProperty = method.global.intro
+               var orig_sig = orig_meth.signature.adaptation_to(method.signature.recv)
+               if n_signature != null then
+                       var sig = n_signature
+                       assert sig isa ASignature
+                       for ap in sig.n_params do
+                               var cname = v.get_var
+                               v.varnames[ap.variable] = cname
+                               var orig_type = orig_sig[ap.position]
+                               if not orig_type < ap.variable.stype then
+                                       # FIXME: do not test always
+                                       # FIXME: handle formal types
+                                       v.add_instr("/* check if p<{ap.variable.stype} with p:{orig_type} */")
+                                       ap.variable.stype.compile_type_check(v, params[ap.position + 1], ap)
+                               end
+                               v.add_assignment(cname, params[ap.position + 1])
+                       end
+               end
+               var old_method_params = v.method_params
+               var old_return_label = v.return_label
+               var old_return_value = v.return_value
+               var old_has_return = v.has_return
+
+               var itpos: String
+               if self isa AConcreteInitPropdef then
+                       itpos = "VAL2OBJ({params[0]})->vft[{method.local_class.global.init_table_pos_id}].i"
+                       # v.add_instr("printf(\"{method.full_name}: inittable[%d] = %d\\n\", {itpos}, init_table[{itpos}]);")
+                       v.add_instr("if (init_table[{itpos}]) return;")
+               end
+
+               v.method_params = params
+               v.has_return = false
+               v.return_label = "return_label{v.new_number}"
+               if method.signature.return_type != null then
+                       v.return_value = v.get_var
+                       v.free_var(v.return_value)
+               else
+                       v.return_value = null
+               end
+               if self isa AConcreteInitPropdef then
+                       v.method = method
+                       v.invoke_super_init_calls_after(null)
+               end
+               if n_block != null then
+                       v.compile_stmt(n_block)
+               end
+               if v.has_return then
+                       v.add_instr("{v.return_label}: while(false);")
+               end
+               if self isa AConcreteInitPropdef then
+                       v.add_instr("init_table[{itpos}] = 1;")
+               end
+               var ret = v.return_value
+               v.method_params = old_method_params
+               v.return_label = old_return_label
+               v.return_value = old_return_value
+               v.has_return = old_has_return
+               return ret
+       end
+end
+
+redef class ADeferredMethPropdef
+       redef meth do_compile_inside(v, method, params)
+       do
+               v.add_instr("fprintf(stderr, \"Deferred method {name} called ({first_token.locate})\\n\");")
+               v.add_instr("nit_exit(1);")
+               if method.signature.return_type != null then
+                       return("NIT_NULL")
+               else
+                       return null
+               end
+       end
+end
+
+redef class AExternMethPropdef
+       redef meth do_compile_inside(v, method, params)
+       do
+               var ename = "{method.module.name}_{method.local_class.name}_{method.local_class.name}_{method.name}_{method.signature.arity}"
+               if n_extern != null then
+                       ename = n_extern.text
+                       ename = ename.substring(1, ename.length-2)
+               end
+               var sig = method.signature
+               if params.length != sig.arity + 1 then
+                       printl("par:{params.length} sig:{sig.arity}")
+               end
+               var args = new Array[String]
+               args.add(sig.recv.unboxtype(params[0]))
+               for i in [0..sig.arity[ do
+                       args.add(sig[i].unboxtype(params[i+1]))
+               end
+               var s = "{ename}({args.join(", ")})"
+               if sig.return_type != null then
+                       return sig.return_type.boxtype(s)
+               else
+                       v.add_instr("{s};")
+                       return null
+               end
+       end
+end
+
+redef class AInternMethPropdef
+       redef meth do_compile_inside(v, method, p)
+       do
+               var c = method.local_class.name
+               var n = method.name
+               var s: String
+               if c == once "Int".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "{p[0]}"
+                       else if n == once "unary -".to_symbol then
+                               s = "TAG_Int(-UNTAG_Int({p[0]}))"
+                       else if n == once "output".to_symbol then
+                               v.add_instr("printf(\"%d\\n\", UNTAG_Int({p[0]}));")
+                       else if n == once "ascii".to_symbol then
+                               s = "TAG_Char(UNTAG_Int({p[0]}))"
+                       else if n == once "succ".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})+1)"
+                       else if n == once "prec".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})-1)"
+                       else if n == once "to_f".to_symbol then
+                               s = "BOX_Float((float)UNTAG_Int({p[0]}))"
+                       else if n == once "+".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})+UNTAG_Int({p[1]}))" 
+                       else if n == once "-".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})-UNTAG_Int({p[1]}))" 
+                       else if n == once "*".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})*UNTAG_Int({p[1]}))" 
+                       else if n == once "/".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})/UNTAG_Int({p[1]}))" 
+                       else if n == once "%".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})%UNTAG_Int({p[1]}))" 
+                       else if n == once "<".to_symbol then
+                               s = "TAG_Bool(UNTAG_Int({p[0]})<UNTAG_Int({p[1]}))" 
+                       else if n == once ">".to_symbol then
+                               s = "TAG_Bool(UNTAG_Int({p[0]})>UNTAG_Int({p[1]}))" 
+                       else if n == once "<=".to_symbol then
+                               s = "TAG_Bool(UNTAG_Int({p[0]})<=UNTAG_Int({p[1]}))" 
+                       else if n == once ">=".to_symbol then
+                               s = "TAG_Bool(UNTAG_Int({p[0]})>=UNTAG_Int({p[1]}))" 
+                       else if n == once "lshift".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})<<UNTAG_Int({p[1]}))" 
+                       else if n == once "rshift".to_symbol then
+                               s = "TAG_Int(UNTAG_Int({p[0]})>>UNTAG_Int({p[1]}))"
+                       else if n == once "==".to_symbol then
+                               s = "TAG_Bool(({p[0]})==({p[1]}))" 
+                       else if n == once "!=".to_symbol then
+                               s = "TAG_Bool(({p[0]})!=({p[1]}))" 
+                       end
+               else if c == once "Float".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "TAG_Int((int)UNBOX_Float({p[0]}))"
+                       else if n == once "unary -".to_symbol then
+                               s = "BOX_Float(-UNBOX_Float({p[0]}))"
+                       else if n == once "output".to_symbol then
+                               v.add_instr("printf(\"%f\\n\", UNBOX_Float({p[0]}));")
+                       else if n == once "to_i".to_symbol then
+                               s = "TAG_Int((int)UNBOX_Float({p[0]}))"
+                       else if n == once "+".to_symbol then
+                               s = "BOX_Float(UNBOX_Float({p[0]})+UNBOX_Float({p[1]}))" 
+                       else if n == once "-".to_symbol then
+                               s = "BOX_Float(UNBOX_Float({p[0]})-UNBOX_Float({p[1]}))" 
+                       else if n == once "*".to_symbol then
+                               s = "BOX_Float(UNBOX_Float({p[0]})*UNBOX_Float({p[1]}))" 
+                       else if n == once "/".to_symbol then
+                               s = "BOX_Float(UNBOX_Float({p[0]})/UNBOX_Float({p[1]}))" 
+                       else if n == once "<".to_symbol then
+                               s = "TAG_Bool(UNBOX_Float({p[0]})<UNBOX_Float({p[1]}))" 
+                       else if n == once ">".to_symbol then
+                               s = "TAG_Bool(UNBOX_Float({p[0]})>UNBOX_Float({p[1]}))" 
+                       else if n == once "<=".to_symbol then
+                               s = "TAG_Bool(UNBOX_Float({p[0]})<=UNBOX_Float({p[1]}))" 
+                       else if n == once ">=".to_symbol then
+                               s = "TAG_Bool(UNBOX_Float({p[0]})>=UNBOX_Float({p[1]}))" 
+                       end
+               else if c == once "Char".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "TAG_Int(UNTAG_Char({p[0]}))"
+                       else if n == once "unary -".to_symbol then
+                               s = "TAG_Char(-UNTAG_Char({p[0]}))"
+                       else if n == once "output".to_symbol then
+                               v.add_instr("printf(\"%c\", (unsigned char)UNTAG_Char({p[0]}));")
+                       else if n == once "ascii".to_symbol then
+                               s = "TAG_Int((unsigned char)UNTAG_Char({p[0]}))"
+                       else if n == once "succ".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})+1)"
+                       else if n == once "prec".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})-1)"
+                       else if n == once "to_i".to_symbol then
+                               s = "TAG_Int(UNTAG_Char({p[0]})-'0')"
+                       else if n == once "+".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})+UNTAG_Char({p[1]}))" 
+                       else if n == once "-".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})-UNTAG_Char({p[1]}))" 
+                       else if n == once "*".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})*UNTAG_Char({p[1]}))" 
+                       else if n == once "/".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})/UNTAG_Char({p[1]}))" 
+                       else if n == once "%".to_symbol then
+                               s = "TAG_Char(UNTAG_Char({p[0]})%UNTAG_Char({p[1]}))" 
+                       else if n == once "<".to_symbol then
+                               s = "TAG_Bool(UNTAG_Char({p[0]})<UNTAG_Char({p[1]}))" 
+                       else if n == once ">".to_symbol then
+                               s = "TAG_Bool(UNTAG_Char({p[0]})>UNTAG_Char({p[1]}))" 
+                       else if n == once "<=".to_symbol then
+                               s = "TAG_Bool(UNTAG_Char({p[0]})<=UNTAG_Char({p[1]}))" 
+                       else if n == once ">=".to_symbol then
+                               s = "TAG_Bool(UNTAG_Char({p[0]})>=UNTAG_Char({p[1]}))" 
+                       else if n == once "==".to_symbol then
+                               s = "TAG_Bool(({p[0]})==({p[1]}))" 
+                       else if n == once "!=".to_symbol then
+                               s = "TAG_Bool(({p[0]})!=({p[1]}))" 
+                       end
+               else if c == once "Bool".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "TAG_Int(UNTAG_Bool({p[0]}))"
+                       else if n == once "unary -".to_symbol then
+                               s = "TAG_Bool(-UNTAG_Bool({p[0]}))"
+                       else if n == once "output".to_symbol then
+                               v.add_instr("(void)printf(UNTAG_Bool({p[0]})?\"true\\n\":\"false\\n\");")
+                       else if n == once "ascii".to_symbol then
+                               s = "TAG_Bool(UNTAG_Bool({p[0]}))"
+                       else if n == once "to_i".to_symbol then
+                               s = "TAG_Int(UNTAG_Bool({p[0]}))"
+                       else if n == once "==".to_symbol then
+                               s = "TAG_Bool(({p[0]})==({p[1]}))" 
+                       else if n == once "!=".to_symbol then
+                               s = "TAG_Bool(({p[0]})!=({p[1]}))" 
+                       end
+               else if c == once "NativeArray".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "TAG_Int(UNBOX_NativeArray({p[0]}))"
+                       else if n == once "[]".to_symbol then
+                               s = "UNBOX_NativeArray({p[0]})[UNTAG_Int({p[1]})]"
+                       else if n == once "[]=".to_symbol then
+                               v.add_instr("UNBOX_NativeArray({p[0]})[UNTAG_Int({p[1]})]={p[2]};")
+                       else if n == once "copy_to".to_symbol then
+                               v.add_instr("(void)memcpy(UNBOX_NativeArray({p[1]}), UNBOX_NativeArray({p[0]}), UNTAG_Int({p[2]})*sizeof(val_t));")
+                       end     
+               else if c == once "NativeString".to_symbol then
+                       if n == once "object_id".to_symbol then
+                               s = "TAG_Int(UNBOX_NativeString({p[0]}))"
+                       else if n == once "atoi".to_symbol then
+                               s = "TAG_Int(atoi(UNBOX_NativeString({p[0]})))"
+                       else if n == once "[]".to_symbol then
+                               s = "TAG_Char(UNBOX_NativeString({p[0]})[UNTAG_Int({p[1]})])"
+                       else if n == once "[]=".to_symbol then
+                               v.add_instr("UNBOX_NativeString({p[0]})[UNTAG_Int({p[1]})]=UNTAG_Char({p[2]});")
+                       else if n == once "copy_to".to_symbol then
+                               v.add_instr("(void)memcpy(UNBOX_NativeString({p[1]})+UNTAG_Int({p[4]}), UNBOX_NativeString({p[0]})+UNTAG_Int({p[3]}), UNTAG_Int({p[2]}));")
+                       end
+               else if n == once "object_id".to_symbol then
+                       s = "TAG_Int((int){p[0]})"
+               else if n == once "sys".to_symbol then
+                       s = "(G_sys)"
+               else if n == once "is_same_type".to_symbol then
+                       s = "TAG_Bool((VAL2VFT({p[0]})==VAL2VFT({p[1]})))"
+               else if n == once "exit".to_symbol then
+                       v.add_instr("exit(UNTAG_Int({p[1]}));")
+               else if n == once "calloc_array".to_symbol then
+                       s = "BOX_NativeArray((val_t*)malloc((UNTAG_Int({p[1]}) * sizeof(val_t))))"
+               else if n == once "calloc_string".to_symbol then
+                       s = "BOX_NativeString((char*)malloc((UNTAG_Int({p[1]}) * sizeof(char))))"
+
+               else
+                       v.add_instr("fprintf(stderr, \"Intern {n}\\n\"); nit_exit(1);")
+               end
+               if method.signature.return_type != null and s == null then
+                       s = "NIT_NULL /*stub*/"
+               end
+               return s
+       end
+end
+
+###############################################################################
+
+redef class PExpr
+       # Compile the node as an expression
+       # Only the visitor should call it
+       meth compile_expr(v: CompilerVisitor): String is abstract
+
+       # Prepare a call of node as a statement
+       # Only the visitor should call it
+       # It's used for local variable managment
+       meth prepare_compile_stmt(v: CompilerVisitor) do end
+
+       # Compile the node as a statement
+       # Only the visitor should call it
+       meth compile_stmt(v: CompilerVisitor) do printl("Error!")
+end
+
+redef class ABlockExpr
+       redef meth compile_stmt(v)
+       do
+               for n in n_expr do
+                       v.compile_stmt(n)
+               end
+       end
+end
+
+redef class AVardeclExpr
+       redef meth prepare_compile_stmt(v)
+       do
+               var cname = v.get_var
+               v.varnames[variable] = cname
+       end
+
+       redef meth compile_stmt(v)
+       do
+               var cname = v.varnames[variable]
+               if n_expr == null then
+                       var t = variable.stype
+                       v.add_assignment(cname, "{t.default_cvalue} /*decl variable {variable.name}*/")
+               else
+                       var e = v.compile_expr(n_expr)
+                       v.add_assignment(cname, e)
+               end
+       end
+end
+
+redef class AReturnExpr
+       redef meth compile_stmt(v)
+       do
+               v.has_return = true
+               if n_expr != null then
+                       var e = v.compile_expr(n_expr)
+                       v.add_assignment(v.return_value, e)
+               end
+               v.add_instr("goto {v.return_label};")
+       end
+end
+
+redef class ABreakExpr
+       redef meth compile_stmt(v)
+       do
+               v.add_instr("goto {v.break_label};")
+       end
+end
+
+redef class AContinueExpr
+       redef meth compile_stmt(v)
+       do
+               v.add_instr("goto {v.continue_label};")
+       end
+end
+
+redef class AAbortExpr
+       redef meth compile_stmt(v)
+       do
+               v.add_instr("fprintf(stderr, \"Aborted: {locate}\\n\"); nit_exit(1);")
+       end
+end
+
+redef class ADoExpr
+       redef meth compile_stmt(v)
+       do
+                if n_block != null then
+                        v.compile_stmt(n_block)
+                end
+       end
+end
+
+redef class AIfExpr
+       redef meth compile_stmt(v)
+       do
+               var e = v.compile_expr(n_expr)
+               v.add_instr("if (UNTAG_Bool({e})) \{ /*if*/")
+               v.free_var(e)
+               if n_then != null then
+                       v.indent
+                       v.compile_stmt(n_then)
+                       v.unindent
+               end
+               if n_else != null then
+                       v.add_instr("} else \{ /*if*/")
+                       v.indent
+                       v.compile_stmt(n_else)
+                       v.unindent
+               end
+               v.add_instr("}")
+       end
+end
+
+redef class AIfexprExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.compile_expr(n_expr)
+               v.add_instr("if (UNTAG_Bool({e})) \{ /*if*/")
+               v.free_var(e)
+               v.indent
+               var e = v.ensure_var(v.compile_expr(n_then))
+               v.unindent
+               v.add_instr("} else \{ /*if*/")
+               v.free_var(e)
+               v.indent
+               var e2 = v.ensure_var(v.compile_expr(n_else))
+               v.add_assignment(e, e2)
+               v.unindent
+               v.add_instr("}")
+               return e
+       end
+end
+
+redef class AControlableBlock
+       meth compile_inside_block(v: CompilerVisitor) is abstract
+       redef meth compile_stmt(v)
+       do
+               var old_break_label = v.break_label
+               var old_continue_label = v.continue_label
+               var id = v.new_number
+               v.break_label = "break_{id}"
+               v.continue_label = "continue_{id}"
+
+               compile_inside_block(v)
+
+
+               v.break_label = old_break_label
+               v.continue_label = old_continue_label
+       end
+end
+
+redef class AWhileExpr
+       redef meth compile_inside_block(v)
+       do
+               v.add_instr("while (true) \{ /*while*/")
+               v.indent
+               var e = v.compile_expr(n_expr)
+               v.add_instr("if (!UNTAG_Bool({e})) break; /* while*/")
+               v.free_var(e)
+               if n_block != null then
+                       v.compile_stmt(n_block)
+               end
+               v.add_instr("{v.continue_label}: while(0);")
+               v.unindent
+               v.add_instr("}")
+               v.add_instr("{v.break_label}: while(0);")
+       end
+end
+
+redef class AForExpr
+       redef meth compile_inside_block(v)
+       do
+               v.compile_stmt(n_vardecl)
+       end
+end
+
+redef class AForVardeclExpr
+       redef meth compile_stmt(v)
+       do
+               var e = v.compile_expr(n_expr)
+               var prop = n_expr.stype.select_method(once "iterator".to_symbol)
+               if prop == null then
+                       printl("No iterator")
+                       return
+               end
+               var ittype = prop.signature.return_type
+               v.free_var(e)
+               var iter = v.get_var
+               v.add_assignment(iter, prop.compile_call(v, [e]))
+               var prop2 = ittype.select_method(once "is_ok".to_symbol)
+               if prop2 == null then
+                       printl("No is_ok")
+                       return
+               end
+               var prop3 = ittype.select_method(once "item".to_symbol)
+               if prop3 == null then
+                       printl("No item")
+                       return
+               end
+               var prop4 = ittype.select_method(once "next".to_symbol)
+               if prop4 == null then
+                       printl("No next")
+                       return
+               end
+               v.add_instr("while (true) \{ /*for*/")
+               v.indent
+               var ok = v.get_var
+               v.add_assignment(ok, prop2.compile_call(v, [iter]))
+               v.add_instr("if (!UNTAG_Bool({ok})) break; /*for*/")
+               v.free_var(ok)
+               var e = prop3.compile_call(v, [iter])
+               e = v.ensure_var(e)
+               v.varnames[variable] = e
+               var par = parent
+               assert par isa AForExpr
+               var n_block = par.n_block
+               if n_block != null then
+                       v.compile_stmt(n_block)
+               end
+               v.add_instr("{v.continue_label}: while(0);")
+               e = prop4.compile_call(v, [iter])
+               assert e == null
+               v.unindent
+               v.add_instr("}")
+               v.add_instr("{v.break_label}: while(0);")
+       end
+end
+
+redef class AAssertExpr
+       redef meth compile_stmt(v)
+       do
+               var e = v.compile_expr(n_expr)
+               var s = "Assert"
+               if n_id != null then
+                       s = "Assert '{n_id.text}' "
+               end
+               v.add_instr("if (!UNTAG_Bool({e})) \{ fprintf(stderr, \"{s} failed: {locate}\\n\"); nit_exit(1);}")
+       end
+end
+
+redef class AVarExpr
+       redef meth compile_expr(v)
+       do
+               return " {v.varnames[variable]} /*{variable.name}*/"
+       end
+end
+
+redef class AVarAssignExpr
+       redef meth compile_stmt(v)
+       do
+               var e = v.compile_expr(n_value)
+               v.add_assignment(v.varnames[variable], "{e} /*{variable.name}=*/")
+       end
+end
+
+redef class AVarReassignExpr
+       redef meth compile_stmt(v)
+       do
+               var e1 = v.varnames[variable]
+               var e2 = v.compile_expr(n_value)
+               var e3 = assign_method.compile_call(v, [e1, e2])
+               v.add_assignment(v.varnames[variable], "{e3} /*{variable.name}*/")
+       end
+end
+
+redef class ASelfExpr
+       redef meth compile_expr(v)
+       do
+               return v.method_params[0]
+       end
+end
+
+redef class AOrExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.ensure_var(v.compile_expr(n_expr))
+               v.add_instr("if (!UNTAG_Bool({e})) \{ /* or */")
+               v.free_var(e)
+               v.indent
+               var e2 = v.compile_expr(n_expr2)
+               v.add_assignment(e, e2)
+               v.unindent
+               v.add_instr("}")
+               return e
+       end
+end
+
+redef class AAndExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.ensure_var(v.compile_expr(n_expr))
+               v.add_instr("if (UNTAG_Bool({e})) \{ /* and */")
+               v.free_var(e)
+               v.indent
+               var e2 = v.compile_expr(n_expr2)
+               v.add_assignment(e, e2)
+               v.unindent
+               v.add_instr("}")
+               return e
+       end
+end
+
+redef class ANotExpr
+       redef meth compile_expr(v)
+       do
+               return " TAG_Bool(!UNTAG_Bool({v.compile_expr(n_expr)}))"
+       end
+end
+
+redef class AEeExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.compile_expr(n_expr)
+               var e2 = v.compile_expr(n_expr2)
+               return "TAG_Bool(IS_EQUAL_NN({e},{e2}))"
+       end
+end
+
+redef class AIsaExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.compile_expr(n_expr)
+               return n_type.stype.compile_cast(v, e)
+       end
+end
+
+redef class ATrueExpr
+       redef meth compile_expr(v)
+       do
+               return " TAG_Bool(true)"
+       end
+end
+
+redef class AFalseExpr
+       redef meth compile_expr(v)
+       do
+               return " TAG_Bool(false)"
+       end
+end
+
+redef class AIntExpr
+       redef meth compile_expr(v)
+       do
+               return " TAG_Int({n_number.text})"
+       end
+end
+
+redef class AFloatExpr
+       redef meth compile_expr(v)
+       do
+               return "BOX_Float({n_float.text})"
+       end
+end
+
+redef class ACharExpr
+       redef meth compile_expr(v)
+       do
+               return " TAG_Char({n_char.text})"
+       end
+end
+
+redef class AStringFormExpr
+       redef meth compile_expr(v)
+       do
+               var prop = stype.select_method(once "with_native".to_symbol)
+               compute_string_info
+               return prop.compile_constructor_call(v, ["BOX_NativeString(\"{_cstring}\")", "TAG_Int({_cstring_length})"])
+       end
+
+       # The raw string value
+       protected meth string_text: String is abstract
+
+       # The string in a C native format
+       protected attr _cstring: String
+
+       # The string length in bytes
+       protected attr _cstring_length: Int
+
+       # Compute _cstring and _cstring_length using string_text
+       protected meth compute_string_info
+       do
+               var len = 0
+               var str = string_text
+               var res = new String
+               var i = 0
+               while i < str.length do
+                       var c = str[i]
+                       if c == '\\' then
+                               i = i + 1
+                               var c2 = str[i]
+                               if c2 != '{' and c2 != '}' then
+                                       res.add(c)
+                               end
+                               c = c2
+                       end
+                       len = len + 1
+                       res.add(c)
+                       i = i + 1
+               end
+               _cstring = res
+               _cstring_length = len
+       end
+end
+
+redef class AStringExpr
+       redef meth string_text do return n_string.text.substring(1, n_string.text.length - 2)
+end
+redef class AStartStringExpr
+       redef meth string_text do return n_string.text.substring(1, n_string.text.length - 2)
+end
+redef class AMidStringExpr
+       redef meth string_text do return n_string.text.substring(1, n_string.text.length - 2)
+end
+redef class AEndStringExpr
+       redef meth string_text do return n_string.text.substring(1, n_string.text.length - 2)
+end
+
+redef class ASuperstringExpr
+       redef meth compile_expr(v)
+       do
+               var prop = stype.select_method(once "init".to_symbol)
+               var recv = prop.compile_constructor_call(v, new Array[String]) 
+
+               var prop2 = stype.select_method(once "append".to_symbol)
+
+               var prop3 = stype.select_method(once "to_s".to_symbol)
+               for ne in n_exprs do
+                       var e = v.ensure_var(v.compile_expr(ne))
+                       if ne.stype != stype then
+                               v.add_assignment(e, prop3.compile_call(v, [e]))
+                       end
+                       prop2.compile_call(v, [recv, e])
+               end
+
+               return recv
+       end
+end
+
+redef class ANullExpr
+       redef meth compile_expr(v)
+       do
+               return " NIT_NULL /*null*/"
+       end
+end
+
+redef class AArrayExpr
+       redef meth compile_expr(v)
+       do
+               var prop = stype.select_method(once "with_capacity".to_symbol)
+               var recv = prop.compile_constructor_call(v,["TAG_Int({n_exprs.length})"])
+
+               var prop2 = stype.select_method(once "add".to_symbol)
+               for ne in n_exprs do
+                       var e = v.compile_expr(ne)
+                       prop2.compile_call(v, [recv, e])
+               end
+               return recv
+       end
+end
+
+redef class ARangeExpr
+       redef meth compile_expr(v)
+       do
+               var prop = stype.select_method(propname)
+               var e = v.compile_expr(n_expr)
+               var e2 = v.compile_expr(n_expr2)
+               return prop.compile_constructor_call(v, [e, e2])
+       end
+       # The constructor that must be used for the range
+       protected meth propname: Symbol is abstract
+end
+
+redef class ACrangeExpr
+       redef meth propname do return once "init".to_symbol
+end
+redef class AOrangeExpr
+       redef meth propname do return once "without_last".to_symbol
+end
+
+redef class ASuperExpr
+       redef meth compile_stmt(v)
+       do
+               var e = compile_expr(v)
+               if e != null then v.add_instr("{e};")
+       end
+
+       redef meth compile_expr(v)
+       do
+               var arity = v.method_params.length - 1
+               if init_in_superclass != null then
+                       arity = init_in_superclass.signature.arity
+               end
+               var args = new Array[String].with_capacity(arity + 1)
+               args.add(v.method_params[0])
+               if n_args.length != arity then
+                       for i in [0..arity[ do
+                               args.add(v.method_params[i + 1])
+                       end
+               else
+                       for na in n_args do
+                               args.add(v.compile_expr(na))
+                       end
+               end
+               #return "{prop.cname}({args.join(", ")}) /*super {prop.local_class}::{prop.name}*/"
+               if init_in_superclass != null then
+                       return init_in_superclass.compile_call(v, args)
+               else
+                       if prop.global.is_init then args.add("init_table")
+                       return prop.compile_super_call(v, args)
+               end
+       end
+end
+
+redef class AAttrExpr
+       redef meth compile_expr(v)
+       do
+               var e = v.compile_expr(n_expr)
+               return prop.compile_access(v, e)
+       end
+end
+
+redef class AAttrAssignExpr
+       redef meth compile_stmt(v)
+       do
+               var e = v.compile_expr(n_expr)
+               var e2 = v.compile_expr(n_value)
+               v.add_assignment(prop.compile_access(v, e), e2)
+       end
+end
+redef class AAttrReassignExpr
+       redef meth compile_stmt(v)
+       do
+               var e1 = v.compile_expr(n_expr)
+               var e2 = prop.compile_access(v, e1)
+               var e3 = v.compile_expr(n_value)
+               var e4 = assign_method.compile_call(v, [e2, e3])
+               v.add_assignment(e2, e4)
+       end
+end
+
+redef class ASendExpr
+       redef meth compile_expr(v)
+       do
+               var recv = v.compile_expr(n_expr)
+               var cargs = new Array[String]
+               cargs.add(recv)
+               for a in arguments do
+                       cargs.add(v.compile_expr(a))
+               end
+
+               var e = prop.compile_call(v, cargs)
+               if prop.global.is_init then
+                       v.invoke_super_init_calls_after(prop)
+               end
+               return e
+       end
+
+       redef meth compile_stmt(v)
+       do
+               var e = compile_expr(v)
+               if e != null then
+                       v.add_instr(e + ";")
+               end
+       end
+end
+
+redef class ASendReassignExpr
+       redef meth compile_expr(v)
+       do
+               var recv = v.compile_expr(n_expr)
+               var cargs = new Array[String]
+               cargs.add(recv)
+               for a in arguments do
+                       cargs.add(v.compile_expr(a))
+               end
+
+               var e2 = read_prop.compile_call(v, cargs)
+               var e3 = v.compile_expr(n_value)
+               var e4 = assign_method.compile_call(v, [e2, e3])
+               cargs.add(e4)
+               return prop.compile_call(v, cargs)
+       end
+end
+
+redef class ANewExpr
+       redef meth compile_expr(v)
+       do
+               var cargs = new Array[String]
+               for a in arguments do
+                       cargs.add(v.compile_expr(a))
+               end
+               return prop.compile_constructor_call(v, cargs) 
+       end
+end
+
+redef class AProxyExpr
+       redef meth compile_expr(v)
+       do
+               return v.compile_expr(n_expr)
+       end
+end
+
+redef class AOnceExpr
+       redef meth compile_expr(v)
+       do
+               var i = v.new_number
+               var cvar = v.get_var
+               v.add_decl("static val_t once_value_{cvar}_{i}; static int once_bool_{cvar}_{i};")
+               v.add_instr("if (once_bool_{cvar}_{i}) {cvar} = once_value_{cvar}_{i};")
+               v.add_instr("else \{")
+               v.indent
+               v.free_var(cvar)
+               var e = v.compile_expr(n_expr)
+               v.add_assignment(cvar, e)
+               v.add_instr("once_value_{cvar}_{i} = {cvar};")
+               v.add_instr("once_bool_{cvar}_{i} = true;")
+               v.unindent
+               v.add_instr("}")
+               return cvar
+       end
+end
diff --git a/src/metamodel/abstractmetamodel.nit b/src/metamodel/abstractmetamodel.nit
new file mode 100644 (file)
index 0000000..a76a3c4
--- /dev/null
@@ -0,0 +1,651 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# core NIT metamodel classes featuring the minimal and simpliest entities
+package abstractmetamodel
+
+import partial_order
+
+# The main singleton which knows everything
+class MMContext
+
+       init do end
+
+       # The module dependence hierarchy
+       readable attr _module_hierarchy: PartialOrder[MMModule] = new PartialOrder[MMModule]
+
+       # The class refinement and specialization hierarchy
+       # It is not the real hierarchy since non concrete classes can only be leaves
+       readable attr _class_hierarchy: PartialOrder[MMLocalClass] = new PartialOrder[MMLocalClass]
+
+       # All known global classes
+       attr _global_classes: Array[MMGlobalClass] = new Array[MMGlobalClass]
+
+       # All known modules
+       readable attr _modules: Array[MMModule] = new Array[MMModule]
+
+       # Register a new module with the modules it depends on 
+       meth add_module(module: MMModule, supers: Array[MMModule])
+       do
+               assert supers != null
+               _module_hierarchy.add(module, _module_hierarchy.select_smallests(supers))
+               assert module.name != null
+               _modules.add(module)
+               module._mhe = _module_hierarchy[module]
+       end
+
+       # Register a global class
+       private meth add_global_class(c: MMGlobalClass) do _global_classes.add(c)
+
+       # Register a local class
+       meth add_local_class(c: MMLocalClass, sup: Array[MMLocalClass])
+       do
+               assert sup != null
+               var csup = new Array[MMLocalClass]
+               var csups = new Array[String]
+               for s in sup do
+                       if s isa MMConcreteClass then
+                               csup.add(s)
+                       else
+                               for ss in s.che.direct_greaters do
+                                       if csup.has(ss) then continue
+                                       csup.add(ss)
+                               end
+                       end
+               end
+               var che = _class_hierarchy.add(c, csup)
+               c._che = che
+       end
+end
+
+# Directory of modules
+class MMDirectory
+       # Full name of the directory
+       readable attr _name: Symbol
+
+       # Full path
+       readable attr _path: String
+
+       # Parent directory
+       # null if none
+       readable attr _parent: MMDirectory
+
+       # The module that introduces the directory if any
+       readable writable attr _owner: MMModule
+
+       # Known modules in the directory
+       readable attr _modules: Map[Symbol, MMModule] = new HashMap[Symbol, MMModule]
+
+       # Register a new module
+       meth add_module(module: MMModule)
+       do
+               assert not _modules.has_key(module.name)
+               _modules[module.name] = module
+       end
+
+       # Directory hierarchy element
+       readable attr _dhe: PartialOrderElement[MMDirectory]
+
+       init(name: Symbol, path: String, parent: MMDirectory) do
+               _name = name
+               _path = path
+               _parent = parent
+       end
+
+       # The fullname of a a potentiel module in the directory
+       meth full_name_for(module_name: Symbol): Symbol do
+               return "{name}/{module_name}".to_symbol
+       end
+end
+
+# A module is a NIT package
+class MMModule
+       # Global context
+       readable attr _context: MMContext 
+
+       # Short name of the module
+       readable attr _name: Symbol
+
+       # Full name of the module
+       readable attr _full_name: Symbol
+
+       # The directory of the module
+       readable attr _directory: MMDirectory
+
+       # Module dependence hierarchy element
+       readable attr _mhe: PartialOrderElement[MMModule] 
+
+       # All global classes of the module (defined and imported)
+       readable attr _global_classes: Array[MMGlobalClass] = new Array[MMGlobalClass]
+
+       # All local classes of the module (defined and imported)
+       readable attr _local_classes: Array[MMLocalClass] = new Array[MMLocalClass]
+
+       # Class specialization hierarchy of the module.
+       readable attr _class_specialization_hierarchy: PartialOrder[MMLocalClass] = new PartialOrder[MMLocalClass]
+
+       # Modules intruded (directly or not)
+       attr _intrude_modules: Set[MMModule] = new HashSet[MMModule]
+
+       # Module publicly imported (directly or not)
+       attr _public_modules: Set[MMModule] = new HashSet[MMModule]
+
+       # Module privately imported (directly or not)
+       attr _private_modules: Set[MMModule] = new HashSet[MMModule]
+
+       # Explicit imported modules
+       readable attr _explicit_imported_modules: Set[MMModule] = new HashSet[MMModule]
+
+       # Association between local class and global classes
+       attr _local_class_by_global: Map[MMGlobalClass, MMLocalClass] = new HashMap[MMGlobalClass, MMLocalClass]
+
+       # Dictionary of global classes
+       attr _global_class_by_name: Map[Symbol, MMGlobalClass] = new HashMap[Symbol, MMGlobalClass]
+
+       protected init(name: Symbol, dir: MMDirectory, context: MMContext)
+       do
+               _name = name
+               _directory = dir
+               _context = context
+
+               if dir == null then
+                       _full_name = name
+               else
+                       _full_name = dir.full_name_for(name)
+               end
+       end
+
+       # Register that a module is imported with a visibility
+       # 0 -> intrude
+       # 1 -> public
+       # 3 -> private
+       meth add_super_module(m: MMModule, visibility_level: Int)
+       do
+               _explicit_imported_modules.add(m)
+               if visibility_level == 0 then
+                       _intrude_modules.add(m)
+                       _intrude_modules.add_all(m._intrude_modules)
+                       _public_modules.add_all(m._public_modules)
+                       _private_modules.add_all(m._private_modules)
+               else if visibility_level == 1 then
+                       _public_modules.add(m)
+                       _public_modules.add_all(m._intrude_modules)
+                       _public_modules.add_all(m._public_modules)
+               else
+                       _private_modules.add(m)
+                       _private_modules.add_all(m._intrude_modules)
+                       _private_modules.add_all(m._public_modules)
+               end
+
+       end
+
+       # Return the visibiliy level of a super-module
+       # 3 -> self or intruded => see all
+       # 2 -> public => see public and protected
+       # 1 -> private => see public and protected
+       # 0 -> nothing => see nothing
+       meth visibility_for(m: MMModule): Int
+       do
+               if m == self or _intrude_modules.has(m) then
+                       return 3
+               else if _public_modules.has(m) then
+                       return 2
+               else if _private_modules.has(m) then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+
+       # Get the local class associated with a global class 
+       meth [](c: MMGlobalClass): MMLocalClass
+       do
+               assert _local_class_by_global != null
+               assert c != null
+               if _local_class_by_global.has_key(c) then
+                       return _local_class_by_global[c]
+               else
+                       return null
+               end
+       end
+
+       # Register a local class to the module
+       meth add_local_class(c: MMLocalClass)
+       do
+               c._module = self
+               _local_classes.add(c)
+       end
+
+       # Get a local class by its name
+       meth class_by_name(n: Symbol): MMLocalClass
+       do
+               return self[_global_class_by_name[n]]
+       end
+
+       # Is there a global class with this name
+       meth has_global_class_named(n: Symbol): Bool
+       do
+               return _global_class_by_name.has_key(n)
+       end
+
+       # Get a global class by its name.
+       # Return null if not class match this name
+       meth global_class_named(n: Symbol): MMGlobalClass
+       do
+               if _global_class_by_name.has_key(n) then
+                       return _global_class_by_name[n]
+               else
+                       return null
+               end
+       end
+
+       redef meth to_s do return name.to_s
+
+       # Assign super_classes for a local class
+       meth set_supers_class(c: MMLocalClass, supers: Array[MMLocalClass])
+       do
+               assert supers != null
+               var tab = _class_specialization_hierarchy.select_smallests(supers)
+               c._cshe = _class_specialization_hierarchy.add(c,tab)
+               var tab_all = c.crhe.direct_greaters.to_a
+               tab_all.add_all(tab)
+               context.add_local_class(c,tab_all)
+       end
+
+       # Register a local class and its global class in the module
+       private meth register_global_class(c: MMLocalClass)
+       do
+               assert c.global != null
+               _local_class_by_global[c.global] = c
+       end
+end
+
+class MMGlobalClass
+       # The introducing local class
+       readable attr _intro: MMLocalClass 
+
+       # Class refinement hierarchy
+       # It is not the real hierarchy since non concrete classes can only be leaves
+       readable attr _class_refinement_hierarchy: PartialOrder[MMLocalClass] = new PartialOrder[MMLocalClass] 
+
+       # Create a new global class introduced with a given local class
+       init(c: MMLocalClass)
+       do
+               _intro = c
+               c.context.add_global_class(self)
+       end
+
+       # The name of the global class
+       meth name: Symbol
+       do
+               return intro.name
+       end
+
+       # The module that introduces the global class
+       meth module: MMModule
+       do
+               return intro.module
+       end
+
+       redef meth to_s
+       do
+               return intro.to_s
+       end
+
+       # register a new Local class to local class hierarchy (set the crhe value)
+       private meth register_local_class(c: MMLocalClass)
+       do
+               assert c.module != null
+               assert c.crhe == null
+               var sup = new  Array[MMLocalClass]
+               for s in class_refinement_hierarchy do
+                       if c.module.mhe < s.module and s isa MMConcreteClass then
+                               sup.add(s)
+                       end
+               end
+               c._crhe = _class_refinement_hierarchy.add(c, sup)
+       end
+
+       # Is the global class an interface?
+       readable writable attr _is_interface: Bool
+
+       # Is the global class an abstract class?
+       readable writable attr _is_abstract: Bool
+
+       # Is the global class a universal class?
+       readable writable attr _is_universal: Bool
+
+       # Visibility of the global class
+       # 1 -> public
+       # 3 -> private
+       readable writable attr _visibility_level: Int
+end
+
+# Local classes are classes defined, refined or imported in a module
+class MMLocalClass
+       # The name of the local class
+        readable attr _name: Symbol
+
+       # Arity of the local class (if generic)
+       # FIXME: How to move this into the generic module in a sane way?
+       readable attr _arity : Int 
+
+       # The module of the local class
+       readable attr _module: MMModule
+
+       # Is the class abstract
+       readable writable attr _abstract: Bool
+
+       # The global class of the local class
+       readable attr _global: MMGlobalClass 
+
+       # The local class refinement hierarchy element
+       readable attr _crhe: PartialOrderElement[MMLocalClass] 
+
+       # The local class specialization hierarchy element
+       readable attr _cshe: PartialOrderElement[MMLocalClass] 
+
+       # The local class full hierarchy element
+       readable attr _che: PartialOrderElement[MMLocalClass]
+
+       # Association between local properties and global properties
+       readable attr _local_property_by_global: Map[MMGlobalProperty, MMLocalProperty] 
+
+       # All known global properties
+       readable attr _global_properties: Set[MMGlobalProperty] 
+
+       # Dictionnary of global properties
+       readable attr _properties_by_name: Map[Symbol, Array[MMGlobalProperty]]
+
+       # Create a new class with a given name and arity
+       protected init(name: Symbol, arity: Int)
+       do
+               _name = name
+               _arity = arity
+       end
+
+       # The corresponding local class in another module
+       meth for_module(m: MMModule): MMLocalClass
+       do
+               return m[global]
+       end
+       
+       # Introduce a new global class to a new global one and register to hierarchy with no refine
+       meth new_global
+       do
+               var g = new MMGlobalClass(self)
+               _module._global_classes.add(g)
+               _module._global_class_by_name[name] = g
+               set_global(g)
+       end
+
+       # Associate this local class to a global one and register to hierarchy
+       # the global class for this class
+       # refined classes for this class
+       meth set_global(g: MMGlobalClass)
+       do
+               assert g != null
+               _global = g
+               _global.register_local_class(self)
+               _module.register_global_class(self)
+       end
+
+       # Is there a global propery with a given name
+       # TODO: Will disapear when qualified names will be available
+       meth has_global_property_by_name(n: Symbol): Bool
+       do
+               var props = _properties_by_name[n]
+               return props != null
+       end
+
+       # Get a global property by its name
+       # TODO: Will disapear when qualified names will be available
+       meth get_property_by_name(n: Symbol): MMGlobalProperty
+       do
+               var props = _properties_by_name[n]
+               if props == null or props.length > 1 then
+                       return null
+               end
+               return props.first
+       end
+
+       # Get a attribute by its name
+       # TODO: Will disapear when qualified names will be available
+       meth attribute(a: Symbol): MMGlobalProperty
+       do
+               return get_property_by_name(a)
+       end
+
+       # Get a method by its name
+       # TODO: Will disapear when qualified names will be available
+       meth method(na: Symbol): MMGlobalProperty
+       do
+               assert _properties_by_name != null
+               var props = _properties_by_name[na]
+               if props != null then
+                       return props.first
+               end
+
+               return null
+       end
+       
+       # Look in super-classes (by specialization) and return properties with name
+       # Beware, global property of results is not intended to be the same
+       meth super_methods_named(n: Symbol): Array[MMLocalProperty] 
+       do
+               var classes = new Array[MMLocalClass]
+               for c in cshe.greaters do
+                       var g = c.method(n)
+                       if g == null then continue
+                       classes.add(c)
+               end
+               classes = cshe.order.select_smallests(classes)
+               var res = new Array[MMLocalProperty]
+               for c in classes do
+                       var g = c.method(n)
+                       #print "found {c[g].full_name}"
+                       res.add(c[g])
+               end
+               return res
+       end
+
+       # Register a local property and associate it with its global property
+       meth register_local_property(p: MMLocalProperty)
+       do
+               assert p.global != null
+               # FIXME: Why a test?
+               if not _local_property_by_global.has_key(p.global) then
+                       _local_property_by_global[p.global] = p
+               end
+       end
+
+       # Register a global property and associate it with its name
+       meth register_global_property(glob: MMGlobalProperty)
+       do
+               var prop = glob.intro
+               var name = prop.name
+               var  props = _properties_by_name[name]
+               if props == null then
+                       _properties_by_name[name] = [glob]
+               else
+                       _properties_by_name[name].add(glob)
+               end
+               _global_properties.add(glob)
+               register_local_property(prop)
+       end
+
+       # Get a local proprty by its global property
+       meth [](glob: MMGlobalProperty): MMLocalProperty
+       do
+               assert _local_property_by_global != null
+               assert glob != null
+               if _local_property_by_global.has_key(glob) then
+                       return _local_property_by_global[glob]
+               end
+               return null
+       end
+
+       # The current MMContext
+       meth context: MMContext do return module.context
+
+       redef meth to_s
+       do
+               return _name.to_s
+       end
+end
+
+# A global property gather local properties that correspond to a same message
+class MMGlobalProperty
+       # The local property for each class that has the global property
+
+       # The introducing local property
+       readable attr _intro: MMConcreteProperty
+
+       # The local class that introduces the global property
+       meth local_class: MMLocalClass
+       do
+               return intro.local_class
+       end
+
+       # The concrete property redefinition hierarchy
+       readable attr _concrete_property_hierarchy: PartialOrder[MMConcreteProperty] = new PartialOrder[MMConcreteProperty]
+
+       # Create a new global property introduced by a local one
+       protected init(p: MMConcreteProperty)
+       do
+               assert p != null
+               assert p.concrete_property != null
+
+               _concrete_property_hierarchy = new PartialOrder[MMConcreteProperty]
+       
+               _intro = p
+               add_concrete_property(p, new Array[MMConcreteProperty])
+       end
+
+       redef meth to_s do return intro.full_name
+
+       # Register a new concrete property
+       meth add_concrete_property(i: MMConcreteProperty, sup: Array[MMConcreteProperty])
+       do
+               assert i != null
+               assert sup != null
+               i._cprhe = _concrete_property_hierarchy.add(i,sup)
+       end
+
+       # Is the global property an attribute ?
+       meth is_attribute: Bool do return intro isa MMAttribute
+
+       # Is the global property a method (or a constructor)?
+       meth is_method: Bool do return intro isa MMMethod
+
+       # Is the global property a constructor (thus also a method)?
+       readable writable attr _is_init: Bool
+
+       # Visibility of the property
+       # 1 -> public
+       # 2 -> protected
+       # 3 -> private
+       readable writable attr _visibility_level: Int
+end
+
+# Local properties are adaptation of concrete local properties
+# They can be adapted for inheritance (or importation) or for type variarion (genericity, etc.)
+class MMLocalProperty
+       # The name of the property
+       readable attr _name: Symbol
+
+       # The local class who own the local property
+       readable attr _local_class: MMLocalClass
+
+       # The global property where belong the local property
+       readable attr _global: MMGlobalProperty
+
+       # The original property where self is derived
+       # May be null if self is an original one
+       readable attr _super_prop: MMLocalProperty
+
+       # The concrete property
+       # May be self if self is a concrete property
+       readable attr _concrete_property: MMConcreteProperty 
+
+       # The module of the local property
+       meth module: MMModule do return _local_class.module
+
+       # Full expanded name with all qualifications
+       meth full_name: String
+       do
+               if global == null then
+                       return "{local_class.module}::{local_class}::(?::{name})"
+               else if global.intro == self then
+                       return "{local_class.module}::{local_class}::{name}"
+               else
+                       return "{local_class.module}::{local_class}::({global.intro.full_name})"
+               end
+       end
+
+       # set the global property for this property
+       meth set_global(g: MMGlobalProperty)
+       do
+               assert g != null
+               _global = g
+               _local_class.register_local_property(self)
+       end
+       
+       redef meth to_s do return name.to_s
+
+       protected init(n: Symbol, bc: MMLocalClass, i: MMConcreteProperty)
+       do
+               _name = n
+               _local_class = bc
+               _concrete_property = i
+       end
+end
+
+# Attribute local properties
+class MMAttribute
+special MMLocalProperty
+end
+
+# Method local properties
+class MMMethod
+special MMLocalProperty
+end
+
+# Concrete local classes
+class MMConcreteClass
+special MMLocalClass
+end
+
+# Concrete local properties
+class MMConcreteProperty
+special MMLocalProperty
+       # Redefinition hierarchy of the concrete property
+       readable attr _cprhe: PartialOrderElement[MMConcreteProperty]
+
+       # Is the concrete property contain a `super' in the body?
+       readable writable attr _need_super: Bool
+       # Introduce a new global property for this local one
+       meth new_global
+       do
+               assert _global == null
+               _global = new MMGlobalProperty(self)
+               _local_class.register_global_property(_global)
+       end
+end
+
diff --git a/src/metamodel/genericity.nit b/src/metamodel/genericity.nit
new file mode 100644 (file)
index 0000000..15a0420
--- /dev/null
@@ -0,0 +1,365 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generic classes, generic types and generic formal parameters
+package genericity
+
+intrude import type_formal
+intrude import inheritance
+
+redef class MMLocalClass
+       # The pos-th formal type parameter
+       meth get_formal(pos: Int): MMTypeFormalParameter
+       do
+               return formals_types[pos]
+       end
+
+       # Register a new formal type
+       # Called in order during the building of the class
+       meth register_formal(f: MMTypeFormalParameter)
+       do
+               assert f.def_class == self
+               assert f.position == _formals_types.length
+               _formals_types.add(f)
+       end
+
+       # All the insanciated types of the class
+       attr _types: Array[MMTypeGeneric] = new Array[MMTypeGeneric]
+
+       # Instanciate a type from the generic class
+       meth get_instantiate_type(t: Array[MMType]): MMType
+       do
+               for g in _types do
+                       if g.params_equals(t) then return g
+               end
+               var g = new MMTypeGeneric(self, t)
+               _types.add(g)
+               return g
+       end
+
+       # The formal types of the class
+       attr _formals_types: Array[MMTypeFormalParameter] = new Array[MMTypeFormalParameter]
+
+       # Return the definition formal types for the class
+       # Import them from the intro class if needed
+       private meth formals_types: Array[MMTypeFormalParameter]
+       do
+               if _formals_types.is_empty then
+                       assert not self isa MMConcreteClass
+                       # Because of F-genericity, the import is done in two pass
+                       # First, get the formal types untyped so that one can recurcively call formals_types
+                       for i in [0..arity[ do
+                               var oft = global.intro.get_formal(i)
+                               var ft = new MMTypeFormalParameter(oft.name, i, self)
+                               register_formal(ft)
+                       end
+                       # Second, assign the bound to the formal type
+                       for i in [0..arity[ do
+                               var oft = global.intro.get_formal(i)
+                               var ft = _formals_types[i] 
+                               ft.bound = oft.bound.for_module(module)
+                       end
+               end
+               return _formals_types
+       end
+
+       redef meth get_type
+       do
+               if _base_type_cache == null and is_generic then
+                       _base_type_cache = get_instantiate_type(formals_types)
+                       return _base_type_cache
+               else
+                       return super
+               end
+       end
+
+       # Is the class a generic one?
+       meth is_generic: Bool do return arity > 0
+end
+
+redef class MMSignature
+       # Adapt the signature to a different receiver
+       meth adaptation_to(r: MMType): MMSignature
+       do
+               if _recv == r then
+                       return self
+               end
+               var mod = r.module
+               var p = _params
+               if p != null then
+                       p = new Array[MMType]
+                       for i in _params do
+                               p.add(i.for_module(mod).adapt_to(r))
+                       end
+               end
+               var rv = _return_type
+               if rv != null then
+                       rv = rv.for_module(mod).adapt_to(r)
+               end
+               return new MMSignature(p,rv,r)
+       end
+end
+
+redef class MMLocalProperty
+       # The receiver type if the signature is unknown (aka lazily computed)
+       attr _recv_alone: MMType
+
+       meth recv: MMType
+       do
+               assert signature != null
+               return signature.recv
+       end
+
+       meth recv=(rec: MMType)
+       do
+               assert rec != null
+               #               print("setting recv for {self} {rec} {_recv == null}")
+               assert _signature_cache == null
+               _recv_alone = rec
+       end
+
+       redef meth signature
+       do
+               var sig = _signature_cache
+               if sig != null then
+                       return sig
+               end
+               if self isa MMConcreteProperty then
+                       return null
+               end
+               var sp = _super_prop
+               #assert self != sp
+               var impl = _concrete_property
+               if sp == null then # superprop ?
+                       #               print("building signature for {self}:{self.object_id} and type {_recv}")
+                       _signature_cache = impl.signature
+                       assert _signature_cache != null
+               else
+                       #               print("adapting signature for {self}:{self.object_id} and type {_recv}")
+                       assert sp.signature != null
+                       assert _recv_alone != null
+                       #_signature = sp.signature
+                       _signature_cache = sp.signature.adaptation_to(_recv_alone)
+               end
+               assert _signature_cache != null
+               #               print("finally recv is {_recv} for {self}:{self.object_id} and sig is {_signature.recv}")
+               return _signature_cache
+       end
+
+       # Adapt the property to a different receiver
+       # TODO: Merge with inheritance stuff
+       meth adapt_property(t: MMType): MMLocalProperty
+       do
+               assert t != null
+               var recv = local_class.get_type
+               if t == recv then
+                       return self
+               else
+                       return inherit_to(t)
+               end
+       end
+
+       redef meth inherit_from(s, t) # for the super bugs
+       do
+               super
+               _recv_alone = t
+       end
+end
+
+redef class MMType
+       # TODO: IS this useful? 
+       meth is_generic: Bool is abstract
+end
+
+redef class MMTypeFormal
+       redef meth is_generic do return _bound.is_generic
+end
+
+redef class MMTypeSimpleClass
+       redef meth is_generic  do return false
+end
+
+class MMTypeGeneric
+special MMTypeClass
+       # Formal arguments
+       readable attr _params: Array[MMType] 
+       attr _props: Map[MMGlobalProperty, MMLocalProperty] = new HashMap[MMGlobalProperty, MMLocalProperty]
+
+       redef meth is_generic do return true
+
+       redef meth is_supertype(t)
+       do
+               if t.local_class.cshe <= _local_class then
+                       var u = t.upcast_for(_local_class)
+                       if u isa MMTypeGeneric then
+                               return is_subtype(u) # and u.is_subtype(self) # Strong typing is too strong
+                       end
+               end
+               return false
+       end
+
+       redef meth upcast_for(c)
+       do
+               var t = super
+               if t != self then
+                       t = t.adapt_to(self)
+               end
+               return t
+       end
+
+       redef meth for_module(mod)
+       do
+               var t: MMType = self
+               if module != mod then
+                       var parms = new Array[MMType]
+                       for p in _params do
+                               parms.add(p.for_module(mod))
+                       end
+                       var b = _local_class.for_module(mod)
+                       t = b.get_instantiate_type(parms)
+               end
+               assert t != null
+               return t
+       end
+
+       redef meth adapt_to(r)
+       do
+               var rv = new Array[MMType]
+               for i in _params do
+                       rv.add(i.adapt_to(r))
+               end
+               var l = _local_class.get_instantiate_type(rv)
+               return l
+       end
+
+       private meth params_equals(t: Array[MMType]): Bool
+       do
+               if t.length != _params.length then
+                       return false
+               end
+               for i in [0..t.length[ do
+                       assert _params[i] != null
+                       assert t[i] != null
+                       if _params[i] != t[i] then
+                               return false
+                       end
+               end
+               return true
+       end
+
+       redef meth select_property(g)
+       do
+               if g == null then
+                       return null
+               end
+               if not _props.has_key(g) then
+                       assert _local_class != null
+                       var p = _local_class[g]
+                       if p != null then
+                               var p2 = p.adapt_property(self)
+                               _props[g] = p2
+                               return p2
+                       else
+                               assert false
+                       end
+               end
+               return _props[g]
+       end
+
+       redef meth to_s
+       do
+               return "{super}[{_params.join(", ")}]"
+       end
+       
+       # Is self a subtype of t?
+       # Require that t.local_class = self.local_class
+       private meth is_subtype(t: MMTypeGeneric) : Bool
+       do
+               for i in [0.._params.length[
+               do
+                       if not t.params[i] < _params[i] then
+                               return false
+                       end
+               end
+               return true
+       end
+
+       init(c: MMLocalClass, p: Array[MMType])
+       do
+               super(c)
+               _params = p
+       end
+end
+
+class MMTypeFormalParameter
+special MMTypeFormal
+       # The class where self is defined
+       readable attr _def_class: MMLocalClass 
+
+       # The position is self in def_class
+       readable attr _position: Int 
+
+       redef meth module do return _def_class.module
+
+       redef meth for_module(mod)
+       do
+               var t: MMType = self
+               if module != mod then
+                       t = mod[_def_class.global].get_formal(position)
+               end
+               assert t != null
+               return t
+       end
+
+       redef meth upcast_for(c) do return self
+
+       meth bound=(t: MMType)
+       do
+               assert _bound == null
+               _bound = t
+       end
+
+       redef meth adapt_to(r)
+       do
+               var old_r = r.upcast_for(def_class)
+               #print "adapt {self} for ({old_r} -> {r})"
+               assert old_r isa MMTypeGeneric
+               var reduct = old_r.params[position]
+               assert reduct != null
+               return reduct
+       end
+
+       init with_bound(n: Symbol, p: Int, intro: MMLocalClass, b: MMType)
+       do
+               init(n,p,intro)
+               _bound = b
+       end
+
+       init(n: Symbol, p: Int, intro: MMLocalClass)
+       do
+               assert n != null
+               _name = n
+               _position = p
+               _def_class = intro
+       end
+end
+
+redef class MMTypeNone
+       redef meth is_generic do return false
+       redef meth for_module(mod) do return self
+       redef meth adapt_to(r) do return self
+end
diff --git a/src/metamodel/inheritance.nit b/src/metamodel/inheritance.nit
new file mode 100644 (file)
index 0000000..31d7ce8
--- /dev/null
@@ -0,0 +1,513 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compute importation of classes and inheritance of properties
+package inheritance
+
+intrude import static_type
+
+redef class MMModule
+       # The root of the class hierarchy
+       meth type_any: MMType
+       do
+               var c_name = class_by_name(once ("Object".to_symbol))
+               return c_name.get_type
+       end
+
+       # Import global classes from supermodules
+       meth import_global_classes
+       do
+               var globals = new HashMap[MMGlobalClass,HashSet[MMLocalClass]]
+               assert mhe != null
+               for mod in mhe.direct_greaters do
+                       for glob in mod.global_classes do
+                               if global_classes.has(glob) then continue
+                               _global_classes.add(glob)
+                               _global_class_by_name[glob.name] = glob
+                       end
+               end
+
+       end 
+       
+       # Create implicit local classes for global classes that are not refined
+       meth import_local_classes
+       do
+               for g in _global_classes do
+                       if self[g] != null then continue
+                       var impl = new MMImplicitLocalClass(self, g) 
+               end
+       end
+end
+
+redef class MMLocalClass
+       # List of all parents
+       attr _direct_parents: Array[MMAncestor] = new Array[MMAncestor]
+
+       # Is the class computing super.
+       # Used to detect specialization loops.
+       attr _computing_super: Bool 
+
+       # Compute super classes of a class
+       meth compute_super_classes
+       do
+               if computed_super_classes then
+                       # do no recompute if allready done
+                       return
+               else if _computing_super then
+                       stderr.write("Fatal error: Inheritance loop for class {self}\n")
+                       exit(1)
+               end
+               _computing_super = true
+
+               var supers = new Array[MMLocalClass]
+               add_explicit_classes(supers)
+               add_super_classes(supers)
+               add_default_any_class(supers)
+               compute_super_parents(supers)
+               var set = new HashSet[MMLocalClass]
+               set.add_all(supers)
+               var u = set.to_a
+               module.set_supers_class(self,u)
+               assert _crhe != null
+               assert _cshe != null
+               _computing_super = false
+       end
+
+       # Compute ancestors for a class
+       meth compute_ancestors
+       do
+               assert computed_super_classes
+               if computed_ancestors then return
+
+               var ancestors = group_ancestors(build_ancestors)
+               _ancestors = new HashMap[MMLocalClass, MMAncestor]
+
+               for set in ancestors do
+                       if set.length == 1 then
+                               add_ancestor(set.first)
+                       else
+                               var ma = merge_ancestors(set)
+                               add_ancestor(merge_ancestors(set))
+                       end
+               end
+       end
+
+       # Inherit global properties for a class
+       meth inherit_global_properties
+       do
+               if _global_properties != null then return
+
+               _global_properties = new HashSet[MMGlobalProperty]
+               _properties_by_name = new HashMap[Symbol, Array[MMGlobalProperty]]
+               _local_property_by_global = new HashMap[MMGlobalProperty, MMLocalProperty]
+
+               var names = _properties_by_name
+               var set = _global_properties
+               for c in che.direct_greaters do
+                       for glob in c.global_properties do
+                               if set.has(glob) then continue
+
+                               set.add(glob) # Add the global property
+
+                               # Do not inherit constructors trough specialization
+                               #print "{c.module}::{c} -> {module}::{self} for {glob.local_property.local_class.module}::{glob.local_property.local_class}::{glob.local_property} : {glob.is_init}"
+                               if glob.is_init and glob.intro.local_class.global != global then
+                                       #print "pass"
+                                       continue
+                               end
+
+                               var gname = glob.intro.name
+                               var conf_set: Array[MMGlobalProperty]
+                               if names.has_key(gname) then
+                                       conf_set = names[gname]
+                               else
+                                       conf_set = new Array[MMGlobalProperty]
+                                       names[gname] = conf_set
+                               end
+                               conf_set.add(glob)
+                       end
+               end
+       end
+
+       # Add super stype of this current local class
+       meth add_direct_parent(p: MMAncestor)
+       do
+               _direct_parents.add(p)
+       end
+
+       # Are super-class already computed?
+       meth computed_super_classes: Bool
+       do
+               return _crhe != null and _cshe != null
+       end
+       
+       # Are ancestors already computed
+       meth computed_ancestors: Bool
+       do
+               return _ancestors != null
+       end
+
+       # Get the ancestor for a given class
+       # TODO: is this useful?
+       private meth ancestor_for(c: MMLocalClass): MMAncestor
+       do      
+               assert ancestors != null
+
+               if _ancestors.has_key(c) then
+                       return _ancestors[c]
+               end
+               var a = c.for_module(module)
+               assert cshe <= a
+               var ra: MMAncestor
+               if _ancestors.has_key(a) then
+                       ra = _ancestors[a]
+               else if c.global == _global then
+                       ra = new MMRefineAncestor(self,c)
+               else
+                       ra = new MMSpecAncestor(get_type,c.get_type)
+               end
+               _ancestors[c] = ra
+               return ra
+       end
+
+       redef meth [](glob)
+       do
+               var prop = super(glob)
+               if prop == null and _global_properties.has(glob) then
+                       prop = inherit_local_property(glob)
+               end
+               return prop
+       end
+
+       # Add default super class in direct parent and in super classes if this is not the Object class
+       private meth add_default_any_class(supers: Array[MMLocalClass])
+       do
+               if supers.is_empty and name != once ("Object".to_symbol) then
+                       var t_any = module.type_any
+                       supers.add(t_any.local_class)
+                       var default = new MMDefaultAncestor(self, t_any)
+                       add_direct_parent(default)
+               end
+       end
+       
+       # Adding inherited class from previous refinement of self
+       private meth add_super_classes(supers: Array[MMLocalClass])
+       do
+               assert _crhe != null
+               for ref in _crhe.direct_greaters do
+                       assert ref.cshe != null
+                       for sup in ref.cshe.direct_greaters do
+                               var cla = sup.for_module(_module)
+                               assert cla != null
+                               supers.add(cla)
+                       end
+               end
+       end
+       
+       # Add self parents of this local class
+       private meth add_explicit_classes(supers: Array[MMLocalClass])
+       do
+               for p in _direct_parents do
+                       supers.add(p.local_class)
+               end
+       end
+
+       # Ensure all super parents are computed
+       private meth compute_super_parents(supers: Array[MMLocalClass])
+       do
+               for p in supers do
+                       assert p != null
+                       p.compute_super_classes
+               end
+       end
+
+       # compute all ancestors for a class (multiple)
+       private meth build_ancestors: Array[MMAncestor]
+       do
+               var all_ancestors = new Array[MMAncestor]
+               # Refined classes are ancestors
+               assert _crhe != null
+               for p in _crhe.direct_greaters do
+                       assert p != self
+                       var anc = new MMRefineAncestor(self, p)
+                       anc.add_in(all_ancestors)
+               end
+               for anc in _direct_parents do
+                       assert anc.local_class != self
+                       anc.add_in(all_ancestors)
+               end
+               return all_ancestors
+       end
+
+       # Build an ancestor map indexed by LocalClass
+       private meth group_ancestors(all: Array[MMAncestor]): Map[MMLocalClass, Set[MMAncestor]]
+       do
+               #print "process {self}"
+               var map = new HashMap[MMLocalClass, Set[MMAncestor]]
+               for a in all do
+                       var c = a.local_class
+                       #print "ancestor is"
+                       #print "  {c}"
+                       var set: Set[MMAncestor]
+                       c.compute_ancestors
+                       if map.has_key(c) then
+                               set = map[c]
+                       else
+                               set = new HashSet[MMAncestor]
+                               map[c] = set
+                       end
+                       set.add(a)
+               end
+               return map
+       end
+
+       # Remove duplicate ancestors and merge if compatible, in the other case do an error
+       private meth merge_ancestors(set: Set[MMAncestor]): MMAncestor
+       do
+               var marks = new HashSet[MMAncestor]
+               var res = new Array[MMAncestor]
+               for t in set do
+                       var it = set.iterator
+                       var search = true
+                       while it.is_ok and search do
+                               
+                               var a = t == it.item
+                               a = marks.has(it.item)
+                               a = it.item.stype < t.stype
+                               
+                               if not(t == it.item or marks.has(it.item)) and
+                                       (it.item.stype < t.stype) then
+                                               marks.add(t)
+                                               search = false
+                               end
+                               it.next
+                       end
+                       if not marks.has(t) then
+                               res.add(t)
+                       end
+               end
+
+               if res.length > 1 then
+                       stderr.write("Fatal error: Incompatibles ancestors for {self.name}: {res.join(", ")}\n")
+                       exit(1)
+               end
+               return res.first
+       end
+
+       # Inherit a local property
+       # Is lazily called
+       # FIXME: dont crash lazily
+       private meth inherit_local_property(glob: MMGlobalProperty): MMLocalProperty
+       do
+               assert not _local_property_by_global.has_key(glob)
+               assert glob != null
+
+               var impls = glob.get_compatible_concrete_properties_for(self)
+               if impls.length != 1 then
+                       stderr.write("Fatal error: inherit_local_property error\n")
+                       print("------- {module}::{self} {glob.intro.full_name}")
+                       for i in impls do
+                               print("   {i.full_name}")
+                       end
+                       print("------- {glob.concrete_property_hierarchy.first}")
+                       print("------- {glob.concrete_property_hierarchy.to_dot}")
+                       exit(1)
+               end
+               var impl = impls.first
+               var ac = ancestor_for(impl.local_class)
+               ac.local_class.inherit_global_properties
+               var a = ac.stype
+               
+               assert a.local_class != self
+               var sup = a.select_property(glob) # Select super prop
+               assert sup != null
+               var prop = sup.inherit_to(get_type) # special the new prop
+               return prop
+       end
+end
+
+redef class MMConcreteProperty
+       # FIXME: use this
+       meth is_deferred: Bool do return false
+end
+
+redef class MMGlobalProperty
+       # Get the most specific local properties defined in superclasses of c
+       private meth get_compatible_concrete_properties_for(cla: MMLocalClass): Array[MMConcreteProperty]
+       do
+               var impl_hier = _concrete_property_hierarchy
+               if impl_hier.length == 1 then return [intro]
+               var impls = new ArraySet[MMConcreteProperty]
+               var clache = cla.che
+               if true then
+                       #print "{cla.module}::{cla} get glob {intro.local_class}::{intro.name}"
+               for sc in cla.che.direct_greaters do
+                       #print "   try {sc.module}::{sc} {sc.che != null} {sc.crhe != null} {sc.che != null}"
+                       var p = sc[self]
+                       if p == null then continue
+                       var impl = p.concrete_property
+                       impls.add(impl)
+               end
+               else
+               for impl in impl_hier do
+                       var bc = impl.local_class
+                       if clache < bc then
+                               impls.add(impl)
+                       end
+               end
+               end
+               return impl_hier.select_smallests(impls)
+       end
+end
+
+redef class MMLocalProperty
+       # Attach self to a global property
+       meth inherit_global(g: MMGlobalProperty)
+       do
+               set_global(g)
+               # What the next line used for?
+               g.add_concrete_property(concrete_property, g.get_compatible_concrete_properties_for(local_class))
+       end
+
+       # Create an adaptation of self to a different receiver
+       meth inherit_to(t: MMType): MMLocalProperty is abstract
+
+       # ?
+       protected meth inherit_from(s: MMLocalProperty, t: MMType) # for the super bugs
+       do
+               assert _super_prop == null
+               _super_prop = s
+               if _global == null then
+                       set_global(s.global)
+               end
+       end
+
+end
+
+redef class MMMethod
+       redef meth inherit_to(t) do
+               return new MMImplicitMethod(self, t)
+       end
+end
+
+# A local property that is an adatation of an exiting one
+class MMImplicitProperty
+special MMLocalProperty
+       # Create a property from an existing property and a new receiver
+       init(prop: MMLocalProperty, bt: MMType)
+       do
+               super(prop.name, bt.local_class, prop.concrete_property)
+               inherit_from(prop, bt)
+       end
+end
+
+class MMImplicitMethod
+special MMMethod
+special MMImplicitProperty
+       init(p, t) do super
+end
+
+redef class MMAttribute
+       redef meth inherit_to(t)
+       do
+               return new MMImplicitAttribute(self,t)
+       end
+end
+
+class MMImplicitAttribute
+special MMAttribute
+special MMImplicitProperty
+       init(p, t) do super
+end
+
+redef class MMAncestor
+       # Add this ancestor and it's super one in tab
+       private meth add_in(tab: Array[MMAncestor])
+       do
+               assert ancestor: stype != null
+               assert local_class: stype.local_class != null
+               tab.add(self)
+               stype.local_class.compute_ancestors
+               for anc in stype.local_class.ancestors do
+                       var aaa = anc.stype.for_module(stype.module)
+                       var a = aaa.adapt_to(stype).for_module(inheriter.module)
+                       if a.local_class != inheriter.local_class then
+                               var it = tab.iterator
+                               var b = true
+                               while it.is_ok and b do
+                                       b = not ( it.item.inheriter == inheriter and it.item.stype == a)
+                                       it.next
+                               end
+                               if b then
+                                       tab.add(new MMSpecAncestor(inheriter,a))
+                               end
+                       end
+               end
+       end
+end
+
+##########################################
+
+# A local class that is a pure importation of an other local class
+class MMImplicitLocalClass
+special MMLocalClass
+       init(mod: MMModule, g: MMGlobalClass)
+       do
+               var cla = g.intro
+               super(cla.name, cla.arity)
+               mod.add_local_class(self)
+               set_global(g)
+       end
+end
+
+class MMRefineAncestor
+special MMAncestor
+       redef readable attr _local_class: MMLocalClass
+
+       init(b: MMLocalClass, a: MMLocalClass)
+       do
+               _local_class = a
+               inheriter = b.get_type
+               stype = _local_class.get_type
+       end
+end
+
+
+class MMSpecAncestor
+special MMAncestor
+       redef meth local_class do return stype.local_class
+
+       init(inheriter: MMType, stype: MMType)
+       do
+               _inheriter = inheriter
+               _stype = stype
+       end
+end
+
+class MMDefaultAncestor
+special MMAncestor
+       redef meth local_class do return stype.local_class
+
+       init(b: MMLocalClass, anc: MMType)
+       do
+               assert b != null
+               assert b.module != null
+               assert anc != null
+               inheriter = b.get_type
+               stype = anc
+       end
+end
diff --git a/src/metamodel/metamodel.nit b/src/metamodel/metamodel.nit
new file mode 100644 (file)
index 0000000..2ea5ee3
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# NIT metamodel bottom module (aka metamodel featuring all extentions)
+package metamodel
+
+import genericity
+import vararg
+import virtualtype
diff --git a/src/metamodel/partial_order.nit b/src/metamodel/partial_order.nit
new file mode 100644 (file)
index 0000000..013ca4b
--- /dev/null
@@ -0,0 +1,345 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Partial ordered sets (ie hierarchies)
+package partial_order
+
+# Handles partial ordered sets (ie hierarchies)
+# Thez are built by adding new element at the bottom of the hierarchy
+class PartialOrder[E]
+special Collection[E]
+       # Elements
+       attr _elements: Map[E, PartialOrderElement[E]]
+
+       # Elements
+       attr _elements_list: Array[E]
+
+       # The roots of the hierarchy are elements without greaters
+       readable attr _roots: Array[E]
+
+# Collection
+
+       redef meth is_empty do return _elements.is_empty
+       
+       redef meth length do return _elements.length
+
+       redef meth first do return _elements_list.first
+
+       redef meth has(e) do return _elements.has_key(e)
+
+       redef meth has_only(e) do return _elements.length == 1 and _elements.first == e
+
+       redef meth count(e)
+       do
+               if has(e) then
+                       return 1
+               else
+                       return 0
+               end
+       end
+
+       redef meth iterator do return _elements_list.iterator
+
+# Access       
+
+       # Return the element associed with the item
+       meth [](e: E): PartialOrderElement[E]
+       do
+               if _elements.has_key(e) then
+                       return _elements[e]
+               else
+                       return null
+               end
+       end
+
+       # Return a dot representation
+       meth to_dot: String
+       do
+               var s = new String
+               s.append(to_dot_header)
+               for e in _elements do
+                       s.append(to_dot_node(e.value))
+                       for d in e.direct_greaters do
+                               s.append(to_dot_edge(e.value, d))
+                       end
+               end
+               s.append("}\n")
+               return s
+       end
+
+       # Called to display the header
+       protected meth to_dot_header: String
+       do
+               return "digraph G \{\ngraph [rankdir=BT];\n"
+       end
+       
+       # Called to display a node
+       protected meth to_dot_node(e: E): String
+       do
+               return "\"{e}\";\n"
+       end
+
+       # Called to draw an edge between `e1' and `e2' when `e1' < `e2' 
+       protected meth to_dot_edge(e1: E, e2: E): String
+       do
+               return "\"{e1}\" -> \"{e2}\";\n"
+       end
+
+       # Get an array consisting of only minimal elements
+       meth select_smallests(c: Collection[E]): Array[E]
+       do
+               if c == null then return new Array[E]
+               assert has_all(c)
+               var res = new Array[E].with_capacity(c.length)
+               var tmp = new Array[E].with_capacity(c.length)
+               for e in c do
+                       # try to add `e' to the set of smallests
+                       var r = add_to_smallests(e, res, tmp)
+                       if r then
+                               # `tmp' contains the new smallests
+                               # therefore swap
+                               var t = tmp
+                               tmp = res
+                               res = t
+                       end
+               end
+               return res
+       end
+       
+       # Add a new element inferior of some others
+       meth add(e: E, supers: Collection[E]): PartialOrderElement[E]
+       do
+               assert not has(e)
+               assert supers == null or has_all(supers)
+               var directs = select_smallests(supers)
+               var poe = new_poe(e, directs)
+               _elements[e] = poe
+               _elements_list.add(e)
+               if supers == null or supers.is_empty then
+                       _roots.add(e)
+               end
+               return poe
+       end
+
+       # Are all these elements in the order
+       meth has_all(e: Collection[E]): Bool
+       do
+               for i in e do
+                       if not has(i) then
+                               return false
+                       end
+               end
+               return true
+       end
+
+       # factory for partial order elements
+       protected meth new_poe(e: E, directs: Array[E]): PartialOrderElement[E]
+       do
+               return new PartialOrderElement[E](self, e, directs)
+       end
+
+       protected meth add_to_smallests(e: E, from: Array[E], to: Array[E]): Bool
+       # an element `e' 
+       # some others elements `from' incomparable two by two
+       # Return false if `from' < e
+       # else return false and
+       # fill `to' with smallests incomparable elements (including `e')
+       do
+               to.clear
+               var poe = self[e]
+               for i in from do
+                       if poe > i then
+                               return false
+                       end
+                       if not poe < i then
+                               to.add(i)
+                       end
+               end
+               to.add(e)
+               return true
+       end
+
+       protected meth compute_smallers_for(poe: PartialOrderElement[E], set: Set[E])
+       do
+               var e = poe.value
+               for s in _elements do
+                       if s < e then
+                               set.add(s.value)
+                       end
+               end
+       end
+
+       init
+       do
+               _elements = new HashMap[E, PartialOrderElement[E]]
+               _elements_list = new Array[E]
+               _roots = new Array[E]
+       end
+end
+
+class PartialOrderElement[E]
+       # The partial order where belong self
+       readable attr _order: PartialOrder[E] 
+
+       # The value handled by self
+       readable attr _value: E 
+       
+       # Current rank in the hierarchy
+       # Roots have 0
+       # Sons of roots have 1
+       # Etc.
+       readable attr _rank: Int 
+
+       # Elements that are direclty greater than self
+       readable attr _direct_greaters: Array[E]
+       
+       # Elements that are direclty smallers than self
+       readable attr _direct_smallers: Array[E]
+
+       # Elements that are strictly greater than self
+       readable attr _greaters: Set[E]
+
+       # Cached result of greaters_and_self
+       attr _greaters_and_self_cache: Array[E]
+
+       # Elements that are self or greater than self
+       meth greaters_and_self: Collection[E]
+       do
+               if _greaters_and_self_cache == null then
+                       _greaters_and_self_cache = _greaters.to_a
+                       _greaters_and_self_cache.add(_value)
+               end
+               return _greaters_and_self_cache
+       end
+       
+       # Cached value of _order.length to validade smallers_cache
+       attr _smallers_last_length: Int
+
+       # Cached result of smallers
+       attr _smallers_cache: Set[E]
+
+       # Elements that are strictly smaller than self
+       meth smallers: Collection[E]
+       do
+               if _smallers_last_length < _order.length then
+                       _order.compute_smallers_for(self, _smallers_cache)
+                       _smallers_last_length = _order.length
+               end
+               return _smallers_cache
+       end
+
+       # Cached result of linear_extension
+       attr _linear_extension_cache: Array[E]
+
+       # Return a linear extension of self
+       # FIXME: Uses the C++ algo that is not good!
+       meth linear_extension: Array[E]
+       do
+               if _linear_extension_cache == null then
+                       var res = new Array[E]
+                       var res2 = new Array[E]
+                       res.add(value)
+                       for s in direct_greaters do
+                               var sl = order[s].linear_extension
+                               res2.clear
+                               for e in res do
+                                       if not sl.has(e) then res2.add(e)
+                               end
+                               res2.append(sl)
+
+                               var tmp = res
+                               res = res2
+                               res2 = tmp
+                       end
+                       _linear_extension_cache = res
+               end
+               return _linear_extension_cache
+       end
+
+       # Cached result of reverse_linear_extension
+       attr _reverse_linear_extension_cache: Array[E]
+
+       # Return a reverse linear extension of self
+       # FIXME: Uses the C++ algo that is not good!
+       meth reverse_linear_extension: Array[E]
+       do
+               if _reverse_linear_extension_cache == null then
+                       var res = new HashSet[E]
+                       for s in direct_greaters do
+                               var sl = order[s].linear_extension
+                               res.add_all(sl)
+                       end
+                       res.add(value)
+                       _linear_extension_cache = res.to_a
+               end
+               return _linear_extension_cache
+       end
+
+       # Is value < o according to order?
+       meth <(o: E): Bool
+       do
+               return _greaters.has(o)
+       end
+
+       # Is value <= o according to order?
+       meth <=(o: E): Bool
+       do
+               return _value == o or _greaters.has(o)
+       end
+
+       # Is value > o according to order?
+       meth >(o: E): Bool
+       do
+               return _order[o] < _value
+       end
+
+       # Is value >= o according to order?
+       meth >=(o: E): Bool
+       do
+               return _value == o or _order[o] < _value
+       end
+
+       protected meth register_direct_smallers(e: E)
+       do
+               _direct_smallers.add(e)
+       end
+
+       protected init(o: PartialOrder[E], e: E, directs: Array[E])
+       do
+               _order = o
+               _value = e
+               _direct_greaters = directs
+               _direct_smallers = new Array[E]
+               
+               _greaters = new HashSet[E]
+               _smallers_cache = new HashSet[E]
+               
+               var g = _greaters
+               var r = 0
+               for ee in directs do
+                       g.add(ee)
+                       var poee = _order[ee]
+                       if poee.rank >= r then
+                               r = poee.rank + 1
+                       end
+                       poee.register_direct_smallers(e)
+                       for eee in poee.greaters do
+                               g.add(eee)
+                       end
+               end
+               _rank = r
+       end
+end
diff --git a/src/metamodel/static_type.nit b/src/metamodel/static_type.nit
new file mode 100644 (file)
index 0000000..aec046b
--- /dev/null
@@ -0,0 +1,319 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Static types and property signatures
+package static_type
+
+intrude import abstractmetamodel
+
+redef class MMLocalClass
+       # Cached result of get_type
+       attr _base_type_cache: MMType
+
+       # Return the type of self for this class
+       meth get_type: MMType
+       do
+               if _base_type_cache == null then _base_type_cache = new MMTypeSimpleClass(self)
+               return _base_type_cache
+       end
+
+       # Register a new ancestor
+       protected meth add_ancestor(a: MMAncestor)
+       do
+               assert not _ancestors.has_key(a.local_class)
+               assert a.local_class != self
+               _ancestors[a.local_class] = a
+       end
+
+       # Array of ancestor that associate each superclass with the corresponding ancestor
+       readable attr _ancestors: Map[MMLocalClass, MMAncestor]
+
+       # The ancestor type for a given superclass
+       meth ancestor(c: MMLocalClass): MMType
+       do
+               assert _ancestors != null
+               if _ancestors.has_key(c) then
+                       return _ancestors[c].stype
+               end
+               return null
+       end
+end
+
+redef class MMLocalProperty
+       # The cached result of signature
+       attr _signature_cache: MMSignature
+
+       # return signature for this property
+       meth signature: MMSignature # FIXME must rewrite
+       do
+               if _signature_cache == null then
+                       if _super_prop == null then
+                               _signature_cache = _concrete_property.signature
+                       else
+                               _signature_cache = _super_prop.signature
+                       end
+               end
+               assert _signature_cache != null
+               return _signature_cache
+       end
+
+       meth signature=(s: MMSignature) do _signature_cache = s
+end
+
+# Signature for local properties
+class MMSignature
+       # The type of the reveiver
+       readable attr _recv: MMType 
+
+       # The parameter types
+       attr _params: Array[MMType]
+
+       # The return type
+       readable attr _return_type: MMType 
+
+       # Number of parameters
+       meth arity: Int
+       do
+               assert _params != null
+               return _params.length
+       end
+
+       # Is self a valid subtype of an other signature
+       meth <(s: MMSignature): Bool
+       do
+               assert s != null
+               if self == s then
+                       return true
+               end
+               assert _recv.module == s.recv.module
+               assert arity == s.arity
+               assert (_return_type == null) == (s.return_type == null)
+               if _return_type != null and not _return_type < s.return_type then
+                       return false
+               end
+
+               for i in [0..arity[ do
+                       if not s[i] < self[i] then
+                               return false
+                       end
+               end
+               return true
+       end
+
+       # The type of the i-th parameter
+       meth [](i: Int): MMType
+       do
+               assert _params.length > i
+               return _params[i]
+       end
+
+       redef meth to_s
+       do
+               var s: String
+               if _params != null and _params.length > 0 then
+                       var tmp: String
+                       var a = new Array[String].with_capacity(_params.length)
+                       for i in [0.._params.length[ do
+                               #var pn = _params_name[i]
+                               var p = _params[i]
+                               #a.add("{pn}: {p}")
+                               a.add(p.to_s)
+                       end
+                       s = "({a.join(",")})"
+               else
+                       s = ""
+               end
+               if _return_type != null then
+                       s.append(": {_return_type}")
+               end
+               return s
+       end
+
+       init(params: Array[MMType], return_type: MMType, r: MMType)
+       do
+               assert params != null
+               _params = params
+               _return_type = return_type
+               _recv = r
+       end
+end
+
+# Inheritance relation between two types
+abstract class MMAncestor
+       # The inherited type
+       readable writable attr _stype: MMType 
+
+       # The inheriter (heir) type
+       readable writable attr _inheriter: MMType 
+
+       meth is_reffinement: Bool do
+               return stype.module != stype.module
+       end
+
+       meth is_specialisation: Bool do
+               return stype.local_class.global != inheriter.local_class.global
+       end
+
+       # The inherited class
+       meth local_class: MMLocalClass is abstract
+
+       redef meth to_s
+       do
+               if stype == null then
+                       return local_class.to_s
+               else
+                       return stype.to_s
+               end
+       end
+end
+
+# A static type
+# Note that static type a related to a specific module
+abstract class MMType
+       # The module where self makes sence
+       meth module: MMModule is abstract
+
+       # The local class that self direclty or indirectly refers to
+       meth local_class: MMLocalClass is abstract
+
+       # Is self a valid subtype of t
+       meth <(t : MMType): Bool is abstract
+
+       # Is self a valid supertype of t
+       # This method must be only called within definition of < if
+       # a double dispatch is needed
+       meth is_supertype(t: MMType): Bool is abstract
+
+       # Select a method from its name
+       meth select_method(name: Symbol): MMMethod
+       do
+               assert local_class != null
+               assert name != null
+               var res = select_property(local_class.method(name))
+               assert res isa MMMethod
+               return res
+       end
+       
+       # Select an attribute from its name
+       meth select_attribute(name: Symbol): MMAttribute
+       do
+               assert name != null
+               assert local_class != null
+               var res = select_property(local_class.attribute(name))
+               assert res isa MMAttribute
+               return res
+       end
+
+       # Select a local property from its global property
+       meth select_property(t: MMGlobalProperty): MMLocalProperty is abstract
+
+       # Adapt self to another module
+       meth for_module(mod: MMModule): MMType is abstract
+
+       # Get the type adapted to another receiver type
+       # Useful for formal types
+       meth adapt_to(recv: MMType): MMType is abstract
+
+       # Adapt self to another local class context
+       # Useful for genericity
+       meth upcast_for(c: MMLocalClass): MMType is abstract
+
+       # Return a type approximation if the reveiver is not self
+       # Useful for virtual types
+       meth not_for_self: MMType do return self
+end
+
+class MMTypeClass 
+special MMType
+       redef readable attr _local_class: MMLocalClass
+       redef meth module do return _local_class.module end
+       redef meth <(t) do return t != null and t.is_supertype(self)
+
+       redef meth to_s
+       do
+               return _local_class.to_s
+       end
+
+       redef meth upcast_for(c)
+       do
+               assert _local_class != null
+               assert c != null
+
+               var t: MMType = self
+               if _local_class != c then
+                       t = _local_class.ancestor(c)
+               end
+               assert t != null
+               return t
+       end
+
+       init(c : MMLocalClass)
+       do
+               _local_class = c
+       end
+end
+
+class MMTypeSimpleClass
+special MMTypeClass
+       redef meth is_supertype(t)
+       do
+               return  t.local_class.cshe <= _local_class
+       end
+
+       redef meth select_property(g)
+       do
+               assert _local_class != null
+               if g == null then
+                       return null
+               end
+               return _local_class[g]
+       end
+
+       redef meth for_module(mod)
+       do
+               var t: MMType = self
+               if module != mod then
+                       t = _local_class.for_module(mod).get_type
+               end
+               assert t != null
+               return t
+       end
+
+       redef meth adapt_to(recv) do return self
+
+       redef init(c: MMLocalClass)
+       do
+               super(c)
+       end
+end
+
+# The type of null
+class MMTypeNone
+special MMType
+       redef readable attr _module: MMModule
+       redef meth <(t) do return true
+       redef meth is_supertype(t) do return false
+       redef meth local_class do abort
+       redef meth upcast_for(c) do return self
+
+       private init(m: MMModule) do _module = m
+end
+
+redef class MMModule
+       # The type of null
+       readable attr _type_none: MMTypeNone = new MMTypeNone(self)
+end
diff --git a/src/metamodel/type_formal.nit b/src/metamodel/type_formal.nit
new file mode 100644 (file)
index 0000000..ca506a6
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Formal types
+package type_formal
+
+import inheritance
+
+redef class MMType
+       # The type a indirect type refers to
+       meth direct_type: MMType do return self
+end
+
+# Formal types are named indirect types
+class MMTypeFormal
+special MMType
+       # The name of the type
+       readable attr _name: Symbol 
+
+       # The type refered
+       readable attr _bound: MMType 
+
+       redef meth <(t) do return t != null and (t == self or t.is_supertype(_bound))
+       redef meth is_supertype(t) do return _bound.is_supertype(t)
+       redef meth direct_type do return _bound.direct_type
+       redef meth local_class
+       do
+               if _bound == null then return null
+               return _bound.local_class
+       end
+
+       redef meth select_property(g)
+       do
+               if g == null then
+                       return null
+               else
+                       return _bound.select_property(g)
+               end
+       end
+
+       redef meth to_s do return _name.to_s
+
+       protected init(name: Symbol, bound: MMType)
+       do
+               _name = name
+               _bound = bound
+       end
+end
+
diff --git a/src/metamodel/vararg.nit b/src/metamodel/vararg.nit
new file mode 100644 (file)
index 0000000..b50fdbd
--- /dev/null
@@ -0,0 +1,45 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Handle multiple number of parameters in signatures
+package vararg
+
+import genericity
+
+redef class MMSignature
+       # Position of the vararg parameter. -1 in no vararg parameter
+       readable writable attr _vararg_rank: Int 
+
+       # Is there a vararg parameter in the signature?
+       meth has_vararg: Bool
+       do
+               return _vararg_rank >= 0
+       end
+
+       redef meth adaptation_to(r)
+       do
+               var s = super(r)
+               s.vararg_rank = _vararg_rank
+               return s
+       end
+
+       redef init(params: Array[MMType], return_type: MMType, r: MMType)
+       do
+               super
+               _vararg_rank = -1
+       end
+end
diff --git a/src/metamodel/virtualtype.nit b/src/metamodel/virtualtype.nit
new file mode 100644 (file)
index 0000000..84ff3b1
--- /dev/null
@@ -0,0 +1,112 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Virtual type (property of type type)
+package virtualtype
+
+import type_formal
+
+redef class MMGlobalProperty
+       # Is self a virtual type
+       meth is_virtual_type: Bool do return intro isa MMTypeProperty
+end
+
+# Virtual type properties
+class MMTypeProperty
+special MMLocalProperty
+       redef meth inherit_to(t)
+       do
+               return new MMImplicitType(self, t)
+       end
+
+       # Cached result of stype
+       attr _stype_cache: MMVirtualType
+
+       # The virtual static type associated
+       meth stype: MMVirtualType
+       do
+               # If the signature is not build: Circular definition
+               if signature == null then return null
+
+               var r = _stype_cache
+               if r == null then
+                       r = new MMVirtualType(self)
+                       _stype_cache = r
+               end
+               return r
+       end
+end
+
+redef class MMType
+       # Select a virtual type property by its name
+       meth select_virtual_type(name: Symbol): MMTypeProperty
+       do
+               assert local_class != null
+               assert name != null
+               var res = select_property(local_class.virtual_type(name))
+               assert res isa MMTypeProperty
+               return res
+       end
+end
+
+class MMVirtualType
+special MMTypeFormal
+       # The property associed
+       readable attr _property: MMTypeProperty
+
+       protected init(p: MMTypeProperty)
+       do
+               super(p.name, p.signature.return_type)
+               _property = p
+       end
+
+       redef meth for_module(mod)
+       do
+               var recv = _property.signature.recv.for_module(mod)
+               return adapt_to(recv)
+       end
+
+       redef meth not_for_self
+       do
+               return bound.not_for_self
+       end
+
+       redef meth adapt_to(recv)
+       do
+               # print "adapt {self} from {_property.signature.recv.module}::{_property.signature.recv} to {recv.module}::{recv}"
+               var prop = recv.select_property(_property.global)
+               assert prop isa MMTypeProperty
+               return prop.stype
+       end
+end
+
+redef class MMLocalClass
+       meth virtual_type(s: Symbol): MMGlobalProperty
+       do
+               var prop = get_property_by_name(s)
+               if prop.is_virtual_type then
+                       return prop
+               end
+               return null
+       end
+end
+
+class MMImplicitType
+special MMTypeProperty
+special MMImplicitProperty
+       init(p, t) do super
+end
diff --git a/src/mmloader.nit b/src/mmloader.nit
new file mode 100644 (file)
index 0000000..4b0b6e5
--- /dev/null
@@ -0,0 +1,311 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This package is used to load a metamodel 
+package mmloader
+
+import metamodel
+import opts
+
+# Global context for tools
+class ToolContext
+special MMContext
+       # Number of errors
+       readable attr _error_count: Int 
+
+       # Number of warnings
+       readable attr _warning_count: Int 
+
+       # Display an error
+       meth error(s: String)
+       do
+               stderr.write("{s}\n")
+               _error_count = _error_count + 1
+       end
+
+       # Display a warning
+       meth warning(s: String)
+       do
+               if not _opt_warn.value then return
+               stderr.write("{s}\n")
+               _warning_count = _warning_count + 1
+       end
+
+       # Paths where to locate modules files
+       readable attr _paths: Array[String]
+
+       # List of module loaders
+       attr _loaders: Array[ModuleLoader] = new Array[ModuleLoader]
+       
+       # Global OptionContext
+       readable attr _option_context: OptionContext = new OptionContext
+
+       # Option --warn
+       readable attr _opt_warn: OptionBool = new OptionBool("Show warnings", "-W", "--warn")
+
+       # Option --path
+       readable attr _opt_path: OptionArray = new OptionArray("Set include path for loaders (may be used more than once)", "-I", "--path")
+
+       # Option --lop
+       readable attr _opt_log: OptionBool = new OptionBool("Generate various log files", "--log")
+       
+       # Option --only-metamodel
+       readable attr _opt_only_metamodel: OptionBool = new OptionBool("Stop after meta-model processing", "--only-metamodel")
+
+       # Option --only-parse
+       readable attr _opt_only_parse: OptionBool = new OptionBool("Only proceed to parse step of loaders", "--only-parse")
+
+       # Option --help
+       readable attr _opt_help: OptionBool = new OptionBool("Show Help (This screen)", "-h", "-?", "--help")
+
+       init
+       do
+               super
+               option_context.add_option(opt_warn, opt_path, opt_log, opt_only_parse, opt_only_metamodel, opt_help)
+       end
+
+       # Parse and process the options given on the command line
+       meth process_options
+       do
+               # init options
+               option_context.parse(args)
+
+               # Setup the paths value
+               _paths = new Array[String]
+               paths.append(opt_path.value)
+
+               var path_env = once ("NIT_PATH".to_symbol).environ
+               if not path_env.is_empty then 
+                       paths.append(path_env.split_with(':'))
+               end
+
+               path_env = once ("NIT_DIR".to_symbol).environ
+               if not path_env.is_empty then 
+                       var libname = "{path_env}/lib"
+                       if libname.file_exists then paths.add(libname)
+               end
+
+               var libname = "{sys.program_name.dirname}/../lib"
+               if libname.file_exists then paths.add(libname)
+       end
+
+       # Load and process a module in a directory (or a parent directory).
+       # If the module is already loaded, just return it without further processing.
+       # If no module is found, just return null without complaining.
+       private meth try_to_load(module_name: Symbol, dir: MMDirectory): MMModule
+       do
+               # Look in the module directory
+               for m in dir.modules do
+                       if m.name == module_name then return m
+               end
+
+               # print "try to load {module_name} in {dir.name} {_loaders.length}"
+
+               for l in _loaders do
+                       var dir2 = l.try_to_load_dir(module_name, dir)
+                       if dir2 != null then
+                               var m = try_to_load(module_name, dir2)
+                               if m != null then
+                                       dir2.owner = m
+                                       dir.add_module(m)
+                                       return m
+                               end
+                       end
+
+                       if l.can_handle(module_name, dir) then
+                               var full_name = dir.full_name_for(module_name)
+                               if _processing_modules.has(full_name) then
+                                       # FIXME: Generate better error
+                                       error("Error: Dependency loop for module {full_name}")
+                                       exit(1)
+                                       abort
+                               end
+                               _processing_modules.add(full_name)
+                               var m = l.load_and_process_module(self, module_name, dir)
+                               _processing_modules.remove(full_name)
+                               #if m != null then print "loaded {m.name} in {m.directory.name} -> {m.full_name} ({m.full_name.object_id.to_hex})"
+                               dir.add_module(m)
+                               return m
+                       end
+               end
+               return null
+       end
+
+       # List of module currently processed.
+       # Used to prevent dependence loops.
+       attr _processing_modules: HashSet[Symbol] = new HashSet[Symbol]
+
+       # Locate, load and analysis a module (and its supermodules) from its file name.
+       # If the module is already loaded, just return it without further processing.
+       # Beware, the files are automatically considered root of their directory.
+       meth get_module_from_filename(filename: String): MMModule
+       do
+               var path = filename.dirname
+               var module_name = filename.basename(".nit").to_symbol
+
+               var dir = directory_for(path)
+
+               if module_name.to_s == filename then
+                       # It's just a modulename
+                       # look for it in the path directory "."
+                       var m = try_to_load(module_name, dir)
+                       if m != null then return m
+
+                       # Else look for it in the path
+                       return get_module(module_name, null)
+               end
+
+               if not filename.file_exists then
+                       error("Error: File {filename} not found.")
+                       exit(1)
+                       abort
+               end
+
+               # Try to load the module where mentionned
+               var m = try_to_load(module_name, dir)
+               if m != null then return m
+
+               error("Error: {filename} is not a NIT source module.")
+               exit(1)
+               abort
+       end
+
+       # Locate, load and analysis a module (and its supermodules).
+       # If the module is already loaded, just return it without further processing.
+       meth get_module(module_name: Symbol, from: MMModule): MMModule
+       do
+               var m: MMModule
+               if from != null then
+                       var dir = from.directory
+                       while dir != null do
+                               var m = try_to_load(module_name, dir)
+                               if m != null then return m
+                               dir = dir.parent
+                       end
+               end
+
+               for p in paths do
+                       var m = try_to_load(module_name, directory_for(p))
+                       if m != null then return m
+               end
+               # FIXME: Generate better error
+               error("Error: No ressource found for module {module_name}.")
+               exit(1)
+               abort
+       end
+
+       # Return the module directory associated with a given path
+       private meth directory_for(path: String): MMDirectory
+       do
+               if _path_dirs.has_key(path) then return _path_dirs[path]
+               var dir = new MMDirectory(path.to_symbol, path, null) 
+               _path_dirs[path] = dir
+               return dir
+       end
+
+       # Association bwtween plain path and module directories
+       attr _path_dirs: Map[String, MMDirectory] = new HashMap[String, MMDirectory]
+
+       # Register a new module loader
+       meth register_loader(ml: ModuleLoader) do _loaders.add(ml)
+end
+
+# A load handler know how to load a specific module type
+class ModuleLoader
+       # Type of module loaded by the loader
+       type MODULE: MMModule
+
+       # Extension that the loadhandler accepts
+       meth file_type: String is abstract
+
+       # Try to load a new module directory
+       meth try_to_load_dir(dirname: Symbol, parent_dir: MMDirectory): MMDirectory
+       do
+               var fname = "{parent_dir.path}/{dirname}/"
+               if not fname.file_exists then return null
+
+               var dir = new MMDirectory(parent_dir.full_name_for(dirname), fname, parent_dir)
+               return dir
+       end
+
+       # Can the loadhandler load a given module?
+       # Return the file found
+       meth can_handle(module_name: Symbol, dir: MMDirectory): Bool
+       do
+               var fname = "{dir.path}/{module_name}.{file_type}"
+               if fname.file_exists then return true
+               return false
+       end
+
+       # Load the module and process it
+       # filename is the result of can_handle
+       meth load_and_process_module(context: ToolContext, module_name: Symbol, dir: MMDirectory): MODULE
+       do
+               var filename = "{dir.path}/{module_name}.{file_type}"
+               var m = load_module(context, module_name, dir, filename)
+               if not context.opt_only_parse.value then process_metamodel(context, m)
+               return m
+       end
+
+       # Load an parse the module
+       private meth load_module(context: ToolContext, module_name: Symbol, dir: MMDirectory, filename: String): MODULE
+       do
+               var file: IFStream
+               if filename == "-" then
+                       file = stdin
+               else
+                       file = new IFStream.open(filename.to_s)
+               end
+
+               if file.eof then
+                       context.error("Error: Problem in opening file {filename}")
+                       exit(1)
+                       abort
+               end
+               var m = parse_file(context, file, filename, module_name, dir)
+               m.filename = filename
+               if file != stdin then file.close
+               return m
+       end
+
+       # Parse the file to load a module
+       protected meth parse_file(context: ToolContext, file: IFStream, filename: String, module_name: Symbol, dir: MMDirectory): MODULE is abstract
+
+       # Process a parsed module
+       protected meth process_metamodel(context: ToolContext, module: MODULE) is abstract
+end
+
+redef class MMModule
+       # The filename of the module
+       readable writable attr _filename: String
+
+       # Last modification time
+       readable writable attr _mtime: Int 
+
+       # Recurcivelty process an import modules
+       meth import_supers_modules(names: Collection[Symbol])
+       do
+               var c = context
+               assert c isa ToolContext
+               var supers = new Array[MMModule]
+               for n in names do
+                       var m = c.get_module(n, self)
+                       supers.add(m)
+               end
+               c.add_module(self,supers)
+       end
+end
diff --git a/src/nc b/src/nc
new file mode 100755 (executable)
index 0000000..b09267d
--- /dev/null
+++ b/src/nc
@@ -0,0 +1,32 @@
+#!/bin/sh
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+NITC="../bin/nitc"
+NITCOPTS= #"-I parser -I metamodel -I syntax -I compiling -I tmp"
+
+name=`basename $0`
+case $name in
+       nc) opts="";;
+       nc2) opts="-p 2"; NITC="./nitc";;
+       nc3) opts="-p 3"; NITC="./nitc_2";;
+       nc4) opts="-p 4"; NITC="./nitc_3";;
+       *) echo "unknown mode $name"; exit 1;;
+esac
+
+echo ${NITC} ${NITCOPTS} ${opts} "$@"
+${NITC} ${NITCOPTS} ${opts} "$@"
+
diff --git a/src/nc2 b/src/nc2
new file mode 120000 (symlink)
index 0000000..decddd6
--- /dev/null
+++ b/src/nc2
@@ -0,0 +1 @@
+nc
\ No newline at end of file
diff --git a/src/nc3 b/src/nc3
new file mode 120000 (symlink)
index 0000000..decddd6
--- /dev/null
+++ b/src/nc3
@@ -0,0 +1 @@
+nc
\ No newline at end of file
diff --git a/src/nc4 b/src/nc4
new file mode 120000 (symlink)
index 0000000..decddd6
--- /dev/null
+++ b/src/nc4
@@ -0,0 +1 @@
+nc
\ No newline at end of file
diff --git a/src/nitc.nit b/src/nitc.nit
new file mode 100644 (file)
index 0000000..eb0e0e0
--- /dev/null
@@ -0,0 +1,96 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Nit compiler main module
+package nitc
+
+import abstracttool
+private import compiling
+
+# The main class of the nitcompiler program
+class NitCompiler
+special AbstractCompiler
+       readable attr _opt_output: OptionString = new OptionString("Output file", "-o", "--output")
+       readable attr _opt_boost: OptionBool = new OptionBool("Optimize compilation", "-O", "--boost")
+       readable attr _opt_no_cc: OptionBool = new OptionBool("Do not invoke C compiler", "--no_cc")
+       readable attr _opt_attr_sim: OptionBool = new OptionBool("Use attribute simulation", "--attr-sim")
+       readable attr _opt_global: OptionBool = new OptionBool("Use global compilation", "--global")
+       readable attr _opt_clibdir: OptionString = new OptionString("NIT C library directory", "--clibdir")
+       readable attr _opt_bindir: OptionString = new OptionString("NIT tools directory", "--bindir")
+       readable attr _opt_extension_prefix: OptionString = new OptionString("Append prefix to file extension", "-p", "--extension-prefix")
+
+       init
+       do
+               super
+               option_context.add_option(opt_output, opt_boost, opt_no_cc, opt_attr_sim, opt_global, opt_clibdir, opt_bindir, opt_extension_prefix)
+       end
+
+       redef meth process_options
+       do
+               super
+               tc = new ToolContext
+               tc.output_file = opt_output.value
+               tc.boost = opt_boost.value
+               tc.no_cc = opt_no_cc.value
+               tc.ext_prefix = opt_extension_prefix.value
+               if tc.ext_prefix == null then tc.ext_prefix = ""
+               tc.attr_sim = opt_attr_sim.value
+               tc.global = opt_global.value
+               tc.base_dir = ".nit_compile"
+               tc.clibdir = opt_clibdir.value
+               if tc.clibdir == null then
+                       var dir = once ("NIT_DIR".to_symbol).environ
+                       if dir.is_empty then 
+                               var dir = "{sys.program_name.dirname}/../lib"
+                               if dir.file_exists then tc.clibdir = dir
+                       else
+                               dir = "{dir}/lib"
+                               if dir.file_exists then tc.clibdir = dir
+                       end
+                       if tc.clibdir == null then
+                               error("Error: Cannot locate NIT C library directory. Uses --clibdir or envvar NIT_DIR.")
+                               exit(1)
+                       end
+               end
+               tc.bindir = opt_bindir.value
+               if tc.bindir == null then
+                       var dir = once ("NIT_DIR".to_symbol).environ
+                       if dir.is_empty then 
+                               var dir = "{sys.program_name.dirname}/../bin"
+                               if dir.file_exists then tc.bindir = dir
+                       else
+                               dir = "{dir}/bin"
+                               if dir.file_exists then tc.bindir = dir
+                       end
+                       if tc.bindir == null then
+                               error("Error: Cannot locate NIT tools directory. Uses --bindir or envvar NIT_DIR.")
+                               exit(1)
+                       end
+               end
+       end
+
+       redef meth perform_work(mods)
+       do
+               for mod in mods do
+                       assert mod isa MMSrcModule
+                       mod.compile_prog_to_c(tc)
+               end
+
+       end
+end
+
+var c = new NitCompiler
+c.exec_cmd_line
diff --git a/src/nitdoc.nit b/src/nitdoc.nit
new file mode 100644 (file)
index 0000000..fbd2c85
--- /dev/null
@@ -0,0 +1,1183 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The main module of the nitdoc program
+package nitdoc
+
+import syntax
+private import utils
+import abstracttool
+
+
+# Store knowledge and facilities to generate files
+class DocContext
+special ToolContext
+       # Destination directory
+       readable writable attr _dir: String
+
+       # Content of a generated file
+       attr _stage_context: StageContext = new StageContext(null)
+
+       # Add a string in the content
+       meth add(s: String) do
+               _stage_context.content.add(s)
+               _stage_context.validate = true
+       end
+
+       # Add a string in the content iff some other string are added
+       meth stage(s: String) do _stage_context.content.add(s)
+
+       # Create a new stage in the content
+       meth open_stage do _stage_context = new StageContext(_stage_context)
+
+       # Close the current stage in the content
+       meth close_stage
+       do
+               var s = _stage_context.parent
+               if _stage_context.validate then
+                       s.content.add_all(_stage_context.content)
+                       s.validate = true
+               end
+               _stage_context = s
+       end
+
+       # Write the content to a new file
+       meth write_to(filename: String)
+       do
+               print "Generate {filename}"
+               var f = new OFStream.open(filename)
+               for s in _stage_context.content do
+                       f.write(s)
+               end
+               f.close
+       end
+
+       # Currently computed module
+       readable attr _module: MMSrcModule
+
+       # Is the current directory module computed as a simple modude ?
+       readable writable attr _inside_mode: Bool
+
+       # Is the current module computed as a intruded one ?
+       readable writable attr _intrude_mode: Bool
+
+       # Compued introducing entities (for the index)
+       attr _entities: Array[MMEntity] = new Array[MMEntity]
+
+       # Register an entity (for the index)
+       meth register(e: MMEntity)
+       do
+               _entities.add(e)
+               if e isa MMSrcModule then
+                       _module = e
+               end
+       end
+
+       # Start a new file
+       meth clear
+       do
+               _stage_context = new StageContext(null)
+       end
+
+       redef init do end
+
+       # Generate common files (frames, index, overview)
+       meth extract_other_doc
+       do
+               _module = null
+               inside_mode = false
+               intrude_mode = false
+               clear
+               add("<html><body>\n")
+               add("<a href=\"overview.html\" target=\"mainFrame\">Overview</a><br/>\n")
+               add("<a href=\"index-1.html\" target=\"mainFrame\">Index</a><br/>\n")
+               var modules = modules.to_a
+               sort(modules)
+
+               var rootdirs = new Array[MMDirectory]
+               for m in modules do
+                       var md = m.directory
+                       if md.parent == null and not rootdirs.has(md) then
+                               rootdirs.add(md)
+                       end
+               end
+
+               var done = new Array[MMModule]
+               for root in rootdirs do
+                       var dirstack = [root]
+                       var curdir = root
+                       add("{root.name}<br/>\n")
+                       var indent = "&nbsp; "
+                       while not dirstack.is_empty do
+                               var redo = false
+                               for m in modules do
+                                       if done.has(m) then continue
+                                       var md = m.directory
+                                       if md.owner == m and md.parent == curdir then
+                                               # It's a directory module
+                                               add("{indent}<a href=\"{m}.html\" target=\"mainFrame\">{m}</a><br/>\n")
+                                               curdir = md
+                                               dirstack.push(curdir)
+                                               indent = "&nbsp " * dirstack.length
+                                               redo = true
+                                               break # restart to preserve alphabetic order
+                                       else if md == curdir then
+                                               if md.owner == m then
+                                                       add("{indent}<a href=\"{m}_.html\" target=\"mainFrame\">{m}</a><br/>\n")
+                                               else
+                                                       add("{indent}<a href=\"{m}.html\" target=\"mainFrame\">{m}</a><br/>\n")
+                                               end
+                                               done.add(m)
+                                               redo = true
+                                       end
+                               end
+                               if not redo then
+                                       dirstack.pop
+                                       if not dirstack.is_empty then
+                                               curdir = dirstack[dirstack.length-1]
+                                               indent = "&nbsp " * dirstack.length
+                                       end
+                               end
+                       end
+               end
+               add("</body></html>\n")
+               write_to("{dir}/menu-frame.html")
+
+               clear
+               add_header("Index")
+               add("<dl>\n")
+               sort(_entities)
+               for e in _entities do
+                       add("<dt><b>{e.html_link(self)}</b> - {e.prototype_head(self)} <b>{e}</b>{e.prototype_body(self)} {e.locate(self)}<dd>{e.short_doc}\n")
+               end
+               add("</dl></body></html>\n")
+               write_to("{dir}/index-1.html")
+
+               clear
+               add_header("Overview")
+               add("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+               add("<tr bgcolor=\"#CCCCFF\"><th colspan=\"2\"><big>Overview of all Modules</big></th><tr>\n")
+               for m in modules do
+                       add("<tr><td width=\"20%\" align=\"right\">{m.html_link(self)}</td><td>{m.short_doc}</td><tr>\n")
+               end
+               add("</table></body></html>\n")
+               write_to("{dir}/overview.html")
+
+               clear
+               add("<html>\n<frameset cols=\"20%,80%\">\n<frame src=\"menu-frame.html\" name=\"menuFrame\" title=\"Menu\">\n<frame src=\"overview.html\" name=\"mainFrame\" title=\"Main\" scrolling=\"yes\">\n</frameset></html>\n")
+               write_to("{dir}/index.html")
+       end
+
+       meth add_header(title: String)
+       do
+               add("<html><head><title>{title}</title></head>\n<body>\n")
+               add("<table border=\"0\" width=\"100%\" cellpadding=\"1\" cellspacing=\"0\"><tr><td bgcolor=\"#eeeeff\">\n")
+               add("<a href=\"overview.html\"><b>Overview</b></a>&nbsp; <a href=\"index-1.html\"><b>Index</b></a>&nbsp; <a href=\"index.html\" target=\"_top\"><b>With Frames</b></a>\n")
+               add("</td></tr></table>")
+               add("Visibility: ")
+               if (not inside_mode and not intrude_mode) or module == null then
+                       add("<b>Public</b>&nbsp; ")
+               else
+                       add("<a href=\"{module}.html\"><b>Public</b></a>&nbsp; ")
+               end
+               if inside_mode or module == null then
+                       add("<b>Inside</b>&nbsp; ")
+               else if module.directory.owner != module then
+                       add("<strike><b>Inside</b></strike>&nbsp; ")
+               else
+                       add("<a href=\"{module}_.html\"><b>Inside</b></a>&nbsp; ")
+               end
+               if intrude_mode or module == null then
+                       add("<b>Intrude</b>&nbsp; ")
+               else
+                       add("<a href=\"{module}__.html\"><b>Intrude</b></a>&nbsp; ")
+               end
+               add("<br/>")
+       end
+
+       # Sorter of entities in alphabetical order
+       attr _sorter: AlphaSorter[MMEntity] = new AlphaSorter[MMEntity]
+
+       # Sort entities in the alphabetical order
+       meth sort(array: Array[MMEntity])
+       do
+               _sorter.sort(array)
+       end
+
+       readable writable attr _owned_modules: Array[MMModule]
+
+       # Return the known_owner for current module
+       # if inside_mode is set, it could be a different result
+       meth known_owner_of(m: MMModule): MMModule
+       do
+               if module == null then return m
+               var res = module.known_owner_of(m)
+               if not inside_mode and not intrude_mode and res.directory.owner == module then
+                       return module
+               else
+                       return res
+               end
+       end
+end
+
+# Conditionnal part of the text content of a DocContext
+class StageContext
+       # Content of the current stage
+       readable attr _content: Array[String] = new Array[String]
+
+       # Is a normal string already added?
+       readable writable attr _validate: Bool
+
+       # Parent stage is any
+       readable attr _parent: StageContext
+
+       init(parent: StageContext) do _parent = parent
+end
+
+
+# Efficiently sort object with their to_s method
+class AlphaSorter[E: Object]
+special AbstractSorter[E]
+       redef meth compare(a, b)
+       do
+               var sa: String
+               var sb: String
+               var d = _dico
+               if d.has_key(a) then
+                       sa = d[a]
+               else
+                       sa = a.to_s
+                       d[a] = sa
+               end
+               if d.has_key(b) then
+                       sb = d[b]
+               else
+                       sb = b.to_s
+                       d[b] = sb
+               end
+               return sa <=> sb
+       end
+
+       # Keep track of to_s values
+       attr _dico: HashMap[Object, String] = new HashMap[Object, String]
+
+       init do end
+end
+
+# Generalization of metamodel entities
+class MMEntity
+       # Return a link to
+       meth html_link(dctx: DocContext): String is abstract
+
+       # Is the entity should appear in the generaed doc
+       meth need_doc(dctx: DocContext): Bool is abstract
+
+       # Return a one liner description
+       meth short_doc: String do return "&nbsp;"
+
+       # The doc node from the AST
+       # Return null is none
+       meth doc: ADoc do return null
+
+       # Human redable location of the entity (module/class/property)
+       meth locate(dctx: DocContext): String do return ""
+
+       # Part of the prototype before the name (kind, modifiers, qualifier)
+       meth prototype_head(dctx: DocContext): String is abstract
+
+       # Part of the property after the name (signature, modifiers)
+       meth prototype_body(dctx: DocContext): String do return ""
+end
+
+redef class MMModule
+special MMEntity
+       redef meth html_link(dctx) do 
+               if dctx.module == self then 
+                       return "{self}"
+               else
+                       return "<a href=\"{self}.html\">{self}</a>"
+               end
+       end
+       redef meth need_doc(dctx) do return true
+       redef meth prototype_head(dctx) do return "module "
+
+       attr _known_owner_of_cache: Map[MMModule, MMModule] = new HashMap[MMModule, MMModule]
+       meth known_owner_of(module: MMModule): MMModule
+       do 
+               if _known_owner_of_cache.has_key(module) then return _known_owner_of_cache[module]
+               var res = module
+               if mhe < module and visibility_for(module) != 0 then 
+                       res = known_owner_of_intern(module, self, false)
+               else
+                       res = module.owner(self)
+               end
+               _known_owner_of_cache[module] = res
+               return res
+       end
+
+       # Return the most general module that own self
+       meth owner(from: MMModule): MMModule
+       do
+               var res = self
+               var d = directory
+               while d != null and d != from.directory do
+                       var o = d.owner
+                       if o != null and o.mhe <= res then res = o
+                       d = d.parent
+               end
+               return res
+       end
+
+       private meth known_owner_of_intern(module: MMModule, from: MMModule, as_owner: Bool): MMModule
+       do
+               if module == self then return self
+               var candidates = new Array[MMModule]
+               for m in explicit_imported_modules do
+                       if from.visibility_for(m) == 0 then continue
+                       if not m.mhe <= module then continue
+                       candidates.add(m.known_owner_of_intern(module, from, true))
+               end
+               assert not candidates.is_empty
+               var max = candidates.first
+               for m in candidates do
+                       if max.mhe < m then max = m
+               end
+               if as_owner and max.directory.owner == self then
+                       return self
+               else
+                       return max
+               end
+       end
+
+end
+
+redef class MMLocalProperty
+special MMEntity
+       # Anchor of the property description in the module html file
+       meth html_anchor: String
+       do
+               return "PROP_{local_class}_{cmangle(name)}"
+       end
+
+       redef meth html_link(dctx)
+       do
+               var m = module
+               if not need_doc(dctx) then m = global.intro.module
+               var m = dctx.known_owner_of(m)
+               if m == dctx.module then
+                       return "<a href=\"#{html_anchor}\">{self}</a>"
+               else
+                       return "<a href=\"{m}.html#{html_anchor}\">{self}</a>"
+               end
+       end
+       
+       redef meth short_doc do return concrete_property.short_doc
+
+       redef meth doc do return concrete_property.doc
+
+       redef meth need_doc(dctx) do return false
+
+       # Kind of property (meth, attr, etc.)
+       meth kind: String is abstract
+
+       redef meth locate(dctx)
+       do
+               return "in {module.html_link(dctx)}::{local_class.html_link(dctx)}"
+       end
+
+       meth known_intro_class(dctx: DocContext): MMLocalClass
+       do
+               var mod = dctx.known_owner_of(global.intro.local_class.module)
+               var cla = mod[global.intro.local_class.global]
+               return cla
+       end
+
+       redef meth prototype_head(dctx)
+       do
+               var res = ""
+               var intro_class = known_intro_class(dctx)
+               var is_redef = local_class != intro_class
+
+               if is_redef then res.append("redef ")
+               if global.visibility_level == 2 then
+                       res.append("protected ")
+               else if global.visibility_level == 3 then
+                       res.append("private ")
+               end
+               res.append(kind)
+               if is_redef then
+                       var gp = global.intro
+                       if intro_class.global != local_class.global then
+                               res.append(" {module[intro_class.global].html_link(dctx)}::")
+                       else if intro_class.module != module then
+                               res.append(" {intro_class.module.html_link(dctx)}::")
+                       end
+               end
+               return res
+       end
+
+       redef meth prototype_body(dctx)
+       do
+               var res = signature.to_html(dctx)
+               var s = self
+               if s isa MMSrcLocalProperty then
+                       if s.node isa ADeferredMethPropdef then
+                               res.append(" is abstract")
+                       else if s.node isa AInternMethPropdef then
+                               res.append(" is intern")
+                       end
+               end
+               return res
+       end
+end
+redef class MMMethod
+       redef meth kind do return if global.is_init then "init" else "meth"
+end
+redef class MMAttribute
+       redef meth kind do return "attr"
+end
+redef class MMTypeProperty
+       redef meth kind do return "type"
+end
+
+redef class MMSrcModule
+       # Extract doc for the module and its supermodules 
+       meth extract_all_modules_doc(dctx: DocContext)
+       do
+               for m in mhe.greaters_and_self do
+                       assert m isa MMSrcModule
+                       m.extract_module_doc(dctx)
+               end
+       end     
+
+       # Extract and generate html file fhe the module
+       meth extract_module_doc(dctx: DocContext)
+       do
+               if dctx.modules.has(self) then return
+
+               dctx.register(self)
+
+               dctx.clear
+               extract_module_doc_inside(dctx)
+               dctx.write_to("{dctx.dir}/{name}.html")
+               
+               dctx.intrude_mode = true
+               dctx.clear
+               extract_module_doc_inside(dctx)
+               dctx.write_to("{dctx.dir}/{name}__.html")
+               dctx.intrude_mode = false
+
+               if directory.owner == self then
+                       dctx.inside_mode = true
+                       dctx.clear
+                       extract_module_doc_inside(dctx)
+                       dctx.write_to("{dctx.dir}/{name}_.html")
+                       dctx.inside_mode = false
+               end
+       end
+
+       meth extract_module_doc_inside(dctx: DocContext)
+       do
+               dctx.add_header("Module {self}")
+               dctx.add("<h1>Module {self}</h1>\n<dl>")
+               var s = ""
+               var d = directory
+               while d == null do
+                       if d.owner != null and (d.owner != self or dctx.inside_mode or dctx.intrude_mode) then
+                               s = "{d.owner.html_link(dctx)}::{s}"
+                       end
+                       d = d.parent
+               end
+               dctx.add("{s}<br/>{prototype_head(dctx)}<b>{self}</b>{prototype_body(dctx)}<br/>\n")
+
+               var strs = new Array[String]
+               var intrude_modules = new Array[MMModule]
+               var public_modules = new Array[MMModule]
+               var private_modules = new Array[MMModule]
+               var owned_modules = new Array[MMModule]
+               dctx.owned_modules = owned_modules
+               for m in mhe.greaters do
+                       var v = visibility_for(m) 
+                       if not dctx.inside_mode and not dctx.intrude_mode and m.directory.owner == self then 
+                               if v >= 2 then owned_modules.add(m)
+                               continue
+                       end
+                       if v == 3 then
+                               intrude_modules.add(m)
+                       else if v == 2 then
+                               public_modules.add(m)
+                       else if v == 1 then
+                               private_modules.add(m)
+                       end
+               end
+               if not intrude_modules.is_empty then
+                       var mods = mhe.order.select_smallests(intrude_modules)
+                       for i in mods do strs.add(i.html_link(dctx))
+                       dctx.add("<dt>Intruded modules: <dd>{strs.join(", ")}\n")
+               end
+               if not public_modules.is_empty then
+                       strs.clear
+                       var mods = mhe.order.select_smallests(public_modules)
+                       for i in mods do strs.add(i.html_link(dctx))
+                       dctx.add("<dt>Imported modules: <dd>{strs.join(", ")}\n")
+               end
+               if not private_modules.is_empty then
+                       strs.clear
+                       var mods = mhe.order.select_smallests(private_modules)
+                       for i in mods do strs.add(i.html_link(dctx))
+                       dctx.add("<dt>Privatly imported modules: <dd>{strs.join(", ")}\n")
+               end
+               dctx.add("</dl>\n")
+
+               var doc = doc
+               if doc != null then dctx.add("<pre>{doc.to_html}</pre>\n")
+
+               var new_classes = new Array[MMLocalClass]
+               for c in local_classes do
+                       if c.need_doc(dctx) then
+                               new_classes.add(c)
+                               if c.global.intro == c then
+                                       dctx.register(c)
+                               end
+                       else
+                               for m in owned_modules do
+                                       var mc = m[c.global]
+                                       if mc != null and mc.need_doc(dctx) then 
+                                               new_classes.add(c)
+                                               break
+                                       end
+                               end
+                       end
+               end
+
+               if not new_classes.is_empty then 
+                       dctx.sort(new_classes)
+                       dctx.add("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+                       dctx.add("<tr bgcolor=\"#CCCCFF\"><th colspan=\"2\"><big>Class Summary of {self}</big></th><tr>\n")
+                       for c in new_classes do
+                               dctx.add("<tr><td width=\"20%\" align=\"right\">{c.prototype_head(dctx)}</td><td><b>{c.html_link(dctx)}</b>{c.prototype_body(dctx)}<br/>{c.short_doc}</td><tr>\n")
+                       end
+                       dctx.add("</table><br/>\n")
+               end
+
+               if not new_classes.is_empty then 
+                       dctx.add("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+                       dctx.add("<tr bgcolor=\"#CCCCFF\"><th><big>Class Detail of {self}</big></th><tr>\n")
+                       dctx.add("</table>\n")
+
+                       for c in new_classes do
+                               c.extract_class_doc(dctx)
+                       end
+               end
+
+               dctx.add("</body></html>\n")
+       end
+
+       redef meth short_doc
+       do
+               var d = doc
+               if d != null then
+                       return d.short
+               else
+                       return "&nbsp;"
+               end
+       end
+
+       redef meth doc
+       do
+               var n = node
+               if not n isa AModule then
+                       return null
+               end
+               assert n isa AModule
+               if n.n_packagedecl == null then
+                       return null
+               end
+               var np = n.n_packagedecl
+               assert np isa APackagedecl
+               var d = np.n_doc
+               assert d isa ADoc
+               if d == null then
+                       return null
+               end
+               if d.n_comment.is_empty then
+                       return null
+               else
+                       return d
+               end
+       end
+end
+
+redef class ADoc
+       # Html transcription of the doc
+       meth to_html: String
+       do
+               var res = new String
+               for c in n_comment do
+                       res.append(c.text.substring_from(1))
+               end
+               return res
+       end
+
+       # Oneliner transcription of the doc
+       meth short: String
+       do
+               return n_comment.first.text.substring_from(1)
+       end
+end
+
+redef class MMLocalClass
+special MMEntity
+       # Anchor of the class description in the module html file
+       meth html_anchor: String do return "CLASS_{self}"
+
+       redef meth html_link(dctx)
+       do
+               var m = module
+               if not need_doc(dctx) then m = global.module
+               var m = dctx.known_owner_of(m)
+               if m == dctx.module then
+                       return "<a href=\"#{html_anchor}\">{self}</a>"
+               else
+                       return "<a href=\"{m}.html#{html_anchor}\">{self}</a>"
+               end
+       end
+
+       redef meth short_doc do return global.intro.short_doc
+
+       redef meth doc do return global.intro.doc
+
+       redef meth need_doc(dctx) do
+               if module == dctx.module then
+                       for m in dctx.owned_modules do
+                               var c = m[global]
+                               if c != null and c.need_doc(dctx) then return true
+                       end
+               end
+               return false
+       end
+
+       redef meth locate(dctx) do return "in {module.html_link(dctx)}"
+
+       meth known_intro(dctx: DocContext): MMLocalClass do return dctx.known_owner_of(global.intro.module)[global]
+
+       redef meth prototype_head(dctx)
+       do
+               var res = ""
+               var ki = known_intro(dctx)
+               var is_redef = ki != self
+               if is_redef then res.append("redef ")
+               if global.visibility_level == 3 then res.append("private ")
+               res.append("class ")
+               if is_redef then res.append("{ki.module.html_link(dctx)}::")
+               return res
+       end
+
+       redef meth prototype_body(dctx)
+       do
+               var res = ""
+               if arity > 0 then
+                       res.append("[")
+                       for i in [0..arity[ do
+                               var t = get_formal(i)
+                               res.append(t.name.to_s)
+                               res.append(": ")
+                               res.append(t.bound.html_link(dctx))
+                       end
+                       res.append("]")
+               end
+               return res
+       end
+
+       # Extract the doc of a class
+       meth extract_class_doc(dctx: DocContext)
+       do
+               dctx.add("<a name=\"{html_anchor}\"></a><h2>{self}</h2><small>{module.html_link(dctx)}::</small><br/>{prototype_head(dctx)}<b>{self}</b>{prototype_body(dctx)}\n")
+               dctx.add("<blockquote>\n")
+               dctx.add("<dl>\n")
+
+               var sup2 = new Array[String]
+               var intro_module = dctx.known_owner_of(global.module)
+               if intro_module != module then
+                       dctx.add("<dt>Refine {self} from: <dd>{intro_module.html_link(dctx)}\n")
+                       sup2.clear
+                       var mods = new Array[MMModule]
+                       for c in crhe.greaters do
+                               if c.need_doc(dctx) then
+                                       var km = dctx.known_owner_of(c.module)
+                                       if km != module and km != intro_module and not mods.has(km) then
+                                               mods.add(km)
+                                       end
+                               end
+                       end
+                       for c in crhe.linear_extension do
+                               if mods.has(c.module) then sup2.add(c.module.html_link(dctx))
+                       end
+                       if not sup2.is_empty then dctx.add("<dt>Previous refinements in: <dd>{sup2.join(", ")}\n")
+               end
+               if not cshe.greaters.is_empty then
+                       sup2.clear
+                       var clas = new Array[MMLocalClass]
+                       for c in cshe.direct_greaters do
+                               sup2.add(c.html_link(dctx))
+                       end
+                       dctx.add("<dt>Direct superclasses: <dd>{sup2.join(", ")}\n")
+                       sup2.clear
+                       for c in cshe.linear_extension do
+                               if c != self then sup2.add(c.html_link(dctx))
+                       end
+                       dctx.add("<dt>All superclasses: <dd>{sup2.join(", ")}\n")
+               end
+               if not cshe.direct_smallers.is_empty then
+                       sup2.clear
+                       for c in cshe.direct_smallers do
+                               sup2.add(c.html_link(dctx))
+                       end
+                       dctx.add("<dt>Direct subclasses: <dd>{sup2.join(", ")}\n")
+               end
+               sup2.clear
+               for c in crhe.smallers do
+                       c.compute_super_classes
+                       for c2 in c.module.local_classes do
+                               if not c2 isa MMConcreteClass then continue
+                               c2.compute_super_classes
+                               c2.compute_ancestors
+                               c2.inherit_global_properties
+                       end
+                       for c2 in c.cshe.direct_smallers do
+                               if c2.global.intro == c2 then
+                                       sup2.add("{c2.html_link(dctx)}")
+                               end
+                       end
+               end
+               if not sup2.is_empty then
+                       dctx.add("<dt>Other direct subclasses in known modules: <dd>{sup2.join(", ")}\n")
+               end
+               sup2.clear
+               for c in crhe.order do
+                       if not module.mhe <= c.module and c.need_doc(dctx) then
+                               sup2.add(c.module.html_link(dctx))
+                       end
+               end
+               if not sup2.is_empty then
+                       dctx.add("<dt>Refinements in known modules: <dd>{sup2.join(", ")}\n")
+               end
+               dctx.add("</dl>\n")
+
+               var doc = doc
+               if doc != null then
+                       dctx.add("<pre>{doc.to_html}</pre>\n")
+               end
+
+               var details = new Array[Array[MMLocalProperty]]
+               for i in [0..4[ do details.add(property_summary(dctx, i))
+               for i in [0..4[ do property_detail(dctx, i, details[i])
+
+               dctx.add("</blockquote><hr/>\n")
+       end
+
+       meth pass_name(pass: Int): String
+       do
+               var names = once ["Virtual Types", "Consructors", "Methods", "Attributes"]
+               return names[pass]
+       end
+       
+       meth accept_prop(p: MMLocalProperty, pass: Int): Bool
+       do
+               if pass == 0 then
+                       return p isa MMTypeProperty
+               else if pass == 1 then
+                       return p.global.is_init
+               else if pass == 2 then
+                       return p isa MMMethod and not p.global.is_init
+               else if pass == 3 then
+                       return p isa MMAttribute
+               end
+               abort
+       end
+
+       meth property_summary(dctx: DocContext, pass: Int): Array[MMLocalProperty]
+       do
+               var passname = pass_name(pass)
+               dctx.open_stage
+               dctx.stage("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+               dctx.stage("<tr bgcolor=\"#CCCCFF\"><th colspan=\"2\">{passname} Summary of {self}</th><tr>\n")
+
+               var new_props = new Array[MMLocalProperty]
+               for g in global_properties do
+                       if not accept_prop(g.intro, pass) then continue
+                       if module.visibility_for(g.intro.module) < g.visibility_level then continue
+                       var p = self[g]
+                       if not p.need_doc(dctx) then
+                               var cla = new Array[MMLocalClass]
+                               for m in dctx.owned_modules do
+                                       var c = m[global]
+                                       if c == null or not c isa MMConcreteClass then continue
+                                       var p2 = c[g]
+                                       if p2 == null or not p2.need_doc(dctx) then continue
+                                       cla.add(c)
+                               end
+                               if cla.is_empty then continue
+                               cla = crhe.order.select_smallests(cla)
+                       end
+
+                       new_props.add(p)
+                       if p.global.intro == p then
+                               dctx.register(p)
+                       end
+               end
+               dctx.sort(new_props)
+               for p in new_props do
+                       dctx.add("<tr><td width=\"20%\" align=\"right\">{p.prototype_head(dctx)}</td><td><b>{p.html_link(dctx)}</b>{p.prototype_body(dctx)}<br/>&nbsp;&nbsp;&nbsp;&nbsp;{p.short_doc}</td><tr>\n")
+               end
+               dctx.stage("</table><br/>\n")
+
+               dctx.open_stage
+               dctx.stage("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+               if pass != 1 then
+                       # skip pass 1 because constructors are not inherited
+                       var cmap = new HashMap[MMLocalClass, Array[MMLocalProperty]]
+                       var mmap = new HashMap[MMModule, Array[MMLocalProperty]]
+                       var props = new Array[MMLocalClass]
+                       for c in che.greaters do
+                               if c isa MMSrcLocalClass then
+                                       var km = dctx.known_owner_of(c.module)
+                                       var kc = km[c.global]
+                                       if kc == self or not c isa MMConcreteClass then continue
+                                       var props: Array[MMLocalProperty]
+                                       if km == module then
+                                               if cmap.has_key(kc) then
+                                                       props = cmap[kc]
+                                               else
+                                                       props = new Array[MMLocalProperty]
+                                                       cmap[kc] = props
+                                               end
+                                       else
+                                               if mmap.has_key(km) then
+                                                       props = mmap[km]
+                                               else
+                                                       props = new Array[MMLocalProperty]
+                                                       mmap[km] = props
+                                               end
+                                       end
+                                       for g in c.global_properties do
+                                               var p = c[g]
+                                               if p.need_doc(dctx) and accept_prop(p, pass) then
+                                                       props.add(kc[g])
+                                               end
+                                       end
+                               end
+                       end
+                       dctx.open_stage
+                       dctx.stage("<tr bgcolor=\"#EEEEFF\"><th colspan=\"2\"><small>Inherited {passname}</small></th><tr>\n")
+                       for c in cshe.linear_extension do
+                               if not cmap.has_key(c) then continue
+                               var props = cmap[c]
+                               if props.is_empty then continue
+                               dctx.sort(props)
+                               var properties = new Array[String]
+                               for p in props do properties.add(p.html_link(dctx))
+                               dctx.add("<tr><td width=\"20%\"><small>from {c.html_link(dctx)}</small></td><td><small>{properties.join(", ")}</small></td><tr>\n")
+                       end
+                       dctx.close_stage
+
+                       dctx.open_stage
+                       dctx.stage("<tr bgcolor=\"#EEEEFF\"><th colspan=\"2\"><small>Imported {passname}</small></th><tr>\n")
+                       for m in module.mhe.linear_extension do
+                               if not mmap.has_key(m) then continue
+                               var props = mmap[m]
+                               if props.is_empty then continue
+                               dctx.sort(props)
+                               var properties = new Array[String]
+                               for p in props do properties.add(p.html_link(dctx))
+                               dctx.add("<tr><td width=\"20%\"><small>from {m.html_link(dctx)}</small></td><td><small>{properties.join(", ")}</small></td><tr>\n")
+                       end
+                       dctx.close_stage
+               end
+
+               var mmap = new HashMap[MMModule, Array[MMLocalProperty]]
+               var props = new Array[MMLocalClass]
+               for c in crhe.order do
+                       if module.mhe <= c.module or dctx.owned_modules.has(c.module) or not c isa MMSrcLocalClass then continue
+                       var km = dctx.known_owner_of(c.module)
+                       if module.mhe <= km then continue
+                       var kc = km[c.global]
+                       var props: Array[MMLocalProperty]
+                       if mmap.has_key(km) then
+                               props = mmap[km]
+                       else
+                               props = new Array[MMLocalProperty]
+                               mmap[km] = props
+                       end
+                       for g in c.global_properties do
+                               var p = c[g]
+                               if p.need_doc(dctx) and accept_prop(p, pass) then
+                                       var kp = kc[g]
+                                       if not props.has(kp) then props.add(kp)
+                               end
+                       end
+                       # c.properties_inherited_from(dctx, self, pass)
+               end
+               dctx.open_stage
+               dctx.stage("<tr bgcolor=\"#EEEEFF\"><th colspan=\"2\"><small>Added {passname} in known modules</small></th><tr>\n")
+               for c in crhe.order do
+                       var m = c.module
+                       if not mmap.has_key(m) then continue
+                       var props = mmap[m]
+                       if props.is_empty then continue
+                       dctx.sort(props)
+                       var properties = new Array[String]
+                       for p in props do properties.add(p.html_link(dctx))
+                       dctx.add("<tr><td width=\"20%\"><small>in {m.html_link(dctx)}</small></td><td><small>{properties.join(", ")}</small></td><tr>\n")
+               end
+               dctx.close_stage
+               dctx.stage("</table><br/><br/>\n")
+               dctx.close_stage
+
+               dctx.close_stage
+               return new_props
+       end
+
+       meth property_detail(dctx: DocContext, pass: Int, new_props: Array[MMLocalProperty])
+       do
+               var passname = pass_name(pass)
+               dctx.open_stage
+               dctx.stage("<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n")
+               dctx.stage("<tr bgcolor=\"#CCCCFF\"><th>{passname} Detail of {self}</th><tr>\n")
+               dctx.stage("</table>\n")
+
+               dctx.open_stage
+               for p in new_props do
+                       dctx.add("<a name=\"{p.html_anchor}\"></a><h3>{p}</h3><p><small>{p.module.html_link(dctx)}::{p.local_class.html_link(dctx)}::</small><br/>{p.prototype_head(dctx)} <b>{p.name}</b>{p.prototype_body(dctx)}</p>\n")
+                       dctx.add("<blockquote>")
+                       var doc = p.doc
+                       if doc != null then
+                               dctx.add("<pre>{doc.to_html}</pre>\n")
+                       end
+                       dctx.stage("</blockquote>\n")
+                       dctx.close_stage
+
+                       dctx.open_stage
+                       dctx.stage("<hr/>\n")
+               end
+               dctx.close_stage
+
+               dctx.close_stage
+       end
+
+       # Add rows for properties inheriterd to some heirs
+       meth properties_inherited_from(dctx: DocContext, heir: MMLocalClass, pass: Int)
+       do
+               var properties = new Array[String]
+               for g in global_properties do
+                       var p = self[g]
+                       if p.need_doc(dctx) and accept_prop(p, pass) then
+                               properties.add(p.html_link(dctx))
+                       end
+               end
+               if not properties.is_empty then
+                       var s: String
+                       if heir.global == global then
+                               s = module.html_link(dctx)
+                       else
+                               s = self.html_link(dctx)
+                       end
+                       dctx.add("<tr><td width=\"20%\"><small>in {s}</small></td><td><small>{properties.join(", ")}</small></td><tr>\n")
+               end
+       end
+end
+
+redef class MMSrcLocalClass
+       redef meth short_doc
+       do
+               var d = doc
+               if d != null then
+                       return d.short
+               else if global.intro == self then
+                       return "&nbsp;"
+               else
+                       var bc = global.intro
+                       return bc.short_doc
+               end
+       end
+
+       redef meth doc
+       do
+               var n = nodes.first
+               if not n isa AClassdef then
+                       return null
+               end
+               assert n isa AClassdef
+               var d = n.n_doc
+               assert d isa ADoc
+               if d == null then
+                       return null
+               end
+               if d.n_comment.is_empty then
+                       return null
+               else
+                       return d
+               end
+       end
+
+       redef meth need_doc(dctx)
+       do
+               if global.visibility_level >= 3 then
+                       if not dctx.intrude_mode then return false
+                       if dctx.module.visibility_for(module) == 0 then return false
+               end
+               if global.intro == self then
+                       return true
+               end
+               for p in src_local_properties do
+                       if p.need_doc(dctx) then
+                               return true
+                       end
+               end
+               return super
+       end
+end
+
+redef class MMSrcLocalProperty
+       redef meth need_doc(dctx)
+       do
+               if global.visibility_level >= 3 or self isa MMAttribute then
+                       if not dctx.intrude_mode then return false
+                       if dctx.module.visibility_for(module) == 0 then return false
+               end
+               if global.intro == self then
+                       return true
+               end
+               return true
+       end
+
+       redef meth short_doc
+       do
+               var d = doc
+               if d != null then
+                       return d.short
+               else if global.intro == self then
+                       return "&nbsp;"
+               else
+                       return global.intro.short_doc
+               end
+       end
+       
+       redef meth doc
+       do
+               var n = node
+               if not node isa PPropdef then
+                       return null
+               end
+               assert n isa PPropdef
+               var d = n.n_doc
+               assert d isa ADoc
+               if d == null then
+                       return null
+               end
+               if d.n_comment.is_empty then
+                       return null
+               else
+                       return d
+               end
+       end
+end
+
+redef class MMSignature
+       # Htlm transcription of the signature (with nested links)
+       meth to_html(dctx: DocContext): String
+       do
+               var res = new String
+               if arity > 0 then
+                       res.append("(")
+                       res.append(self[0].html_link(dctx))
+                       for i in [1..arity[ do
+                               res.append(", ")
+                               res.append(self[i].html_link(dctx))
+                       end
+                       res.append(")")
+               end
+               if return_type != null then
+                       res.append(": ")
+                       res.append(return_type.html_link(dctx))
+               end
+               return res
+       end
+end
+
+redef class MMType
+       # Htlm transcription of the type (with nested links)
+       meth html_link(dctx: DocContext): String do return to_s
+end
+
+redef class MMTypeSimpleClass
+       redef meth html_link(dctx) do return local_class.html_link(dctx)
+end
+
+redef class MMTypeGeneric
+       redef meth html_link(dctx)
+       do
+               var res = local_class.html_link(dctx)
+               res.append("[")
+               res.append(params[0].html_link(dctx))
+               for i in [1..params.length[ do
+                       res.append(", ")
+                       res.append(params[i].html_link(dctx))
+               end
+               res.append("]")
+               return res
+       end
+end
+
+
+# The main class of the nitdoc program
+class NitDoc
+special AbstractCompiler
+       readable attr _opt_dir: OptionString = new OptionString("Directory where doc is generated", "-d", "--dir")
+
+       redef meth perform_work(mods)
+       do
+               var dctx = tc
+               assert dctx isa DocContext
+
+               dctx.dir.mkdir
+
+               for mod in mods do
+                       assert mod isa MMSrcModule
+                       mod.extract_all_modules_doc(dctx)
+               end
+               dctx.extract_other_doc
+       end
+
+       redef init
+       do
+               super
+               option_context.add_option(opt_dir)
+       end
+
+       redef meth process_options
+       do
+               super
+               var dctx = new DocContext
+               dctx.dir = opt_dir.value
+               if dctx.dir == null then dctx.dir = "."
+
+               tc = dctx
+       end
+end
+
+var c = new NitDoc
+c.exec_cmd_line
diff --git a/src/parser/Makefile b/src/parser/Makefile
new file mode 100644 (file)
index 0000000..67b0272
--- /dev/null
@@ -0,0 +1,57 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SABLECC=sablecc3
+
+all: parser.nit
+
+# first sed start from first line to line /*I*/ and remove /*.*/
+# second sed clones /*B*/ productions, substitute /*B*/ with no_bra and delete /*N*/ lines
+# third sed from line /*I*/ to last line and remove /*.*/
+nit.sablecc3: nit.sablecc3xx
+       @test -f nit.sablecc3 && chmod +w nit.sablecc3 || touch nit.sablecc3
+       @echo -n "// This file is autogenerated, no dot modify it" > nit.sablecc3.t
+       sed -n -e '1,/\/\*I\*\//{s/\/\*[BIN]\*\///g;p}' nit.sablecc3xx >> nit.sablecc3.t
+       sed -n -e '/\/\*B\*\//,/;/{s/\/\*B\*\//_nobra/g;/\/\*N\*\//d;p}' nit.sablecc3xx >> nit.sablecc3.t
+       sed -n -e '/\/\*I\*\//,$${s/\/\*[BIN]\*\///g;p}' nit.sablecc3xx >> nit.sablecc3.t
+       
+       > nit.sablecc3
+       sed -n -e '1,/\/\*I2\*\//{s/\/\*[BIN]2\*\///g;p}' nit.sablecc3.t >> nit.sablecc3
+       sed -n -e '/\/\*B2\*\//,/;/{s/\/\*B2\*\//_withelse/g;/\/\*N2\*\//d;p}' nit.sablecc3.t >> nit.sablecc3
+       sed -n -e '/\/\*I2\*\//,$${s/\/\*[BIN]2\*\///g;p}' nit.sablecc3.t >> nit.sablecc3
+       
+       cp nit.sablecc3 nit.sablecc3.t
+       > nit.sablecc3
+       sed -n -e '1,/\/\*I3\*\//{s/\/\*[BIN]3\*\///g;p}' nit.sablecc3.t >> nit.sablecc3
+       sed -n -e '/\/\*B3\*\//,/;/{s/\/\*B3\*\//_nopar/g;/\/\*N3\*\//d;p}' nit.sablecc3.t >> nit.sablecc3
+       sed -n -e '/\/\*I3\*\//,$${s/\/\*[BIN]3\*\///g;p}' nit.sablecc3.t >> nit.sablecc3
+       
+       rm nit.sablecc3.t
+       @sed -i -e '{s/\/\/#.*//}' nit.sablecc3
+       @chmod -w nit.sablecc3
+
+# Note that parser_nodes is automatically synced with the grammar
+parser.nit: nit.sablecc3 xss/*.xss
+       cp parser_abs.nit parser_abs.nit.bak || true
+       ${SABLECC} -c nit.sablecc3.dump -t xss/main.xss -p usermodule parser_nodes nit.sablecc3
+       diff -u parser_abs.nit.bak parser_abs.nit > parser_abs.patch || true
+       patch parser_nodes.nit < parser_abs.patch || true
+
+clean:
+       rm -f -- nit.sablecc3 nit.sablecc3.dump parser_abs.patch || true
+
+dist-clean: clean
+       rm -f -- parser.nit parser_abs.nit parser_abs.patch parser_abs.nit.bak parser_prod.nit parser_tables.nit lexer.nit || true
diff --git a/src/parser/README b/src/parser/README
new file mode 100644 (file)
index 0000000..a0dfe93
--- /dev/null
@@ -0,0 +1,28 @@
+This directory contains the nit parser. It is generated from a grammar for sablecc3 ( http://www.sablecc.org ).
+In order to generate nit parser, you need the alternate SableCC3 generator ( http://www.mare.ee/indrek/sablecc/ ).
+
+Contents:
+
+       Makefile: Update grammar and generate .nit files
+       nit.sablecc3xx: Extended sablecc3 grammar (see Makefile)
+       parser_nodes.nit: token and nodes classes hierarchy used by the parser ans lexer
+       test_parser.nit
+       xss/*.xss: Template files for the NIT language
+
+
+The following are generated but present to avoid the need of sablecc3:
+
+       lexer.nit: generated lexer
+       parser.nit: generated parser
+       parser_prod.nit: All production with generated visit methods
+       parser_tables.nit: Tables needed py the parser
+       parser_abs.nit: Raw generated token and nodes classes used to maintain coherence of parser_nodes.nit
+
+
+Other temp files produced by the Makefile:
+
+       nit.sablecc3: Sablecc3 grammar after processing (readolny to avoid modifying it)
+       nit.sablecc3.dump: Dump of the grammar to improve sablecc3 multiple runs
+       parser_abs.patch: Change between old and new parser_abs.nit to keep parser_nodes.nit in sync
+
+
diff --git a/src/parser/lexer.nit b/src/parser/lexer.nit
new file mode 100644 (file)
index 0000000..6cd0b6b
--- /dev/null
@@ -0,0 +1,3243 @@
+# Lexer and its tokens.
+# This file was generated by SableCC (http://www.sablecc.org/).
+package lexer
+
+import parser_nodes
+
+redef class Token
+    readable writable attr _text: String 
+    readable attr _filename: String 
+    readable attr _line: Int 
+    readable attr _pos: Int 
+    
+    meth parser_index: Int is abstract
+
+    redef meth to_s: String do
+        return "'{_text}'"
+    end
+end
+
+redef class TEol
+    redef meth parser_index: Int
+    do
+       return 0
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TComment
+    redef meth parser_index: Int
+    do
+       return 1
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwpackage
+    redef meth parser_index: Int
+    do
+       return 2
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "package"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwimport
+    redef meth parser_index: Int
+    do
+       return 3
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "import"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwclass
+    redef meth parser_index: Int
+    do
+       return 4
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "class"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwabstract
+    redef meth parser_index: Int
+    do
+       return 5
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "abstract"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwinterface
+    redef meth parser_index: Int
+    do
+       return 6
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "interface"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwuniversal
+    redef meth parser_index: Int
+    do
+       return 7
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "universal"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwspecial
+    redef meth parser_index: Int
+    do
+       return 8
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "special"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwend
+    redef meth parser_index: Int
+    do
+       return 9
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "end"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwmeth
+    redef meth parser_index: Int
+    do
+       return 10
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "meth"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwtype
+    redef meth parser_index: Int
+    do
+       return 11
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "type"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwattr
+    redef meth parser_index: Int
+    do
+       return 12
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "attr"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwinit
+    redef meth parser_index: Int
+    do
+       return 13
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "init"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwredef
+    redef meth parser_index: Int
+    do
+       return 14
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "redef"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwis
+    redef meth parser_index: Int
+    do
+       return 15
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "is"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwdo
+    redef meth parser_index: Int
+    do
+       return 16
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "do"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwreadable
+    redef meth parser_index: Int
+    do
+       return 17
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "readable"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwwritable
+    redef meth parser_index: Int
+    do
+       return 18
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "writable"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwvar
+    redef meth parser_index: Int
+    do
+       return 19
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "var"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwintern
+    redef meth parser_index: Int
+    do
+       return 20
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "intern"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwextern
+    redef meth parser_index: Int
+    do
+       return 21
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "extern"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwprotected
+    redef meth parser_index: Int
+    do
+       return 22
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "protected"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwprivate
+    redef meth parser_index: Int
+    do
+       return 23
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "private"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwintrude
+    redef meth parser_index: Int
+    do
+       return 24
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "intrude"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwif
+    redef meth parser_index: Int
+    do
+       return 25
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "if"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwthen
+    redef meth parser_index: Int
+    do
+       return 26
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "then"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwelse
+    redef meth parser_index: Int
+    do
+       return 27
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "else"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwwhile
+    redef meth parser_index: Int
+    do
+       return 28
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "while"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwfor
+    redef meth parser_index: Int
+    do
+       return 29
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "for"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwin
+    redef meth parser_index: Int
+    do
+       return 30
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "in"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwand
+    redef meth parser_index: Int
+    do
+       return 31
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "and"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwor
+    redef meth parser_index: Int
+    do
+       return 32
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "or"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwnot
+    redef meth parser_index: Int
+    do
+       return 33
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "not"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwreturn
+    redef meth parser_index: Int
+    do
+       return 34
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "return"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwcontinue
+    redef meth parser_index: Int
+    do
+       return 35
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "continue"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwbreak
+    redef meth parser_index: Int
+    do
+       return 36
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "break"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwabort
+    redef meth parser_index: Int
+    do
+       return 37
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "abort"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwassert
+    redef meth parser_index: Int
+    do
+       return 38
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "assert"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwnew
+    redef meth parser_index: Int
+    do
+       return 39
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "new"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwisa
+    redef meth parser_index: Int
+    do
+       return 40
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "isa"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwonce
+    redef meth parser_index: Int
+    do
+       return 41
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "once"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwsuper
+    redef meth parser_index: Int
+    do
+       return 42
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "super"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwself
+    redef meth parser_index: Int
+    do
+       return 43
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "self"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwtrue
+    redef meth parser_index: Int
+    do
+       return 44
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "true"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwfalse
+    redef meth parser_index: Int
+    do
+       return 45
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "false"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TKwnull
+    redef meth parser_index: Int
+    do
+       return 46
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "null"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TOpar
+    redef meth parser_index: Int
+    do
+       return 47
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "("
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TCpar
+    redef meth parser_index: Int
+    do
+       return 48
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ")"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TObra
+    redef meth parser_index: Int
+    do
+       return 49
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "["
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TCbra
+    redef meth parser_index: Int
+    do
+       return 50
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "]"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TComma
+    redef meth parser_index: Int
+    do
+       return 51
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ","
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TColumn
+    redef meth parser_index: Int
+    do
+       return 52
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ":"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TQuad
+    redef meth parser_index: Int
+    do
+       return 53
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "::"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TAssign
+    redef meth parser_index: Int
+    do
+       return 54
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TPluseq
+    redef meth parser_index: Int
+    do
+       return 55
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "+="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TMinuseq
+    redef meth parser_index: Int
+    do
+       return 56
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "-="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TDotdotdot
+    redef meth parser_index: Int
+    do
+       return 57
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "..."
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TDotdot
+    redef meth parser_index: Int
+    do
+       return 58
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ".."
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TDot
+    redef meth parser_index: Int
+    do
+       return 59
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "."
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TPlus
+    redef meth parser_index: Int
+    do
+       return 60
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "+"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TMinus
+    redef meth parser_index: Int
+    do
+       return 61
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "-"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TStar
+    redef meth parser_index: Int
+    do
+       return 62
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "*"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TSlash
+    redef meth parser_index: Int
+    do
+       return 63
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "/"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TPercent
+    redef meth parser_index: Int
+    do
+       return 64
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "%"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TEq
+    redef meth parser_index: Int
+    do
+       return 65
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "=="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TNe
+    redef meth parser_index: Int
+    do
+       return 66
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "!="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TLt
+    redef meth parser_index: Int
+    do
+       return 67
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "<"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TLe
+    redef meth parser_index: Int
+    do
+       return 68
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "<="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TGt
+    redef meth parser_index: Int
+    do
+       return 69
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ">"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TGe
+    redef meth parser_index: Int
+    do
+       return 70
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once ">="
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TStarship
+    redef meth parser_index: Int
+    do
+       return 71
+    end
+
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "<=>"
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TClassid
+    redef meth parser_index: Int
+    do
+       return 72
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TId
+    redef meth parser_index: Int
+    do
+       return 73
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TAttrid
+    redef meth parser_index: Int
+    do
+       return 74
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TNumber
+    redef meth parser_index: Int
+    do
+       return 75
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TFloat
+    redef meth parser_index: Int
+    do
+       return 76
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TChar
+    redef meth parser_index: Int
+    do
+       return 77
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TString
+    redef meth parser_index: Int
+    do
+       return 78
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TStartString
+    redef meth parser_index: Int
+    do
+       return 79
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TMidString
+    redef meth parser_index: Int
+    do
+       return 80
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class TEndString
+    redef meth parser_index: Int
+    do
+       return 81
+    end
+
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+
+redef class EOF 
+    redef meth parser_index: Int
+    do
+       return 82
+    end
+    
+    init(fname: String, line: Int, pos: Int)
+    do
+       _filename = fname
+        _text = ""
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class PError
+    readable writable attr _message: String 
+    
+    init init_error(fname: String, line: Int, pos: Int, message: String)
+    do
+        init(fname, line, pos)
+       _message = message
+    end
+end
+
+
+# The lexer extract NIT tokens from an input stream.
+# It is better user with the Parser
+class Lexer
+       # Last peeked token
+       attr _token: Token
+
+       # Lexer current state
+       attr _state: Int
+
+       # Name of the stream (as given to tokens)
+       readable attr _filename: String 
+
+       # Input stream where character are read
+       attr _stream: IStream
+
+       # Pushback buffer to store unread character
+       attr _stream_buf: String
+
+       # Number of character stored in the pushback buffer
+       attr _stream_pos: Int
+
+       # Current line number in the input stream
+       attr _line: Int
+
+       # Current column in the input stream
+       attr _pos: Int
+
+       # Was the last character a cariage-return?
+       attr _cr: Bool
+
+       # If the end of stream?
+       attr _eof: Bool
+
+       # Current working text read from the input stream
+       attr _text: String
+
+       # Constante state values
+       private meth state_initial: Int do return 0 end
+
+       # Create a new lexer for a stream (and a name)
+       init(stream: IStream, fname: String)
+       do
+               _filename = fname
+               _text = new String
+               _stream = stream
+               _stream_pos = -1
+               _stream_buf = new String
+               build_goto_table
+               build_accept_table
+       end
+
+       # Give the next token (but do not consume it)
+       meth peek: Token
+       do
+               while _token == null do
+                       _token = get_token
+               end
+               return _token
+       end
+
+       # Give and consume the next token
+       meth next: Token
+       do
+               var result = _token
+               while result == null do
+                       result = get_token
+               end
+               _token = null
+               return result
+       end
+
+       # Get a token, or null if it is discarded
+       private meth get_token: Token
+       do
+               var dfa_state = 0
+
+               var start_pos = _pos
+               var start_line = _line
+
+               var accept_state = -1
+               var accept_token = -1
+               var accept_length = -1
+               var accept_pos = -1
+               var accept_line = -1
+
+               var goto_table = _goto_table[_state]
+               var accept = _accept_table[_state]
+               _text.clear
+
+               while true do
+                       var c = get_char
+
+                       if c != -1 then
+                               if c == 10 then
+                                       if _cr then
+                                               _cr = false
+                                       else
+                                               _line = _line + 1
+                                               _pos = 0
+                                       end
+                               else if c == 13 then
+                                       _line = _line + 1
+                                       _pos = 0
+                                       _cr = true
+                               else
+                                       _pos = _pos + 1
+                                       _cr = false
+                               end
+
+                               _text.add(c.ascii)
+
+                               var first_loop = true # aka until
+                               while dfa_state < -1 or first_loop do
+                                       var old_state = dfa_state
+                                       if dfa_state < -1 then
+                                               old_state = -2 - dfa_state
+                                       end
+
+                                       dfa_state = -1
+
+                                       var tmp1 = goto_table[old_state]
+                                       var low = 0
+                                       var high = tmp1.length - 1
+
+                                       while low <= high do
+                                               var middle = (low + high) / 2
+                                               var tmp2 = tmp1[middle]
+
+                                               if c < tmp2[0] then
+                                                       high = middle - 1
+                                               else if c > tmp2[1] then
+                                                       low = middle + 1
+                                               else
+                                                       dfa_state = tmp2[2]
+                                                       low = high + 1 # aka break
+                                               end
+                                       end
+                                       first_loop = false # aka until
+                               end
+                       else
+                               dfa_state = -1
+                       end
+
+                       if dfa_state >= 0 then
+                               if accept[dfa_state] != -1 then
+                                       accept_state = dfa_state
+                                       accept_token = accept[dfa_state]
+                                       accept_length = _text.length
+                                       accept_pos = _pos
+                                       accept_line = _line
+                               end
+                       else
+                               if accept_state != -1 then
+                                       if accept_token == 0 then
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return null
+                                       end
+                                       if accept_token == 1 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TEol(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 2 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TComment(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 3 then
+                                               var token = new TKwpackage(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 4 then
+                                               var token = new TKwimport(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 5 then
+                                               var token = new TKwclass(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 6 then
+                                               var token = new TKwabstract(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 7 then
+                                               var token = new TKwinterface(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 8 then
+                                               var token = new TKwuniversal(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 9 then
+                                               var token = new TKwspecial(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 10 then
+                                               var token = new TKwend(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 11 then
+                                               var token = new TKwmeth(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 12 then
+                                               var token = new TKwtype(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 13 then
+                                               var token = new TKwattr(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 14 then
+                                               var token = new TKwinit(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 15 then
+                                               var token = new TKwredef(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 16 then
+                                               var token = new TKwis(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 17 then
+                                               var token = new TKwdo(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 18 then
+                                               var token = new TKwreadable(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 19 then
+                                               var token = new TKwwritable(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 20 then
+                                               var token = new TKwvar(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 21 then
+                                               var token = new TKwintern(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 22 then
+                                               var token = new TKwextern(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 23 then
+                                               var token = new TKwprotected(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 24 then
+                                               var token = new TKwprivate(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 25 then
+                                               var token = new TKwintrude(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 26 then
+                                               var token = new TKwif(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 27 then
+                                               var token = new TKwthen(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 28 then
+                                               var token = new TKwelse(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 29 then
+                                               var token = new TKwwhile(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 30 then
+                                               var token = new TKwfor(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 31 then
+                                               var token = new TKwin(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 32 then
+                                               var token = new TKwand(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 33 then
+                                               var token = new TKwor(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 34 then
+                                               var token = new TKwnot(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 35 then
+                                               var token = new TKwreturn(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 36 then
+                                               var token = new TKwcontinue(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 37 then
+                                               var token = new TKwbreak(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 38 then
+                                               var token = new TKwabort(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 39 then
+                                               var token = new TKwassert(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 40 then
+                                               var token = new TKwnew(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 41 then
+                                               var token = new TKwisa(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 42 then
+                                               var token = new TKwonce(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 43 then
+                                               var token = new TKwsuper(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 44 then
+                                               var token = new TKwself(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 45 then
+                                               var token = new TKwtrue(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 46 then
+                                               var token = new TKwfalse(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 47 then
+                                               var token = new TKwnull(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 48 then
+                                               var token = new TOpar(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 49 then
+                                               var token = new TCpar(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 50 then
+                                               var token = new TObra(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 51 then
+                                               var token = new TCbra(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 52 then
+                                               var token = new TComma(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 53 then
+                                               var token = new TColumn(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 54 then
+                                               var token = new TQuad(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 55 then
+                                               var token = new TAssign(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 56 then
+                                               var token = new TPluseq(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 57 then
+                                               var token = new TMinuseq(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 58 then
+                                               var token = new TDotdotdot(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 59 then
+                                               var token = new TDotdot(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 60 then
+                                               var token = new TDot(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 61 then
+                                               var token = new TPlus(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 62 then
+                                               var token = new TMinus(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 63 then
+                                               var token = new TStar(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 64 then
+                                               var token = new TSlash(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 65 then
+                                               var token = new TPercent(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 66 then
+                                               var token = new TEq(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 67 then
+                                               var token = new TNe(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 68 then
+                                               var token = new TLt(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 69 then
+                                               var token = new TLe(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 70 then
+                                               var token = new TGt(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 71 then
+                                               var token = new TGe(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 72 then
+                                               var token = new TStarship(_filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 73 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TClassid(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 74 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TId(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 75 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TAttrid(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 76 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TNumber(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 77 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TFloat(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 78 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TChar(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 79 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TString(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 80 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TStartString(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 81 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TMidString(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                                       if accept_token == 82 then
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TEndString(token_text, _filename, start_line + 1, start_pos + 1)
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+                                               return token
+                                       end
+                               else
+                                       if _text.length > 0 then
+                                               var token = new PError.init_error(_filename, start_line + 1, start_pos + 1, "Unknown token: {_text}")
+                                               return token
+                                       else
+                                               var token = new EOF(_filename, start_line + 1, start_pos + 1)
+                                               return token
+                                       end
+                               end
+                       end
+               end
+               return null
+       end
+
+       # Read the next character.
+       # The character is read from the stream of from the pushback buffer.
+       private meth get_char: Int
+       do
+               if _eof then
+                       return -1
+               end
+
+               var result: Int
+
+               var sp = _stream_pos
+               if sp >= 0 then
+                       var res = _stream_buf[_stream_pos]
+                       _stream_pos = sp - 1
+                       result = res.ascii
+               else
+                       result = _stream.read_char
+               end
+
+               if result == -1 then
+                       _eof = true
+               end
+
+               return result
+       end
+
+       # Unread some characters.
+       # Unread characters are stored in the pushback buffer.
+       private meth push_back(accept_length: Int)
+       do
+               var length = _text.length
+               var i = length - 1
+               while i >= accept_length do
+                       _eof = false
+                       _stream_pos = _stream_pos + 1
+                       _stream_buf[_stream_pos] = _text[i]
+                       i = i - 1
+               end
+       end
+
+       attr _goto_table: Array[Array[Array[Array[Int]]]]
+       private meth build_goto_table
+       do
+               _goto_table = once [
+                       [
+                               [
+                                       [9, 9, 1] ,
+                                       [10, 10, 2] ,
+                                       [13, 13, 3] ,
+                                       [32, 32, 4] ,
+                                       [33, 33, 5] ,
+                                       [34, 34, 6] ,
+                                       [35, 35, 7] ,
+                                       [37, 37, 8] ,
+                                       [39, 39, 9] ,
+                                       [40, 40, 10] ,
+                                       [41, 41, 11] ,
+                                       [42, 42, 12] ,
+                                       [43, 43, 13] ,
+                                       [44, 44, 14] ,
+                                       [45, 45, 15] ,
+                                       [46, 46, 16] ,
+                                       [47, 47, 17] ,
+                                       [48, 57, 18] ,
+                                       [58, 58, 19] ,
+                                       [60, 60, 20] ,
+                                       [61, 61, 21] ,
+                                       [62, 62, 22] ,
+                                       [65, 90, 23] ,
+                                       [91, 91, 24] ,
+                                       [93, 93, 25] ,
+                                       [95, 95, 26] ,
+                                       [97, 97, 27] ,
+                                       [98, 98, 28] ,
+                                       [99, 99, 29] ,
+                                       [100, 100, 30] ,
+                                       [101, 101, 31] ,
+                                       [102, 102, 32] ,
+                                       [103, 104, 33] ,
+                                       [105, 105, 34] ,
+                                       [106, 108, 33] ,
+                                       [109, 109, 35] ,
+                                       [110, 110, 36] ,
+                                       [111, 111, 37] ,
+                                       [112, 112, 38] ,
+                                       [113, 113, 33] ,
+                                       [114, 114, 39] ,
+                                       [115, 115, 40] ,
+                                       [116, 116, 41] ,
+                                       [117, 117, 42] ,
+                                       [118, 118, 43] ,
+                                       [119, 119, 44] ,
+                                       [120, 122, 33] ,
+                                       [125, 125, 45] 
+                               ] ,
+                               [
+                                       [9, 9, 1] ,
+                                       [32, 32, 4] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [10, 10, 46] 
+                               ] ,
+                               [
+                                       [9, 32, -3] 
+                               ] ,
+                               [
+                                       [61, 61, 47] 
+                               ] ,
+                               [
+                                       [0, 9, 48] ,
+                                       [11, 12, 48] ,
+                                       [14, 33, 48] ,
+                                       [34, 34, 49] ,
+                                       [35, 91, 48] ,
+                                       [92, 92, 50] ,
+                                       [93, 122, 48] ,
+                                       [123, 123, 51] ,
+                                       [124, 255, 48] 
+                               ] ,
+                               [
+                                       [0, 9, 52] ,
+                                       [10, 10, 53] ,
+                                       [11, 12, 52] ,
+                                       [13, 13, 54] ,
+                                       [14, 255, 52] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [0, 9, 55] ,
+                                       [11, 12, 55] ,
+                                       [14, 38, 55] ,
+                                       [39, 39, 56] ,
+                                       [40, 255, 55] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [61, 61, 57] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [61, 61, 58] 
+                               ] ,
+                               [
+                                       [46, 46, 59] ,
+                                       [48, 57, 60] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [46, 46, 61] ,
+                                       [48, 57, 18] 
+                               ] ,
+                               [
+                                       [58, 58, 62] 
+                               ] ,
+                               [
+                                       [61, 61, 63] 
+                               ] ,
+                               [
+                                       [61, 61, 64] 
+                               ] ,
+                               [
+                                       [61, 61, 65] 
+                               ] ,
+                               [
+                                       [48, 57, 66] ,
+                                       [65, 90, 67] ,
+                                       [95, 95, 68] ,
+                                       [97, 122, 69] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [97, 122, 70] 
+                               ] ,
+                               [
+                                       [48, 57, 71] ,
+                                       [65, 90, 72] ,
+                                       [95, 95, 73] ,
+                                       [97, 97, 74] ,
+                                       [98, 98, 75] ,
+                                       [99, 109, 74] ,
+                                       [110, 110, 76] ,
+                                       [111, 114, 74] ,
+                                       [115, 115, 77] ,
+                                       [116, 116, 78] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 113, 74] ,
+                                       [114, 114, 79] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 107, 74] ,
+                                       [108, 108, 80] ,
+                                       [109, 110, 74] ,
+                                       [111, 111, 81] ,
+                                       [112, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 110, 74] ,
+                                       [111, 111, 82] ,
+                                       [112, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 83] ,
+                                       [109, 109, 74] ,
+                                       [110, 110, 84] ,
+                                       [111, 119, 74] ,
+                                       [120, 120, 85] ,
+                                       [121, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 86] ,
+                                       [98, 110, 74] ,
+                                       [111, 111, 87] ,
+                                       [112, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 101, 74] ,
+                                       [102, 102, 88] ,
+                                       [103, 108, 74] ,
+                                       [109, 109, 89] ,
+                                       [110, 110, 90] ,
+                                       [111, 114, 74] ,
+                                       [115, 115, 91] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 100, 74] ,
+                                       [101, 101, 92] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 93] ,
+                                       [102, 110, 74] ,
+                                       [111, 111, 94] ,
+                                       [112, 116, 74] ,
+                                       [117, 117, 95] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 109, 74] ,
+                                       [110, 110, 96] ,
+                                       [111, 113, 74] ,
+                                       [114, 114, 97] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 98] ,
+                                       [98, 113, 74] ,
+                                       [114, 114, 99] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 100] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 101] ,
+                                       [102, 111, 74] ,
+                                       [112, 112, 102] ,
+                                       [113, 116, 74] ,
+                                       [117, 117, 103] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 103, 74] ,
+                                       [104, 104, 104] ,
+                                       [105, 113, 74] ,
+                                       [114, 114, 105] ,
+                                       [115, 120, 74] ,
+                                       [121, 121, 106] ,
+                                       [122, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 107] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 108] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 103, -43] ,
+                                       [104, 104, 109] ,
+                                       [105, 113, 74] ,
+                                       [114, 114, 110] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [0, 9, 111] ,
+                                       [11, 12, 111] ,
+                                       [14, 33, 111] ,
+                                       [34, 34, 112] ,
+                                       [35, 91, 111] ,
+                                       [92, 92, 113] ,
+                                       [93, 122, 111] ,
+                                       [123, 123, 114] ,
+                                       [124, 255, 111] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [0, 255, -8] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [0, 9, 115] ,
+                                       [11, 12, 115] ,
+                                       [14, 255, 115] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [0, 255, -9] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [10, 10, 116] 
+                               ] ,
+                               [
+                                       [0, 255, -11] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [46, 46, 117] 
+                               ] ,
+                               [
+                                       [48, 57, 60] 
+                               ] ,
+                               [
+                                       [48, 57, 60] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [62, 62, 118] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [48, 122, -25] 
+                               ] ,
+                               [
+                                       [48, 122, -25] 
+                               ] ,
+                               [
+                                       [48, 122, -25] 
+                               ] ,
+                               [
+                                       [48, 122, -25] 
+                               ] ,
+                               [
+                                       [48, 57, 119] ,
+                                       [65, 90, 120] ,
+                                       [95, 95, 121] ,
+                                       [97, 122, 122] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 110, -32] ,
+                                       [111, 111, 123] ,
+                                       [112, 114, 74] ,
+                                       [115, 115, 124] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 99, 74] ,
+                                       [100, 100, 125] ,
+                                       [101, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 114, 74] ,
+                                       [115, 115, 126] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 115, 74] ,
+                                       [116, 116, 127] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 128] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 129] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 130] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 114, -79] ,
+                                       [115, 115, 131] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 99, -78] ,
+                                       [100, 100, 132] ,
+                                       [101, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 133] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 134] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 135] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 111, 74] ,
+                                       [112, 112, 136] ,
+                                       [113, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 104, 74] ,
+                                       [105, 105, 137] ,
+                                       [106, 115, 74] ,
+                                       [116, 116, 138] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 139] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 140] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 118, 74] ,
+                                       [119, 119, 141] ,
+                                       [120, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 142] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 143] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 98, 74] ,
+                                       [99, 99, 144] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 98, -98] ,
+                                       [99, 99, 145] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 146] ,
+                                       [106, 110, 74] ,
+                                       [111, 111, 147] ,
+                                       [112, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 148] ,
+                                       [98, 99, 74] ,
+                                       [100, 100, 149] ,
+                                       [101, 115, 74] ,
+                                       [116, 116, 150] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 151] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 152] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 111, -91] ,
+                                       [112, 112, 153] ,
+                                       [113, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 154] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 116, 74] ,
+                                       [117, 117, 155] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 111, -91] ,
+                                       [112, 112, 156] ,
+                                       [113, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 157] ,
+                                       [106, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 158] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 159] ,
+                                       [106, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 160] ,
+                                       [106, 122, 74] 
+                               ] ,
+                               [
+                                       [0, 255, -47] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [0, 9, 161] ,
+                                       [11, 12, 161] ,
+                                       [14, 255, 161] 
+                               ] ,
+                               nil_array ,
+                               [
+                                       [0, 255, -8] 
+                               ] ,
+                               nil_array ,
+                               nil_array ,
+                               nil_array ,
+                               [
+                                       [48, 122, -72] 
+                               ] ,
+                               [
+                                       [48, 122, -72] 
+                               ] ,
+                               [
+                                       [48, 122, -72] 
+                               ] ,
+                               [
+                                       [48, 122, -72] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 162] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 163] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 164] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 165] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 166] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 114, -79] ,
+                                       [115, 115, 167] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 168] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 169] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 170] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 114, -79] ,
+                                       [115, 115, 171] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 110, -32] ,
+                                       [111, 111, 172] ,
+                                       [112, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 173] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 174] ,
+                                       [102, 113, 74] ,
+                                       [114, 114, 175] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 103, -43] ,
+                                       [104, 104, 176] ,
+                                       [105, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 177] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 178] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 106, 74] ,
+                                       [107, 107, 179] ,
+                                       [108, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 117, 74] ,
+                                       [118, 118, 180] ,
+                                       [119, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 181] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 99, -78] ,
+                                       [100, 100, 182] ,
+                                       [101, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 183] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 116, -107] ,
+                                       [117, 117, 184] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 101, -36] ,
+                                       [102, 102, 185] ,
+                                       [103, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 98, -98] ,
+                                       [99, 99, 186] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 187] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 188] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 189] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 190] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 117, -148] ,
+                                       [118, 118, 191] ,
+                                       [119, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 192] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 193] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [0, 255, -47] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 194] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 195] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 196] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 106, -147] ,
+                                       [107, 107, 197] ,
+                                       [108, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 114, -79] ,
+                                       [115, 115, 198] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 199] ,
+                                       [106, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 200] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 201] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 202] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 203] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 116, -107] ,
+                                       [117, 117, 204] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 205] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 206] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 207] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 208] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 101, -36] ,
+                                       [102, 102, 209] ,
+                                       [103, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 210] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 104, -92] ,
+                                       [105, 105, 211] ,
+                                       [106, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 212] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 213] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 214] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 215] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 216] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 217] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 218] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 219] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 220] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 101, -36] ,
+                                       [102, 102, 221] ,
+                                       [103, 109, 74] ,
+                                       [110, 110, 222] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 99, -78] ,
+                                       [100, 100, 223] ,
+                                       [101, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 102, 74] ,
+                                       [103, 103, 224] ,
+                                       [104, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 225] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 98, -98] ,
+                                       [99, 99, 226] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 97, -29] ,
+                                       [98, 98, 227] ,
+                                       [99, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 109, -39] ,
+                                       [110, 110, 228] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 229] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 113, -30] ,
+                                       [114, 114, 230] ,
+                                       [115, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 97, -29] ,
+                                       [98, 98, 231] ,
+                                       [99, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 98, -98] ,
+                                       [99, 99, 232] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 116, -107] ,
+                                       [117, 117, 233] ,
+                                       [118, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 234] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 235] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 236] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 237] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 238] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 239] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 240] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 114, -79] ,
+                                       [115, 115, 241] ,
+                                       [116, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 242] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 115, -80] ,
+                                       [116, 116, 243] ,
+                                       [117, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 244] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 98, -98] ,
+                                       [99, 99, 245] ,
+                                       [100, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 246] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 247] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 95, -29] ,
+                                       [97, 97, 248] ,
+                                       [98, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 249] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 100, -37] ,
+                                       [101, 101, 250] ,
+                                       [102, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 99, -78] ,
+                                       [100, 100, 251] ,
+                                       [101, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 107, -31] ,
+                                       [108, 108, 252] ,
+                                       [109, 122, 74] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
+                                       [48, 122, -35] 
+                               ] 
+                       ] 
+               ]
+       end
+    
+       private meth nil_array: Array[Array[Int]]
+       do
+               return once new Array[Array[Int]]
+       end
+
+       attr _accept_table: Array[Array[Int]]
+       private meth build_accept_table do
+               _accept_table = once [
+                       [
+                               -1 , 0 , 1 , 1 , 0 , -1 , -1 , -1 , 65 , -1 , 48 , 49 , 63 , 61 , 52 , 62 , 60 , 64 , 76 , 53 , 68 , 55 , 70 , 73 , 50 , 51 , -1 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , -1 , 1 , 67 , -1 , 79 , -1 , 80 , -1 , 2 , 2 , -1 , 78 , 56 , 57 , 59 , 77 , -1 , 54 , 69 , 66 , 71 , 73 , 73 , 73 , 73 , 75 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 17 , 74 , 74 , 74 , 74 , 74 , 26 , 74 , 31 , 16 , 74 , 74 , 74 , 74 , 74 , 33 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , -1 , 82 , -1 , 81 , -1 , 2 , 58 , 72 , 75 , 75 , 75 , 75 , 74 , 74 , 32 , 74 , 74 , 74 , 74 , 74 , 74 , 10 , 74 , 74 , 30 , 74 , 74 , 74 , 41 , 74 , 40 , 34 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 20 , 74 , 74 , -1 , 74 , 74 , 74 , 13 , 74 , 74 , 74 , 28 , 74 , 74 , 74 , 14 , 74 , 74 , 11 , 47 , 42 , 74 , 74 , 74 , 74 , 74 , 74 , 44 , 74 , 74 , 27 , 45 , 12 , 74 , 74 , 74 , 38 , 74 , 74 , 37 , 5 , 74 , 74 , 46 , 74 , 74 , 74 , 74 , 74 , 74 , 74 , 15 , 74 , 74 , 43 , 74 , 29 , 74 , 74 , 39 , 74 , 22 , 4 , 74 , 21 , 74 , 74 , 74 , 74 , 74 , 35 , 74 , 74 , 74 , 74 , 74 , 74 , 25 , 3 , 24 , 74 , 74 , 9 , 74 , 74 , 6 , 36 , 74 , 74 , 18 , 74 , 19 , 7 , 23 , 8  
+
+                       ] 
+               ]
+       end
+end
+
diff --git a/src/parser/nit.sablecc3xx b/src/parser/nit.sablecc3xx
new file mode 100644 (file)
index 0000000..4f5341d
--- /dev/null
@@ -0,0 +1,640 @@
+
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* This grammar defines the NIT language. */
+
+/*****************************************************************************/
+Helpers
+/*****************************************************************************/
+
+all = [0 .. 0xFF];
+lowercase = ['a' .. 'z'];
+uppercase = ['A' .. 'Z'];
+digit = ['0' .. '9'];
+letter = lowercase | uppercase | digit | '_';
+
+tab = 9;
+cr = 13;
+lf = 10;
+any = [all - [cr + lf]];
+
+// characers inside strings and super-strings (atomaton powaa)
+str_char
+       = [any - [['"' + '{'] + '\']] 
+       | '\' any 
+       ;
+str_body = str_char*;
+
+eol_helper = cr lf | cr | lf; // This takes care of different platforms
+
+/*****************************************************************************/
+States
+/*****************************************************************************/
+initial;
+
+
+/*****************************************************************************/
+Tokens
+/*****************************************************************************/
+
+blank = (' ' | tab)+;
+
+eol = eol_helper;
+comment = '#' any* eol_helper;
+
+kwpackage = 'package';
+kwimport = 'import';
+kwclass = 'class';
+kwabstract = 'abstract';
+kwinterface = 'interface';
+kwuniversal = 'universal';
+kwspecial = 'special';
+kwend = 'end';
+kwmeth = 'meth';
+kwtype = 'type';
+kwattr = 'attr';
+kwinit = 'init';
+kwredef = 'redef';
+kwis = 'is';
+kwdo = 'do';
+kwreadable = 'readable';
+kwwritable = 'writable';
+kwvar = 'var';
+kwintern = 'intern';
+kwextern = 'extern';
+kwprotected = 'protected';
+kwprivate = 'private';
+kwintrude = 'intrude';
+kwif = 'if';
+kwthen = 'then';
+kwelse = 'else';
+kwwhile = 'while';
+kwfor = 'for';
+kwin = 'in';
+kwand = 'and';
+kwor = 'or';
+kwnot = 'not';
+kwreturn = 'return';
+kwcontinue = 'continue';
+kwbreak = 'break';
+kwabort = 'abort';
+kwassert = 'assert';
+kwnew = 'new';
+kwisa = 'isa';
+kwonce = 'once';
+kwsuper = 'super';
+kwself = 'self';
+kwtrue = 'true';
+kwfalse = 'false';
+kwnull = 'null';
+
+opar = '(';
+cpar = ')';
+obra = '[';
+cbra = ']';
+comma = ',';
+column = ':';
+quad = '::';
+assign = '=';
+pluseq = '+=';
+minuseq = '-=';
+dotdotdot = '...';
+dotdot = '..';
+dot = '.';
+plus = '+';
+minus = '-';
+star = '*';
+slash = '/';
+percent = '%';
+eq = '==';
+ne = '!=';
+lt = '<';
+le = '<=';
+gt = '>';
+ge = '>=';
+starship = '<=>';
+
+classid = uppercase letter*;
+id = lowercase letter*;
+attrid = '_' lowercase letter*;
+
+number = digit+;
+float = digit* '.' digit+;
+char = ''' [any - ''']* ''';
+string = '"' str_body '"';
+start_string = '"' str_body '{';
+mid_string = '}' str_body '{';
+end_string = '}' str_body '"';
+
+
+/*****************************************************************************/
+Ignored Tokens
+/*****************************************************************************/
+
+blank;
+
+/*****************************************************************************/
+Productions
+/*****************************************************************************/
+
+/* MODULES *******************************************************************/
+module
+       = packagedecl? [imports]:import* [classdefs]:classdef* implicit_top_class? implicit_main_class? {-> New module(packagedecl, [imports.import],[classdefs.classdef,implicit_top_class.classdef,implicit_main_class.classdef])};
+
+packagedecl
+       = [doc]:no kwpackage no id [n2]:n1 {-> New packagedecl(doc.doc, kwpackage, id)};
+
+import
+       = [doc]:no visibility kwimport no id [n2]:n1            {-> New import(visibility, kwimport, id)}
+       | {no} [doc]:no visibility kwimport no kwend [n2]:n1    {-> New import.no(visibility, kwimport, kwend)}
+       ;
+
+implicit_top_class {-> classdef}
+       = tl_propdefs {-> New classdef.top([tl_propdefs.propdef])};
+
+implicit_main_class {-> classdef?}
+       = implicit_main_meth {-> New classdef.main([implicit_main_meth.propdef])}
+       | {null} n {-> Null}
+       ;
+implicit_main_meth {-> propdef}
+       = [doc]:no stmts no {-> New propdef.main_meth(Null, stmts.expr)};
+
+/* CLASSES *******************************************************************/
+classdef
+       = [doc]:no redef visibility classkind no classid formaldefs? [specials]:special* propdefs? [n2]:no kwend {-> New classdef(doc.doc, redef.kwredef, visibility, classkind, classid, [formaldefs.formaldef], [specials.superclass], [propdefs.propdef])};
+redef {-> kwredef?}
+       = kwredef? {-> kwredef};
+classkind
+       = {concrete} kwclass
+       | {abstract} kwabstract kwclass
+       | {interface} kwinterface
+       | {universal} kwuniversal
+       ;
+
+formaldefs {-> formaldef*}
+       = obra no formaldef formaldefs_tail* [n2]:no cbra {-> [formaldef, formaldefs_tail.formaldef]};
+formaldefs_tail {-> formaldef}
+       = comma no formaldef {-> formaldef};
+formaldef
+       = classid typing? {-> New formaldef(classid, typing.type)};
+
+special {-> superclass}
+       = no kwspecial [n2]:no type {-> New superclass(kwspecial, type)};
+
+propdefs {-> propdef*}
+       = propdef n1 propdefs_tail* {-> [propdef, propdefs_tail.propdef]};
+propdefs_tail {-> propdef} 
+       = propdef n1 {-> propdef};
+propdef 
+       = {attr} [doc]:no readable writable redef visibility kwattr attrid typing? {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, Null)}
+       | {attr2} [doc]:no readable writable redef visibility kwattr attrid typing? assign [n2]:no expr {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, expr)}
+       | {deferred} [doc]:no redef visibility kwmeth methid signature kwis kwabstract {-> New propdef.deferred_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature)}
+       | {intern} [doc]:no redef visibility kwmeth methid signature kwis kwintern {-> New propdef.intern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature)}
+       | {extern} [doc]:no redef visibility kwmeth methid signature kwis kwextern string? {-> New propdef.extern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, string)}
+       | {meth} [doc]:no redef visibility kwmeth methid signature no kwdo stmtso kwend? {-> New propdef.concrete_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, stmtso.expr)}
+       | {init} [doc]:no redef visibility kwinit methid? signature no kwdo stmtso kwend? {-> New propdef.concrete_init(doc.doc, redef.kwredef, visibility, kwinit, methid, signature, stmtso.expr)}
+       | {type} [doc]:no redef visibility kwtype classid typing {-> New propdef.type(doc.doc, redef.kwredef, visibility, kwtype, classid, typing.type)}
+       ;
+readable {-> able?}
+       = redef kwreadable {-> New able.read(redef.kwredef, kwreadable)}
+       | {empty} {-> Null}
+       ;
+writable {-> able?}
+       = redef kwwritable {-> New able.write(redef.kwredef, kwwritable)}
+       | {empty} {-> Null}
+       ;
+
+tl_propdefs {-> propdef*}
+       = tl_propdef n1 tl_propdefs_tail* {-> [tl_propdef.propdef, tl_propdefs_tail.propdef]};
+tl_propdefs_tail {-> propdef} 
+       = tl_propdef n1 {-> tl_propdef.propdef};
+tl_propdef {-> propdef}
+       = {extern} [doc]:no redef visibility kwmeth methid signature kwis kwextern string? {-> New propdef.extern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, string)}
+       | {meth} [doc]:no redef visibility kwmeth methid signature no kwdo stmtso {-> New propdef.concrete_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, stmtso.expr)}
+       ;
+
+visibility
+       = {public} {-> New visibility.public()}
+       | {private} kwprivate no {-> New visibility.private(kwprivate)}
+       | {protected} kwprotected no {-> New visibility.protected(kwprotected)}
+       | {intrude} kwintrude no {-> New visibility.intrude(kwintrude)}
+       ;
+
+methid
+       = {id} id
+       | {plus} plus
+       | {minus} minus
+       | {star} star
+       | {slash} slash
+       | {percent} percent
+       | {eq} eq
+       | {ne} ne
+       | {le} le
+       | {ge} ge
+       | {lt} lt
+       | {gt} gt
+       | {bra} obra cbra
+       | {starship} starship
+       | {assign} id assign
+       | {braassign} obra cbra assign
+       ;
+
+signature
+       = params? typing? {-> New signature([params.param], typing.type)};
+
+params {-> param*} 
+       = opar no param params_tail* [n2]:no cpar {-> [param, params_tail.param]}
+       | {empty} opar no cpar {-> []}
+       ;
+params_tail {-> param}
+       = comma no param {-> param};
+param
+       = {untyped} id {-> New param(id, Null, Null)}
+       | id typing dotdotdot? {-> New param(id, typing.type, dotdotdot)}
+       ;
+
+/* TYPES *********************************************************************/
+type/*B3*//*B*/ {-> type}
+       = {simple} classid {-> New type(classid, [])}
+/*N*/  | {generic} classid obra no types [n2]:no cbra {-> New type(classid, [types.type])}
+       ;
+/*E*/
+types {-> type*} 
+       = type types_tail* {-> [type, types_tail.type]};
+types_tail {-> type}
+       = comma no type {-> type};
+typing {-> type}
+       = column no type {-> type};
+
+/* STATMENTS *****************************************************************/
+stmtso/*B2*/ {-> expr?}
+       = {oneline} stmt/*B2*/ {-> stmt/*B2*/.expr}
+       | {block} n stmts [n2]:n kwend {-> stmts.expr}
+       | {emptyblock} n kwend {-> Null}
+       | {emptyoneline} kwend {-> Null}
+       ;
+stmts {-> expr}
+       = stmt stmts_tail* {-> New expr.block([stmt.expr, stmts_tail.expr])};
+stmts_tail {-> expr}
+       = n stmt {-> stmt.expr};
+stmt/*B2*/ {-> expr}
+       = {vardecl} vardecl {-> vardecl.expr}
+       | {assign} assignment {-> assignment.expr}
+       | {return} kwreturn expr? {-> New expr.return(kwreturn, expr)}
+       | {break} kwbreak {-> New expr.break(kwbreak)}
+       | {abort} kwabort {-> New expr.abort(kwabort)}
+       | {continue} kwcontinue {-> New expr.continue(kwcontinue)}
+       | {do} do/*B2*/ {-> do/*B2*/.expr}
+       | {if} if/*B2*/ {-> if/*B2*/.expr}
+       | {while} while/*B2*/ {-> while/*B2*/.expr}
+       | {for} for/*B2*/ {-> for/*B2*/.expr}
+       | {assert} assert {-> assert.expr}
+//     | {expr} expr {-> expr.expr}
+       | {call} recv id args_nopar {-> New expr.call(recv.expr, id, [args_nopar.expr])}
+       | {super} qualified? kwsuper args_nopar {-> New expr.super(qualified, kwsuper, [args_nopar.expr])}
+       | {init} recv kwinit args_nopar {-> New expr.init(recv.expr, kwinit, [args_nopar.expr])}
+       ;
+
+vardecl        {-> expr}
+       = kwvar id typing? {-> New expr.vardecl(kwvar, id, typing.type, Null, Null)}
+       | {assign} kwvar id typing? assign no expr {-> New expr.vardecl(kwvar, id, typing.type, assign, expr)}
+       ;
+
+assignment {-> expr}
+       = {attr} recv attrid assign expr {-> New expr.attr_assign(recv.expr, attrid, assign, expr)}
+       | {call} recv id args assign expr {-> New expr.call_assign(recv.expr, id, [args.expr], assign, expr)}
+       | {bra} expr_atom braargs assign expr {-> New expr.bra_assign(expr_atom.expr, [braargs.expr], assign, expr)}
+       | {attr_re} recv attrid assign_op expr {-> New expr.attr_reassign(recv.expr, attrid, assign_op, expr)}
+       | {call_re} recv id args assign_op expr {-> New expr.call_reassign(recv.expr, id, [args.expr], assign_op, expr)}
+       | {bra_re} expr_atom braargs assign_op expr {-> New expr.bra_reassign(expr_atom.expr, [braargs.expr], assign_op, expr)}
+       ;
+assign_op
+       = {plus} pluseq
+       | {minus} minuseq
+       ;
+
+do/*B2*/ {-> expr}
+       = kwdo stmtso/*B2*/ {-> New expr.do(kwdo, stmtso/*B2*/.expr)}
+       ;
+
+if/*B2*/ {-> expr}
+       = {onelineelse} kwif no expr [n2]:no kwthen stmt_withelse kwelse stmtso/*B2*/ {-> New expr.if(kwif, expr, stmt_withelse.expr, stmtso/*B2*/.expr)}
+/*N2*/ | {oneline} kwif no expr [n2]:no kwthen stmt {-> New expr.if(kwif, expr, stmt.expr, Null)}
+/*N2*/ | {block} kwif no expr [n2]:no kwthen [n3]:n stmts [n4]:n elsepartblock {-> New expr.if(kwif, expr, stmts.expr, elsepartblock.expr)}
+/*N2*/ | {emptyblock} kwif no expr [n2]:no kwthen [n3]:n? elsepartblock {-> New expr.if(kwif, expr, Null, elsepartblock.expr)}
+       ;
+elsepartblock {-> expr?}
+       = {else} kwelse stmtso {-> stmtso.expr}
+       | {empty} kwend {-> Null}
+       ;
+
+while/*B2*/ {-> expr}
+       = kwwhile no expr [n2]:no kwdo stmtso/*B2*/ {-> New expr.while(kwwhile, expr, kwdo, stmtso/*B2*/.expr)};
+for/*B2*/ {-> expr}
+       = for_vardecl [n4]:no kwdo stmtso/*B2*/ {-> New expr.for(for_vardecl.expr, kwdo, stmtso/*B2*/.expr)};
+for_vardecl {-> expr}
+       = kwfor no id [n2]:no kwin [n3]:no expr {-> New expr.for_vardecl(kwfor, id, expr)};
+
+assert {-> expr}
+       = kwassert assertid? expr {-> New expr.assert(kwassert, assertid.id, expr)};
+assertid {-> id}
+       = id column {-> id};
+
+/* EXPRESSIONS ***************************************************************/
+expr/*B3*//*B*/ {-> expr}
+       = expr_and/*B3*//*B*/ {-> expr_and/*B3*//*B*/.expr}
+       | {ifexpr} kwif [n1]:no expr [n2]:no kwthen [n3]:no [then]:expr [n4]:no kwelse [n5]:no [else]:expr/*B3*//*B*/ {-> New expr.ifexpr(kwif, expr, kwthen, then, kwelse, else.expr)}
+       ;
+
+expr_and/*B3*//*B*/ {-> expr}
+       = expr_not/*B3*//*B*/ {-> expr_not/*B3*//*B*/.expr}
+       | {or} expr_and/*B3*//*B*/ kwor no expr_not/*B3*//*B*/ {-> New expr.or(expr_and/*B3*//*B*/.expr, expr_not/*B3*//*B*/.expr)}
+       | {and} expr_and/*B3*//*B*/ kwand no expr_not/*B3*//*B*/ {-> New expr.and(expr_and/*B3*//*B*/.expr, expr_not/*B3*//*B*/.expr)}
+       ;
+
+expr_not/*B3*//*B*/ {-> expr}
+       = expr_eq/*B3*//*B*/ {-> expr_eq/*B3*//*B*/.expr}
+       | {not} kwnot no expr_not/*B3*//*B*/ {-> New expr.not(kwnot, expr_not/*B3*//*B*/.expr)}
+       ;
+
+expr_eq/*B3*//*B*/ {-> expr}
+       = expr_add/*B3*//*B*/ {-> expr_add/*B3*//*B*/.expr}
+       | {eq} expr_add/*B3*//*B*/ eq no [expr2]:expr_add/*B3*//*B*/ {-> New expr.eq(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {ee} expr_add/*B3*//*B*/ kwis no [expr2]:expr_add/*B3*//*B*/ {-> New expr.ee(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {ne} expr_add/*B3*//*B*/ ne no [expr2]:expr_add/*B3*//*B*/ {-> New expr.ne(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {lt} expr_add/*B3*//*B*/ lt no [expr2]:expr_add/*B3*//*B*/ {-> New expr.lt(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {le} expr_add/*B3*//*B*/ le no [expr2]:expr_add/*B3*//*B*/ {-> New expr.le(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {gt} expr_add/*B3*//*B*/ gt no [expr2]:expr_add/*B3*//*B*/ {-> New expr.gt(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {ge} expr_add/*B3*//*B*/ ge no [expr2]:expr_add/*B3*//*B*/ {-> New expr.ge(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {starship} expr_add/*B3*//*B*/ starship no [expr2]:expr_add/*B3*//*B*/ {-> New expr.starship(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {isa} expr_add/*B3*//*B*/ kwisa no type/*B3*//*B*/ {-> New expr.isa(expr_add/*B3*//*B*/.expr, type/*B3*//*B*/.type)}
+       ;
+
+expr_add/*B3*//*B*/ {-> expr}
+       =  expr_mul/*B3*//*B*/ {-> expr_mul/*B3*//*B*/.expr}
+       | {plus} expr_add/*B3*//*B*/ plus no [expr2]:expr_mul/*B3*//*B*/ {-> New expr.plus(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       | {minus} expr_add/*B3*//*B*/ minus no [expr2]:expr_mul/*B3*//*B*/ {-> New expr.minus(expr_add/*B3*//*B*/.expr, expr2.expr)}
+       ;
+
+expr_mul/*B3*//*B*/ {-> expr}
+       = expr_minus/*B3*//*B*/ {-> expr_minus/*B3*//*B*/.expr}
+       | {star} expr_mul/*B3*//*B*/ star no [expr2]:expr_minus/*B3*//*B*/ {-> New expr.star(expr_mul/*B3*//*B*/.expr, expr2.expr)}
+       | {slash} expr_mul/*B3*//*B*/ slash no [expr2]:expr_minus/*B3*//*B*/ {-> New expr.slash(expr_mul/*B3*//*B*/.expr, expr2.expr)}
+       | {percent} expr_mul/*B3*//*B*/ percent no [expr2]:expr_minus/*B3*//*B*/ {-> New expr.percent(expr_mul/*B3*//*B*/.expr, expr2.expr)}
+       ;
+
+expr_minus/*B3*//*B*/ {-> expr}
+       = expr_new/*B3*//*B*/ {-> expr_new/*B3*//*B*/.expr}
+       | {minus} minus no expr_minus/*B3*//*B*/ {-> New expr.uminus(minus, expr_minus/*B3*//*B*/.expr)}
+       | {once} kwonce no expr_minus/*B3*//*B*/ {-> New expr.once(kwonce, expr_minus/*B3*//*B*/.expr)}
+       ;
+
+expr_new/*B3*//*B*/ {-> expr}
+       = expr_atom/*B3*//*B*/ {-> expr_atom/*B3*//*B*/.expr}
+       | {new} kwnew no type/*B3*//*B*/ args {-> New expr.new(kwnew, type/*B3*//*B*/.type, Null, [args.expr])}
+       ;
+
+expr_atom/*B3*//*B*/ {-> expr}
+       = {attr} recv/*B3*//*B*/ attrid {-> New expr.attr(recv/*B3*//*B*/.expr, attrid)}
+       | {call} recv/*B3*//*B*/ id args {-> New expr.call(recv/*B3*//*B*/.expr, id, [args.expr])}
+       | {super} qualified? kwsuper args {-> New expr.super(qualified, kwsuper, [args.expr])}
+       | {init} recv/*B3*//*B*/ kwinit args {-> New expr.init(recv/*B3*//*B*/.expr, kwinit, [args.expr])}
+/*N*//*N3*/    | {bra} expr_atom braargs {-> New expr.bra(expr_atom.expr, [braargs.expr])}
+       | {new} kwnew no type/*B3*//*B*/ dot [n2]:no id args {-> New expr.new(kwnew, type/*B3*//*B*/.type, id, [args.expr])}
+/*N*//*N3*/    | {range} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no cbra {-> New expr.crange(expr, expr2.expr)}
+/*N*//*N3*/    | {orange} obra no expr [n2]:no dotdot [n3]:no [expr2]:expr_nobra [n4]:no [cbra]:obra  {-> New expr.orange(expr, expr2.expr)}
+/*N*//*N3*/    | {array} braargs {-> New expr.array([braargs.expr])}
+       | {self} kwself {-> New expr.self(kwself)}
+       | {true} kwtrue {-> New expr.true(kwtrue)}
+       | {false} kwfalse {-> New expr.false(kwfalse)}
+       | {null} kwnull {-> New expr.null(kwnull)}
+       | {int} number  {-> New expr.int(number)}
+       | {float} float  {-> New expr.float(float)}
+       | {char} char  {-> New expr.char(char)}
+       | {string} string  {-> New expr.string(string)}
+       | {superstring} superstring  {-> superstring.expr}
+/*N3*/ | {par} opar expr cpar {-> expr}
+       ;
+
+superstring {-> expr} 
+       = superstring_start superstring_middle* superstring_end {-> New expr.superstring([superstring_start.expr, superstring_middle.expr, superstring_end.expr])};
+superstring_start {-> expr*}
+       = start_string_p no expr [n2]:no {-> [start_string_p.expr, expr]};
+start_string_p {-> expr}
+       = start_string {-> New expr.start_string(start_string)};
+superstring_middle {-> expr*}
+       = mid_string_p no expr [n2]:no {-> [mid_string_p.expr, expr]};
+mid_string_p {-> expr}
+       = mid_string {-> New expr.mid_string(mid_string)};
+superstring_end {-> expr}
+       = end_string {-> New expr.end_string(end_string)};
+
+/* MISC **********************************************************************/
+
+recv/*B3*//*B*/ {-> expr}
+       = expr_atom/*B3*//*B*/ dot no {-> expr_atom/*B3*//*B*/.expr}
+       | {implicit} {-> New expr.implicit_self()}
+       ;
+
+args {-> expr*}
+       = opar no expr [n2]:no args_tail* cpar {-> [expr, args_tail.expr]}
+       | {emptypar} opar no cpar {-> []}
+       | {empty} {-> []}
+       ;
+args_nopar {-> expr*}
+       = opar no expr [n2]:no args_tail* cpar {-> [expr, args_tail.expr]}
+       | {onearg} expr_nopar {-> [expr_nopar.expr]}
+       | {emptypar} opar no cpar {-> []}
+       | {empty} {-> []}
+       ;
+braargs        {-> expr*}
+       = obra no expr [n2]:no args_tail* cbra {-> [expr, args_tail.expr]};
+args_tail {-> expr} 
+       = comma no expr [n2]:no {-> expr};
+
+qualified 
+       = {cla} modquad* classquad {-> New qualified([modquad.id], classquad.classid)}
+       | {mod} modquad+ {-> New qualified([modquad.id], Null)}
+       ; 
+modquad {-> id}
+       = id quad no {-> id};
+classquad {-> classid} 
+       = classid quad no {-> classid};
+
+n1     = {a} comment | {b} eol;
+n {-> doc?}
+       = {a} n2? comment+ {-> New doc([comment])}
+       | {b} n2 {-> Null}
+       ;
+no {-> doc?}
+       = {empty} {-> Null}
+       | n {-> n.doc}
+       ;
+
+n2
+       = {a} n2? comment+ eol+
+       | {b} eol+
+       ;
+
+/* EXPR NO BRACKETS **********************************************************/
+/* since there is no shift/reduce conflict handling in sablecc, the following
+ * is a duplication of previous productions minus some alternative where '['
+ * are not protected. */
+
+/*I*/
+/*I2*/
+/*I3*/
+
+/*****************************************************************************/
+Abstract Syntax Tree
+/*****************************************************************************/
+
+module = packagedecl? [imports]:import* [classdefs]:classdef*;
+
+packagedecl
+       = doc? kwpackage id;
+
+import =  visibility kwimport id
+       | {no} visibility kwimport kwend
+       ;
+
+visibility
+       = {public}
+       | {private} kwprivate
+       | {protected} kwprotected
+       | {intrude} kwintrude
+       ;
+
+classdef = doc? kwredef? visibility classkind [id]:classid? [formaldefs]:formaldef* [superclasses]:superclass* [propdefs]:propdef*
+       | {top} [propdefs]:propdef*
+       | {main} [propdefs]:propdef*
+       ;
+classkind
+       = {concrete} kwclass
+       | {abstract} kwabstract kwclass
+       | {interface} kwinterface
+       | {universal} kwuniversal
+       ;
+formaldef = [id]:classid type?;
+superclass = kwspecial type;
+
+
+propdef = {attr} doc? [readable]:able? [writable]:able? kwredef? visibility kwattr [id]:attrid type? expr?
+       | {meth} doc? kwredef? visibility methid signature 
+       | {deferred_meth} doc? kwredef? visibility kwmeth methid signature 
+       | {intern_meth} doc? kwredef? visibility kwmeth methid signature 
+       | {extern_meth} doc? kwredef? visibility kwmeth methid signature [extern]:string? 
+       | {concrete_meth} doc? kwredef? visibility kwmeth methid signature [block]:expr? 
+       | {concrete_init} doc? kwredef? visibility kwinit methid? signature [block]:expr? 
+       | {main_meth} kwredef? [block]:expr? 
+       | {type} doc? kwredef? visibility kwtype [id]:classid type
+       ;
+
+able   = {read} kwredef? kwreadable
+       | {write} kwredef? kwwritable
+       ;
+
+methid = {id} id | {plus} plus | {minus} minus | {star} star | {slash} slash | {percent} percent | {eq} eq | {ne} ne | {le} le | {ge} ge | {lt} lt | {gt} gt | {bra} obra cbra | {starship} starship | {assign} id assign | {braassign} obra cbra assign;
+
+signature = [params]:param* type?;
+
+param  = id type? dotdotdot? 
+       ;
+
+type   = [id]:classid [types]:type*;
+
+expr   = {block} expr* 
+       | {vardecl} kwvar id type? assign? expr? 
+       | {return} kwreturn expr? 
+       | {break} kwbreak
+       | {abort} kwabort
+       | {continue} kwcontinue
+       | {do} kwdo [block]:expr? 
+       | {if} kwif expr [then]:expr? [else]:expr? 
+       | {ifexpr} kwif expr kwthen [then]:expr kwelse [else]:expr
+       | {while} kwwhile expr kwdo [block]:expr? 
+       | {for} [vardecl]:expr kwdo [block]:expr? 
+       | {for_vardecl} kwfor id expr
+       | {assert} kwassert id? expr 
+       | {once} kwonce expr 
+       | {send} expr 
+       | {binop} expr [expr2]:expr 
+       | {or} expr [expr2]:expr 
+       | {and} expr [expr2]:expr 
+       | {not} kwnot expr 
+       | {eq} expr [expr2]:expr 
+       | {ee} expr [expr2]:expr 
+       | {ne} expr [expr2]:expr 
+       | {lt} expr [expr2]:expr 
+       | {le} expr [expr2]:expr 
+       | {gt} expr [expr2]:expr 
+       | {ge} expr [expr2]:expr 
+       | {isa} expr type 
+       | {plus} expr [expr2]:expr 
+       | {minus} expr [expr2]:expr 
+       | {starship} expr [expr2]:expr 
+       | {star} expr [expr2]:expr 
+       | {slash} expr [expr2]:expr 
+       | {percent} expr [expr2]:expr 
+       | {uminus} minus expr 
+       | {new} kwnew type id? [args]:expr*
+       | {attr} expr [id]:attrid 
+       | {attr_assign} expr [id]:attrid assign [value]:expr 
+       | {attr_reassign} expr [id]:attrid assign_op [value]:expr 
+       | {call} expr id [args]:expr*       
+       | {call_assign} expr id [args]:expr* assign [value]:expr 
+       | {call_reassign} expr id [args]:expr* assign_op [value]:expr 
+       | {super} qualified? kwsuper [args]:expr*
+       | {init} expr kwinit [args]:expr* 
+       | {bra} expr [args]:expr* 
+       | {bra_assign} expr [args]:expr* assign [value]:expr 
+       | {bra_reassign} expr [args]:expr* assign_op [value]:expr 
+       | {var} id
+       | {var_assign} id assign [value]:expr 
+       | {var_reassign} id assign_op [value]:expr 
+       | {range} expr [expr2]:expr 
+       | {crange} expr [expr2]:expr 
+       | {orange} expr [expr2]:expr 
+       | {array} [exprs]:expr*
+       | {self} kwself 
+       | {implicit_self} 
+       | {true} kwtrue 
+       | {false} kwfalse 
+       | {null} kwnull
+       | {int} number
+       | {float} float
+       | {char} char
+       | {string} string 
+       | {start_string} [string]:start_string 
+       | {mid_string} [string]:mid_string 
+       | {end_string} [string]:end_string 
+       | {superstring} [exprs]:expr*
+       | {par} expr 
+       ;
+assign_op
+       = {plus} pluseq
+       | {minus} minuseq
+       ;
+
+qualified = id* classid? ;
+
+doc = comment+;
+
+/*****************************************************************************/
+
diff --git a/src/parser/parser.nit b/src/parser/parser.nit
new file mode 100644 (file)
index 0000000..7026679
--- /dev/null
@@ -0,0 +1,17404 @@
+# Parser.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser
+
+import parser_prod
+intrude import parser_tables
+
+# State of the parser automata as stored in the parser stack.
+private class State
+       # The internal state number
+       readable writable attr _state: Int
+
+       # The node stored with the state in the stack
+       readable writable attr _nodes: Object 
+
+       init(state: Int, nodes: Object)
+       do
+               _state = state
+               _nodes = nodes
+       end
+end
+
+redef class Parser
+       # Associated lexer
+       attr _lexer: Lexer
+
+       # Stack of pushed states and productions
+       attr _stack: Array[State]
+
+       # Position in the stack
+       attr _stack_pos: Int
+
+       # Create a new parser based on a given lexer
+       init(lexer: Lexer)
+       do
+               _lexer = lexer
+               _stack = new Array[State]
+               _stack_pos = -1
+               build_goto_table
+               build_action_table
+               build_reduce_table
+       end
+
+       # Do a transition in the automata
+       private meth go_to(index: Int): Int
+       do
+               var state = state
+               var table = _goto_table[index]
+               var low = 1
+               var high = table.length/2 - 1
+
+               while low <= high do
+                       var middle = (low + high) / 2
+                       var subindex = middle * 2
+
+                       if state < table[subindex] then
+                               high = middle - 1
+                       else if state > table[subindex] then
+                               low = middle + 1
+                       else
+                               return table[subindex + 1]
+                       end
+               end
+
+               return table[1] # Default value
+       end
+
+       # Push someting in the state stack
+       private meth push(numstate: Int, list_node: Object)
+       do
+               var pos = _stack_pos + 1
+               _stack_pos = pos
+               if pos < _stack.length then
+                       var state = _stack[pos]
+                       state.state = numstate
+                       state.nodes = list_node
+               else
+                       _stack.push(new State(numstate, list_node))
+               end
+       end
+
+       # The current state
+       private meth state: Int
+       do
+               return _stack[_stack_pos].state
+       end
+
+       # Pop something from the stack state
+       private meth pop: Object
+       do
+               var res = _stack[_stack_pos].nodes
+               _stack_pos = _stack_pos -1
+               return res
+       end
+
+       # Build and return a full AST.
+       meth parse: Start
+       do
+               push(0, null)
+
+               var ign: List[Token] = null
+               var lexer = _lexer
+               while true do
+                       var token = lexer.peek
+                       var last_pos = token.pos
+                       var last_line = token.line
+
+                       if token isa PError then
+                               assert token isa PError
+                               return new Start(null, token)
+                       end
+
+                       var index = token.parser_index
+                       var table = _action_table[state]
+                       var action_type = table[1]
+                       var action_value = table[2]
+
+                       var low = 1
+                       var high = table.length/3 - 1
+
+                       while low <= high do
+                               var middle = (low + high) / 2
+                               var subindex = middle * 3
+
+                               if index < table[subindex] then
+                                       high = middle - 1
+                               else if index > table[subindex] then
+                                       low = middle + 1
+                               else
+                                       action_type = table[subindex + 1]
+                                       action_value = table[subindex + 2]
+                                       high = low -1 # break
+                               end
+                       end
+
+                       if action_type == 0 then # SHIFT
+                               push(action_value, lexer.next)
+                       else if action_type == 1 then # REDUCE
+                               _reduce_table[action_value].action(self)
+                       else if action_type == 2 then # ACCEPT
+                               var node2 = lexer.next
+                               assert node2 isa EOF
+                               var node1 = pop
+                               assert node1 isa PModule
+                               var node = new Start(node1, node2)
+                               (new SearchTokensVisitor).visit(node)
+                               return node
+                       else if action_type == 3 then # ERROR
+                               var node2 = new PError.init_error(lexer.filename, last_line, last_pos, error_messages[errors[action_value]])
+                               var node = new Start(null, node2)
+                               return node
+                       end
+               end
+               return null
+       end
+
+       attr _reduce_table: Array[ReduceAction]
+       private meth build_reduce_table
+       do
+               _reduce_table = new Array[ReduceAction].with(
+                       new ReduceAction0,
+                       new ReduceAction1,
+                       new ReduceAction2,
+                       new ReduceAction3,
+                       new ReduceAction4,
+                       new ReduceAction5,
+                       new ReduceAction6,
+                       new ReduceAction7,
+                       new ReduceAction8,
+                       new ReduceAction9,
+                       new ReduceAction10,
+                       new ReduceAction11,
+                       new ReduceAction12,
+                       new ReduceAction13,
+                       new ReduceAction14,
+                       new ReduceAction15,
+                       new ReduceAction16,
+                       new ReduceAction17,
+                       new ReduceAction18,
+                       new ReduceAction19,
+                       new ReduceAction20,
+                       new ReduceAction21,
+                       new ReduceAction22,
+                       new ReduceAction23,
+                       new ReduceAction24,
+                       new ReduceAction25,
+                       new ReduceAction26,
+                       new ReduceAction27,
+                       new ReduceAction28,
+                       new ReduceAction29,
+                       new ReduceAction30,
+                       new ReduceAction31,
+                       new ReduceAction32,
+                       new ReduceAction33,
+                       new ReduceAction34,
+                       new ReduceAction35,
+                       new ReduceAction36,
+                       new ReduceAction37,
+                       new ReduceAction38,
+                       new ReduceAction39,
+                       new ReduceAction40,
+                       new ReduceAction41,
+                       new ReduceAction42,
+                       new ReduceAction43,
+                       new ReduceAction44,
+                       new ReduceAction45,
+                       new ReduceAction46,
+                       new ReduceAction47,
+                       new ReduceAction48,
+                       new ReduceAction49,
+                       new ReduceAction50,
+                       new ReduceAction51,
+                       new ReduceAction52,
+                       new ReduceAction53,
+                       new ReduceAction54,
+                       new ReduceAction55,
+                       new ReduceAction56,
+                       new ReduceAction57,
+                       new ReduceAction58,
+                       new ReduceAction59,
+                       new ReduceAction60,
+                       new ReduceAction61,
+                       new ReduceAction62,
+                       new ReduceAction63,
+                       new ReduceAction64,
+                       new ReduceAction65,
+                       new ReduceAction66,
+                       new ReduceAction67,
+                       new ReduceAction68,
+                       new ReduceAction69,
+                       new ReduceAction70,
+                       new ReduceAction71,
+                       new ReduceAction72,
+                       new ReduceAction73,
+                       new ReduceAction74,
+                       new ReduceAction75,
+                       new ReduceAction76,
+                       new ReduceAction77,
+                       new ReduceAction78,
+                       new ReduceAction79,
+                       new ReduceAction80,
+                       new ReduceAction81,
+                       new ReduceAction82,
+                       new ReduceAction83,
+                       new ReduceAction84,
+                       new ReduceAction85,
+                       new ReduceAction86,
+                       new ReduceAction87,
+                       new ReduceAction88,
+                       new ReduceAction89,
+                       new ReduceAction90,
+                       new ReduceAction91,
+                       new ReduceAction92,
+                       new ReduceAction93,
+                       new ReduceAction94,
+                       new ReduceAction95,
+                       new ReduceAction96,
+                       new ReduceAction97,
+                       new ReduceAction98,
+                       new ReduceAction99,
+                       new ReduceAction100,
+                       new ReduceAction101,
+                       new ReduceAction102,
+                       new ReduceAction103,
+                       new ReduceAction104,
+                       new ReduceAction105,
+                       new ReduceAction106,
+                       new ReduceAction107,
+                       new ReduceAction108,
+                       new ReduceAction109,
+                       new ReduceAction110,
+                       new ReduceAction111,
+                       new ReduceAction112,
+                       new ReduceAction113,
+                       new ReduceAction114,
+                       new ReduceAction115,
+                       new ReduceAction116,
+                       new ReduceAction117,
+                       new ReduceAction118,
+                       new ReduceAction119,
+                       new ReduceAction120,
+                       new ReduceAction121,
+                       new ReduceAction122,
+                       new ReduceAction123,
+                       new ReduceAction124,
+                       new ReduceAction125,
+                       new ReduceAction126,
+                       new ReduceAction127,
+                       new ReduceAction128,
+                       new ReduceAction129,
+                       new ReduceAction130,
+                       new ReduceAction131,
+                       new ReduceAction132,
+                       new ReduceAction133,
+                       new ReduceAction134,
+                       new ReduceAction135,
+                       new ReduceAction136,
+                       new ReduceAction137,
+                       new ReduceAction138,
+                       new ReduceAction139,
+                       new ReduceAction140,
+                       new ReduceAction141,
+                       new ReduceAction142,
+                       new ReduceAction143,
+                       new ReduceAction144,
+                       new ReduceAction145,
+                       new ReduceAction146,
+                       new ReduceAction147,
+                       new ReduceAction148,
+                       new ReduceAction149,
+                       new ReduceAction150,
+                       new ReduceAction151,
+                       new ReduceAction152,
+                       new ReduceAction153,
+                       new ReduceAction154,
+                       new ReduceAction155,
+                       new ReduceAction156,
+                       new ReduceAction157,
+                       new ReduceAction158,
+                       new ReduceAction159,
+                       new ReduceAction160,
+                       new ReduceAction161,
+                       new ReduceAction162,
+                       new ReduceAction163,
+                       new ReduceAction164,
+                       new ReduceAction165,
+                       new ReduceAction166,
+                       new ReduceAction167,
+                       new ReduceAction168,
+                       new ReduceAction169,
+                       new ReduceAction170,
+                       new ReduceAction171,
+                       new ReduceAction172,
+                       new ReduceAction173,
+                       new ReduceAction174,
+                       new ReduceAction175,
+                       new ReduceAction176,
+                       new ReduceAction177,
+                       new ReduceAction178,
+                       new ReduceAction179,
+                       new ReduceAction180,
+                       new ReduceAction181,
+                       new ReduceAction182,
+                       new ReduceAction183,
+                       new ReduceAction184,
+                       new ReduceAction185,
+                       new ReduceAction186,
+                       new ReduceAction187,
+                       new ReduceAction188,
+                       new ReduceAction189,
+                       new ReduceAction190,
+                       new ReduceAction191,
+                       new ReduceAction192,
+                       new ReduceAction193,
+                       new ReduceAction194,
+                       new ReduceAction195,
+                       new ReduceAction196,
+                       new ReduceAction197,
+                       new ReduceAction198,
+                       new ReduceAction199,
+                       new ReduceAction200,
+                       new ReduceAction201,
+                       new ReduceAction202,
+                       new ReduceAction203,
+                       new ReduceAction204,
+                       new ReduceAction205,
+                       new ReduceAction206,
+                       new ReduceAction207,
+                       new ReduceAction208,
+                       new ReduceAction209,
+                       new ReduceAction210,
+                       new ReduceAction211,
+                       new ReduceAction212,
+                       new ReduceAction213,
+                       new ReduceAction214,
+                       new ReduceAction215,
+                       new ReduceAction216,
+                       new ReduceAction217,
+                       new ReduceAction218,
+                       new ReduceAction219,
+                       new ReduceAction220,
+                       new ReduceAction221,
+                       new ReduceAction222,
+                       new ReduceAction223,
+                       new ReduceAction224,
+                       new ReduceAction225,
+                       new ReduceAction226,
+                       new ReduceAction227,
+                       new ReduceAction228,
+                       new ReduceAction229,
+                       new ReduceAction230,
+                       new ReduceAction231,
+                       new ReduceAction232,
+                       new ReduceAction233,
+                       new ReduceAction234,
+                       new ReduceAction235,
+                       new ReduceAction236,
+                       new ReduceAction237,
+                       new ReduceAction238,
+                       new ReduceAction239,
+                       new ReduceAction240,
+                       new ReduceAction241,
+                       new ReduceAction242,
+                       new ReduceAction243,
+                       new ReduceAction244,
+                       new ReduceAction245,
+                       new ReduceAction246,
+                       new ReduceAction247,
+                       new ReduceAction248,
+                       new ReduceAction249,
+                       new ReduceAction250,
+                       new ReduceAction251,
+                       new ReduceAction252,
+                       new ReduceAction253,
+                       new ReduceAction254,
+                       new ReduceAction255,
+                       new ReduceAction256,
+                       new ReduceAction257,
+                       new ReduceAction258,
+                       new ReduceAction259,
+                       new ReduceAction260,
+                       new ReduceAction261,
+                       new ReduceAction262,
+                       new ReduceAction263,
+                       new ReduceAction264,
+                       new ReduceAction265,
+                       new ReduceAction266,
+                       new ReduceAction267,
+                       new ReduceAction268,
+                       new ReduceAction269,
+                       new ReduceAction270,
+                       new ReduceAction271,
+                       new ReduceAction272,
+                       new ReduceAction273,
+                       new ReduceAction274,
+                       new ReduceAction275,
+                       new ReduceAction276,
+                       new ReduceAction277,
+                       new ReduceAction278,
+                       new ReduceAction279,
+                       new ReduceAction280,
+                       new ReduceAction281,
+                       new ReduceAction282,
+                       new ReduceAction283,
+                       new ReduceAction284,
+                       new ReduceAction285,
+                       new ReduceAction286,
+                       new ReduceAction287,
+                       new ReduceAction288,
+                       new ReduceAction289,
+                       new ReduceAction290,
+                       new ReduceAction291,
+                       new ReduceAction292,
+                       new ReduceAction293,
+                       new ReduceAction294,
+                       new ReduceAction295,
+                       new ReduceAction296,
+                       new ReduceAction297,
+                       new ReduceAction298,
+                       new ReduceAction299,
+                       new ReduceAction300,
+                       new ReduceAction301,
+                       new ReduceAction302,
+                       new ReduceAction303,
+                       new ReduceAction304,
+                       new ReduceAction305,
+                       new ReduceAction306,
+                       new ReduceAction307,
+                       new ReduceAction308,
+                       new ReduceAction309,
+                       new ReduceAction310,
+                       new ReduceAction311,
+                       new ReduceAction312,
+                       new ReduceAction313,
+                       new ReduceAction314,
+                       new ReduceAction315,
+                       new ReduceAction316,
+                       new ReduceAction317,
+                       new ReduceAction318,
+                       new ReduceAction319,
+                       new ReduceAction320,
+                       new ReduceAction321,
+                       new ReduceAction322,
+                       new ReduceAction323,
+                       new ReduceAction324,
+                       new ReduceAction325,
+                       new ReduceAction326,
+                       new ReduceAction327,
+                       new ReduceAction328,
+                       new ReduceAction329,
+                       new ReduceAction330,
+                       new ReduceAction331,
+                       new ReduceAction332,
+                       new ReduceAction333,
+                       new ReduceAction334,
+                       new ReduceAction335,
+                       new ReduceAction336,
+                       new ReduceAction337,
+                       new ReduceAction338,
+                       new ReduceAction339,
+                       new ReduceAction340,
+                       new ReduceAction341,
+                       new ReduceAction342,
+                       new ReduceAction343,
+                       new ReduceAction344,
+                       new ReduceAction345,
+                       new ReduceAction346,
+                       new ReduceAction347,
+                       new ReduceAction348,
+                       new ReduceAction349,
+                       new ReduceAction350,
+                       new ReduceAction351,
+                       new ReduceAction352,
+                       new ReduceAction353,
+                       new ReduceAction354,
+                       new ReduceAction355,
+                       new ReduceAction356,
+                       new ReduceAction357,
+                       new ReduceAction358,
+                       new ReduceAction359,
+                       new ReduceAction360,
+                       new ReduceAction361,
+                       new ReduceAction362,
+                       new ReduceAction363,
+                       new ReduceAction364,
+                       new ReduceAction365,
+                       new ReduceAction366,
+                       new ReduceAction367,
+                       new ReduceAction368,
+                       new ReduceAction369,
+                       new ReduceAction370,
+                       new ReduceAction371,
+                       new ReduceAction372,
+                       new ReduceAction373,
+                       new ReduceAction374,
+                       new ReduceAction375,
+                       new ReduceAction376,
+                       new ReduceAction377,
+                       new ReduceAction378,
+                       new ReduceAction379,
+                       new ReduceAction380,
+                       new ReduceAction381,
+                       new ReduceAction382,
+                       new ReduceAction383,
+                       new ReduceAction384,
+                       new ReduceAction385,
+                       new ReduceAction386,
+                       new ReduceAction387,
+                       new ReduceAction388,
+                       new ReduceAction389,
+                       new ReduceAction390,
+                       new ReduceAction391,
+                       new ReduceAction392,
+                       new ReduceAction393,
+                       new ReduceAction394,
+                       new ReduceAction395,
+                       new ReduceAction396,
+                       new ReduceAction397,
+                       new ReduceAction398,
+                       new ReduceAction399,
+                       new ReduceAction400,
+                       new ReduceAction401,
+                       new ReduceAction402,
+                       new ReduceAction403,
+                       new ReduceAction404,
+                       new ReduceAction405,
+                       new ReduceAction406,
+                       new ReduceAction407,
+                       new ReduceAction408,
+                       new ReduceAction409,
+                       new ReduceAction410,
+                       new ReduceAction411,
+                       new ReduceAction412,
+                       new ReduceAction413,
+                       new ReduceAction414,
+                       new ReduceAction415,
+                       new ReduceAction416,
+                       new ReduceAction417,
+                       new ReduceAction418,
+                       new ReduceAction419,
+                       new ReduceAction420,
+                       new ReduceAction421,
+                       new ReduceAction422,
+                       new ReduceAction423,
+                       new ReduceAction424,
+                       new ReduceAction425,
+                       new ReduceAction426,
+                       new ReduceAction427,
+                       new ReduceAction428,
+                       new ReduceAction429,
+                       new ReduceAction430,
+                       new ReduceAction431,
+                       new ReduceAction432,
+                       new ReduceAction433,
+                       new ReduceAction434,
+                       new ReduceAction435,
+                       new ReduceAction436,
+                       new ReduceAction437,
+                       new ReduceAction438,
+                       new ReduceAction439,
+                       new ReduceAction440,
+                       new ReduceAction441,
+                       new ReduceAction442,
+                       new ReduceAction443,
+                       new ReduceAction444,
+                       new ReduceAction445,
+                       new ReduceAction446,
+                       new ReduceAction447,
+                       new ReduceAction448,
+                       new ReduceAction449,
+                       new ReduceAction450,
+                       new ReduceAction451,
+                       new ReduceAction452,
+                       new ReduceAction453,
+                       new ReduceAction454,
+                       new ReduceAction455,
+                       new ReduceAction456,
+                       new ReduceAction457,
+                       new ReduceAction458,
+                       new ReduceAction459,
+                       new ReduceAction460,
+                       new ReduceAction461,
+                       new ReduceAction462,
+                       new ReduceAction463,
+                       new ReduceAction464,
+                       new ReduceAction465,
+                       new ReduceAction466,
+                       new ReduceAction467,
+                       new ReduceAction468,
+                       new ReduceAction469,
+                       new ReduceAction470,
+                       new ReduceAction471,
+                       new ReduceAction472,
+                       new ReduceAction473,
+                       new ReduceAction474,
+                       new ReduceAction475,
+                       new ReduceAction476,
+                       new ReduceAction477,
+                       new ReduceAction478,
+                       new ReduceAction479,
+                       new ReduceAction480,
+                       new ReduceAction481,
+                       new ReduceAction482,
+                       new ReduceAction483,
+                       new ReduceAction484,
+                       new ReduceAction485,
+                       new ReduceAction486,
+                       new ReduceAction487,
+                       new ReduceAction488,
+                       new ReduceAction489,
+                       new ReduceAction490,
+                       new ReduceAction491,
+                       new ReduceAction492,
+                       new ReduceAction493,
+                       new ReduceAction494,
+                       new ReduceAction495,
+                       new ReduceAction496,
+                       new ReduceAction497,
+                       new ReduceAction498,
+                       new ReduceAction499,
+                       new ReduceAction500,
+                       new ReduceAction501,
+                       new ReduceAction502,
+                       new ReduceAction503,
+                       new ReduceAction504,
+                       new ReduceAction505,
+                       new ReduceAction506,
+                       new ReduceAction507,
+                       new ReduceAction508,
+                       new ReduceAction509,
+                       new ReduceAction510,
+                       new ReduceAction511,
+                       new ReduceAction512,
+                       new ReduceAction513,
+                       new ReduceAction514,
+                       new ReduceAction515,
+                       new ReduceAction516,
+                       new ReduceAction517,
+                       new ReduceAction518,
+                       new ReduceAction519,
+                       new ReduceAction520,
+                       new ReduceAction521,
+                       new ReduceAction522,
+                       new ReduceAction523,
+                       new ReduceAction524,
+                       new ReduceAction525,
+                       new ReduceAction526,
+                       new ReduceAction527,
+                       new ReduceAction528,
+                       new ReduceAction529,
+                       new ReduceAction530,
+                       new ReduceAction531,
+                       new ReduceAction532,
+                       new ReduceAction533,
+                       new ReduceAction534,
+                       new ReduceAction535,
+                       new ReduceAction536,
+                       new ReduceAction537,
+                       new ReduceAction538,
+                       new ReduceAction539,
+                       new ReduceAction540,
+                       new ReduceAction541,
+                       new ReduceAction542,
+                       new ReduceAction543,
+                       new ReduceAction544,
+                       new ReduceAction545,
+                       new ReduceAction546,
+                       new ReduceAction547,
+                       new ReduceAction548,
+                       new ReduceAction549,
+                       new ReduceAction550,
+                       new ReduceAction551,
+                       new ReduceAction552,
+                       new ReduceAction553,
+                       new ReduceAction554,
+                       new ReduceAction555,
+                       new ReduceAction556,
+                       new ReduceAction557,
+                       new ReduceAction558,
+                       new ReduceAction559,
+                       new ReduceAction560,
+                       new ReduceAction561,
+                       new ReduceAction562,
+                       new ReduceAction563,
+                       new ReduceAction564,
+                       new ReduceAction565,
+                       new ReduceAction566,
+                       new ReduceAction567,
+                       new ReduceAction568
+               )
+       end
+end
+
+# Find first and last tokens of production nodes
+private class SearchTokensVisitor
+special Visitor
+       attr _untokenned_nodes: Array[Prod]
+       attr _last_token: Token
+       redef meth visit(n: PNode)
+       do
+               if n isa Token then
+                       assert n isa Token
+                       _last_token = n
+                       for no in _untokenned_nodes do
+                               no.first_token = n
+                       end
+                       _untokenned_nodes.clear
+               else
+                       assert n isa Prod
+                       _untokenned_nodes.add(n)
+                       n.visit_all(self)
+                       n.last_token = _last_token
+               end
+       end
+       init
+       do
+               _untokenned_nodes = new Array[Prod]
+       end
+end
+
+# Each reduca action has its own class, this one is the root of the hierarchy.
+private abstract class ReduceAction
+       meth action(p: Parser) is abstract
+end
+
+private class ReduceAction0
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var listnode3 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode4
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction1
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode4
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction2
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction3
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction4
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction5
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction6
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction7
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction8
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist1
+                                       assert ppropdefnode5 isa PPropdef
+                                       if ppropdefnode5 != null then
+                                               listnode6.add(ppropdefnode5)
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       if pclassdefnode4 != null then
+                                               listnode7.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode7
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction9
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist1
+                                       assert ppropdefnode5 isa PPropdef
+                                       var listnode6 = nodearraylist3 
+                                       assert listnode6 isa Array[Object]
+                                       if ppropdefnode5 != null then
+                                               listnode7.add(ppropdefnode5)
+                                       end
+                                       if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if pclassdefnode4 != null then
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction10
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode6 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist2
+                                       assert ppropdefnode5 isa PPropdef
+                                       if ppropdefnode5 != null then
+                                               listnode6.add(ppropdefnode5)
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       if pclassdefnode4 != null then
+                                               listnode7.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode7
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction11
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist2
+                                       assert ppropdefnode5 isa PPropdef
+                                       var listnode6 = nodearraylist4 
+                                       assert listnode6 isa Array[Object]
+                                       if ppropdefnode5 != null then
+                                               listnode7.add(ppropdefnode5)
+                                       end
+                                       if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if pclassdefnode4 != null then
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction12
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction13
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist4 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction14
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction15
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist5 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction16
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if listnode4 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode4
+                                               else
+                                                       listnode8.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction17
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist4 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if listnode4 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode4
+                                               else
+                                                       listnode9.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction18
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       if listnode4 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode4
+                                               else
+                                                       listnode8.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction19
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist5 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if listnode4 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode4
+                                               else
+                                                       listnode9.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction20
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist3
+                                       assert ppropdefnode7 isa PPropdef
+                                       if ppropdefnode7 != null then
+                                               listnode8.add(ppropdefnode7)
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if listnode5 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode5
+                                               else
+                                                       listnode9.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode9.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction21
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist3
+                                       assert ppropdefnode7 isa PPropdef
+                                       var listnode8 = nodearraylist5 
+                                       assert listnode8 isa Array[Object]
+                                       if ppropdefnode7 != null then
+                                               listnode9.add(ppropdefnode7)
+                                       end
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode9
+                                       )
+                                       if listnode5 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode5
+                                               else
+                                                       listnode10.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction22
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist4
+                                       assert ppropdefnode7 isa PPropdef
+                                       if ppropdefnode7 != null then
+                                               listnode8.add(ppropdefnode7)
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       if listnode5 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode5
+                                               else
+                                                       listnode9.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode9.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction23
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist4
+                                       assert ppropdefnode7 isa PPropdef
+                                       var listnode8 = nodearraylist6 
+                                       assert listnode8 isa Array[Object]
+                                       if ppropdefnode7 != null then
+                                               listnode9.add(ppropdefnode7)
+                                       end
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode9
+                                       )
+                                       if listnode5 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode5
+                                               else
+                                                       listnode10.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction24
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var pclassdefnode4 = nodearraylist1
+                                       assert pclassdefnode4 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode5.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction25
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var pclassdefnode4 = nodearraylist2
+                                       assert pclassdefnode4 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode5.add(pclassdefnode4)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode5
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction26
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction27
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pclassdefnode5 = nodearraylist3
+                                       assert pclassdefnode5 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction28
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode4
+                                               else
+                                                       listnode6.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction29
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       var pclassdefnode5 = nodearraylist3
+                                       assert pclassdefnode5 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode4
+                                               else
+                                                       listnode6.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode6
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction30
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode5
+                                               else
+                                                       listnode7.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode7
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction31
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       var pclassdefnode6 = nodearraylist4
+                                       assert pclassdefnode6 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode5
+                                               else
+                                                       listnode7.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode7
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction32
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist1
+                                       assert ppropdefnode5 isa PPropdef
+                                       if ppropdefnode5 != null then
+                                               listnode6.add(ppropdefnode5)
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction33
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist1
+                                       assert ppropdefnode5 isa PPropdef
+                                       var listnode6 = nodearraylist3 
+                                       assert listnode6 isa Array[Object]
+                                       if ppropdefnode5 != null then
+                                               listnode7.add(ppropdefnode5)
+                                       end
+                                       if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode9.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction34
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode6 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist2
+                                       assert ppropdefnode5 isa PPropdef
+                                       if ppropdefnode5 != null then
+                                               listnode6.add(ppropdefnode5)
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode8
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction35
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode5 = nodearraylist2
+                                       assert ppropdefnode5 isa PPropdef
+                                       var listnode6 = nodearraylist4 
+                                       assert listnode6 isa Array[Object]
+                                       if ppropdefnode5 != null then
+                                               listnode7.add(ppropdefnode5)
+                                       end
+                                       if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+                                       end
+                                       var pclassdefnode4 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist5
+                                       assert pclassdefnode8 isa PClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode9.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction36
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction37
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist4 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist5
+                                       assert pclassdefnode9 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode10.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction38
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist5
+                                       assert pclassdefnode8 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction39
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist5 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist6
+                                       assert pclassdefnode9 isa PClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode10.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction40
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode4
+                                               else
+                                                       listnode9.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction41
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist2
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist4 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist5
+                                       assert pclassdefnode9 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode4
+                                               else
+                                                       listnode10.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode10.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode3,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction42
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode9 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       if ppropdefnode6 != null then
+                                               listnode7.add(ppropdefnode6)
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist5
+                                       assert pclassdefnode8 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode4
+                                               else
+                                                       listnode9.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode9
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction43
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode6 = nodearraylist3
+                                       assert ppropdefnode6 isa PPropdef
+                                       var listnode7 = nodearraylist5 
+                                       assert listnode7 isa Array[Object]
+                                       if ppropdefnode6 != null then
+                                               listnode8.add(ppropdefnode6)
+                                       end
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode5 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist6
+                                       assert pclassdefnode9 isa PClassdef
+                                       if listnode4 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode4
+                                               else
+                                                       listnode10.append(listnode4)
+                                               end
+                                       end
+                                       if pclassdefnode5 != null then
+                                               listnode10.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction44
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist3
+                                       assert ppropdefnode7 isa PPropdef
+                                       if ppropdefnode7 != null then
+                                               listnode8.add(ppropdefnode7)
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist5
+                                       assert pclassdefnode9 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode5
+                                               else
+                                                       listnode10.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction45
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode11 = new Array[Object]
+                                       var listnode3 = nodearraylist1 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist3
+                                       assert ppropdefnode7 isa PPropdef
+                                       var listnode8 = nodearraylist5 
+                                       assert listnode8 isa Array[Object]
+                                       if ppropdefnode7 != null then
+                                               listnode9.add(ppropdefnode7)
+                                       end
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode9
+                                       )
+                                       var pclassdefnode10 = nodearraylist6
+                                       assert pclassdefnode10 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode11.is_empty then
+                                                       listnode11 = listnode5
+                                               else
+                                                       listnode11.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode11.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode10 != null then
+                                               listnode11.add(pclassdefnode10)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               null,
+                                               listnode4,
+                                               listnode11
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction46
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode10 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist4
+                                       assert ppropdefnode7 isa PPropdef
+                                       if ppropdefnode7 != null then
+                                               listnode8.add(ppropdefnode7)
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist6
+                                       assert pclassdefnode9 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode5
+                                               else
+                                                       listnode10.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode10
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction47
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode11 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa PPackagedecl
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var ppropdefnode7 = nodearraylist4
+                                       assert ppropdefnode7 isa PPropdef
+                                       var listnode8 = nodearraylist6 
+                                       assert listnode8 isa Array[Object]
+                                       if ppropdefnode7 != null then
+                                               listnode9.add(ppropdefnode7)
+                                       end
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode6 = new ATopClassdef.init_atopclassdef(
+                                               listnode9
+                                       )
+                                       var pclassdefnode10 = nodearraylist7
+                                       assert pclassdefnode10 isa PClassdef
+                                       if listnode5 != null then
+                                               if listnode11.is_empty then
+                                                       listnode11 = listnode5
+                                               else
+                                                       listnode11.append(listnode5)
+                                               end
+                                       end
+                                       if pclassdefnode6 != null then
+                                               listnode11.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode10 != null then
+                                               listnode11.add(pclassdefnode10)
+                                       end
+                                       var pmodulenode1 = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode4,
+                                               listnode11
+                                       )
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction48
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwpackagenode3 = nodearraylist2
+                                       assert tkwpackagenode3 isa TKwpackage
+                                       var tidnode4 = nodearraylist4
+                                       assert tidnode4 isa TId
+                                       var ppackagedeclnode1 = new APackagedecl.init_apackagedecl(
+                                               pdocnode2,
+                                               tkwpackagenode3,
+                                               tidnode4
+                                       )
+                                       node_list = ppackagedeclnode1
+                                       p.push(p.go_to(1), node_list)
+       end
+init do end
+end
+private class ReduceAction49
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 = nodearraylist2
+                                       assert pvisibilitynode2 isa PVisibility
+                                       var tkwimportnode3 = nodearraylist3
+                                       assert tkwimportnode3 isa TKwimport
+                                       var tidnode4 = nodearraylist5
+                                       assert tidnode4 isa TId
+                                       var pimportnode1 = new AImport.init_aimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tidnode4
+                                       )
+                                       node_list = pimportnode1
+                                       p.push(p.go_to(2), node_list)
+       end
+init do end
+end
+private class ReduceAction50
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 = nodearraylist2
+                                       assert pvisibilitynode2 isa PVisibility
+                                       var tkwimportnode3 = nodearraylist3
+                                       assert tkwimportnode3 isa TKwimport
+                                       var tkwendnode4 = nodearraylist5
+                                       assert tkwendnode4 isa TKwend
+                                       var pimportnode1 = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tkwendnode4
+                                       )
+                                       node_list = pimportnode1
+                                       p.push(p.go_to(2), node_list)
+       end
+init do end
+end
+private class ReduceAction51
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa PPropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       var pclassdefnode1 = new AMainClassdef.init_amainclassdef(
+                                               listnode3
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(3), node_list)
+       end
+init do end
+end
+private class ReduceAction52
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(3), node_list)
+       end
+init do end
+end
+private class ReduceAction53
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa PExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3 = new ABlockExpr.init_ablockexpr(
+                                               listnode5
+                                       )
+                                       var ppropdefnode1 = new AMainMethPropdef.init_amainmethpropdef(
+                                               null,
+                                               pexprnode3
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(4), node_list)
+       end
+init do end
+end
+private class ReduceAction54
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa PExpr
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode3 = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var ppropdefnode1 = new AMainMethPropdef.init_amainmethpropdef(
+                                               null,
+                                               pexprnode3
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(4), node_list)
+       end
+init do end
+end
+private class ReduceAction55
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode9
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction56
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode9
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction57
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction58
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction59
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist6 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction60
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist7 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction61
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist7 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction62
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist8 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction63
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var ppropdefnode9 = nodearraylist6
+                                       assert ppropdefnode9 isa PPropdef
+                                       if ppropdefnode9 != null then
+                                               listnode10.add(ppropdefnode9)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction64
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var ppropdefnode9 = nodearraylist6
+                                       assert ppropdefnode9 isa PPropdef
+                                       var listnode10 = nodearraylist8 
+                                       assert listnode10 isa Array[Object]
+                                       if ppropdefnode9 != null then
+                                               listnode11.add(ppropdefnode9)
+                                       end
+                                       if listnode10 != null then
+                                               if listnode11.is_empty then
+                                                       listnode11 = listnode10
+                                               else
+                                                       listnode11.append(listnode10)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction65
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var ppropdefnode9 = nodearraylist7
+                                       assert ppropdefnode9 isa PPropdef
+                                       if ppropdefnode9 != null then
+                                               listnode10.add(ppropdefnode9)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode10
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction66
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var ppropdefnode9 = nodearraylist7
+                                       assert ppropdefnode9 isa PPropdef
+                                       var listnode10 = nodearraylist9 
+                                       assert listnode10 isa Array[Object]
+                                       if ppropdefnode9 != null then
+                                               listnode11.add(ppropdefnode9)
+                                       end
+                                       if listnode10 != null then
+                                               if listnode11.is_empty then
+                                                       listnode11 = listnode10
+                                               else
+                                                       listnode11.append(listnode10)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction67
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist7
+                                       assert ppropdefnode10 isa PPropdef
+                                       if ppropdefnode10 != null then
+                                               listnode11.add(ppropdefnode10)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction68
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist7
+                                       assert ppropdefnode10 isa PPropdef
+                                       var listnode11 = nodearraylist9 
+                                       assert listnode11 isa Array[Object]
+                                       if ppropdefnode10 != null then
+                                               listnode12.add(ppropdefnode10)
+                                       end
+                                       if listnode11 != null then
+                                               if listnode12.is_empty then
+                                                       listnode12 = listnode11
+                                               else
+                                                       listnode12.append(listnode11)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction69
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist8
+                                       assert ppropdefnode10 isa PPropdef
+                                       if ppropdefnode10 != null then
+                                               listnode11.add(ppropdefnode10)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction70
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist8
+                                       assert ppropdefnode10 isa PPropdef
+                                       var listnode11 = nodearraylist10 
+                                       assert listnode11 isa Array[Object]
+                                       if ppropdefnode10 != null then
+                                               listnode12.add(ppropdefnode10)
+                                       end
+                                       if listnode11 != null then
+                                               if listnode12.is_empty then
+                                                       listnode12 = listnode11
+                                               else
+                                                       listnode12.append(listnode11)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction71
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist6 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist7
+                                       assert ppropdefnode10 isa PPropdef
+                                       if ppropdefnode10 != null then
+                                               listnode11.add(ppropdefnode10)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction72
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist6 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist7
+                                       assert ppropdefnode10 isa PPropdef
+                                       var listnode11 = nodearraylist9 
+                                       assert listnode11 isa Array[Object]
+                                       if ppropdefnode10 != null then
+                                               listnode12.add(ppropdefnode10)
+                                       end
+                                       if listnode11 != null then
+                                               if listnode12.is_empty then
+                                                       listnode12 = listnode11
+                                               else
+                                                       listnode12.append(listnode11)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction73
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist7 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist8
+                                       assert ppropdefnode10 isa PPropdef
+                                       if ppropdefnode10 != null then
+                                               listnode11.add(ppropdefnode10)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode11
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction74
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode8 = nodearraylist7 
+                                       assert listnode8 isa Array[Object]
+                                       if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+                                       end
+                                       var ppropdefnode10 = nodearraylist8
+                                       assert ppropdefnode10 isa PPropdef
+                                       var listnode11 = nodearraylist10 
+                                       assert listnode11 isa Array[Object]
+                                       if ppropdefnode10 != null then
+                                               listnode12.add(ppropdefnode10)
+                                       end
+                                       if listnode11 != null then
+                                               if listnode12.is_empty then
+                                                       listnode12 = listnode11
+                                               else
+                                                       listnode12.append(listnode11)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction75
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist7 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var ppropdefnode11 = nodearraylist8
+                                       assert ppropdefnode11 isa PPropdef
+                                       if ppropdefnode11 != null then
+                                               listnode12.add(ppropdefnode11)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction76
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist6 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist7 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var ppropdefnode11 = nodearraylist8
+                                       assert ppropdefnode11 isa PPropdef
+                                       var listnode12 = nodearraylist10 
+                                       assert listnode12 isa Array[Object]
+                                       if ppropdefnode11 != null then
+                                               listnode13.add(ppropdefnode11)
+                                       end
+                                       if listnode12 != null then
+                                               if listnode13.is_empty then
+                                                       listnode13 = listnode12
+                                               else
+                                                       listnode13.append(listnode12)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction77
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist8 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var ppropdefnode11 = nodearraylist9
+                                       assert ppropdefnode11 isa PPropdef
+                                       if ppropdefnode11 != null then
+                                               listnode12.add(ppropdefnode11)
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode12
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction78
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa PClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa TClassid
+                                       var listnode7 = nodearraylist7 
+                                       assert listnode7 isa Array[Object]
+                                       if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+                                       end
+                                       var listnode9 = nodearraylist8 
+                                       assert listnode9 isa Array[Object]
+                                       if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+                                       end
+                                       var ppropdefnode11 = nodearraylist9
+                                       assert ppropdefnode11 isa PPropdef
+                                       var listnode12 = nodearraylist11 
+                                       assert listnode12 isa Array[Object]
+                                       if ppropdefnode11 != null then
+                                               listnode13.add(ppropdefnode11)
+                                       end
+                                       if listnode12 != null then
+                                               if listnode13.is_empty then
+                                                       listnode13 = listnode12
+                                               else
+                                                       listnode13.append(listnode12)
+                                               end
+                                       end
+                                       var pclassdefnode1 = new AClassdef.init_aclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
+       end
+init do end
+end
+private class ReduceAction79
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwclassnode2 = nodearraylist1
+                                       assert tkwclassnode2 isa TKwclass
+                                       var pclasskindnode1 = new AConcreteClasskind.init_aconcreteclasskind(
+                                               tkwclassnode2
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
+       end
+init do end
+end
+private class ReduceAction80
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa TKwabstract
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa TKwclass
+                                       var pclasskindnode1 = new AAbstractClasskind.init_aabstractclasskind(
+                                               tkwabstractnode2,
+                                               tkwclassnode3
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
+       end
+init do end
+end
+private class ReduceAction81
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwinterfacenode2 = nodearraylist1
+                                       assert tkwinterfacenode2 isa TKwinterface
+                                       var pclasskindnode1 = new AInterfaceClasskind.init_ainterfaceclasskind(
+                                               tkwinterfacenode2
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
+       end
+init do end
+end
+private class ReduceAction82
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwuniversalnode2 = nodearraylist1
+                                       assert tkwuniversalnode2 isa TKwuniversal
+                                       var pclasskindnode1 = new AUniversalClasskind.init_auniversalclasskind(
+                                               tkwuniversalnode2
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
+       end
+init do end
+end
+private class ReduceAction83
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa PFormaldef
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(7), node_list)
+       end
+init do end
+end
+private class ReduceAction84
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa PFormaldef
+                                       var listnode2 = nodearraylist4 
+                                       assert listnode2 isa Array[Object]
+                                       if pformaldefnode1 != null then
+                                               listnode3.add(pformaldefnode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(7), node_list)
+       end
+init do end
+end
+private class ReduceAction85
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa PFormaldef
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(8), node_list)
+       end
+init do end
+end
+private class ReduceAction86
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var pformaldefnode1 = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               null
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(9), node_list)
+       end
+init do end
+end
+private class ReduceAction87
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa PType
+                                       var pformaldefnode1 = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(9), node_list)
+       end
+init do end
+end
+private class ReduceAction88
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwspecialnode2 = nodearraylist2
+                                       assert tkwspecialnode2 isa TKwspecial
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa PType
+                                       var psuperclassnode1 = new ASuperclass.init_asuperclass(
+                                               tkwspecialnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = psuperclassnode1
+                                       p.push(p.go_to(10), node_list)
+       end
+init do end
+end
+private class ReduceAction89
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(11), node_list)
+       end
+init do end
+end
+private class ReduceAction90
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist6
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction91
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction92
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction93
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction94
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction95
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction96
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction97
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction98
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction99
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction100
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction101
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction102
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction103
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist9
+                                       assert tattridnode12 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction104
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction105
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction106
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction107
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction108
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist6
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist7
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction109
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction110
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist6
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction111
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction112
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction113
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction114
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist6
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction115
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction116
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa TAttrid
+                                       var ptypenode9 = nodearraylist5
+                                       assert ptypenode9 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction117
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction118
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction119
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction120
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction121
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist9
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist10
+                                       assert ptypenode13 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction122
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist8
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction123
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction124
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist8
+                                       assert ptypenode11 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction125
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction126
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist6
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction127
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist10
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction128
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction129
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist10
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction130
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction131
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction132
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction133
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction134
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa TAttrid
+                                       var pexprnode10 = nodearraylist7
+                                       assert pexprnode10 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction135
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist10
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction136
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction137
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction138
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction139
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist9
+                                       assert tattridnode12 isa TAttrid
+                                       var pexprnode14 = nodearraylist12
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               null,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction140
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction141
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction142
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               null,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction143
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa TAttrid
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction144
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist6
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist7
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist10
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction145
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction146
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist6
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction147
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction148
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist12
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction149
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction150
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist5
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist6
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction151
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction152
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa TAttrid
+                                       var ptypenode9 = nodearraylist5
+                                       assert ptypenode9 isa PType
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction153
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist7
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist8
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist11
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction154
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist12
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction155
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction156
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist8
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist9
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist12
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction157
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode12 = nodearraylist9
+                                       assert tattridnode12 isa TAttrid
+                                       var ptypenode13 = nodearraylist10
+                                       assert ptypenode13 isa PType
+                                       var pexprnode14 = nodearraylist13
+                                       assert pexprnode14 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               tattridnode12,
+                                               ptypenode13,
+                                               pexprnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction158
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist8
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist11
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction159
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist6
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist7
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction160
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode10 = nodearraylist7
+                                       assert tattridnode10 isa TAttrid
+                                       var ptypenode11 = nodearraylist8
+                                       assert ptypenode11 isa PType
+                                       var pexprnode12 = nodearraylist11
+                                       assert pexprnode12 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               tattridnode10,
+                                               ptypenode11,
+                                               pexprnode12
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction161
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa PType
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction162
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction163
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction164
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction165
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction166
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction167
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction168
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction169
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction170
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction171
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction172
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction173
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction174
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction175
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction176
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction177
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction178
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction179
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction180
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction181
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction182
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwtypenode5 = nodearraylist3
+                                       assert tkwtypenode5 isa TKwtype
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa TClassid
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa PType
+                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction183
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa PType
+                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction184
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(13), node_list)
+       end
+init do end
+end
+private class ReduceAction185
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction186
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction187
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction188
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction189
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction190
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction191
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var pvisibilitynode1 = new APublicVisibility.init_apublicvisibility(
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
+       end
+init do end
+end
+private class ReduceAction192
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwprivatenode2 = nodearraylist1
+                                       assert tkwprivatenode2 isa TKwprivate
+                                       var pvisibilitynode1 = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
+       end
+init do end
+end
+private class ReduceAction193
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwprotectednode2 = nodearraylist1
+                                       assert tkwprotectednode2 isa TKwprotected
+                                       var pvisibilitynode1 = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
+       end
+init do end
+end
+private class ReduceAction194
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwintrudenode2 = nodearraylist1
+                                       assert tkwintrudenode2 isa TKwintrude
+                                       var pvisibilitynode1 = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
+       end
+init do end
+end
+private class ReduceAction195
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var pmethidnode1 = new AIdMethid.init_aidmethid(
+                                               tidnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction196
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa TPlus
+                                       var pmethidnode1 = new APlusMethid.init_aplusmethid(
+                                               tplusnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction197
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa TMinus
+                                       var pmethidnode1 = new AMinusMethid.init_aminusmethid(
+                                               tminusnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction198
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarnode2 = nodearraylist1
+                                       assert tstarnode2 isa TStar
+                                       var pmethidnode1 = new AStarMethid.init_astarmethid(
+                                               tstarnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction199
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tslashnode2 = nodearraylist1
+                                       assert tslashnode2 isa TSlash
+                                       var pmethidnode1 = new ASlashMethid.init_aslashmethid(
+                                               tslashnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction200
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpercentnode2 = nodearraylist1
+                                       assert tpercentnode2 isa TPercent
+                                       var pmethidnode1 = new APercentMethid.init_apercentmethid(
+                                               tpercentnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction201
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var teqnode2 = nodearraylist1
+                                       assert teqnode2 isa TEq
+                                       var pmethidnode1 = new AEqMethid.init_aeqmethid(
+                                               teqnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction202
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnenode2 = nodearraylist1
+                                       assert tnenode2 isa TNe
+                                       var pmethidnode1 = new ANeMethid.init_anemethid(
+                                               tnenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction203
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa TLe
+                                       var pmethidnode1 = new ALeMethid.init_alemethid(
+                                               tlenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction204
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa TGe
+                                       var pmethidnode1 = new AGeMethid.init_agemethid(
+                                               tgenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction205
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tltnode2 = nodearraylist1
+                                       assert tltnode2 isa TLt
+                                       var pmethidnode1 = new ALtMethid.init_altmethid(
+                                               tltnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction206
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa TGt
+                                       var pmethidnode1 = new AGtMethid.init_agtmethid(
+                                               tgtnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction207
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa TCbra
+                                       var pmethidnode1 = new ABraMethid.init_abramethid(
+                                               tobranode2,
+                                               tcbranode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction208
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa TStarship
+                                       var pmethidnode1 = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction209
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa TAssign
+                                       var pmethidnode1 = new AAssignMethid.init_aassignmethid(
+                                               tidnode2,
+                                               tassignnode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction210
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa TCbra
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa TAssign
+                                       var pmethidnode1 = new ABraassignMethid.init_abraassignmethid(
+                                               tobranode2,
+                                               tcbranode3,
+                                               tassignnode4
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction211
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var listnode2 = new Array[Object]
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               null
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
+       end
+init do end
+end
+private class ReduceAction212
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               null
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
+       end
+init do end
+end
+private class ReduceAction213
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa PType
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
+       end
+init do end
+end
+private class ReduceAction214
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa PType
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
+       end
+init do end
+end
+private class ReduceAction215
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa PParam
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(18), node_list)
+       end
+init do end
+end
+private class ReduceAction216
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa PParam
+                                       var listnode2 = nodearraylist4 
+                                       assert listnode2 isa Array[Object]
+                                       if pparamnode1 != null then
+                                               listnode3.add(pparamnode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(18), node_list)
+       end
+init do end
+end
+private class ReduceAction217
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(18), node_list)
+       end
+init do end
+end
+private class ReduceAction218
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa PParam
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(19), node_list)
+       end
+init do end
+end
+private class ReduceAction219
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var pparamnode1 = new AParam.init_aparam(
+                                               tidnode2,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(20), node_list)
+       end
+init do end
+end
+private class ReduceAction220
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa PType
+                                       var pparamnode1 = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               null
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(20), node_list)
+       end
+init do end
+end
+private class ReduceAction221
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa PType
+                                       var tdotdotdotnode4 = nodearraylist3
+                                       assert tdotdotdotnode4 isa TDotdotdot
+                                       var pparamnode1 = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(20), node_list)
+       end
+init do end
+end
+private class ReduceAction222
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode3
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(21), node_list)
+       end
+init do end
+end
+private class ReduceAction223
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var listnode3 = nodearraylist4 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode4
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(21), node_list)
+       end
+init do end
+end
+private class ReduceAction224
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       assert ptypenode1 isa PType
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(22), node_list)
+       end
+init do end
+end
+private class ReduceAction225
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       assert ptypenode1 isa PType
+                                       var listnode2 = nodearraylist2 
+                                       assert listnode2 isa Array[Object]
+                                       if ptypenode1 != null then
+                                               listnode3.add(ptypenode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(22), node_list)
+       end
+init do end
+end
+private class ReduceAction226
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode1 = nodearraylist3
+                                       assert ptypenode1 isa PType
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(23), node_list)
+       end
+init do end
+end
+private class ReduceAction227
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode1 = nodearraylist3
+                                       assert ptypenode1 isa PType
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(24), node_list)
+       end
+init do end
+end
+private class ReduceAction228
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(25), node_list)
+       end
+init do end
+end
+private class ReduceAction229
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa PExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(25), node_list)
+       end
+init do end
+end
+private class ReduceAction230
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa PExpr
+                                       var listnode3 = nodearraylist3 
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(25), node_list)
+       end
+init do end
+end
+private class ReduceAction231
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(25), node_list)
+       end
+init do end
+end
+private class ReduceAction232
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(25), node_list)
+       end
+init do end
+end
+private class ReduceAction233
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(26), node_list)
+       end
+init do end
+end
+private class ReduceAction234
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction235
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction236
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa TKwreturn
+                                       var pexprnode1 = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction237
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction238
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa TKwbreak
+                                       var pexprnode1 = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction239
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa TKwabort
+                                       var pexprnode1 = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction240
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa TKwcontinue
+                                       var pexprnode1 = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction241
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction242
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction243
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction244
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction245
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction246
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction247
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction248
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction249
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction250
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction251
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(27), node_list)
+       end
+init do end
+end
+private class ReduceAction252
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var pexprnode1 = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction253
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa PType
+                                       var pexprnode1 = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction254
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       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 TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa PExpr
+                                       var pexprnode1 = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction255
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa PType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa PExpr
+                                       var pexprnode1 = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction256
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction257
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction258
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction259
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction260
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PExpr
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa PExpr
+                                       var pexprnode1 = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               tassignnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction261
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa TAttrid
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa PAssignOp
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction262
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa TAttrid
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa PAssignOp
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction263
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa PAssignOp
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction264
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa PAssignOp
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction265
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 PExpr
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa PAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa PExpr
+                                       var pexprnode1 = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction266
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa TPluseq
+                                       var passignopnode1 = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(30), node_list)
+       end
+init do end
+end
+private class ReduceAction267
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa TMinuseq
+                                       var passignopnode1 = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(30), node_list)
+       end
+init do end
+end
+private class ReduceAction268
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(31), node_list)
+       end
+init do end
+end
+private class ReduceAction269
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction270
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction271
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       if pexprnode5 != null then
+                                               listnode6.add(pexprnode5)
+                                       end
+                                       var pexprnode4 = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction272
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var listnode6 = nodearraylist8 
+                                       assert listnode6 isa Array[Object]
+                                       if pexprnode5 != null then
+                                               listnode7.add(pexprnode5)
+                                       end
+                                       if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+                                       end
+                                       var pexprnode4 = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode8 = nodearraylist10
+                                       assert pexprnode8 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction273
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction274
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
+       end
+init do end
+end
+private class ReduceAction275
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
+       end
+init do end
+end
+private class ReduceAction276
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(33), node_list)
+       end
+init do end
+end
+private class ReduceAction277
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(34), node_list)
+       end
+init do end
+end
+private class ReduceAction278
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwdonode3 = nodearraylist3
+                                       assert tkwdonode3 isa TKwdo
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AForExpr.init_aforexpr(
+                                               pexprnode2,
+                                               tkwdonode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(35), node_list)
+       end
+init do end
+end
+private class ReduceAction279
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AForVardeclExpr.init_aforvardeclexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(36), node_list)
+       end
+init do end
+end
+private class ReduceAction280
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(37), node_list)
+       end
+init do end
+end
+private class ReduceAction281
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(37), node_list)
+       end
+init do end
+end
+private class ReduceAction282
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(38), node_list)
+       end
+init do end
+end
+private class ReduceAction283
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(39), node_list)
+       end
+init do end
+end
+private class ReduceAction284
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(39), node_list)
+       end
+init do end
+end
+private class ReduceAction285
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
+       end
+init do end
+end
+private class ReduceAction286
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
+       end
+init do end
+end
+private class ReduceAction287
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
+       end
+init do end
+end
+private class ReduceAction288
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
+       end
+init do end
+end
+private class ReduceAction289
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
+       end
+init do end
+end
+private class ReduceAction290
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction291
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction292
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction293
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction294
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction295
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction296
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction297
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction298
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction299
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa PType
+                                       var pexprnode1 = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction300
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
+       end
+init do end
+end
+private class ReduceAction301
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
+       end
+init do end
+end
+private class ReduceAction302
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
+       end
+init do end
+end
+private class ReduceAction303
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
+       end
+init do end
+end
+private class ReduceAction304
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
+       end
+init do end
+end
+private class ReduceAction305
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
+       end
+init do end
+end
+private class ReduceAction306
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
+       end
+init do end
+end
+private class ReduceAction307
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(45), node_list)
+       end
+init do end
+end
+private class ReduceAction308
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(45), node_list)
+       end
+init do end
+end
+private class ReduceAction309
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(45), node_list)
+       end
+init do end
+end
+private class ReduceAction310
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(46), node_list)
+       end
+init do end
+end
+private class ReduceAction311
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var listnode5 = nodearraylist4 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(46), node_list)
+       end
+init do end
+end
+private class ReduceAction312
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction313
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction314
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction315
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction316
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction317
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction318
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction319
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction320
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var listnode3 = nodearraylist2 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pexprnode1 = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction321
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa TId
+                                       var listnode5 = nodearraylist7 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction322
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 = nodearraylist3
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ACrangeExpr.init_acrangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction323
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 = nodearraylist3
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOrangeExpr.init_aorangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction324
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pexprnode1 = new AArrayExpr.init_aarrayexpr(
+                                               listnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction325
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa TKwself
+                                       var pexprnode1 = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction326
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa TKwtrue
+                                       var pexprnode1 = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction327
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa TKwfalse
+                                       var pexprnode1 = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction328
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa TKwnull
+                                       var pexprnode1 = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction329
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa TNumber
+                                       var pexprnode1 = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction330
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa TFloat
+                                       var pexprnode1 = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction331
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa TChar
+                                       var pexprnode1 = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction332
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa TString
+                                       var pexprnode1 = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction333
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction334
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
+       end
+init do end
+end
+private class ReduceAction335
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       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 PExpr
+                                       if listnode2 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode2
+                                               else
+                                                       listnode4.append(listnode2)
+                                               end
+                                       end
+                                       if pexprnode3 != null then
+                                               listnode4.add(pexprnode3)
+                                       end
+                                       var pexprnode1 = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(48), node_list)
+       end
+init do end
+end
+private class ReduceAction336
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       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 PExpr
+                                       if listnode2 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode2
+                                               else
+                                                       listnode5.append(listnode2)
+                                               end
+                                       end
+                                       if listnode3 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode3
+                                               else
+                                                       listnode5.append(listnode3)
+                                               end
+                                       end
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode1 = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(48), node_list)
+       end
+init do end
+end
+private class ReduceAction337
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pexprnode1 isa PExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(49), node_list)
+       end
+init do end
+end
+private class ReduceAction338
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstartstringnode2 = nodearraylist1
+                                       assert tstartstringnode2 isa TStartString
+                                       var pexprnode1 = new AStartStringExpr.init_astartstringexpr(
+                                               tstartstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(50), node_list)
+       end
+init do end
+end
+private class ReduceAction339
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pexprnode1 isa PExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(51), node_list)
+       end
+init do end
+end
+private class ReduceAction340
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tmidstringnode2 = nodearraylist1
+                                       assert tmidstringnode2 isa TMidString
+                                       var pexprnode1 = new AMidStringExpr.init_amidstringexpr(
+                                               tmidstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
+       end
+init do end
+end
+private class ReduceAction341
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa TEndString
+                                       var pexprnode1 = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
+       end
+init do end
+end
+private class ReduceAction342
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(54), node_list)
+       end
+init do end
+end
+private class ReduceAction343
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       var listnode2 = nodearraylist5 
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(54), node_list)
+       end
+init do end
+end
+private class ReduceAction344
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(54), node_list)
+       end
+init do end
+end
+private class ReduceAction345
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(54), node_list)
+       end
+init do end
+end
+private class ReduceAction346
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction347
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       var listnode2 = nodearraylist5 
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction348
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction349
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction350
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction351
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(56), node_list)
+       end
+init do end
+end
+private class ReduceAction352
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       var listnode2 = nodearraylist5 
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(56), node_list)
+       end
+init do end
+end
+private class ReduceAction353
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
+       end
+init do end
+end
+private class ReduceAction354
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa TClassid
+                                       var pqualifiednode1 = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(58), node_list)
+       end
+init do end
+end
+private class ReduceAction355
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa TClassid
+                                       var pqualifiednode1 = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(58), node_list)
+       end
+init do end
+end
+private class ReduceAction356
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pqualifiednode1 = new AQualified.init_aqualified(
+                                               listnode3,
+                                               null
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(58), node_list)
+       end
+init do end
+end
+private class ReduceAction357
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(59), node_list)
+       end
+init do end
+end
+private class ReduceAction358
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist1
+                                       assert tclassidnode1 isa TClassid
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(60), node_list)
+       end
+init do end
+end
+private class ReduceAction359
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(61), node_list)
+       end
+init do end
+end
+private class ReduceAction360
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(61), node_list)
+       end
+init do end
+end
+private class ReduceAction361
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pdocnode1 = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(62), node_list)
+       end
+init do end
+end
+private class ReduceAction362
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist2 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pdocnode1 = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(62), node_list)
+       end
+init do end
+end
+private class ReduceAction363
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(62), node_list)
+       end
+init do end
+end
+private class ReduceAction364
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       node_list = null
+                                       p.push(p.go_to(63), node_list)
+       end
+init do end
+end
+private class ReduceAction365
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       assert pdocnode1 isa PDoc
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(63), node_list)
+       end
+init do end
+end
+private class ReduceAction366
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction367
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction368
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction369
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode3
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(65), node_list)
+       end
+init do end
+end
+private class ReduceAction370
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(66), node_list)
+       end
+init do end
+end
+private class ReduceAction371
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(66), node_list)
+       end
+init do end
+end
+private class ReduceAction372
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction373
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction374
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction375
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(68), node_list)
+       end
+init do end
+end
+private class ReduceAction376
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(68), node_list)
+       end
+init do end
+end
+private class ReduceAction377
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction378
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction379
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction380
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction381
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction382
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction383
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction384
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction385
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction386
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa PType
+                                       var pexprnode1 = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction387
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(70), node_list)
+       end
+init do end
+end
+private class ReduceAction388
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(70), node_list)
+       end
+init do end
+end
+private class ReduceAction389
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(70), node_list)
+       end
+init do end
+end
+private class ReduceAction390
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction391
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction392
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction393
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction394
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction395
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction396
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction397
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(73), node_list)
+       end
+init do end
+end
+private class ReduceAction398
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var listnode5 = nodearraylist4 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(73), node_list)
+       end
+init do end
+end
+private class ReduceAction399
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction400
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction401
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction402
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction403
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction404
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction405
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction406
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction407
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa TId
+                                       var listnode5 = nodearraylist7 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction408
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa TKwself
+                                       var pexprnode1 = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction409
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa TKwtrue
+                                       var pexprnode1 = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction410
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa TKwfalse
+                                       var pexprnode1 = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction411
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa TKwnull
+                                       var pexprnode1 = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction412
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa TNumber
+                                       var pexprnode1 = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction413
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa TFloat
+                                       var pexprnode1 = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction414
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa TChar
+                                       var pexprnode1 = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction415
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa TString
+                                       var pexprnode1 = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction416
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction417
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(74), node_list)
+       end
+init do end
+end
+private class ReduceAction418
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(75), node_list)
+       end
+init do end
+end
+private class ReduceAction419
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa PExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(75), node_list)
+       end
+init do end
+end
+private class ReduceAction420
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa PExpr
+                                       var listnode3 = nodearraylist3 
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(75), node_list)
+       end
+init do end
+end
+private class ReduceAction421
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(75), node_list)
+       end
+init do end
+end
+private class ReduceAction422
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(75), node_list)
+       end
+init do end
+end
+private class ReduceAction423
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction424
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction425
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa TKwreturn
+                                       var pexprnode1 = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction426
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction427
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa TKwbreak
+                                       var pexprnode1 = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction428
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa TKwabort
+                                       var pexprnode1 = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction429
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa TKwcontinue
+                                       var pexprnode1 = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction430
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction431
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction432
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction433
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction434
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction435
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction436
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction437
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction438
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction439
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction440
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction441
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(77), node_list)
+       end
+init do end
+end
+private class ReduceAction442
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+private class ReduceAction443
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa PExpr
+                                       var pexprnode1 = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(79), node_list)
+       end
+init do end
+end
+private class ReduceAction444
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwdonode3 = nodearraylist3
+                                       assert tkwdonode3 isa TKwdo
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa PExpr
+                                       var pexprnode1 = new AForExpr.init_aforexpr(
+                                               pexprnode2,
+                                               tkwdonode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(80), node_list)
+       end
+init do end
+end
+private class ReduceAction445
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode3
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
+end
+private class ReduceAction446
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var listnode3 = nodearraylist4 
+                                       assert listnode3 isa Array[Object]
+                                       if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+                                       end
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode4
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
+end
+private class ReduceAction447
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction448
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction449
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction450
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction451
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction452
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction453
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction454
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction455
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction456
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction457
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction458
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction459
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction460
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction461
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction462
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction463
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa PType
+                                       var pexprnode1 = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction464
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
+       end
+init do end
+end
+private class ReduceAction465
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
+       end
+init do end
+end
+private class ReduceAction466
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
+       end
+init do end
+end
+private class ReduceAction467
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction468
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction469
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction470
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction471
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
+       end
+init do end
+end
+private class ReduceAction472
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
+       end
+init do end
+end
+private class ReduceAction473
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
+       end
+init do end
+end
+private class ReduceAction474
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction475
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var listnode5 = nodearraylist4 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction476
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction477
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction478
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction479
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction480
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction481
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction482
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist5 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction483
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction484
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa TId
+                                       var listnode5 = nodearraylist7 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction485
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa TKwself
+                                       var pexprnode1 = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction486
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa TKwtrue
+                                       var pexprnode1 = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction487
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa TKwfalse
+                                       var pexprnode1 = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction488
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa TKwnull
+                                       var pexprnode1 = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction489
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa TNumber
+                                       var pexprnode1 = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction490
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa TFloat
+                                       var pexprnode1 = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction491
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa TChar
+                                       var pexprnode1 = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction492
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa TString
+                                       var pexprnode1 = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction493
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction494
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa TClassid
+                                       var ptypenode1 = new AType.init_atype(
+                                               tclassidnode2,
+                                               listnode3
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(91), node_list)
+       end
+init do end
+end
+private class ReduceAction495
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
+       end
+init do end
+end
+private class ReduceAction496
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa PExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa PExpr
+                                       var pexprnode1 = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
+       end
+init do end
+end
+private class ReduceAction497
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
+       end
+init do end
+end
+private class ReduceAction498
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
+       end
+init do end
+end
+private class ReduceAction499
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
+       end
+init do end
+end
+private class ReduceAction500
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
+       end
+init do end
+end
+private class ReduceAction501
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
+       end
+init do end
+end
+private class ReduceAction502
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction503
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction504
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction505
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction506
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction507
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction508
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction509
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction510
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction511
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa PType
+                                       var pexprnode1 = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
+       end
+init do end
+end
+private class ReduceAction512
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(96), node_list)
+       end
+init do end
+end
+private class ReduceAction513
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(96), node_list)
+       end
+init do end
+end
+private class ReduceAction514
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(96), node_list)
+       end
+init do end
+end
+private class ReduceAction515
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(97), node_list)
+       end
+init do end
+end
+private class ReduceAction516
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(97), node_list)
+       end
+init do end
+end
+private class ReduceAction517
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(97), node_list)
+       end
+init do end
+end
+private class ReduceAction518
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(97), node_list)
+       end
+init do end
+end
+private class ReduceAction519
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(98), node_list)
+       end
+init do end
+end
+private class ReduceAction520
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(98), node_list)
+       end
+init do end
+end
+private class ReduceAction521
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa PExpr
+                                       var pexprnode1 = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(98), node_list)
+       end
+init do end
+end
+private class ReduceAction522
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(99), node_list)
+       end
+init do end
+end
+private class ReduceAction523
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var listnode5 = nodearraylist4 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(99), node_list)
+       end
+init do end
+end
+private class ReduceAction524
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa TAttrid
+                                       var pexprnode1 = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction525
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa TId
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction526
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction527
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa PQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa TKwsuper
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction528
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa PExpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa TKwinit
+                                       var listnode4 = nodearraylist3 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var pexprnode1 = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction529
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa PType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa TId
+                                       var listnode5 = nodearraylist7 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var pexprnode1 = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction530
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa TKwself
+                                       var pexprnode1 = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction531
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa TKwtrue
+                                       var pexprnode1 = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction532
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa TKwfalse
+                                       var pexprnode1 = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction533
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa TKwnull
+                                       var pexprnode1 = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction534
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa TNumber
+                                       var pexprnode1 = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction535
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa TFloat
+                                       var pexprnode1 = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction536
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa TChar
+                                       var pexprnode1 = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction537
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa TString
+                                       var pexprnode1 = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction538
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction539
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(101), node_list)
+       end
+init do end
+end
+private class ReduceAction540
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var pexprnode1 = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(101), node_list)
+       end
+init do end
+end
+private class ReduceAction541
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pimportnode1 = nodearraylist1
+                                       assert pimportnode1 isa PImport
+                                       if pimportnode1 != null then
+                                               listnode2.add(pimportnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(102), node_list)
+       end
+init do end
+end
+private class ReduceAction542
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pimportnode2 isa PImport
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pimportnode2 != null then
+                                               listnode3.add(pimportnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(102), node_list)
+       end
+init do end
+end
+private class ReduceAction543
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pclassdefnode1 = nodearraylist1
+                                       assert pclassdefnode1 isa PClassdef
+                                       if pclassdefnode1 != null then
+                                               listnode2.add(pclassdefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(103), node_list)
+       end
+init do end
+end
+private class ReduceAction544
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pclassdefnode2 isa PClassdef
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pclassdefnode2 != null then
+                                               listnode3.add(pclassdefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(103), node_list)
+       end
+init do end
+end
+private class ReduceAction545
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var psuperclassnode1 = nodearraylist1
+                                       assert psuperclassnode1 isa PSuperclass
+                                       if psuperclassnode1 != null then
+                                               listnode2.add(psuperclassnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(104), node_list)
+       end
+init do end
+end
+private class ReduceAction546
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1 
+                                       assert listnode1 isa Array[Object]
+                                       var psuperclassnode2 = nodearraylist2
+                                       assert psuperclassnode2 isa PSuperclass
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if psuperclassnode2 != null then
+                                               listnode3.add(psuperclassnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(104), node_list)
+       end
+init do end
+end
+private class ReduceAction547
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist1
+                                       assert pformaldefnode1 isa PFormaldef
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(105), node_list)
+       end
+init do end
+end
+private class ReduceAction548
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pformaldefnode2 isa PFormaldef
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pformaldefnode2 != null then
+                                               listnode3.add(pformaldefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(105), node_list)
+       end
+init do end
+end
+private class ReduceAction549
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(106), node_list)
+       end
+init do end
+end
+private class ReduceAction550
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert ppropdefnode2 isa PPropdef
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(106), node_list)
+       end
+init do end
+end
+private class ReduceAction551
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(107), node_list)
+       end
+init do end
+end
+private class ReduceAction552
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert ppropdefnode2 isa PPropdef
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(107), node_list)
+       end
+init do end
+end
+private class ReduceAction553
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       assert pparamnode1 isa PParam
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(108), node_list)
+       end
+init do end
+end
+private class ReduceAction554
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pparamnode2 isa PParam
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pparamnode2 != null then
+                                               listnode3.add(pparamnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(108), node_list)
+       end
+init do end
+end
+private class ReduceAction555
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       assert ptypenode1 isa PType
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(109), node_list)
+       end
+init do end
+end
+private class ReduceAction556
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert ptypenode2 isa PType
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if ptypenode2 != null then
+                                               listnode3.add(ptypenode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(109), node_list)
+       end
+init do end
+end
+private class ReduceAction557
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(110), node_list)
+       end
+init do end
+end
+private class ReduceAction558
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pexprnode2 isa PExpr
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(110), node_list)
+       end
+init do end
+end
+private class ReduceAction559
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1 
+                                       assert listnode1 isa Array[Object]
+                                       if listnode1 != null then
+                                               if listnode2.is_empty then
+                                                       listnode2 = listnode1
+                                               else
+                                                       listnode2.append(listnode1)
+                                               end
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(111), node_list)
+       end
+init do end
+end
+private class ReduceAction560
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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]
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(111), node_list)
+       end
+init do end
+end
+private class ReduceAction561
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa PExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(112), node_list)
+       end
+init do end
+end
+private class ReduceAction562
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert pexprnode2 isa PExpr
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(112), node_list)
+       end
+init do end
+end
+private class ReduceAction563
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa TId
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(113), node_list)
+       end
+init do end
+end
+private class ReduceAction564
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert tidnode2 isa TId
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if tidnode2 != null then
+                                               listnode3.add(tidnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(113), node_list)
+       end
+init do end
+end
+private class ReduceAction565
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var tcommentnode1 = nodearraylist1
+                                       assert tcommentnode1 isa TComment
+                                       if tcommentnode1 != null then
+                                               listnode2.add(tcommentnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(114), node_list)
+       end
+init do end
+end
+private class ReduceAction566
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: 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
+                                       assert tcommentnode2 isa TComment
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if tcommentnode2 != null then
+                                               listnode3.add(tcommentnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(114), node_list)
+       end
+init do end
+end
+private class ReduceAction567
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var teolnode1 = nodearraylist1
+                                       assert teolnode1 isa TEol
+                                       if teolnode1 != null then
+                                               listnode2.add(teolnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(115), node_list)
+       end
+init do end
+end
+private class ReduceAction568
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1 
+                                       assert listnode1 isa Array[Object]
+                                       var teolnode2 = nodearraylist2
+                                       assert teolnode2 isa TEol
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if teolnode2 != null then
+                                               listnode3.add(teolnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(115), node_list)
+       end
+init do end
+end
diff --git a/src/parser/parser_abs.nit b/src/parser/parser_abs.nit
new file mode 100644 (file)
index 0000000..ebad356
--- /dev/null
@@ -0,0 +1,921 @@
+# Raw AST node hierarchy.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_abs
+
+# Root of the AST hierarchy
+abstract class PNode
+end
+
+# Ancestor of all tokens
+abstract class Token
+special PNode
+end
+
+# Ancestor of all productions
+abstract class Prod
+special PNode
+end
+class TEol
+special Token
+end
+class TComment
+special Token
+end
+class TKwpackage
+special Token
+end
+class TKwimport
+special Token
+end
+class TKwclass
+special Token
+end
+class TKwabstract
+special Token
+end
+class TKwinterface
+special Token
+end
+class TKwuniversal
+special Token
+end
+class TKwspecial
+special Token
+end
+class TKwend
+special Token
+end
+class TKwmeth
+special Token
+end
+class TKwtype
+special Token
+end
+class TKwattr
+special Token
+end
+class TKwinit
+special Token
+end
+class TKwredef
+special Token
+end
+class TKwis
+special Token
+end
+class TKwdo
+special Token
+end
+class TKwreadable
+special Token
+end
+class TKwwritable
+special Token
+end
+class TKwvar
+special Token
+end
+class TKwintern
+special Token
+end
+class TKwextern
+special Token
+end
+class TKwprotected
+special Token
+end
+class TKwprivate
+special Token
+end
+class TKwintrude
+special Token
+end
+class TKwif
+special Token
+end
+class TKwthen
+special Token
+end
+class TKwelse
+special Token
+end
+class TKwwhile
+special Token
+end
+class TKwfor
+special Token
+end
+class TKwin
+special Token
+end
+class TKwand
+special Token
+end
+class TKwor
+special Token
+end
+class TKwnot
+special Token
+end
+class TKwreturn
+special Token
+end
+class TKwcontinue
+special Token
+end
+class TKwbreak
+special Token
+end
+class TKwabort
+special Token
+end
+class TKwassert
+special Token
+end
+class TKwnew
+special Token
+end
+class TKwisa
+special Token
+end
+class TKwonce
+special Token
+end
+class TKwsuper
+special Token
+end
+class TKwself
+special Token
+end
+class TKwtrue
+special Token
+end
+class TKwfalse
+special Token
+end
+class TKwnull
+special Token
+end
+class TOpar
+special Token
+end
+class TCpar
+special Token
+end
+class TObra
+special Token
+end
+class TCbra
+special Token
+end
+class TComma
+special Token
+end
+class TColumn
+special Token
+end
+class TQuad
+special Token
+end
+class TAssign
+special Token
+end
+class TPluseq
+special Token
+end
+class TMinuseq
+special Token
+end
+class TDotdotdot
+special Token
+end
+class TDotdot
+special Token
+end
+class TDot
+special Token
+end
+class TPlus
+special Token
+end
+class TMinus
+special Token
+end
+class TStar
+special Token
+end
+class TSlash
+special Token
+end
+class TPercent
+special Token
+end
+class TEq
+special Token
+end
+class TNe
+special Token
+end
+class TLt
+special Token
+end
+class TLe
+special Token
+end
+class TGt
+special Token
+end
+class TGe
+special Token
+end
+class TStarship
+special Token
+end
+class TClassid
+special Token
+end
+class TId
+special Token
+end
+class TAttrid
+special Token
+end
+class TNumber
+special Token
+end
+class TFloat
+special Token
+end
+class TChar
+special Token
+end
+class TString
+special Token
+end
+class TStartString
+special Token
+end
+class TMidString
+special Token
+end
+class TEndString
+special Token
+end
+class EOF 
+special Token
+end
+class PError
+special EOF
+end
+
+class PModule special Prod end
+class PPackagedecl special Prod end
+class PImport special Prod end
+class PVisibility special Prod end
+class PClassdef special Prod end
+class PClasskind special Prod end
+class PFormaldef special Prod end
+class PSuperclass special Prod end
+class PPropdef special Prod end
+class PAble special Prod end
+class PMethid special Prod end
+class PSignature special Prod end
+class PParam special Prod end
+class PType special Prod end
+class PExpr special Prod end
+class PAssignOp special Prod end
+class PQualified special Prod end
+class PDoc special Prod end
+
+class AModule
+special PModule
+    readable writable attr _n_packagedecl: PPackagedecl 
+    readable writable attr _n_imports: List[PImport] 
+    readable writable attr _n_classdefs: List[PClassdef] 
+end
+class APackagedecl
+special PPackagedecl
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwpackage: TKwpackage 
+    readable writable attr _n_id: TId 
+end
+class AImport
+special PImport
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwimport: TKwimport 
+    readable writable attr _n_id: TId 
+end
+class ANoImport
+special PImport
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwimport: TKwimport 
+    readable writable attr _n_kwend: TKwend 
+end
+class APublicVisibility
+special PVisibility
+end
+class APrivateVisibility
+special PVisibility
+    readable writable attr _n_kwprivate: TKwprivate 
+end
+class AProtectedVisibility
+special PVisibility
+    readable writable attr _n_kwprotected: TKwprotected 
+end
+class AIntrudeVisibility
+special PVisibility
+    readable writable attr _n_kwintrude: TKwintrude 
+end
+class AClassdef
+special PClassdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_classkind: PClasskind 
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_formaldefs: List[PFormaldef] 
+    readable writable attr _n_superclasses: List[PSuperclass] 
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class ATopClassdef
+special PClassdef
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class AMainClassdef
+special PClassdef
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class AConcreteClasskind
+special PClasskind
+    readable writable attr _n_kwclass: TKwclass 
+end
+class AAbstractClasskind
+special PClasskind
+    readable writable attr _n_kwabstract: TKwabstract 
+    readable writable attr _n_kwclass: TKwclass 
+end
+class AInterfaceClasskind
+special PClasskind
+    readable writable attr _n_kwinterface: TKwinterface 
+end
+class AUniversalClasskind
+special PClasskind
+    readable writable attr _n_kwuniversal: TKwuniversal 
+end
+class AFormaldef
+special PFormaldef
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_type: PType 
+end
+class ASuperclass
+special PSuperclass
+    readable writable attr _n_kwspecial: TKwspecial 
+    readable writable attr _n_type: PType 
+end
+class AAttrPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_readable: PAble 
+    readable writable attr _n_writable: PAble 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwattr: TKwattr 
+    readable writable attr _n_id: TAttrid 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_expr: PExpr 
+end
+class AMethPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+end
+class ADeferredMethPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+end
+class AInternMethPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+end
+class AExternMethPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+    readable writable attr _n_extern: TString 
+end
+class AConcreteMethPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+    readable writable attr _n_block: PExpr 
+end
+class AConcreteInitPropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwinit: TKwinit 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+    readable writable attr _n_block: PExpr 
+end
+class AMainMethPropdef
+special PPropdef
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_block: PExpr 
+end
+class ATypePropdef
+special PPropdef
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwtype: TKwtype 
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_type: PType 
+end
+class AReadAble
+special PAble
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_kwreadable: TKwreadable 
+end
+class AWriteAble
+special PAble
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_kwwritable: TKwwritable 
+end
+class AIdMethid
+special PMethid
+    readable writable attr _n_id: TId 
+end
+class APlusMethid
+special PMethid
+    readable writable attr _n_plus: TPlus 
+end
+class AMinusMethid
+special PMethid
+    readable writable attr _n_minus: TMinus 
+end
+class AStarMethid
+special PMethid
+    readable writable attr _n_star: TStar 
+end
+class ASlashMethid
+special PMethid
+    readable writable attr _n_slash: TSlash 
+end
+class APercentMethid
+special PMethid
+    readable writable attr _n_percent: TPercent 
+end
+class AEqMethid
+special PMethid
+    readable writable attr _n_eq: TEq 
+end
+class ANeMethid
+special PMethid
+    readable writable attr _n_ne: TNe 
+end
+class ALeMethid
+special PMethid
+    readable writable attr _n_le: TLe 
+end
+class AGeMethid
+special PMethid
+    readable writable attr _n_ge: TGe 
+end
+class ALtMethid
+special PMethid
+    readable writable attr _n_lt: TLt 
+end
+class AGtMethid
+special PMethid
+    readable writable attr _n_gt: TGt 
+end
+class ABraMethid
+special PMethid
+    readable writable attr _n_obra: TObra 
+    readable writable attr _n_cbra: TCbra 
+end
+class AStarshipMethid
+special PMethid
+    readable writable attr _n_starship: TStarship 
+end
+class AAssignMethid
+special PMethid
+    readable writable attr _n_id: TId 
+    readable writable attr _n_assign: TAssign 
+end
+class ABraassignMethid
+special PMethid
+    readable writable attr _n_obra: TObra 
+    readable writable attr _n_cbra: TCbra 
+    readable writable attr _n_assign: TAssign 
+end
+class ASignature
+special PSignature
+    readable writable attr _n_params: List[PParam] 
+    readable writable attr _n_type: PType 
+end
+class AParam
+special PParam
+    readable writable attr _n_id: TId 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_dotdotdot: TDotdotdot 
+end
+class AType
+special PType
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_types: List[PType] 
+end
+class ABlockExpr
+special PExpr
+    readable writable attr _n_expr: List[PExpr] 
+end
+class AVardeclExpr
+special PExpr
+    readable writable attr _n_kwvar: TKwvar 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_expr: PExpr 
+end
+class AReturnExpr
+special PExpr
+    readable writable attr _n_kwreturn: TKwreturn 
+    readable writable attr _n_expr: PExpr 
+end
+class ABreakExpr
+special PExpr
+    readable writable attr _n_kwbreak: TKwbreak 
+end
+class AAbortExpr
+special PExpr
+    readable writable attr _n_kwabort: TKwabort 
+end
+class AContinueExpr
+special PExpr
+    readable writable attr _n_kwcontinue: TKwcontinue 
+end
+class ADoExpr
+special PExpr
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AIfExpr
+special PExpr
+    readable writable attr _n_kwif: TKwif 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_then: PExpr 
+    readable writable attr _n_else: PExpr 
+end
+class AIfexprExpr
+special PExpr
+    readable writable attr _n_kwif: TKwif 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_kwthen: TKwthen 
+    readable writable attr _n_then: PExpr 
+    readable writable attr _n_kwelse: TKwelse 
+    readable writable attr _n_else: PExpr 
+end
+class AWhileExpr
+special PExpr
+    readable writable attr _n_kwwhile: TKwwhile 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AForExpr
+special PExpr
+    readable writable attr _n_vardecl: PExpr 
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AForVardeclExpr
+special PExpr
+    readable writable attr _n_kwfor: TKwfor 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_expr: PExpr 
+end
+class AAssertExpr
+special PExpr
+    readable writable attr _n_kwassert: TKwassert 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_expr: PExpr 
+end
+class AOnceExpr
+special PExpr
+    readable writable attr _n_kwonce: TKwonce 
+    readable writable attr _n_expr: PExpr 
+end
+class ASendExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+end
+class ABinopExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AOrExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AAndExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ANotExpr
+special PExpr
+    readable writable attr _n_kwnot: TKwnot 
+    readable writable attr _n_expr: PExpr 
+end
+class AEqExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AEeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ANeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ALtExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ALeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AGtExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AGeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AIsaExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_type: PType 
+end
+class APlusExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AMinusExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AStarshipExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AStarExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ASlashExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class APercentExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AUminusExpr
+special PExpr
+    readable writable attr _n_minus: TMinus 
+    readable writable attr _n_expr: PExpr 
+end
+class ANewExpr
+special PExpr
+    readable writable attr _n_kwnew: TKwnew 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+end
+class AAttrExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TAttrid 
+end
+class AAttrAssignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TAttrid 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_value: PExpr 
+end
+class AAttrReassignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TAttrid 
+    readable writable attr _n_assign_op: PAssignOp 
+    readable writable attr _n_value: PExpr 
+end
+class ACallExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+end
+class ACallAssignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_value: PExpr 
+end
+class ACallReassignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+    readable writable attr _n_assign_op: PAssignOp 
+    readable writable attr _n_value: PExpr 
+end
+class ASuperExpr
+special PExpr
+    readable writable attr _n_qualified: PQualified 
+    readable writable attr _n_kwsuper: TKwsuper 
+    readable writable attr _n_args: List[PExpr] 
+end
+class AInitExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_kwinit: TKwinit 
+    readable writable attr _n_args: List[PExpr] 
+end
+class ABraExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_args: List[PExpr] 
+end
+class ABraAssignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_args: List[PExpr] 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_value: PExpr 
+end
+class ABraReassignExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_args: List[PExpr] 
+    readable writable attr _n_assign_op: PAssignOp 
+    readable writable attr _n_value: PExpr 
+end
+class AVarExpr
+special PExpr
+    readable writable attr _n_id: TId 
+end
+class AVarAssignExpr
+special PExpr
+    readable writable attr _n_id: TId 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_value: PExpr 
+end
+class AVarReassignExpr
+special PExpr
+    readable writable attr _n_id: TId 
+    readable writable attr _n_assign_op: PAssignOp 
+    readable writable attr _n_value: PExpr 
+end
+class ARangeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ACrangeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AOrangeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AArrayExpr
+special PExpr
+    readable writable attr _n_exprs: List[PExpr] 
+end
+class ASelfExpr
+special PExpr
+    readable writable attr _n_kwself: TKwself 
+end
+class AImplicitSelfExpr
+special PExpr
+end
+class ATrueExpr
+special PExpr
+    readable writable attr _n_kwtrue: TKwtrue 
+end
+class AFalseExpr
+special PExpr
+    readable writable attr _n_kwfalse: TKwfalse 
+end
+class ANullExpr
+special PExpr
+    readable writable attr _n_kwnull: TKwnull 
+end
+class AIntExpr
+special PExpr
+    readable writable attr _n_number: TNumber 
+end
+class AFloatExpr
+special PExpr
+    readable writable attr _n_float: TFloat 
+end
+class ACharExpr
+special PExpr
+    readable writable attr _n_char: TChar 
+end
+class AStringExpr
+special PExpr
+    readable writable attr _n_string: TString 
+end
+class AStartStringExpr
+special PExpr
+    readable writable attr _n_string: TStartString 
+end
+class AMidStringExpr
+special PExpr
+    readable writable attr _n_string: TMidString 
+end
+class AEndStringExpr
+special PExpr
+    readable writable attr _n_string: TEndString 
+end
+class ASuperstringExpr
+special PExpr
+    readable writable attr _n_exprs: List[PExpr] 
+end
+class AParExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+end
+class APlusAssignOp
+special PAssignOp
+    readable writable attr _n_pluseq: TPluseq 
+end
+class AMinusAssignOp
+special PAssignOp
+    readable writable attr _n_minuseq: TMinuseq 
+end
+class AQualified
+special PQualified
+    readable writable attr _n_id: List[TId] 
+    readable writable attr _n_classid: TClassid 
+end
+class ADoc
+special PDoc
+    readable writable attr _n_comment: List[TComment] 
+end
+
+class Start
+special Prod
+    readable writable attr _n_base: PModule 
+    readable writable attr _n_eof: EOF 
+end
diff --git a/src/parser/parser_nodes.nit b/src/parser/parser_nodes.nit
new file mode 100644 (file)
index 0000000..43e3541
--- /dev/null
@@ -0,0 +1,872 @@
+# Raw AST node hierarchy.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_nodes
+
+# Root of the AST hierarchy
+abstract class PNode
+end
+
+# Ancestor of all tokens
+abstract class Token
+special PNode
+end
+
+# Ancestor of all productions
+abstract class Prod
+special PNode
+end
+class TEol
+special Token
+end
+class TComment
+special Token
+end
+class TKwpackage
+special Token
+end
+class TKwimport
+special Token
+end
+class TKwclass
+special Token
+end
+class TKwabstract
+special Token
+end
+class TKwinterface
+special Token
+end
+class TKwuniversal
+special Token
+end
+class TKwspecial
+special Token
+end
+class TKwend
+special Token
+end
+class TKwmeth
+special Token
+end
+class TKwtype
+special Token
+end
+class TKwattr
+special Token
+end
+class TKwinit
+special Token
+end
+class TKwredef
+special Token
+end
+class TKwis
+special Token
+end
+class TKwdo
+special Token
+end
+class TKwreadable
+special Token
+end
+class TKwwritable
+special Token
+end
+class TKwvar
+special Token
+end
+class TKwintern
+special Token
+end
+class TKwextern
+special Token
+end
+class TKwprotected
+special Token
+end
+class TKwprivate
+special Token
+end
+class TKwintrude
+special Token
+end
+class TKwif
+special Token
+end
+class TKwthen
+special Token
+end
+class TKwelse
+special Token
+end
+class TKwwhile
+special Token
+end
+class TKwfor
+special Token
+end
+class TKwin
+special Token
+end
+class TKwand
+special Token
+end
+class TKwor
+special Token
+end
+class TKwnot
+special Token
+end
+class TKwreturn
+special Token
+end
+class TKwcontinue
+special Token
+end
+class TKwbreak
+special Token
+end
+class TKwabort
+special Token
+end
+class TKwassert
+special Token
+end
+class TKwnew
+special Token
+end
+class TKwisa
+special Token
+end
+class TKwonce
+special Token
+end
+class TKwsuper
+special Token
+end
+class TKwself
+special Token
+end
+class TKwtrue
+special Token
+end
+class TKwfalse
+special Token
+end
+class TKwnull
+special Token
+end
+class TOpar
+special Token
+end
+class TCpar
+special Token
+end
+class TObra
+special Token
+end
+class TCbra
+special Token
+end
+class TComma
+special Token
+end
+class TColumn
+special Token
+end
+class TQuad
+special Token
+end
+class TAssign
+special Token
+end
+class TPluseq
+special Token
+end
+class TMinuseq
+special Token
+end
+class TDotdotdot
+special Token
+end
+class TDotdot
+special Token
+end
+class TDot
+special Token
+end
+class TPlus
+special Token
+end
+class TMinus
+special Token
+end
+class TStar
+special Token
+end
+class TSlash
+special Token
+end
+class TPercent
+special Token
+end
+class TEq
+special Token
+end
+class TNe
+special Token
+end
+class TLt
+special Token
+end
+class TLe
+special Token
+end
+class TGt
+special Token
+end
+class TGe
+special Token
+end
+class TStarship
+special Token
+end
+class TClassid
+special Token
+end
+class TId
+special Token
+end
+class TAttrid
+special Token
+end
+class TNumber
+special Token
+end
+class TFloat
+special Token
+end
+class TChar
+special Token
+end
+class TString
+special Token
+end
+class TStartString
+special Token
+end
+class TMidString
+special Token
+end
+class TEndString
+special Token
+end
+class EOF 
+special Token
+end
+class PError
+special EOF
+end
+
+class PModule special Prod end
+class PPackagedecl special Prod end
+class PImport special Prod end
+class PVisibility special Prod end
+class PClassdef special Prod end
+class PClasskind special Prod end
+class PFormaldef special Prod end
+class PSuperclass special Prod end
+class PPropdef special Prod 
+    readable writable attr _n_doc: PDoc
+end
+class PAble special Prod
+    readable writable attr _n_kwredef: TKwredef 
+end
+class PMethid special Prod end
+class PSignature special Prod end
+class PParam
+special Prod
+    readable writable attr _n_id: TId 
+    readable writable attr _n_type: PType 
+end
+class PType special Prod end
+class PExpr special Prod end
+class PAssignOp special Prod end
+class PQualified special Prod end
+class PDoc special Prod end
+
+class AModule
+special PModule
+    readable writable attr _n_packagedecl: PPackagedecl 
+    readable writable attr _n_imports: List[PImport] 
+    readable writable attr _n_classdefs: List[PClassdef] 
+end
+class APackagedecl
+special PPackagedecl
+    readable writable attr _n_doc: PDoc 
+    readable writable attr _n_kwpackage: TKwpackage 
+    readable writable attr _n_id: TId 
+end
+class AImport
+special PImport
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwimport: TKwimport 
+    readable writable attr _n_id: TId 
+end
+class ANoImport
+special PImport
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwimport: TKwimport 
+    readable writable attr _n_kwend: TKwend 
+end
+class APublicVisibility
+special PVisibility
+end
+class APrivateVisibility
+special PVisibility
+    readable writable attr _n_kwprivate: TKwprivate 
+end
+class AProtectedVisibility
+special PVisibility
+    readable writable attr _n_kwprotected: TKwprotected 
+end
+class AIntrudeVisibility
+special PVisibility
+    readable writable attr _n_kwintrude: TKwintrude 
+end
+class AClassdef
+special PClassdef
+    readable writable attr _n_doc: PDoc
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_classkind: PClasskind 
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_formaldefs: List[PFormaldef] 
+    readable writable attr _n_superclasses: List[PSuperclass] 
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class ATopClassdef
+special PClassdef
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class AMainClassdef
+special PClassdef
+    readable writable attr _n_propdefs: List[PPropdef] 
+end
+class AConcreteClasskind
+special PClasskind
+    readable writable attr _n_kwclass: TKwclass 
+end
+class AAbstractClasskind
+special PClasskind
+    readable writable attr _n_kwabstract: TKwabstract 
+    readable writable attr _n_kwclass: TKwclass 
+end
+class AInterfaceClasskind
+special PClasskind
+    readable writable attr _n_kwinterface: TKwinterface 
+end
+class AUniversalClasskind
+special PClasskind
+    readable writable attr _n_kwuniversal: TKwuniversal 
+end
+class AFormaldef
+special PFormaldef
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_type: PType 
+end
+class ASuperclass
+special PSuperclass
+    readable writable attr _n_kwspecial: TKwspecial 
+    readable writable attr _n_type: PType 
+end
+class AAttrPropdef
+special PPropdef
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwattr: TKwattr 
+    readable writable attr _n_id: TAttrid 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_readable: PAble 
+    readable writable attr _n_writable: PAble 
+    readable writable attr _n_expr: PExpr 
+end
+class AMethPropdef
+special PPropdef
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_methid: PMethid 
+    readable writable attr _n_signature: PSignature 
+end
+class ADeferredMethPropdef
+special AMethPropdef
+    readable writable attr _n_kwmeth: TKwmeth 
+end
+class AInternMethPropdef
+special AMethPropdef
+    readable writable attr _n_kwmeth: TKwmeth 
+end
+class AExternMethPropdef
+special AMethPropdef
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_extern: TString 
+end
+class AConcreteMethPropdef
+special AMethPropdef
+    readable writable attr _n_kwmeth: TKwmeth 
+    readable writable attr _n_block: PExpr 
+end
+class AConcreteInitPropdef
+special AConcreteMethPropdef
+    readable writable attr _n_kwinit: TKwinit 
+end
+class AMainMethPropdef
+special AConcreteMethPropdef
+end
+class ATypePropdef
+special PPropdef
+    readable writable attr _n_kwredef: TKwredef 
+    readable writable attr _n_visibility: PVisibility 
+    readable writable attr _n_kwtype: TKwtype 
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_type: PType 
+end
+class AReadAble
+special PAble
+    readable writable attr _n_kwreadable: TKwreadable 
+end
+class AWriteAble
+special PAble
+    readable writable attr _n_kwwritable: TKwwritable 
+end
+class AIdMethid
+special PMethid
+    readable writable attr _n_id: TId 
+end
+class APlusMethid
+special PMethid
+    readable writable attr _n_plus: TPlus 
+end
+class AMinusMethid
+special PMethid
+    readable writable attr _n_minus: TMinus 
+end
+class AStarMethid
+special PMethid
+    readable writable attr _n_star: TStar 
+end
+class ASlashMethid
+special PMethid
+    readable writable attr _n_slash: TSlash 
+end
+class APercentMethid
+special PMethid
+    readable writable attr _n_percent: TPercent 
+end
+class AEqMethid
+special PMethid
+    readable writable attr _n_eq: TEq 
+end
+class ANeMethid
+special PMethid
+    readable writable attr _n_ne: TNe 
+end
+class ALeMethid
+special PMethid
+    readable writable attr _n_le: TLe 
+end
+class AGeMethid
+special PMethid
+    readable writable attr _n_ge: TGe 
+end
+class ALtMethid
+special PMethid
+    readable writable attr _n_lt: TLt 
+end
+class AGtMethid
+special PMethid
+    readable writable attr _n_gt: TGt 
+end
+class ABraMethid
+special PMethid
+    readable writable attr _n_obra: TObra 
+    readable writable attr _n_cbra: TCbra 
+end
+class AStarshipMethid
+special PMethid
+    readable writable attr _n_starship: TStarship 
+end
+class AAssignMethid
+special PMethid
+    readable writable attr _n_id: TId 
+    readable writable attr _n_assign: TAssign 
+end
+class ABraassignMethid
+special PMethid
+    readable writable attr _n_obra: TObra 
+    readable writable attr _n_cbra: TCbra 
+    readable writable attr _n_assign: TAssign 
+end
+class ASignature
+special PSignature
+    readable writable attr _n_params: List[PParam] 
+    readable writable attr _n_type: PType 
+end
+class AParam
+special PParam
+    readable writable attr _n_dotdotdot: TDotdotdot 
+end
+class AType
+special PType
+    readable writable attr _n_id: TClassid 
+    readable writable attr _n_types: List[PType] 
+end
+
+
+
+class ABlockExpr
+special PExpr
+    readable writable attr _n_expr: List[PExpr] 
+end
+class AVardeclExpr
+special PExpr
+    readable writable attr _n_kwvar: TKwvar 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_expr: PExpr 
+end
+class AReturnExpr
+special PExpr
+    readable writable attr _n_kwreturn: TKwreturn 
+    readable writable attr _n_expr: PExpr 
+end
+class ABreakExpr
+special PExpr
+    readable writable attr _n_kwbreak: TKwbreak 
+end
+class AAbortExpr
+special PExpr
+    readable writable attr _n_kwabort: TKwabort 
+end
+class AContinueExpr
+special PExpr
+    readable writable attr _n_kwcontinue: TKwcontinue 
+end
+class ADoExpr
+special PExpr
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AIfExpr
+special PExpr
+    readable writable attr _n_kwif: TKwif 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_then: PExpr 
+    readable writable attr _n_else: PExpr 
+end
+class AIfexprExpr
+special PExpr
+    readable writable attr _n_kwif: TKwif 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_kwthen: TKwthen 
+    readable writable attr _n_then: PExpr 
+    readable writable attr _n_kwelse: TKwelse 
+    readable writable attr _n_else: PExpr 
+end
+class AWhileExpr
+special PExpr
+    readable writable attr _n_kwwhile: TKwwhile 
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AForExpr
+special PExpr
+    readable writable attr _n_vardecl: PExpr 
+    readable writable attr _n_kwdo: TKwdo 
+    readable writable attr _n_block: PExpr 
+end
+class AForVardeclExpr
+special PExpr
+    readable writable attr _n_kwfor: TKwfor 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_expr: PExpr 
+end
+class AAssertExpr
+special PExpr
+    readable writable attr _n_kwassert: TKwassert 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_expr: PExpr 
+end
+class AAssignFormExpr
+special PExpr
+    readable writable attr _n_assign: TAssign 
+    readable writable attr _n_value: PExpr 
+end
+class AReassignFormExpr
+special PExpr
+    readable writable attr _n_assign_op: PAssignOp
+    readable writable attr _n_value: PExpr 
+end
+class AOnceExpr
+special AProxyExpr
+    readable writable attr _n_kwonce: TKwonce 
+end
+class ASendExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+end
+class ABinopExpr
+special ASendExpr
+    readable writable attr _n_expr2: PExpr 
+end
+class ABoolExpr
+special PExpr
+end
+class AOrExpr
+special ABoolExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class AAndExpr
+special ABoolExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ANotExpr
+special ABoolExpr
+    readable writable attr _n_kwnot: TKwnot 
+    readable writable attr _n_expr: PExpr 
+end
+class AEqExpr
+special ABinopExpr
+end
+class AEeExpr
+special ABoolExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ANeExpr
+special ABinopExpr
+end
+class ALtExpr
+special ABinopExpr
+end
+class ALeExpr
+special ABinopExpr
+end
+class AGtExpr
+special ABinopExpr
+end
+class AGeExpr
+special ABinopExpr
+end
+class AIsaExpr
+special ABoolExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_type: PType 
+end
+class APlusExpr
+special ABinopExpr
+end
+class AMinusExpr
+special ABinopExpr
+end
+class AStarshipExpr
+special ABinopExpr
+end
+class AStarExpr
+special ABinopExpr
+end
+class ASlashExpr
+special ABinopExpr
+end
+class APercentExpr
+special ABinopExpr
+end
+class AUminusExpr
+special ASendExpr
+    readable writable attr _n_minus: TMinus 
+end
+class ANewExpr
+special PExpr
+    readable writable attr _n_kwnew: TKwnew 
+    readable writable attr _n_type: PType 
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+end
+class AAttrFormExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_id: TAttrid 
+end
+class AAttrExpr
+special AAttrFormExpr
+end
+class AAttrAssignExpr
+special AAttrFormExpr 
+special AAssignFormExpr 
+end
+class ACallFormExpr
+special ASendExpr
+    readable writable attr _n_id: TId 
+    readable writable attr _n_args: List[PExpr] 
+end
+class AAttrReassignExpr
+special PExpr
+special AAttrFormExpr 
+special AReassignFormExpr 
+end
+class ACallExpr
+special ACallFormExpr
+end
+class ACallAssignExpr
+special ACallFormExpr
+special AAssignFormExpr 
+end
+class ACallReassignExpr
+special PExpr
+special ACallFormExpr
+special AReassignFormExpr 
+end
+class ASuperExpr
+special PExpr
+    readable writable attr _n_qualified: PQualified 
+    readable writable attr _n_kwsuper: TKwsuper 
+    readable writable attr _n_args: List[PExpr] 
+end
+class AInitExpr
+special ASendExpr
+    readable writable attr _n_kwinit: TKwinit 
+    readable writable attr _n_args: List[PExpr] 
+end
+class ABraFormExpr
+special ASendExpr
+    readable writable attr _n_args: List[PExpr] 
+end
+class ABraExpr
+special ABraFormExpr
+end
+class ABraAssignExpr
+special ABraFormExpr
+special AAssignFormExpr 
+end
+class AVarFormExpr
+special PExpr
+    readable writable attr _n_id: TId 
+end
+class ABraReassignExpr
+special ABraFormExpr
+special AReassignFormExpr 
+end
+class AVarExpr
+special AVarFormExpr
+end
+class AVarAssignExpr
+special AVarFormExpr
+special AAssignFormExpr 
+end
+class AVarReassignExpr
+special AVarFormExpr
+special AReassignFormExpr 
+end
+class ARangeExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+    readable writable attr _n_expr2: PExpr 
+end
+class ACrangeExpr
+special ARangeExpr
+end
+class AOrangeExpr
+special ARangeExpr
+end
+class AArrayExpr
+special PExpr
+    readable writable attr _n_exprs: List[PExpr] 
+end
+class ASelfExpr
+special PExpr
+    readable writable attr _n_kwself: TKwself 
+end
+class AImplicitSelfExpr
+special ASelfExpr
+end
+class ATrueExpr
+special ABoolExpr
+    readable writable attr _n_kwtrue: TKwtrue 
+end
+class AFalseExpr
+special ABoolExpr
+    readable writable attr _n_kwfalse: TKwfalse 
+end
+class ANullExpr
+special PExpr
+    readable writable attr _n_kwnull: TKwnull 
+end
+class AIntExpr
+special PExpr
+    readable writable attr _n_number: TNumber 
+end
+class AFloatExpr
+special PExpr
+    readable writable attr _n_float: TFloat 
+end
+class ACharExpr
+special PExpr
+    readable writable attr _n_char: TChar 
+end
+class AStringFormExpr
+special PExpr
+end
+class AStringExpr
+special AStringFormExpr
+    readable writable attr _n_string: TString 
+end
+class AStartStringExpr
+special AStringFormExpr
+    readable writable attr _n_string: TStartString 
+end
+class AMidStringExpr
+special AStringFormExpr
+    readable writable attr _n_string: TMidString 
+end
+class AEndStringExpr
+special AStringFormExpr
+    readable writable attr _n_string: TEndString 
+end
+class ASuperstringExpr
+special PExpr
+    readable writable attr _n_exprs: List[PExpr] 
+end
+class AParExpr
+special AProxyExpr
+end
+class AProxyExpr
+special PExpr
+    readable writable attr _n_expr: PExpr 
+end
+class APlusAssignOp
+special PAssignOp
+    readable writable attr _n_pluseq: TPluseq 
+end
+class AMinusAssignOp
+special PAssignOp
+    readable writable attr _n_minuseq: TMinuseq 
+end
+class AQualified
+special PQualified
+    readable writable attr _n_id: List[TId] 
+    readable writable attr _n_classid: TClassid 
+end
+class ADoc
+special PDoc
+    readable writable attr _n_comment: List[TComment] 
+end
+
+class Start
+special Prod
+    readable writable attr _n_base: PModule 
+    readable writable attr _n_eof: EOF 
+end
diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit
new file mode 100644 (file)
index 0000000..dd9b34e
--- /dev/null
@@ -0,0 +1,10366 @@
+# Production AST nodes full definition.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_prod
+
+import lexer
+intrude import parser_nodes
+
+redef class PNode
+       # Parent of the node in the AST
+       readable writable attr _parent: PNode 
+
+       # Remove a child from the AST
+       meth remove_child(child: PNode)
+       do
+               replace_child(child, null)
+       end
+
+       # Replace a child with an other node in the AST
+       meth replace_child(old_child: PNode, new_child: PNode) is abstract
+
+       # Replace itself with an other node in the AST
+       meth replace_with(node: PNode)
+       do
+               if (_parent != null) then
+                       _parent.replace_child(self, node)
+               end
+       end
+
+       # Visit all nodes in order.
+       # Thus, call "v.visit(e)" for each node e
+       meth visit_all(v: Visitor) is abstract
+
+       # Visit all nodes in reverse order.
+       # Thus, call "v.visit(e)" for each node e starting from the last child
+       meth visit_all_reverse(v: Visitor) is abstract
+
+       # Give a human readable location of the node.
+       meth locate: String is abstract
+
+       # Debug method: output a message prefixed with the location.
+       meth printl(str: String)
+       do
+               print("{locate}: {str}\n")
+       end
+end
+
+redef class Token
+       redef meth visit_all(v: Visitor) do end
+       redef meth visit_all_reverse(v: Visitor) do end
+       redef meth replace_child(old_child: PNode, new_child: PNode) do end
+
+       redef meth locate: String
+       do
+               return "{filename}:{line},{pos}"
+       end
+end
+
+redef class Prod
+       # The first token of the production node
+       readable writable attr _first_token: Token 
+
+       # The last token of the production node
+       readable writable attr _last_token: Token 
+
+       redef meth locate: String
+       do
+               if first_token == null then
+                       return "????"
+               end
+               var lastpos = last_token.pos + last_token.text.length - 1
+               if first_token.line == last_token.line then
+                       return "{first_token.locate}--{lastpos}"
+               else
+                       return "{first_token.locate}--{last_token.line}:{lastpos}"
+               end
+       end
+
+       redef meth replace_with(n: PNode)
+       do
+               super
+               assert n isa Prod
+               n.first_token = first_token
+               n.last_token = last_token
+       end
+end
+
+# Abstract standard visitor
+class Visitor
+        # Ask the visitor to visit a given node.
+        # Usually automatically called by visit_all* methods.
+        # Concrete visitors should redefine this method.
+        meth visit(e: PNode) is abstract
+end
+
+redef class AModule
+    redef meth n_packagedecl=(n: PPackagedecl)
+    do
+        _n_packagedecl = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_amodule (
+            n_packagedecl: PPackagedecl ,
+            n_imports: Array[Object] , # Should be Array[PImport]
+            n_classdefs: Array[Object]  # Should be Array[PClassdef]
+    )
+    do
+        _n_packagedecl = n_packagedecl
+       if n_packagedecl != null then
+               n_packagedecl.parent = self
+       end
+        _n_imports = new List[PImport]
+       for n in n_imports do
+               assert n isa PImport
+               _n_imports.add(n)
+               n.parent = self
+       end
+        _n_classdefs = new List[PClassdef]
+       for n in n_classdefs do
+               assert n isa PClassdef
+               _n_classdefs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_packagedecl == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PPackagedecl
+                _n_packagedecl = new_child
+           else
+               _n_packagedecl = null
+            end
+            return
+       end
+        for i in [0.._n_imports.length[ do
+            if _n_imports[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PImport
+                    _n_imports[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_imports.remove_at(i)
+                end
+                return
+            end
+        end
+        for i in [0.._n_classdefs.length[ do
+            if _n_classdefs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PClassdef
+                    _n_classdefs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_classdefs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_packagedecl != null then
+            v.visit(_n_packagedecl)
+        end
+            for n in _n_imports do
+                v.visit(n)
+           end
+            for n in _n_classdefs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_packagedecl != null then
+            v.visit(_n_packagedecl)
+        end
+       do
+           var i = _n_imports.length
+            while i >= 0 do
+                v.visit(_n_imports[i])
+               i = i - 1
+           end
+       end
+       do
+           var i = _n_classdefs.length
+            while i >= 0 do
+                v.visit(_n_classdefs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class APackagedecl
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwpackage=(n: TKwpackage)
+    do
+        _n_kwpackage = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_apackagedecl (
+            n_doc: PDoc ,
+            n_kwpackage: TKwpackage ,
+            n_id: TId 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwpackage = n_kwpackage
+       if n_kwpackage != null then
+               n_kwpackage.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwpackage == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwpackage
+                _n_kwpackage = new_child
+           else
+               _n_kwpackage = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwpackage != null then
+            v.visit(_n_kwpackage)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwpackage != null then
+            v.visit(_n_kwpackage)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+end
+redef class AImport
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwimport=(n: TKwimport)
+    do
+        _n_kwimport = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aimport (
+            n_visibility: PVisibility ,
+            n_kwimport: TKwimport ,
+            n_id: TId 
+    )
+    do
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwimport = n_kwimport
+       if n_kwimport != null then
+               n_kwimport.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwimport == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwimport
+                _n_kwimport = new_child
+           else
+               _n_kwimport = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwimport != null then
+            v.visit(_n_kwimport)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwimport != null then
+            v.visit(_n_kwimport)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+end
+redef class ANoImport
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwimport=(n: TKwimport)
+    do
+        _n_kwimport = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwend=(n: TKwend)
+    do
+        _n_kwend = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_anoimport (
+            n_visibility: PVisibility ,
+            n_kwimport: TKwimport ,
+            n_kwend: TKwend 
+    )
+    do
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwimport = n_kwimport
+       if n_kwimport != null then
+               n_kwimport.parent = self
+       end
+        _n_kwend = n_kwend
+       if n_kwend != null then
+               n_kwend.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwimport == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwimport
+                _n_kwimport = new_child
+           else
+               _n_kwimport = null
+            end
+            return
+       end
+        if _n_kwend == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwend
+                _n_kwend = new_child
+           else
+               _n_kwend = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwimport != null then
+            v.visit(_n_kwimport)
+        end
+        if _n_kwend != null then
+            v.visit(_n_kwend)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwimport != null then
+            v.visit(_n_kwimport)
+        end
+        if _n_kwend != null then
+            v.visit(_n_kwend)
+        end
+    end
+end
+redef class APublicVisibility
+
+    private init empty_init do end
+
+    init init_apublicvisibility
+    do
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+    end
+end
+redef class APrivateVisibility
+    redef meth n_kwprivate=(n: TKwprivate)
+    do
+        _n_kwprivate = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aprivatevisibility (
+            n_kwprivate: TKwprivate 
+    )
+    do
+        _n_kwprivate = n_kwprivate
+       if n_kwprivate != null then
+               n_kwprivate.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwprivate == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwprivate
+                _n_kwprivate = new_child
+           else
+               _n_kwprivate = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwprivate != null then
+            v.visit(_n_kwprivate)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwprivate != null then
+            v.visit(_n_kwprivate)
+        end
+    end
+end
+redef class AProtectedVisibility
+    redef meth n_kwprotected=(n: TKwprotected)
+    do
+        _n_kwprotected = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aprotectedvisibility (
+            n_kwprotected: TKwprotected 
+    )
+    do
+        _n_kwprotected = n_kwprotected
+       if n_kwprotected != null then
+               n_kwprotected.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwprotected == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwprotected
+                _n_kwprotected = new_child
+           else
+               _n_kwprotected = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwprotected != null then
+            v.visit(_n_kwprotected)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwprotected != null then
+            v.visit(_n_kwprotected)
+        end
+    end
+end
+redef class AIntrudeVisibility
+    redef meth n_kwintrude=(n: TKwintrude)
+    do
+        _n_kwintrude = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aintrudevisibility (
+            n_kwintrude: TKwintrude 
+    )
+    do
+        _n_kwintrude = n_kwintrude
+       if n_kwintrude != null then
+               n_kwintrude.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwintrude == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwintrude
+                _n_kwintrude = new_child
+           else
+               _n_kwintrude = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwintrude != null then
+            v.visit(_n_kwintrude)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwintrude != null then
+            v.visit(_n_kwintrude)
+        end
+    end
+end
+redef class AClassdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_classkind=(n: PClasskind)
+    do
+        _n_classkind = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TClassid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aclassdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_classkind: PClasskind ,
+            n_id: TClassid ,
+            n_formaldefs: Array[Object] , # Should be Array[PFormaldef]
+            n_superclasses: Array[Object] , # Should be Array[PSuperclass]
+            n_propdefs: Array[Object]  # Should be Array[PPropdef]
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_classkind = n_classkind
+       if n_classkind != null then
+               n_classkind.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_formaldefs = new List[PFormaldef]
+       for n in n_formaldefs do
+               assert n isa PFormaldef
+               _n_formaldefs.add(n)
+               n.parent = self
+       end
+        _n_superclasses = new List[PSuperclass]
+       for n in n_superclasses do
+               assert n isa PSuperclass
+               _n_superclasses.add(n)
+               n.parent = self
+       end
+        _n_propdefs = new List[PPropdef]
+       for n in n_propdefs do
+               assert n isa PPropdef
+               _n_propdefs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_classkind == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PClasskind
+                _n_classkind = new_child
+           else
+               _n_classkind = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TClassid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_formaldefs.length[ do
+            if _n_formaldefs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PFormaldef
+                    _n_formaldefs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_formaldefs.remove_at(i)
+                end
+                return
+            end
+        end
+        for i in [0.._n_superclasses.length[ do
+            if _n_superclasses[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PSuperclass
+                    _n_superclasses[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_superclasses.remove_at(i)
+                end
+                return
+            end
+        end
+        for i in [0.._n_propdefs.length[ do
+            if _n_propdefs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PPropdef
+                    _n_propdefs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_propdefs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_classkind != null then
+            v.visit(_n_classkind)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_formaldefs do
+                v.visit(n)
+           end
+            for n in _n_superclasses do
+                v.visit(n)
+           end
+            for n in _n_propdefs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_classkind != null then
+            v.visit(_n_classkind)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_formaldefs.length
+            while i >= 0 do
+                v.visit(_n_formaldefs[i])
+               i = i - 1
+           end
+       end
+       do
+           var i = _n_superclasses.length
+            while i >= 0 do
+                v.visit(_n_superclasses[i])
+               i = i - 1
+           end
+       end
+       do
+           var i = _n_propdefs.length
+            while i >= 0 do
+                v.visit(_n_propdefs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ATopClassdef
+
+    private init empty_init do end
+
+    init init_atopclassdef (
+            n_propdefs: Array[Object]  # Should be Array[PPropdef]
+    )
+    do
+        _n_propdefs = new List[PPropdef]
+       for n in n_propdefs do
+               assert n isa PPropdef
+               _n_propdefs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_propdefs.length[ do
+            if _n_propdefs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PPropdef
+                    _n_propdefs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_propdefs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_propdefs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_propdefs.length
+            while i >= 0 do
+                v.visit(_n_propdefs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AMainClassdef
+
+    private init empty_init do end
+
+    init init_amainclassdef (
+            n_propdefs: Array[Object]  # Should be Array[PPropdef]
+    )
+    do
+        _n_propdefs = new List[PPropdef]
+       for n in n_propdefs do
+               assert n isa PPropdef
+               _n_propdefs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_propdefs.length[ do
+            if _n_propdefs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PPropdef
+                    _n_propdefs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_propdefs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_propdefs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_propdefs.length
+            while i >= 0 do
+                v.visit(_n_propdefs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AConcreteClasskind
+    redef meth n_kwclass=(n: TKwclass)
+    do
+        _n_kwclass = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aconcreteclasskind (
+            n_kwclass: TKwclass 
+    )
+    do
+        _n_kwclass = n_kwclass
+       if n_kwclass != null then
+               n_kwclass.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwclass == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwclass
+                _n_kwclass = new_child
+           else
+               _n_kwclass = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwclass != null then
+            v.visit(_n_kwclass)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwclass != null then
+            v.visit(_n_kwclass)
+        end
+    end
+end
+redef class AAbstractClasskind
+    redef meth n_kwabstract=(n: TKwabstract)
+    do
+        _n_kwabstract = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwclass=(n: TKwclass)
+    do
+        _n_kwclass = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aabstractclasskind (
+            n_kwabstract: TKwabstract ,
+            n_kwclass: TKwclass 
+    )
+    do
+        _n_kwabstract = n_kwabstract
+       if n_kwabstract != null then
+               n_kwabstract.parent = self
+       end
+        _n_kwclass = n_kwclass
+       if n_kwclass != null then
+               n_kwclass.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwabstract == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwabstract
+                _n_kwabstract = new_child
+           else
+               _n_kwabstract = null
+            end
+            return
+       end
+        if _n_kwclass == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwclass
+                _n_kwclass = new_child
+           else
+               _n_kwclass = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwabstract != null then
+            v.visit(_n_kwabstract)
+        end
+        if _n_kwclass != null then
+            v.visit(_n_kwclass)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwabstract != null then
+            v.visit(_n_kwabstract)
+        end
+        if _n_kwclass != null then
+            v.visit(_n_kwclass)
+        end
+    end
+end
+redef class AInterfaceClasskind
+    redef meth n_kwinterface=(n: TKwinterface)
+    do
+        _n_kwinterface = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_ainterfaceclasskind (
+            n_kwinterface: TKwinterface 
+    )
+    do
+        _n_kwinterface = n_kwinterface
+       if n_kwinterface != null then
+               n_kwinterface.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwinterface == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwinterface
+                _n_kwinterface = new_child
+           else
+               _n_kwinterface = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwinterface != null then
+            v.visit(_n_kwinterface)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwinterface != null then
+            v.visit(_n_kwinterface)
+        end
+    end
+end
+redef class AUniversalClasskind
+    redef meth n_kwuniversal=(n: TKwuniversal)
+    do
+        _n_kwuniversal = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_auniversalclasskind (
+            n_kwuniversal: TKwuniversal 
+    )
+    do
+        _n_kwuniversal = n_kwuniversal
+       if n_kwuniversal != null then
+               n_kwuniversal.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwuniversal == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwuniversal
+                _n_kwuniversal = new_child
+           else
+               _n_kwuniversal = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwuniversal != null then
+            v.visit(_n_kwuniversal)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwuniversal != null then
+            v.visit(_n_kwuniversal)
+        end
+    end
+end
+redef class AFormaldef
+    redef meth n_id=(n: TClassid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aformaldef (
+            n_id: TClassid ,
+            n_type: PType 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TClassid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+end
+redef class ASuperclass
+    redef meth n_kwspecial=(n: TKwspecial)
+    do
+        _n_kwspecial = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_asuperclass (
+            n_kwspecial: TKwspecial ,
+            n_type: PType 
+    )
+    do
+        _n_kwspecial = n_kwspecial
+       if n_kwspecial != null then
+               n_kwspecial.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwspecial == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwspecial
+                _n_kwspecial = new_child
+           else
+               _n_kwspecial = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwspecial != null then
+            v.visit(_n_kwspecial)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwspecial != null then
+            v.visit(_n_kwspecial)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+end
+redef class AAttrPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_readable=(n: PAble)
+    do
+        _n_readable = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_writable=(n: PAble)
+    do
+        _n_writable = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwattr=(n: TKwattr)
+    do
+        _n_kwattr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TAttrid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aattrpropdef (
+            n_doc: PDoc ,
+            n_readable: PAble ,
+            n_writable: PAble ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwattr: TKwattr ,
+            n_id: TAttrid ,
+            n_type: PType ,
+            n_expr: PExpr 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_readable = n_readable
+       if n_readable != null then
+               n_readable.parent = self
+       end
+        _n_writable = n_writable
+       if n_writable != null then
+               n_writable.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwattr = n_kwattr
+       if n_kwattr != null then
+               n_kwattr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_readable == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAble
+                _n_readable = new_child
+           else
+               _n_readable = null
+            end
+            return
+       end
+        if _n_writable == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAble
+                _n_writable = new_child
+           else
+               _n_writable = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwattr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwattr
+                _n_kwattr = new_child
+           else
+               _n_kwattr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAttrid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_readable != null then
+            v.visit(_n_readable)
+        end
+        if _n_writable != null then
+            v.visit(_n_writable)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwattr != null then
+            v.visit(_n_kwattr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_readable != null then
+            v.visit(_n_readable)
+        end
+        if _n_writable != null then
+            v.visit(_n_writable)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwattr != null then
+            v.visit(_n_kwattr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class AMethPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_amethpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_methid: PMethid ,
+            n_signature: PSignature 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+end
+redef class ADeferredMethPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwmeth=(n: TKwmeth)
+    do
+        _n_kwmeth = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_adeferredmethpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwmeth: TKwmeth ,
+            n_methid: PMethid ,
+            n_signature: PSignature 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwmeth = n_kwmeth
+       if n_kwmeth != null then
+               n_kwmeth.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwmeth == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwmeth
+                _n_kwmeth = new_child
+           else
+               _n_kwmeth = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+end
+redef class AInternMethPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwmeth=(n: TKwmeth)
+    do
+        _n_kwmeth = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_ainternmethpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwmeth: TKwmeth ,
+            n_methid: PMethid ,
+            n_signature: PSignature 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwmeth = n_kwmeth
+       if n_kwmeth != null then
+               n_kwmeth.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwmeth == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwmeth
+                _n_kwmeth = new_child
+           else
+               _n_kwmeth = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+    end
+end
+redef class AExternMethPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwmeth=(n: TKwmeth)
+    do
+        _n_kwmeth = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_extern=(n: TString)
+    do
+        _n_extern = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aexternmethpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwmeth: TKwmeth ,
+            n_methid: PMethid ,
+            n_signature: PSignature ,
+            n_extern: TString 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwmeth = n_kwmeth
+       if n_kwmeth != null then
+               n_kwmeth.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+        _n_extern = n_extern
+       if n_extern != null then
+               n_extern.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwmeth == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwmeth
+                _n_kwmeth = new_child
+           else
+               _n_kwmeth = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+        if _n_extern == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TString
+                _n_extern = new_child
+           else
+               _n_extern = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_extern != null then
+            v.visit(_n_extern)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_extern != null then
+            v.visit(_n_extern)
+        end
+    end
+end
+redef class AConcreteMethPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwmeth=(n: TKwmeth)
+    do
+        _n_kwmeth = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aconcretemethpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwmeth: TKwmeth ,
+            n_methid: PMethid ,
+            n_signature: PSignature ,
+            n_block: PExpr 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwmeth = n_kwmeth
+       if n_kwmeth != null then
+               n_kwmeth.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwmeth == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwmeth
+                _n_kwmeth = new_child
+           else
+               _n_kwmeth = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwmeth != null then
+            v.visit(_n_kwmeth)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class AConcreteInitPropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwinit=(n: TKwinit)
+    do
+        _n_kwinit = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_methid=(n: PMethid)
+    do
+        _n_methid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_signature=(n: PSignature)
+    do
+        _n_signature = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aconcreteinitpropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwinit: TKwinit ,
+            n_methid: PMethid ,
+            n_signature: PSignature ,
+            n_block: PExpr 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwinit = n_kwinit
+       if n_kwinit != null then
+               n_kwinit.parent = self
+       end
+        _n_methid = n_methid
+       if n_methid != null then
+               n_methid.parent = self
+       end
+        _n_signature = n_signature
+       if n_signature != null then
+               n_signature.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwinit == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwinit
+                _n_kwinit = new_child
+           else
+               _n_kwinit = null
+            end
+            return
+       end
+        if _n_methid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PMethid
+                _n_methid = new_child
+           else
+               _n_methid = null
+            end
+            return
+       end
+        if _n_signature == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PSignature
+                _n_signature = new_child
+           else
+               _n_signature = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwinit != null then
+            v.visit(_n_kwinit)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwinit != null then
+            v.visit(_n_kwinit)
+        end
+        if _n_methid != null then
+            v.visit(_n_methid)
+        end
+        if _n_signature != null then
+            v.visit(_n_signature)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class AMainMethPropdef
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_amainmethpropdef (
+            n_kwredef: TKwredef ,
+            n_block: PExpr 
+    )
+    do
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class ATypePropdef
+    redef meth n_doc=(n: PDoc)
+    do
+        _n_doc = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_visibility=(n: PVisibility)
+    do
+        _n_visibility = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwtype=(n: TKwtype)
+    do
+        _n_kwtype = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TClassid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_atypepropdef (
+            n_doc: PDoc ,
+            n_kwredef: TKwredef ,
+            n_visibility: PVisibility ,
+            n_kwtype: TKwtype ,
+            n_id: TClassid ,
+            n_type: PType 
+    )
+    do
+        _n_doc = n_doc
+       if n_doc != null then
+               n_doc.parent = self
+       end
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_visibility = n_visibility
+       if n_visibility != null then
+               n_visibility.parent = self
+       end
+        _n_kwtype = n_kwtype
+       if n_kwtype != null then
+               n_kwtype.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_doc == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PDoc
+                _n_doc = new_child
+           else
+               _n_doc = null
+            end
+            return
+       end
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_visibility == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PVisibility
+                _n_visibility = new_child
+           else
+               _n_visibility = null
+            end
+            return
+       end
+        if _n_kwtype == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwtype
+                _n_kwtype = new_child
+           else
+               _n_kwtype = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TClassid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwtype != null then
+            v.visit(_n_kwtype)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_doc != null then
+            v.visit(_n_doc)
+        end
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_visibility != null then
+            v.visit(_n_visibility)
+        end
+        if _n_kwtype != null then
+            v.visit(_n_kwtype)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+end
+redef class AReadAble
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwreadable=(n: TKwreadable)
+    do
+        _n_kwreadable = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_areadable (
+            n_kwredef: TKwredef ,
+            n_kwreadable: TKwreadable 
+    )
+    do
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_kwreadable = n_kwreadable
+       if n_kwreadable != null then
+               n_kwreadable.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_kwreadable == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwreadable
+                _n_kwreadable = new_child
+           else
+               _n_kwreadable = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_kwreadable != null then
+            v.visit(_n_kwreadable)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_kwreadable != null then
+            v.visit(_n_kwreadable)
+        end
+    end
+end
+redef class AWriteAble
+    redef meth n_kwredef=(n: TKwredef)
+    do
+        _n_kwredef = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwwritable=(n: TKwwritable)
+    do
+        _n_kwwritable = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_awriteable (
+            n_kwredef: TKwredef ,
+            n_kwwritable: TKwwritable 
+    )
+    do
+        _n_kwredef = n_kwredef
+       if n_kwredef != null then
+               n_kwredef.parent = self
+       end
+        _n_kwwritable = n_kwwritable
+       if n_kwwritable != null then
+               n_kwwritable.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwredef == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwredef
+                _n_kwredef = new_child
+           else
+               _n_kwredef = null
+            end
+            return
+       end
+        if _n_kwwritable == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwwritable
+                _n_kwwritable = new_child
+           else
+               _n_kwwritable = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_kwwritable != null then
+            v.visit(_n_kwwritable)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwredef != null then
+            v.visit(_n_kwredef)
+        end
+        if _n_kwwritable != null then
+            v.visit(_n_kwwritable)
+        end
+    end
+end
+redef class AIdMethid
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aidmethid (
+            n_id: TId 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+end
+redef class APlusMethid
+    redef meth n_plus=(n: TPlus)
+    do
+        _n_plus = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aplusmethid (
+            n_plus: TPlus 
+    )
+    do
+        _n_plus = n_plus
+       if n_plus != null then
+               n_plus.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_plus == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TPlus
+                _n_plus = new_child
+           else
+               _n_plus = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_plus != null then
+            v.visit(_n_plus)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_plus != null then
+            v.visit(_n_plus)
+        end
+    end
+end
+redef class AMinusMethid
+    redef meth n_minus=(n: TMinus)
+    do
+        _n_minus = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aminusmethid (
+            n_minus: TMinus 
+    )
+    do
+        _n_minus = n_minus
+       if n_minus != null then
+               n_minus.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_minus == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TMinus
+                _n_minus = new_child
+           else
+               _n_minus = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_minus != null then
+            v.visit(_n_minus)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_minus != null then
+            v.visit(_n_minus)
+        end
+    end
+end
+redef class AStarMethid
+    redef meth n_star=(n: TStar)
+    do
+        _n_star = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astarmethid (
+            n_star: TStar 
+    )
+    do
+        _n_star = n_star
+       if n_star != null then
+               n_star.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_star == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TStar
+                _n_star = new_child
+           else
+               _n_star = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_star != null then
+            v.visit(_n_star)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_star != null then
+            v.visit(_n_star)
+        end
+    end
+end
+redef class ASlashMethid
+    redef meth n_slash=(n: TSlash)
+    do
+        _n_slash = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aslashmethid (
+            n_slash: TSlash 
+    )
+    do
+        _n_slash = n_slash
+       if n_slash != null then
+               n_slash.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_slash == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TSlash
+                _n_slash = new_child
+           else
+               _n_slash = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_slash != null then
+            v.visit(_n_slash)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_slash != null then
+            v.visit(_n_slash)
+        end
+    end
+end
+redef class APercentMethid
+    redef meth n_percent=(n: TPercent)
+    do
+        _n_percent = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_apercentmethid (
+            n_percent: TPercent 
+    )
+    do
+        _n_percent = n_percent
+       if n_percent != null then
+               n_percent.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_percent == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TPercent
+                _n_percent = new_child
+           else
+               _n_percent = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_percent != null then
+            v.visit(_n_percent)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_percent != null then
+            v.visit(_n_percent)
+        end
+    end
+end
+redef class AEqMethid
+    redef meth n_eq=(n: TEq)
+    do
+        _n_eq = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aeqmethid (
+            n_eq: TEq 
+    )
+    do
+        _n_eq = n_eq
+       if n_eq != null then
+               n_eq.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_eq == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TEq
+                _n_eq = new_child
+           else
+               _n_eq = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_eq != null then
+            v.visit(_n_eq)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_eq != null then
+            v.visit(_n_eq)
+        end
+    end
+end
+redef class ANeMethid
+    redef meth n_ne=(n: TNe)
+    do
+        _n_ne = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_anemethid (
+            n_ne: TNe 
+    )
+    do
+        _n_ne = n_ne
+       if n_ne != null then
+               n_ne.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_ne == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TNe
+                _n_ne = new_child
+           else
+               _n_ne = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_ne != null then
+            v.visit(_n_ne)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_ne != null then
+            v.visit(_n_ne)
+        end
+    end
+end
+redef class ALeMethid
+    redef meth n_le=(n: TLe)
+    do
+        _n_le = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_alemethid (
+            n_le: TLe 
+    )
+    do
+        _n_le = n_le
+       if n_le != null then
+               n_le.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_le == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TLe
+                _n_le = new_child
+           else
+               _n_le = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_le != null then
+            v.visit(_n_le)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_le != null then
+            v.visit(_n_le)
+        end
+    end
+end
+redef class AGeMethid
+    redef meth n_ge=(n: TGe)
+    do
+        _n_ge = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_agemethid (
+            n_ge: TGe 
+    )
+    do
+        _n_ge = n_ge
+       if n_ge != null then
+               n_ge.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_ge == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TGe
+                _n_ge = new_child
+           else
+               _n_ge = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_ge != null then
+            v.visit(_n_ge)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_ge != null then
+            v.visit(_n_ge)
+        end
+    end
+end
+redef class ALtMethid
+    redef meth n_lt=(n: TLt)
+    do
+        _n_lt = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_altmethid (
+            n_lt: TLt 
+    )
+    do
+        _n_lt = n_lt
+       if n_lt != null then
+               n_lt.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_lt == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TLt
+                _n_lt = new_child
+           else
+               _n_lt = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_lt != null then
+            v.visit(_n_lt)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_lt != null then
+            v.visit(_n_lt)
+        end
+    end
+end
+redef class AGtMethid
+    redef meth n_gt=(n: TGt)
+    do
+        _n_gt = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_agtmethid (
+            n_gt: TGt 
+    )
+    do
+        _n_gt = n_gt
+       if n_gt != null then
+               n_gt.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_gt == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TGt
+                _n_gt = new_child
+           else
+               _n_gt = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_gt != null then
+            v.visit(_n_gt)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_gt != null then
+            v.visit(_n_gt)
+        end
+    end
+end
+redef class ABraMethid
+    redef meth n_obra=(n: TObra)
+    do
+        _n_obra = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_cbra=(n: TCbra)
+    do
+        _n_cbra = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abramethid (
+            n_obra: TObra ,
+            n_cbra: TCbra 
+    )
+    do
+        _n_obra = n_obra
+       if n_obra != null then
+               n_obra.parent = self
+       end
+        _n_cbra = n_cbra
+       if n_cbra != null then
+               n_cbra.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_obra == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TObra
+                _n_obra = new_child
+           else
+               _n_obra = null
+            end
+            return
+       end
+        if _n_cbra == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TCbra
+                _n_cbra = new_child
+           else
+               _n_cbra = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_obra != null then
+            v.visit(_n_obra)
+        end
+        if _n_cbra != null then
+            v.visit(_n_cbra)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_obra != null then
+            v.visit(_n_obra)
+        end
+        if _n_cbra != null then
+            v.visit(_n_cbra)
+        end
+    end
+end
+redef class AStarshipMethid
+    redef meth n_starship=(n: TStarship)
+    do
+        _n_starship = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astarshipmethid (
+            n_starship: TStarship 
+    )
+    do
+        _n_starship = n_starship
+       if n_starship != null then
+               n_starship.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_starship == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TStarship
+                _n_starship = new_child
+           else
+               _n_starship = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_starship != null then
+            v.visit(_n_starship)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_starship != null then
+            v.visit(_n_starship)
+        end
+    end
+end
+redef class AAssignMethid
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aassignmethid (
+            n_id: TId ,
+            n_assign: TAssign 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+    end
+end
+redef class ABraassignMethid
+    redef meth n_obra=(n: TObra)
+    do
+        _n_obra = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_cbra=(n: TCbra)
+    do
+        _n_cbra = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abraassignmethid (
+            n_obra: TObra ,
+            n_cbra: TCbra ,
+            n_assign: TAssign 
+    )
+    do
+        _n_obra = n_obra
+       if n_obra != null then
+               n_obra.parent = self
+       end
+        _n_cbra = n_cbra
+       if n_cbra != null then
+               n_cbra.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_obra == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TObra
+                _n_obra = new_child
+           else
+               _n_obra = null
+            end
+            return
+       end
+        if _n_cbra == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TCbra
+                _n_cbra = new_child
+           else
+               _n_cbra = null
+            end
+            return
+       end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_obra != null then
+            v.visit(_n_obra)
+        end
+        if _n_cbra != null then
+            v.visit(_n_cbra)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_obra != null then
+            v.visit(_n_obra)
+        end
+        if _n_cbra != null then
+            v.visit(_n_cbra)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+    end
+end
+redef class ASignature
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_asignature (
+            n_params: Array[Object] , # Should be Array[PParam]
+            n_type: PType 
+    )
+    do
+        _n_params = new List[PParam]
+       for n in n_params do
+               assert n isa PParam
+               _n_params.add(n)
+               n.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_params.length[ do
+            if _n_params[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PParam
+                    _n_params[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_params.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_params do
+                v.visit(n)
+           end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_params.length
+            while i >= 0 do
+                v.visit(_n_params[i])
+               i = i - 1
+           end
+       end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+end
+redef class AParam
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_dotdotdot=(n: TDotdotdot)
+    do
+        _n_dotdotdot = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aparam (
+            n_id: TId ,
+            n_type: PType ,
+            n_dotdotdot: TDotdotdot 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+        _n_dotdotdot = n_dotdotdot
+       if n_dotdotdot != null then
+               n_dotdotdot.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+        if _n_dotdotdot == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TDotdotdot
+                _n_dotdotdot = new_child
+           else
+               _n_dotdotdot = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_dotdotdot != null then
+            v.visit(_n_dotdotdot)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_dotdotdot != null then
+            v.visit(_n_dotdotdot)
+        end
+    end
+end
+redef class AType
+    redef meth n_id=(n: TClassid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_atype (
+            n_id: TClassid ,
+            n_types: Array[Object]  # Should be Array[PType]
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_types = new List[PType]
+       for n in n_types do
+               assert n isa PType
+               _n_types.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TClassid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_types.length[ do
+            if _n_types[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PType
+                    _n_types[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_types.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_types do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_types.length
+            while i >= 0 do
+                v.visit(_n_types[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ABlockExpr
+
+    private init empty_init do end
+
+    init init_ablockexpr (
+            n_expr: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_expr = new List[PExpr]
+       for n in n_expr do
+               assert n isa PExpr
+               _n_expr.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_expr.length[ do
+            if _n_expr[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_expr[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_expr.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_expr do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_expr.length
+            while i >= 0 do
+                v.visit(_n_expr[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AVardeclExpr
+    redef meth n_kwvar=(n: TKwvar)
+    do
+        _n_kwvar = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_avardeclexpr (
+            n_kwvar: TKwvar ,
+            n_id: TId ,
+            n_type: PType ,
+            n_assign: TAssign ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwvar = n_kwvar
+       if n_kwvar != null then
+               n_kwvar.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwvar == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwvar
+                _n_kwvar = new_child
+           else
+               _n_kwvar = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwvar != null then
+            v.visit(_n_kwvar)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwvar != null then
+            v.visit(_n_kwvar)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class AReturnExpr
+    redef meth n_kwreturn=(n: TKwreturn)
+    do
+        _n_kwreturn = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_areturnexpr (
+            n_kwreturn: TKwreturn ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwreturn = n_kwreturn
+       if n_kwreturn != null then
+               n_kwreturn.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwreturn == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwreturn
+                _n_kwreturn = new_child
+           else
+               _n_kwreturn = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwreturn != null then
+            v.visit(_n_kwreturn)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwreturn != null then
+            v.visit(_n_kwreturn)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class ABreakExpr
+    redef meth n_kwbreak=(n: TKwbreak)
+    do
+        _n_kwbreak = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abreakexpr (
+            n_kwbreak: TKwbreak 
+    )
+    do
+        _n_kwbreak = n_kwbreak
+       if n_kwbreak != null then
+               n_kwbreak.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwbreak == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwbreak
+                _n_kwbreak = new_child
+           else
+               _n_kwbreak = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwbreak != null then
+            v.visit(_n_kwbreak)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwbreak != null then
+            v.visit(_n_kwbreak)
+        end
+    end
+end
+redef class AAbortExpr
+    redef meth n_kwabort=(n: TKwabort)
+    do
+        _n_kwabort = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aabortexpr (
+            n_kwabort: TKwabort 
+    )
+    do
+        _n_kwabort = n_kwabort
+       if n_kwabort != null then
+               n_kwabort.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwabort == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwabort
+                _n_kwabort = new_child
+           else
+               _n_kwabort = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwabort != null then
+            v.visit(_n_kwabort)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwabort != null then
+            v.visit(_n_kwabort)
+        end
+    end
+end
+redef class AContinueExpr
+    redef meth n_kwcontinue=(n: TKwcontinue)
+    do
+        _n_kwcontinue = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acontinueexpr (
+            n_kwcontinue: TKwcontinue 
+    )
+    do
+        _n_kwcontinue = n_kwcontinue
+       if n_kwcontinue != null then
+               n_kwcontinue.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwcontinue == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwcontinue
+                _n_kwcontinue = new_child
+           else
+               _n_kwcontinue = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwcontinue != null then
+            v.visit(_n_kwcontinue)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwcontinue != null then
+            v.visit(_n_kwcontinue)
+        end
+    end
+end
+redef class ADoExpr
+    redef meth n_kwdo=(n: TKwdo)
+    do
+        _n_kwdo = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_adoexpr (
+            n_kwdo: TKwdo ,
+            n_block: PExpr 
+    )
+    do
+        _n_kwdo = n_kwdo
+       if n_kwdo != null then
+               n_kwdo.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwdo == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwdo
+                _n_kwdo = new_child
+           else
+               _n_kwdo = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class AIfExpr
+    redef meth n_kwif=(n: TKwif)
+    do
+        _n_kwif = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_then=(n: PExpr)
+    do
+        _n_then = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_else=(n: PExpr)
+    do
+        _n_else = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aifexpr (
+            n_kwif: TKwif ,
+            n_expr: PExpr ,
+            n_then: PExpr ,
+            n_else: PExpr 
+    )
+    do
+        _n_kwif = n_kwif
+       if n_kwif != null then
+               n_kwif.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_then = n_then
+       if n_then != null then
+               n_then.parent = self
+       end
+        _n_else = n_else
+       if n_else != null then
+               n_else.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwif == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwif
+                _n_kwif = new_child
+           else
+               _n_kwif = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_then == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_then = new_child
+           else
+               _n_then = null
+            end
+            return
+       end
+        if _n_else == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_else = new_child
+           else
+               _n_else = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwif != null then
+            v.visit(_n_kwif)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_then != null then
+            v.visit(_n_then)
+        end
+        if _n_else != null then
+            v.visit(_n_else)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwif != null then
+            v.visit(_n_kwif)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_then != null then
+            v.visit(_n_then)
+        end
+        if _n_else != null then
+            v.visit(_n_else)
+        end
+    end
+end
+redef class AIfexprExpr
+    redef meth n_kwif=(n: TKwif)
+    do
+        _n_kwif = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwthen=(n: TKwthen)
+    do
+        _n_kwthen = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_then=(n: PExpr)
+    do
+        _n_then = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwelse=(n: TKwelse)
+    do
+        _n_kwelse = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_else=(n: PExpr)
+    do
+        _n_else = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aifexprexpr (
+            n_kwif: TKwif ,
+            n_expr: PExpr ,
+            n_kwthen: TKwthen ,
+            n_then: PExpr ,
+            n_kwelse: TKwelse ,
+            n_else: PExpr 
+    )
+    do
+        _n_kwif = n_kwif
+       if n_kwif != null then
+               n_kwif.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_kwthen = n_kwthen
+       if n_kwthen != null then
+               n_kwthen.parent = self
+       end
+        _n_then = n_then
+       if n_then != null then
+               n_then.parent = self
+       end
+        _n_kwelse = n_kwelse
+       if n_kwelse != null then
+               n_kwelse.parent = self
+       end
+        _n_else = n_else
+       if n_else != null then
+               n_else.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwif == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwif
+                _n_kwif = new_child
+           else
+               _n_kwif = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_kwthen == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwthen
+                _n_kwthen = new_child
+           else
+               _n_kwthen = null
+            end
+            return
+       end
+        if _n_then == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_then = new_child
+           else
+               _n_then = null
+            end
+            return
+       end
+        if _n_kwelse == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwelse
+                _n_kwelse = new_child
+           else
+               _n_kwelse = null
+            end
+            return
+       end
+        if _n_else == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_else = new_child
+           else
+               _n_else = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwif != null then
+            v.visit(_n_kwif)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwthen != null then
+            v.visit(_n_kwthen)
+        end
+        if _n_then != null then
+            v.visit(_n_then)
+        end
+        if _n_kwelse != null then
+            v.visit(_n_kwelse)
+        end
+        if _n_else != null then
+            v.visit(_n_else)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwif != null then
+            v.visit(_n_kwif)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwthen != null then
+            v.visit(_n_kwthen)
+        end
+        if _n_then != null then
+            v.visit(_n_then)
+        end
+        if _n_kwelse != null then
+            v.visit(_n_kwelse)
+        end
+        if _n_else != null then
+            v.visit(_n_else)
+        end
+    end
+end
+redef class AWhileExpr
+    redef meth n_kwwhile=(n: TKwwhile)
+    do
+        _n_kwwhile = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwdo=(n: TKwdo)
+    do
+        _n_kwdo = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_awhileexpr (
+            n_kwwhile: TKwwhile ,
+            n_expr: PExpr ,
+            n_kwdo: TKwdo ,
+            n_block: PExpr 
+    )
+    do
+        _n_kwwhile = n_kwwhile
+       if n_kwwhile != null then
+               n_kwwhile.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_kwdo = n_kwdo
+       if n_kwdo != null then
+               n_kwdo.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwwhile == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwwhile
+                _n_kwwhile = new_child
+           else
+               _n_kwwhile = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_kwdo == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwdo
+                _n_kwdo = new_child
+           else
+               _n_kwdo = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwwhile != null then
+            v.visit(_n_kwwhile)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwwhile != null then
+            v.visit(_n_kwwhile)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class AForExpr
+    redef meth n_vardecl=(n: PExpr)
+    do
+        _n_vardecl = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwdo=(n: TKwdo)
+    do
+        _n_kwdo = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_block=(n: PExpr)
+    do
+        _n_block = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aforexpr (
+            n_vardecl: PExpr ,
+            n_kwdo: TKwdo ,
+            n_block: PExpr 
+    )
+    do
+        _n_vardecl = n_vardecl
+       if n_vardecl != null then
+               n_vardecl.parent = self
+       end
+        _n_kwdo = n_kwdo
+       if n_kwdo != null then
+               n_kwdo.parent = self
+       end
+        _n_block = n_block
+       if n_block != null then
+               n_block.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_vardecl == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_vardecl = new_child
+           else
+               _n_vardecl = null
+            end
+            return
+       end
+        if _n_kwdo == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwdo
+                _n_kwdo = new_child
+           else
+               _n_kwdo = null
+            end
+            return
+       end
+        if _n_block == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_block = new_child
+           else
+               _n_block = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_vardecl != null then
+            v.visit(_n_vardecl)
+        end
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_vardecl != null then
+            v.visit(_n_vardecl)
+        end
+        if _n_kwdo != null then
+            v.visit(_n_kwdo)
+        end
+        if _n_block != null then
+            v.visit(_n_block)
+        end
+    end
+end
+redef class AForVardeclExpr
+    redef meth n_kwfor=(n: TKwfor)
+    do
+        _n_kwfor = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aforvardeclexpr (
+            n_kwfor: TKwfor ,
+            n_id: TId ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwfor = n_kwfor
+       if n_kwfor != null then
+               n_kwfor.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwfor == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwfor
+                _n_kwfor = new_child
+           else
+               _n_kwfor = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwfor != null then
+            v.visit(_n_kwfor)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwfor != null then
+            v.visit(_n_kwfor)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class AAssertExpr
+    redef meth n_kwassert=(n: TKwassert)
+    do
+        _n_kwassert = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aassertexpr (
+            n_kwassert: TKwassert ,
+            n_id: TId ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwassert = n_kwassert
+       if n_kwassert != null then
+               n_kwassert.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwassert == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwassert
+                _n_kwassert = new_child
+           else
+               _n_kwassert = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwassert != null then
+            v.visit(_n_kwassert)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwassert != null then
+            v.visit(_n_kwassert)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class AOnceExpr
+    redef meth n_kwonce=(n: TKwonce)
+    do
+        _n_kwonce = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aonceexpr (
+            n_kwonce: TKwonce ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwonce = n_kwonce
+       if n_kwonce != null then
+               n_kwonce.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwonce == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwonce
+                _n_kwonce = new_child
+           else
+               _n_kwonce = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwonce != null then
+            v.visit(_n_kwonce)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwonce != null then
+            v.visit(_n_kwonce)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class ASendExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_asendexpr (
+            n_expr: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class ABinopExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abinopexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AOrExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aorexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AAndExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aandexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ANotExpr
+    redef meth n_kwnot=(n: TKwnot)
+    do
+        _n_kwnot = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_anotexpr (
+            n_kwnot: TKwnot ,
+            n_expr: PExpr 
+    )
+    do
+        _n_kwnot = n_kwnot
+       if n_kwnot != null then
+               n_kwnot.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwnot == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwnot
+                _n_kwnot = new_child
+           else
+               _n_kwnot = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwnot != null then
+            v.visit(_n_kwnot)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwnot != null then
+            v.visit(_n_kwnot)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class AEqExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aeqexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AEeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aeeexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ANeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aneexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ALtExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_altexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ALeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aleexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AGtExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_agtexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AGeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_ageexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AIsaExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aisaexpr (
+            n_expr: PExpr ,
+            n_type: PType 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+    end
+end
+redef class APlusExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aplusexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AMinusExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aminusexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AStarshipExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astarshipexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AStarExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astarexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ASlashExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aslashexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class APercentExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_apercentexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AUminusExpr
+    redef meth n_minus=(n: TMinus)
+    do
+        _n_minus = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_auminusexpr (
+            n_minus: TMinus ,
+            n_expr: PExpr 
+    )
+    do
+        _n_minus = n_minus
+       if n_minus != null then
+               n_minus.parent = self
+       end
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_minus == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TMinus
+                _n_minus = new_child
+           else
+               _n_minus = null
+            end
+            return
+       end
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_minus != null then
+            v.visit(_n_minus)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_minus != null then
+            v.visit(_n_minus)
+        end
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class ANewExpr
+    redef meth n_kwnew=(n: TKwnew)
+    do
+        _n_kwnew = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_type=(n: PType)
+    do
+        _n_type = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_anewexpr (
+            n_kwnew: TKwnew ,
+            n_type: PType ,
+            n_id: TId ,
+            n_args: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_kwnew = n_kwnew
+       if n_kwnew != null then
+               n_kwnew.parent = self
+       end
+        _n_type = n_type
+       if n_type != null then
+               n_type.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwnew == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwnew
+                _n_kwnew = new_child
+           else
+               _n_kwnew = null
+            end
+            return
+       end
+        if _n_type == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PType
+                _n_type = new_child
+           else
+               _n_type = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwnew != null then
+            v.visit(_n_kwnew)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwnew != null then
+            v.visit(_n_kwnew)
+        end
+        if _n_type != null then
+            v.visit(_n_type)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AAttrExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TAttrid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aattrexpr (
+            n_expr: PExpr ,
+            n_id: TAttrid 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAttrid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+end
+redef class AAttrAssignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TAttrid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aattrassignexpr (
+            n_expr: PExpr ,
+            n_id: TAttrid ,
+            n_assign: TAssign ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAttrid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class AAttrReassignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TAttrid)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign_op=(n: PAssignOp)
+    do
+        _n_assign_op = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aattrreassignexpr (
+            n_expr: PExpr ,
+            n_id: TAttrid ,
+            n_assign_op: PAssignOp ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_assign_op = n_assign_op
+       if n_assign_op != null then
+               n_assign_op.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAttrid
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_assign_op == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAssignOp
+                _n_assign_op = new_child
+           else
+               _n_assign_op = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class ACallExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acallexpr (
+            n_expr: PExpr ,
+            n_id: TId ,
+            n_args: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ACallAssignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acallassignexpr (
+            n_expr: PExpr ,
+            n_id: TId ,
+            n_args: Array[Object] , # Should be Array[PExpr]
+            n_assign: TAssign ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class ACallReassignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign_op=(n: PAssignOp)
+    do
+        _n_assign_op = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acallreassignexpr (
+            n_expr: PExpr ,
+            n_id: TId ,
+            n_args: Array[Object] , # Should be Array[PExpr]
+            n_assign_op: PAssignOp ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+        _n_assign_op = n_assign_op
+       if n_assign_op != null then
+               n_assign_op.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_assign_op == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAssignOp
+                _n_assign_op = new_child
+           else
+               _n_assign_op = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class ASuperExpr
+    redef meth n_qualified=(n: PQualified)
+    do
+        _n_qualified = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwsuper=(n: TKwsuper)
+    do
+        _n_kwsuper = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_asuperexpr (
+            n_qualified: PQualified ,
+            n_kwsuper: TKwsuper ,
+            n_args: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_qualified = n_qualified
+       if n_qualified != null then
+               n_qualified.parent = self
+       end
+        _n_kwsuper = n_kwsuper
+       if n_kwsuper != null then
+               n_kwsuper.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_qualified == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PQualified
+                _n_qualified = new_child
+           else
+               _n_qualified = null
+            end
+            return
+       end
+        if _n_kwsuper == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwsuper
+                _n_kwsuper = new_child
+           else
+               _n_kwsuper = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_qualified != null then
+            v.visit(_n_qualified)
+        end
+        if _n_kwsuper != null then
+            v.visit(_n_kwsuper)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_qualified != null then
+            v.visit(_n_qualified)
+        end
+        if _n_kwsuper != null then
+            v.visit(_n_kwsuper)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AInitExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_kwinit=(n: TKwinit)
+    do
+        _n_kwinit = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_ainitexpr (
+            n_expr: PExpr ,
+            n_kwinit: TKwinit ,
+            n_args: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_kwinit = n_kwinit
+       if n_kwinit != null then
+               n_kwinit.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_kwinit == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwinit
+                _n_kwinit = new_child
+           else
+               _n_kwinit = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwinit != null then
+            v.visit(_n_kwinit)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_kwinit != null then
+            v.visit(_n_kwinit)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ABraExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abraexpr (
+            n_expr: PExpr ,
+            n_args: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ABraAssignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abraassignexpr (
+            n_expr: PExpr ,
+            n_args: Array[Object] , # Should be Array[PExpr]
+            n_assign: TAssign ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class ABraReassignExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign_op=(n: PAssignOp)
+    do
+        _n_assign_op = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_abrareassignexpr (
+            n_expr: PExpr ,
+            n_args: Array[Object] , # Should be Array[PExpr]
+            n_assign_op: PAssignOp ,
+            n_value: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_args = new List[PExpr]
+       for n in n_args do
+               assert n isa PExpr
+               _n_args.add(n)
+               n.parent = self
+       end
+        _n_assign_op = n_assign_op
+       if n_assign_op != null then
+               n_assign_op.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        for i in [0.._n_args.length[ do
+            if _n_args[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_args[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_args.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_assign_op == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAssignOp
+                _n_assign_op = new_child
+           else
+               _n_assign_op = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+            for n in _n_args do
+                v.visit(n)
+           end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+       do
+           var i = _n_args.length
+            while i >= 0 do
+                v.visit(_n_args[i])
+               i = i - 1
+           end
+       end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class AVarExpr
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_avarexpr (
+            n_id: TId 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+    end
+end
+redef class AVarAssignExpr
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign=(n: TAssign)
+    do
+        _n_assign = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_avarassignexpr (
+            n_id: TId ,
+            n_assign: TAssign ,
+            n_value: PExpr 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_assign = n_assign
+       if n_assign != null then
+               n_assign.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_assign == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TAssign
+                _n_assign = new_child
+           else
+               _n_assign = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign != null then
+            v.visit(_n_assign)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class AVarReassignExpr
+    redef meth n_id=(n: TId)
+    do
+        _n_id = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_assign_op=(n: PAssignOp)
+    do
+        _n_assign_op = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_value=(n: PExpr)
+    do
+        _n_value = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_avarreassignexpr (
+            n_id: TId ,
+            n_assign_op: PAssignOp ,
+            n_value: PExpr 
+    )
+    do
+        _n_id = n_id
+       if n_id != null then
+               n_id.parent = self
+       end
+        _n_assign_op = n_assign_op
+       if n_assign_op != null then
+               n_assign_op.parent = self
+       end
+        _n_value = n_value
+       if n_value != null then
+               n_value.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               _n_id = null
+            end
+            return
+       end
+        if _n_assign_op == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PAssignOp
+                _n_assign_op = new_child
+           else
+               _n_assign_op = null
+            end
+            return
+       end
+        if _n_value == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_value = new_child
+           else
+               _n_value = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_id != null then
+            v.visit(_n_id)
+        end
+        if _n_assign_op != null then
+            v.visit(_n_assign_op)
+        end
+        if _n_value != null then
+            v.visit(_n_value)
+        end
+    end
+end
+redef class ARangeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_arangeexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class ACrangeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acrangeexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AOrangeExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+    redef meth n_expr2=(n: PExpr)
+    do
+        _n_expr2 = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aorangeexpr (
+            n_expr: PExpr ,
+            n_expr2: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+        _n_expr2 = n_expr2
+       if n_expr2 != null then
+               n_expr2.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+        if _n_expr2 == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr2 = new_child
+           else
+               _n_expr2 = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+        if _n_expr2 != null then
+            v.visit(_n_expr2)
+        end
+    end
+end
+redef class AArrayExpr
+
+    private init empty_init do end
+
+    init init_aarrayexpr (
+            n_exprs: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_exprs = new List[PExpr]
+       for n in n_exprs do
+               assert n isa PExpr
+               _n_exprs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_exprs.length[ do
+            if _n_exprs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_exprs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_exprs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_exprs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_exprs.length
+            while i >= 0 do
+                v.visit(_n_exprs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class ASelfExpr
+    redef meth n_kwself=(n: TKwself)
+    do
+        _n_kwself = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aselfexpr (
+            n_kwself: TKwself 
+    )
+    do
+        _n_kwself = n_kwself
+       if n_kwself != null then
+               n_kwself.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwself == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwself
+                _n_kwself = new_child
+           else
+               _n_kwself = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwself != null then
+            v.visit(_n_kwself)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwself != null then
+            v.visit(_n_kwself)
+        end
+    end
+end
+redef class AImplicitSelfExpr
+
+    private init empty_init do end
+
+    init init_aimplicitselfexpr
+    do
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+    end
+end
+redef class ATrueExpr
+    redef meth n_kwtrue=(n: TKwtrue)
+    do
+        _n_kwtrue = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_atrueexpr (
+            n_kwtrue: TKwtrue 
+    )
+    do
+        _n_kwtrue = n_kwtrue
+       if n_kwtrue != null then
+               n_kwtrue.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwtrue == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwtrue
+                _n_kwtrue = new_child
+           else
+               _n_kwtrue = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwtrue != null then
+            v.visit(_n_kwtrue)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwtrue != null then
+            v.visit(_n_kwtrue)
+        end
+    end
+end
+redef class AFalseExpr
+    redef meth n_kwfalse=(n: TKwfalse)
+    do
+        _n_kwfalse = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_afalseexpr (
+            n_kwfalse: TKwfalse 
+    )
+    do
+        _n_kwfalse = n_kwfalse
+       if n_kwfalse != null then
+               n_kwfalse.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwfalse == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwfalse
+                _n_kwfalse = new_child
+           else
+               _n_kwfalse = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwfalse != null then
+            v.visit(_n_kwfalse)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwfalse != null then
+            v.visit(_n_kwfalse)
+        end
+    end
+end
+redef class ANullExpr
+    redef meth n_kwnull=(n: TKwnull)
+    do
+        _n_kwnull = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_anullexpr (
+            n_kwnull: TKwnull 
+    )
+    do
+        _n_kwnull = n_kwnull
+       if n_kwnull != null then
+               n_kwnull.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_kwnull == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwnull
+                _n_kwnull = new_child
+           else
+               _n_kwnull = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_kwnull != null then
+            v.visit(_n_kwnull)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_kwnull != null then
+            v.visit(_n_kwnull)
+        end
+    end
+end
+redef class AIntExpr
+    redef meth n_number=(n: TNumber)
+    do
+        _n_number = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aintexpr (
+            n_number: TNumber 
+    )
+    do
+        _n_number = n_number
+       if n_number != null then
+               n_number.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_number == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TNumber
+                _n_number = new_child
+           else
+               _n_number = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_number != null then
+            v.visit(_n_number)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_number != null then
+            v.visit(_n_number)
+        end
+    end
+end
+redef class AFloatExpr
+    redef meth n_float=(n: TFloat)
+    do
+        _n_float = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_afloatexpr (
+            n_float: TFloat 
+    )
+    do
+        _n_float = n_float
+       if n_float != null then
+               n_float.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_float == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TFloat
+                _n_float = new_child
+           else
+               _n_float = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_float != null then
+            v.visit(_n_float)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_float != null then
+            v.visit(_n_float)
+        end
+    end
+end
+redef class ACharExpr
+    redef meth n_char=(n: TChar)
+    do
+        _n_char = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_acharexpr (
+            n_char: TChar 
+    )
+    do
+        _n_char = n_char
+       if n_char != null then
+               n_char.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_char == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TChar
+                _n_char = new_child
+           else
+               _n_char = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_char != null then
+            v.visit(_n_char)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_char != null then
+            v.visit(_n_char)
+        end
+    end
+end
+redef class AStringExpr
+    redef meth n_string=(n: TString)
+    do
+        _n_string = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astringexpr (
+            n_string: TString 
+    )
+    do
+        _n_string = n_string
+       if n_string != null then
+               n_string.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_string == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TString
+                _n_string = new_child
+           else
+               _n_string = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+end
+redef class AStartStringExpr
+    redef meth n_string=(n: TStartString)
+    do
+        _n_string = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_astartstringexpr (
+            n_string: TStartString 
+    )
+    do
+        _n_string = n_string
+       if n_string != null then
+               n_string.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_string == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TStartString
+                _n_string = new_child
+           else
+               _n_string = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+end
+redef class AMidStringExpr
+    redef meth n_string=(n: TMidString)
+    do
+        _n_string = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_amidstringexpr (
+            n_string: TMidString 
+    )
+    do
+        _n_string = n_string
+       if n_string != null then
+               n_string.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_string == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TMidString
+                _n_string = new_child
+           else
+               _n_string = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+end
+redef class AEndStringExpr
+    redef meth n_string=(n: TEndString)
+    do
+        _n_string = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aendstringexpr (
+            n_string: TEndString 
+    )
+    do
+        _n_string = n_string
+       if n_string != null then
+               n_string.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_string == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TEndString
+                _n_string = new_child
+           else
+               _n_string = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_string != null then
+            v.visit(_n_string)
+        end
+    end
+end
+redef class ASuperstringExpr
+
+    private init empty_init do end
+
+    init init_asuperstringexpr (
+            n_exprs: Array[Object]  # Should be Array[PExpr]
+    )
+    do
+        _n_exprs = new List[PExpr]
+       for n in n_exprs do
+               assert n isa PExpr
+               _n_exprs.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_exprs.length[ do
+            if _n_exprs[i] == old_child then
+                if new_child != null then
+                   assert new_child isa PExpr
+                    _n_exprs[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_exprs.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_exprs do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_exprs.length
+            while i >= 0 do
+                v.visit(_n_exprs[i])
+               i = i - 1
+           end
+       end
+    end
+end
+redef class AParExpr
+    redef meth n_expr=(n: PExpr)
+    do
+        _n_expr = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aparexpr (
+            n_expr: PExpr 
+    )
+    do
+        _n_expr = n_expr
+       if n_expr != null then
+               n_expr.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_expr == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa PExpr
+                _n_expr = new_child
+           else
+               _n_expr = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_expr != null then
+            v.visit(_n_expr)
+        end
+    end
+end
+redef class APlusAssignOp
+    redef meth n_pluseq=(n: TPluseq)
+    do
+        _n_pluseq = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aplusassignop (
+            n_pluseq: TPluseq 
+    )
+    do
+        _n_pluseq = n_pluseq
+       if n_pluseq != null then
+               n_pluseq.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_pluseq == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TPluseq
+                _n_pluseq = new_child
+           else
+               _n_pluseq = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_pluseq != null then
+            v.visit(_n_pluseq)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_pluseq != null then
+            v.visit(_n_pluseq)
+        end
+    end
+end
+redef class AMinusAssignOp
+    redef meth n_minuseq=(n: TMinuseq)
+    do
+        _n_minuseq = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aminusassignop (
+            n_minuseq: TMinuseq 
+    )
+    do
+        _n_minuseq = n_minuseq
+       if n_minuseq != null then
+               n_minuseq.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_minuseq == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TMinuseq
+                _n_minuseq = new_child
+           else
+               _n_minuseq = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_minuseq != null then
+            v.visit(_n_minuseq)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_minuseq != null then
+            v.visit(_n_minuseq)
+        end
+    end
+end
+redef class AQualified
+    redef meth n_classid=(n: TClassid)
+    do
+        _n_classid = n
+        if n != null then
+           n.parent = self
+        end
+    end
+
+    private init empty_init do end
+
+    init init_aqualified (
+            n_id: Array[Object] , # Should be Array[TId]
+            n_classid: TClassid 
+    )
+    do
+        _n_id = new List[TId]
+       for n in n_id do
+               assert n isa TId
+               _n_id.add(n)
+               n.parent = self
+       end
+        _n_classid = n_classid
+       if n_classid != null then
+               n_classid.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_id.length[ do
+            if _n_id[i] == old_child then
+                if new_child != null then
+                   assert new_child isa TId
+                    _n_id[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_id.remove_at(i)
+                end
+                return
+            end
+        end
+        if _n_classid == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TClassid
+                _n_classid = new_child
+           else
+               _n_classid = null
+            end
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_id do
+                v.visit(n)
+           end
+        if _n_classid != null then
+            v.visit(_n_classid)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_id.length
+            while i >= 0 do
+                v.visit(_n_id[i])
+               i = i - 1
+           end
+       end
+        if _n_classid != null then
+            v.visit(_n_classid)
+        end
+    end
+end
+redef class ADoc
+
+    private init empty_init do end
+
+    init init_adoc (
+            n_comment: Array[Object]  # Should be Array[TComment]
+    )
+    do
+        _n_comment = new List[TComment]
+       for n in n_comment do
+               assert n isa TComment
+               _n_comment.add(n)
+               n.parent = self
+       end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        for i in [0.._n_comment.length[ do
+            if _n_comment[i] == old_child then
+                if new_child != null then
+                   assert new_child isa TComment
+                    _n_comment[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_comment.remove_at(i)
+                end
+                return
+            end
+        end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+            for n in _n_comment do
+                v.visit(n)
+           end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+       do
+           var i = _n_comment.length
+            while i >= 0 do
+                v.visit(_n_comment[i])
+               i = i - 1
+           end
+       end
+    end
+end
+
+redef class Start
+    init(
+        n_base: PModule,
+        n_eof: EOF)
+    do
+        _n_base = n_base
+        _n_eof = n_eof
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_base == old_child then
+            if new_child == null then
+            else
+                new_child.parent = self
+               assert new_child isa PModule
+                _n_base = new_child
+            end
+            old_child.parent = null
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_base != null then
+            v.visit(_n_base)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_base != null then
+            v.visit(_n_base)
+        end
+    end
+end
diff --git a/src/parser/parser_tables.nit b/src/parser/parser_tables.nit
new file mode 100644 (file)
index 0000000..bbfe24a
--- /dev/null
@@ -0,0 +1,14630 @@
+# Tables used by the parser.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_tables
+
+# Parser that build a full AST
+class Parser
+       attr _action_table: Array[Array[Int]]
+       private meth build_action_table
+       do
+               _action_table = once [ 
+                       action_table_row1,
+                       action_table_row2,
+                       action_table_row3,
+                       action_table_row4,
+                       action_table_row5,
+                       action_table_row6,
+                       action_table_row7,
+                       action_table_row8,
+                       action_table_row9,
+                       action_table_row10,
+                       action_table_row11,
+                       action_table_row12,
+                       action_table_row13,
+                       action_table_row14,
+                       action_table_row15,
+                       action_table_row16,
+                       action_table_row17,
+                       action_table_row18,
+                       action_table_row19,
+                       action_table_row20,
+                       action_table_row21,
+                       action_table_row22,
+                       action_table_row23,
+                       action_table_row24,
+                       action_table_row25,
+                       action_table_row26,
+                       action_table_row27,
+                       action_table_row28,
+                       action_table_row29,
+                       action_table_row30,
+                       action_table_row31,
+                       action_table_row32,
+                       action_table_row33,
+                       action_table_row34,
+                       action_table_row35,
+                       action_table_row36,
+                       action_table_row37,
+                       action_table_row38,
+                       action_table_row39,
+                       action_table_row40,
+                       action_table_row41,
+                       action_table_row42,
+                       action_table_row43,
+                       action_table_row44,
+                       action_table_row45,
+                       action_table_row46,
+                       action_table_row47,
+                       action_table_row48,
+                       action_table_row49,
+                       action_table_row50,
+                       action_table_row51,
+                       action_table_row52,
+                       action_table_row53,
+                       action_table_row54,
+                       action_table_row55,
+                       action_table_row56,
+                       action_table_row57,
+                       action_table_row58,
+                       action_table_row59,
+                       action_table_row60,
+                       action_table_row61,
+                       action_table_row62,
+                       action_table_row63,
+                       action_table_row64,
+                       action_table_row65,
+                       action_table_row66,
+                       action_table_row67,
+                       action_table_row68,
+                       action_table_row69,
+                       action_table_row70,
+                       action_table_row71,
+                       action_table_row72,
+                       action_table_row73,
+                       action_table_row74,
+                       action_table_row75,
+                       action_table_row76,
+                       action_table_row77,
+                       action_table_row78,
+                       action_table_row79,
+                       action_table_row80,
+                       action_table_row81,
+                       action_table_row82,
+                       action_table_row83,
+                       action_table_row84,
+                       action_table_row85,
+                       action_table_row86,
+                       action_table_row87,
+                       action_table_row88,
+                       action_table_row89,
+                       action_table_row90,
+                       action_table_row91,
+                       action_table_row92,
+                       action_table_row93,
+                       action_table_row94,
+                       action_table_row95,
+                       action_table_row96,
+                       action_table_row97,
+                       action_table_row98,
+                       action_table_row99,
+                       action_table_row100,
+                       action_table_row101,
+                       action_table_row102,
+                       action_table_row103,
+                       action_table_row104,
+                       action_table_row105,
+                       action_table_row106,
+                       action_table_row107,
+                       action_table_row108,
+                       action_table_row109,
+                       action_table_row110,
+                       action_table_row111,
+                       action_table_row112,
+                       action_table_row113,
+                       action_table_row114,
+                       action_table_row115,
+                       action_table_row116,
+                       action_table_row117,
+                       action_table_row118,
+                       action_table_row119,
+                       action_table_row120,
+                       action_table_row121,
+                       action_table_row122,
+                       action_table_row123,
+                       action_table_row124,
+                       action_table_row125,
+                       action_table_row126,
+                       action_table_row127,
+                       action_table_row128,
+                       action_table_row129,
+                       action_table_row130,
+                       action_table_row131,
+                       action_table_row132,
+                       action_table_row133,
+                       action_table_row134,
+                       action_table_row135,
+                       action_table_row136,
+                       action_table_row137,
+                       action_table_row138,
+                       action_table_row139,
+                       action_table_row140,
+                       action_table_row141,
+                       action_table_row142,
+                       action_table_row143,
+                       action_table_row144,
+                       action_table_row145,
+                       action_table_row146,
+                       action_table_row147,
+                       action_table_row148,
+                       action_table_row149,
+                       action_table_row150,
+                       action_table_row151,
+                       action_table_row152,
+                       action_table_row153,
+                       action_table_row154,
+                       action_table_row155,
+                       action_table_row156,
+                       action_table_row157,
+                       action_table_row158,
+                       action_table_row159,
+                       action_table_row160,
+                       action_table_row161,
+                       action_table_row162,
+                       action_table_row163,
+                       action_table_row164,
+                       action_table_row165,
+                       action_table_row166,
+                       action_table_row167,
+                       action_table_row168,
+                       action_table_row169,
+                       action_table_row170,
+                       action_table_row171,
+                       action_table_row172,
+                       action_table_row173,
+                       action_table_row174,
+                       action_table_row175,
+                       action_table_row176,
+                       action_table_row177,
+                       action_table_row178,
+                       action_table_row179,
+                       action_table_row180,
+                       action_table_row181,
+                       action_table_row182,
+                       action_table_row183,
+                       action_table_row184,
+                       action_table_row185,
+                       action_table_row186,
+                       action_table_row187,
+                       action_table_row188,
+                       action_table_row189,
+                       action_table_row190,
+                       action_table_row191,
+                       action_table_row192,
+                       action_table_row193,
+                       action_table_row194,
+                       action_table_row195,
+                       action_table_row196,
+                       action_table_row197,
+                       action_table_row198,
+                       action_table_row199,
+                       action_table_row200,
+                       action_table_row201,
+                       action_table_row202,
+                       action_table_row203,
+                       action_table_row204,
+                       action_table_row205,
+                       action_table_row206,
+                       action_table_row207,
+                       action_table_row208,
+                       action_table_row209,
+                       action_table_row210,
+                       action_table_row211,
+                       action_table_row212,
+                       action_table_row213,
+                       action_table_row214,
+                       action_table_row215,
+                       action_table_row216,
+                       action_table_row217,
+                       action_table_row218,
+                       action_table_row219,
+                       action_table_row220,
+                       action_table_row221,
+                       action_table_row222,
+                       action_table_row223,
+                       action_table_row224,
+                       action_table_row225,
+                       action_table_row226,
+                       action_table_row227,
+                       action_table_row228,
+                       action_table_row229,
+                       action_table_row230,
+                       action_table_row231,
+                       action_table_row232,
+                       action_table_row233,
+                       action_table_row234,
+                       action_table_row235,
+                       action_table_row236,
+                       action_table_row237,
+                       action_table_row238,
+                       action_table_row239,
+                       action_table_row240,
+                       action_table_row241,
+                       action_table_row242,
+                       action_table_row243,
+                       action_table_row244,
+                       action_table_row245,
+                       action_table_row246,
+                       action_table_row247,
+                       action_table_row248,
+                       action_table_row249,
+                       action_table_row250,
+                       action_table_row251,
+                       action_table_row252,
+                       action_table_row253,
+                       action_table_row254,
+                       action_table_row255,
+                       action_table_row256,
+                       action_table_row257,
+                       action_table_row258,
+                       action_table_row259,
+                       action_table_row260,
+                       action_table_row261,
+                       action_table_row262,
+                       action_table_row263,
+                       action_table_row264,
+                       action_table_row265,
+                       action_table_row266,
+                       action_table_row267,
+                       action_table_row268,
+                       action_table_row269,
+                       action_table_row270,
+                       action_table_row271,
+                       action_table_row272,
+                       action_table_row273,
+                       action_table_row274,
+                       action_table_row275,
+                       action_table_row276,
+                       action_table_row277,
+                       action_table_row278,
+                       action_table_row279,
+                       action_table_row280,
+                       action_table_row281,
+                       action_table_row282,
+                       action_table_row283,
+                       action_table_row284,
+                       action_table_row285,
+                       action_table_row286,
+                       action_table_row287,
+                       action_table_row288,
+                       action_table_row289,
+                       action_table_row290,
+                       action_table_row291,
+                       action_table_row292,
+                       action_table_row293,
+                       action_table_row294,
+                       action_table_row295,
+                       action_table_row296,
+                       action_table_row297,
+                       action_table_row298,
+                       action_table_row299,
+                       action_table_row300,
+                       action_table_row301,
+                       action_table_row302,
+                       action_table_row303,
+                       action_table_row304,
+                       action_table_row305,
+                       action_table_row306,
+                       action_table_row307,
+                       action_table_row308,
+                       action_table_row309,
+                       action_table_row310,
+                       action_table_row311,
+                       action_table_row312,
+                       action_table_row313,
+                       action_table_row314,
+                       action_table_row315,
+                       action_table_row316,
+                       action_table_row317,
+                       action_table_row318,
+                       action_table_row319,
+                       action_table_row320,
+                       action_table_row321,
+                       action_table_row322,
+                       action_table_row323,
+                       action_table_row324,
+                       action_table_row325,
+                       action_table_row326,
+                       action_table_row327,
+                       action_table_row328,
+                       action_table_row329,
+                       action_table_row330,
+                       action_table_row331,
+                       action_table_row332,
+                       action_table_row333,
+                       action_table_row334,
+                       action_table_row335,
+                       action_table_row336,
+                       action_table_row337,
+                       action_table_row338,
+                       action_table_row339,
+                       action_table_row340,
+                       action_table_row341,
+                       action_table_row342,
+                       action_table_row343,
+                       action_table_row344,
+                       action_table_row345,
+                       action_table_row346,
+                       action_table_row347,
+                       action_table_row348,
+                       action_table_row349,
+                       action_table_row350,
+                       action_table_row351,
+                       action_table_row352,
+                       action_table_row353,
+                       action_table_row354,
+                       action_table_row355,
+                       action_table_row356,
+                       action_table_row357,
+                       action_table_row358,
+                       action_table_row359,
+                       action_table_row360,
+                       action_table_row361,
+                       action_table_row362,
+                       action_table_row363,
+                       action_table_row364,
+                       action_table_row365,
+                       action_table_row366,
+                       action_table_row367,
+                       action_table_row368,
+                       action_table_row369,
+                       action_table_row370,
+                       action_table_row371,
+                       action_table_row372,
+                       action_table_row373,
+                       action_table_row374,
+                       action_table_row375,
+                       action_table_row376,
+                       action_table_row377,
+                       action_table_row378,
+                       action_table_row379,
+                       action_table_row380,
+                       action_table_row381,
+                       action_table_row382,
+                       action_table_row383,
+                       action_table_row384,
+                       action_table_row385,
+                       action_table_row386,
+                       action_table_row387,
+                       action_table_row388,
+                       action_table_row389,
+                       action_table_row390,
+                       action_table_row391,
+                       action_table_row392,
+                       action_table_row393,
+                       action_table_row394,
+                       action_table_row395,
+                       action_table_row396,
+                       action_table_row397,
+                       action_table_row398,
+                       action_table_row399,
+                       action_table_row400,
+                       action_table_row401,
+                       action_table_row402,
+                       action_table_row403,
+                       action_table_row404,
+                       action_table_row405,
+                       action_table_row406,
+                       action_table_row407,
+                       action_table_row408,
+                       action_table_row409,
+                       action_table_row410,
+                       action_table_row411,
+                       action_table_row412,
+                       action_table_row413,
+                       action_table_row414,
+                       action_table_row415,
+                       action_table_row416,
+                       action_table_row417,
+                       action_table_row418,
+                       action_table_row419,
+                       action_table_row420,
+                       action_table_row421,
+                       action_table_row422,
+                       action_table_row423,
+                       action_table_row424,
+                       action_table_row425,
+                       action_table_row426,
+                       action_table_row427,
+                       action_table_row428,
+                       action_table_row429,
+                       action_table_row430,
+                       action_table_row431,
+                       action_table_row432,
+                       action_table_row433,
+                       action_table_row434,
+                       action_table_row435,
+                       action_table_row436,
+                       action_table_row437,
+                       action_table_row438,
+                       action_table_row439,
+                       action_table_row440,
+                       action_table_row441,
+                       action_table_row442,
+                       action_table_row443,
+                       action_table_row444,
+                       action_table_row445,
+                       action_table_row446,
+                       action_table_row447,
+                       action_table_row448,
+                       action_table_row449,
+                       action_table_row450,
+                       action_table_row451,
+                       action_table_row452,
+                       action_table_row453,
+                       action_table_row454,
+                       action_table_row455,
+                       action_table_row456,
+                       action_table_row457,
+                       action_table_row458,
+                       action_table_row459,
+                       action_table_row460,
+                       action_table_row461,
+                       action_table_row462,
+                       action_table_row463,
+                       action_table_row464,
+                       action_table_row465,
+                       action_table_row466,
+                       action_table_row467,
+                       action_table_row468,
+                       action_table_row469,
+                       action_table_row470,
+                       action_table_row471,
+                       action_table_row472,
+                       action_table_row473,
+                       action_table_row474,
+                       action_table_row475,
+                       action_table_row476,
+                       action_table_row477,
+                       action_table_row478,
+                       action_table_row479,
+                       action_table_row480,
+                       action_table_row481,
+                       action_table_row482,
+                       action_table_row483,
+                       action_table_row484,
+                       action_table_row485,
+                       action_table_row486,
+                       action_table_row487,
+                       action_table_row488,
+                       action_table_row489,
+                       action_table_row490,
+                       action_table_row491,
+                       action_table_row492,
+                       action_table_row493,
+                       action_table_row494,
+                       action_table_row495,
+                       action_table_row496,
+                       action_table_row497,
+                       action_table_row498,
+                       action_table_row499,
+                       action_table_row500,
+                       action_table_row501,
+                       action_table_row502,
+                       action_table_row503,
+                       action_table_row504,
+                       action_table_row505,
+                       action_table_row506,
+                       action_table_row507,
+                       action_table_row508,
+                       action_table_row509,
+                       action_table_row510,
+                       action_table_row511,
+                       action_table_row512,
+                       action_table_row513,
+                       action_table_row514,
+                       action_table_row515,
+                       action_table_row516,
+                       action_table_row517,
+                       action_table_row518,
+                       action_table_row519,
+                       action_table_row520,
+                       action_table_row521,
+                       action_table_row522,
+                       action_table_row523,
+                       action_table_row524,
+                       action_table_row525,
+                       action_table_row526,
+                       action_table_row527,
+                       action_table_row528,
+                       action_table_row529,
+                       action_table_row530,
+                       action_table_row531,
+                       action_table_row532,
+                       action_table_row533,
+                       action_table_row534,
+                       action_table_row535,
+                       action_table_row536,
+                       action_table_row537,
+                       action_table_row538,
+                       action_table_row539,
+                       action_table_row540,
+                       action_table_row541,
+                       action_table_row542,
+                       action_table_row543,
+                       action_table_row544,
+                       action_table_row545,
+                       action_table_row546,
+                       action_table_row547,
+                       action_table_row548,
+                       action_table_row549,
+                       action_table_row550,
+                       action_table_row551,
+                       action_table_row552,
+                       action_table_row553,
+                       action_table_row554,
+                       action_table_row555,
+                       action_table_row556,
+                       action_table_row557,
+                       action_table_row558,
+                       action_table_row559,
+                       action_table_row560,
+                       action_table_row561,
+                       action_table_row562,
+                       action_table_row563,
+                       action_table_row564,
+                       action_table_row565,
+                       action_table_row566,
+                       action_table_row567,
+                       action_table_row568,
+                       action_table_row569,
+                       action_table_row570,
+                       action_table_row571,
+                       action_table_row572,
+                       action_table_row573,
+                       action_table_row574,
+                       action_table_row575,
+                       action_table_row576,
+                       action_table_row577,
+                       action_table_row578,
+                       action_table_row579,
+                       action_table_row580,
+                       action_table_row581,
+                       action_table_row582,
+                       action_table_row583,
+                       action_table_row584,
+                       action_table_row585,
+                       action_table_row586,
+                       action_table_row587,
+                       action_table_row588,
+                       action_table_row589,
+                       action_table_row590,
+                       action_table_row591,
+                       action_table_row592,
+                       action_table_row593,
+                       action_table_row594,
+                       action_table_row595,
+                       action_table_row596,
+                       action_table_row597,
+                       action_table_row598,
+                       action_table_row599,
+                       action_table_row600,
+                       action_table_row601,
+                       action_table_row602,
+                       action_table_row603,
+                       action_table_row604,
+                       action_table_row605,
+                       action_table_row606,
+                       action_table_row607,
+                       action_table_row608,
+                       action_table_row609,
+                       action_table_row610,
+                       action_table_row611,
+                       action_table_row612,
+                       action_table_row613,
+                       action_table_row614,
+                       action_table_row615,
+                       action_table_row616,
+                       action_table_row617,
+                       action_table_row618,
+                       action_table_row619,
+                       action_table_row620,
+                       action_table_row621,
+                       action_table_row622,
+                       action_table_row623,
+                       action_table_row624,
+                       action_table_row625,
+                       action_table_row626,
+                       action_table_row627,
+                       action_table_row628,
+                       action_table_row629,
+                       action_table_row630,
+                       action_table_row631,
+                       action_table_row632,
+                       action_table_row633,
+                       action_table_row634,
+                       action_table_row635,
+                       action_table_row636,
+                       action_table_row637,
+                       action_table_row638,
+                       action_table_row639,
+                       action_table_row640,
+                       action_table_row641,
+                       action_table_row642,
+                       action_table_row643,
+                       action_table_row644,
+                       action_table_row645,
+                       action_table_row646,
+                       action_table_row647,
+                       action_table_row648,
+                       action_table_row649,
+                       action_table_row650,
+                       action_table_row651,
+                       action_table_row652,
+                       action_table_row653,
+                       action_table_row654,
+                       action_table_row655,
+                       action_table_row656,
+                       action_table_row657,
+                       action_table_row658,
+                       action_table_row659,
+                       action_table_row660,
+                       action_table_row661,
+                       action_table_row662,
+                       action_table_row663,
+                       action_table_row664,
+                       action_table_row665,
+                       action_table_row666,
+                       action_table_row667,
+                       action_table_row668,
+                       action_table_row669,
+                       action_table_row670,
+                       action_table_row671,
+                       action_table_row672,
+                       action_table_row673,
+                       action_table_row674,
+                       action_table_row675,
+                       action_table_row676,
+                       action_table_row677,
+                       action_table_row678,
+                       action_table_row679,
+                       action_table_row680,
+                       action_table_row681,
+                       action_table_row682,
+                       action_table_row683,
+                       action_table_row684,
+                       action_table_row685,
+                       action_table_row686,
+                       action_table_row687,
+                       action_table_row688,
+                       action_table_row689,
+                       action_table_row690,
+                       action_table_row691,
+                       action_table_row692,
+                       action_table_row693,
+                       action_table_row694,
+                       action_table_row695,
+                       action_table_row696,
+                       action_table_row697,
+                       action_table_row698,
+                       action_table_row699,
+                       action_table_row700,
+                       action_table_row701,
+                       action_table_row702,
+                       action_table_row703,
+                       action_table_row704,
+                       action_table_row705,
+                       action_table_row706,
+                       action_table_row707,
+                       action_table_row708,
+                       action_table_row709,
+                       action_table_row710,
+                       action_table_row711,
+                       action_table_row712,
+                       action_table_row713,
+                       action_table_row714,
+                       action_table_row715,
+                       action_table_row716,
+                       action_table_row717,
+                       action_table_row718,
+                       action_table_row719,
+                       action_table_row720,
+                       action_table_row721,
+                       action_table_row722,
+                       action_table_row723,
+                       action_table_row724,
+                       action_table_row725,
+                       action_table_row726,
+                       action_table_row727,
+                       action_table_row728,
+                       action_table_row729,
+                       action_table_row730,
+                       action_table_row731,
+                       action_table_row732,
+                       action_table_row733,
+                       action_table_row734,
+                       action_table_row735,
+                       action_table_row736,
+                       action_table_row737,
+                       action_table_row738,
+                       action_table_row739,
+                       action_table_row740,
+                       action_table_row741,
+                       action_table_row742,
+                       action_table_row743,
+                       action_table_row744,
+                       action_table_row745,
+                       action_table_row746,
+                       action_table_row747,
+                       action_table_row748,
+                       action_table_row749,
+                       action_table_row750,
+                       action_table_row751,
+                       action_table_row752,
+                       action_table_row753,
+                       action_table_row754,
+                       action_table_row755,
+                       action_table_row756,
+                       action_table_row757,
+                       action_table_row758,
+                       action_table_row759,
+                       action_table_row760,
+                       action_table_row761,
+                       action_table_row762,
+                       action_table_row763,
+                       action_table_row764,
+                       action_table_row765,
+                       action_table_row766,
+                       action_table_row767,
+                       action_table_row768,
+                       action_table_row769,
+                       action_table_row770,
+                       action_table_row771,
+                       action_table_row772,
+                       action_table_row773,
+                       action_table_row774,
+                       action_table_row775,
+                       action_table_row776,
+                       action_table_row777,
+                       action_table_row778,
+                       action_table_row779,
+                       action_table_row780,
+                       action_table_row781,
+                       action_table_row782,
+                       action_table_row783,
+                       action_table_row784,
+                       action_table_row785,
+                       action_table_row786,
+                       action_table_row787,
+                       action_table_row788,
+                       action_table_row789,
+                       action_table_row790,
+                       action_table_row791,
+                       action_table_row792,
+                       action_table_row793,
+                       action_table_row794,
+                       action_table_row795,
+                       action_table_row796,
+                       action_table_row797,
+                       action_table_row798,
+                       action_table_row799,
+                       action_table_row800,
+                       action_table_row801,
+                       action_table_row802,
+                       action_table_row803,
+                       action_table_row804,
+                       action_table_row805,
+                       action_table_row806,
+                       action_table_row807,
+                       action_table_row808,
+                       action_table_row809,
+                       action_table_row810,
+                       action_table_row811,
+                       action_table_row812,
+                       action_table_row813,
+                       action_table_row814,
+                       action_table_row815,
+                       action_table_row816,
+                       action_table_row817,
+                       action_table_row818,
+                       action_table_row819,
+                       action_table_row820,
+                       action_table_row821,
+                       action_table_row822,
+                       action_table_row823,
+                       action_table_row824,
+                       action_table_row825,
+                       action_table_row826,
+                       action_table_row827,
+                       action_table_row828,
+                       action_table_row829,
+                       action_table_row830,
+                       action_table_row831,
+                       action_table_row832,
+                       action_table_row833,
+                       action_table_row834,
+                       action_table_row835,
+                       action_table_row836,
+                       action_table_row837,
+                       action_table_row838,
+                       action_table_row839,
+                       action_table_row840,
+                       action_table_row841,
+                       action_table_row842,
+                       action_table_row843,
+                       action_table_row844,
+                       action_table_row845,
+                       action_table_row846,
+                       action_table_row847,
+                       action_table_row848,
+                       action_table_row849,
+                       action_table_row850,
+                       action_table_row851,
+                       action_table_row852,
+                       action_table_row853,
+                       action_table_row854,
+                       action_table_row855,
+                       action_table_row856,
+                       action_table_row857,
+                       action_table_row858,
+                       action_table_row859,
+                       action_table_row860,
+                       action_table_row861,
+                       action_table_row862,
+                       action_table_row863,
+                       action_table_row864,
+                       action_table_row865,
+                       action_table_row866,
+                       action_table_row867,
+                       action_table_row868,
+                       action_table_row869,
+                       action_table_row870,
+                       action_table_row871,
+                       action_table_row872,
+                       action_table_row873,
+                       action_table_row874,
+                       action_table_row875,
+                       action_table_row876,
+                       action_table_row877,
+                       action_table_row878,
+                       action_table_row879,
+                       action_table_row880,
+                       action_table_row881,
+                       action_table_row882,
+                       action_table_row883,
+                       action_table_row884,
+                       action_table_row885,
+                       action_table_row886,
+                       action_table_row887,
+                       action_table_row888,
+                       action_table_row889,
+                       action_table_row890,
+                       action_table_row891,
+                       action_table_row892,
+                       action_table_row893,
+                       action_table_row894,
+                       action_table_row895,
+                       action_table_row896,
+                       action_table_row897,
+                       action_table_row898,
+                       action_table_row899,
+                       action_table_row900,
+                       action_table_row901,
+                       action_table_row902,
+                       action_table_row903,
+                       action_table_row904,
+                       action_table_row905,
+                       action_table_row906,
+                       action_table_row907,
+                       action_table_row908,
+                       action_table_row909,
+                       action_table_row910,
+                       action_table_row911,
+                       action_table_row912,
+                       action_table_row913,
+                       action_table_row914,
+                       action_table_row915,
+                       action_table_row916,
+                       action_table_row917,
+                       action_table_row918,
+                       action_table_row919,
+                       action_table_row920,
+                       action_table_row921,
+                       action_table_row922,
+                       action_table_row923,
+                       action_table_row924,
+                       action_table_row925,
+                       action_table_row926,
+                       action_table_row927,
+                       action_table_row928,
+                       action_table_row929,
+                       action_table_row930,
+                       action_table_row931,
+                       action_table_row932,
+                       action_table_row933,
+                       action_table_row934,
+                       action_table_row935,
+                       action_table_row936,
+                       action_table_row937,
+                       action_table_row938,
+                       action_table_row939,
+                       action_table_row940,
+                       action_table_row941,
+                       action_table_row942,
+                       action_table_row943,
+                       action_table_row944,
+                       action_table_row945,
+                       action_table_row946,
+                       action_table_row947,
+                       action_table_row948,
+                       action_table_row949,
+                       action_table_row950,
+                       action_table_row951,
+                       action_table_row952,
+                       action_table_row953,
+                       action_table_row954,
+                       action_table_row955,
+                       action_table_row956,
+                       action_table_row957,
+                       action_table_row958,
+                       action_table_row959,
+                       action_table_row960,
+                       action_table_row961,
+                       action_table_row962,
+                       action_table_row963,
+                       action_table_row964,
+                       action_table_row965,
+                       action_table_row966,
+                       action_table_row967,
+                       action_table_row968,
+                       action_table_row969,
+                       action_table_row970,
+                       action_table_row971,
+                       action_table_row972,
+                       action_table_row973,
+                       action_table_row974,
+                       action_table_row975,
+                       action_table_row976,
+                       action_table_row977,
+                       action_table_row978,
+                       action_table_row979,
+                       action_table_row980,
+                       action_table_row981,
+                       action_table_row982,
+                       action_table_row983,
+                       action_table_row984,
+                       action_table_row985,
+                       action_table_row986,
+                       action_table_row987,
+                       action_table_row988,
+                       action_table_row989,
+                       action_table_row990,
+                       action_table_row991,
+                       action_table_row992,
+                       action_table_row993,
+                       action_table_row994,
+                       action_table_row995,
+                       action_table_row996,
+                       action_table_row997,
+                       action_table_row998,
+                       action_table_row999,
+                       action_table_row1000,
+                       action_table_row1001,
+                       action_table_row1002,
+                       action_table_row1003,
+                       action_table_row1004,
+                       action_table_row1005,
+                       action_table_row1006,
+                       action_table_row1007,
+                       action_table_row1008,
+                       action_table_row1009,
+                       action_table_row1010,
+                       action_table_row1011,
+                       action_table_row1012,
+                       action_table_row1013,
+                       action_table_row1014,
+                       action_table_row1015,
+                       action_table_row1016,
+                       action_table_row1017,
+                       action_table_row1018,
+                       action_table_row1019,
+                       action_table_row1020,
+                       action_table_row1021,
+                       action_table_row1022,
+                       action_table_row1023,
+                       action_table_row1024,
+                       action_table_row1025,
+                       action_table_row1026,
+                       action_table_row1027,
+                       action_table_row1028,
+                       action_table_row1029,
+                       action_table_row1030,
+                       action_table_row1031,
+                       action_table_row1032,
+                       action_table_row1033,
+                       action_table_row1034,
+                       action_table_row1035,
+                       action_table_row1036,
+                       action_table_row1037,
+                       action_table_row1038,
+                       action_table_row1039,
+                       action_table_row1040,
+                       action_table_row1041,
+                       action_table_row1042,
+                       action_table_row1043,
+                       action_table_row1044,
+                       action_table_row1045,
+                       action_table_row1046,
+                       action_table_row1047,
+                       action_table_row1048,
+                       action_table_row1049,
+                       action_table_row1050,
+                       action_table_row1051,
+                       action_table_row1052,
+                       action_table_row1053,
+                       action_table_row1054,
+                       action_table_row1055,
+                       action_table_row1056,
+                       action_table_row1057,
+                       action_table_row1058,
+                       action_table_row1059,
+                       action_table_row1060,
+                       action_table_row1061,
+                       action_table_row1062,
+                       action_table_row1063,
+                       action_table_row1064,
+                       action_table_row1065,
+                       action_table_row1066,
+                       action_table_row1067,
+                       action_table_row1068,
+                       action_table_row1069,
+                       action_table_row1070,
+                       action_table_row1071,
+                       action_table_row1072,
+                       action_table_row1073,
+                       action_table_row1074,
+                       action_table_row1075,
+                       action_table_row1076,
+                       action_table_row1077,
+                       action_table_row1078,
+                       action_table_row1079,
+                       action_table_row1080,
+                       action_table_row1081,
+                       action_table_row1082,
+                       action_table_row1083,
+                       action_table_row1084,
+                       action_table_row1085,
+                       action_table_row1086,
+                       action_table_row1087,
+                       action_table_row1088,
+                       action_table_row1089,
+                       action_table_row1090,
+                       action_table_row1091,
+                       action_table_row1092,
+                       action_table_row1093,
+                       action_table_row1094,
+                       action_table_row1095,
+                       action_table_row1096,
+                       action_table_row1097,
+                       action_table_row1098,
+                       action_table_row1099,
+                       action_table_row1100,
+                       action_table_row1101,
+                       action_table_row1102,
+                       action_table_row1103,
+                       action_table_row1104,
+                       action_table_row1105,
+                       action_table_row1106,
+                       action_table_row1107,
+                       action_table_row1108,
+                       action_table_row1109,
+                       action_table_row1110,
+                       action_table_row1111,
+                       action_table_row1112,
+                       action_table_row1113,
+                       action_table_row1114,
+                       action_table_row1115,
+                       action_table_row1116,
+                       action_table_row1117,
+                       action_table_row1118,
+                       action_table_row1119,
+                       action_table_row1120,
+                       action_table_row1121,
+                       action_table_row1122,
+                       action_table_row1123,
+                       action_table_row1124,
+                       action_table_row1125,
+                       action_table_row1126,
+                       action_table_row1127,
+                       action_table_row1128,
+                       action_table_row1129,
+                       action_table_row1130,
+                       action_table_row1131,
+                       action_table_row1132,
+                       action_table_row1133,
+                       action_table_row1134,
+                       action_table_row1135,
+                       action_table_row1136,
+                       action_table_row1137,
+                       action_table_row1138,
+                       action_table_row1139,
+                       action_table_row1140,
+                       action_table_row1141,
+                       action_table_row1142,
+                       action_table_row1143,
+                       action_table_row1144
+               ]
+       end
+
+       private meth action_table_row1: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 0 
+                       ]
+       end
+       private meth action_table_row2: Array[Int]
+       do
+               return [
+                               -1, 1, 567 
+                       ]
+       end
+       private meth action_table_row3: Array[Int]
+       do
+               return [
+                               -1, 1, 565 
+                       ]
+       end
+       private meth action_table_row4: Array[Int]
+       do
+               return [
+                               -1, 3, 3 ,
+                               82, 2, -1 
+                       ]
+       end
+       private meth action_table_row5: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 1 
+                       ]
+       end
+       private meth action_table_row6: Array[Int]
+       do
+               return [
+                               -1, 1, 541 
+                       ]
+       end
+       private meth action_table_row7: Array[Int]
+       do
+               return [
+                               -1, 1, 24 
+                       ]
+       end
+       private meth action_table_row8: Array[Int]
+       do
+               return [
+                               -1, 1, 51 
+                       ]
+       end
+       private meth action_table_row9: Array[Int]
+       do
+               return [
+                               -1, 1, 543 
+                       ]
+       end
+       private meth action_table_row10: Array[Int]
+       do
+               return [
+                               -1, 3, 9 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row11: Array[Int]
+       do
+               return [
+                               -1, 1, 365 ,
+                               82, 1, 52 
+                       ]
+       end
+       private meth action_table_row12: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               2, 0, 25 ,
+                               13, 0, 26 ,
+                               14, 0, 27 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row13: Array[Int]
+       do
+               return [
+                               -1, 1, 363 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row14: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 2 
+                       ]
+       end
+       private meth action_table_row15: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 4 
+                       ]
+       end
+       private meth action_table_row16: Array[Int]
+       do
+               return [
+                               -1, 1, 361 ,
+                               0, 0, 1 ,
+                               1, 0, 85 
+                       ]
+       end
+       private meth action_table_row17: Array[Int]
+       do
+               return [
+                               -1, 1, 368 ,
+                               0, 0, 87 
+                       ]
+       end
+       private meth action_table_row18: Array[Int]
+       do
+               return [
+                               -1, 1, 25 
+                       ]
+       end
+       private meth action_table_row19: Array[Int]
+       do
+               return [
+                               -1, 3, 18 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row20: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               13, 0, 26 ,
+                               14, 0, 27 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row21: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 3 
+                       ]
+       end
+       private meth action_table_row22: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 5 
+                       ]
+       end
+       private meth action_table_row23: Array[Int]
+       do
+               return [
+                               -1, 1, 360 
+                       ]
+       end
+       private meth action_table_row24: Array[Int]
+       do
+               return [
+                               -1, 1, 359 
+                       ]
+       end
+       private meth action_table_row25: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 8 
+                       ]
+       end
+       private meth action_table_row26: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row27: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row28: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row29: Array[Int]
+       do
+               return [
+                               -1, 3, 28 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row30: Array[Int]
+       do
+               return [
+                               -1, 3, 29 ,
+                               73, 0, 137 
+                       ]
+       end
+       private meth action_table_row31: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row32: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row33: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row34: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row35: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row36: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row37: Array[Int]
+       do
+               return [
+                               -1, 1, 236 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row38: Array[Int]
+       do
+               return [
+                               -1, 1, 240 
+                       ]
+       end
+       private meth action_table_row39: Array[Int]
+       do
+               return [
+                               -1, 1, 238 
+                       ]
+       end
+       private meth action_table_row40: Array[Int]
+       do
+               return [
+                               -1, 1, 239 
+                       ]
+       end
+       private meth action_table_row41: Array[Int]
+       do
+               return [
+                               -1, 3, 40 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 163 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row42: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row43: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row44: Array[Int]
+       do
+               return [
+                               -1, 1, 325 
+                       ]
+       end
+       private meth action_table_row45: Array[Int]
+       do
+               return [
+                               -1, 1, 326 
+                       ]
+       end
+       private meth action_table_row46: Array[Int]
+       do
+               return [
+                               -1, 1, 327 
+                       ]
+       end
+       private meth action_table_row47: Array[Int]
+       do
+               return [
+                               -1, 1, 328 
+                       ]
+       end
+       private meth action_table_row48: Array[Int]
+       do
+               return [
+                               -1, 3, 47 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row49: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row50: Array[Int]
+       do
+               return [
+                               -1, 3, 49 ,
+                               53, 0, 171 
+                       ]
+       end
+       private meth action_table_row51: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               0, 1, 350 ,
+                               1, 1, 350 ,
+                               9, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               53, 0, 172 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 ,
+                               82, 1, 350 
+                       ]
+       end
+       private meth action_table_row52: Array[Int]
+       do
+               return [
+                               -1, 1, 313 ,
+                               54, 0, 175 ,
+                               55, 0, 176 ,
+                               56, 0, 177 
+                       ]
+       end
+       private meth action_table_row53: Array[Int]
+       do
+               return [
+                               -1, 1, 329 
+                       ]
+       end
+       private meth action_table_row54: Array[Int]
+       do
+               return [
+                               -1, 1, 330 
+                       ]
+       end
+       private meth action_table_row55: Array[Int]
+       do
+               return [
+                               -1, 1, 331 
+                       ]
+       end
+       private meth action_table_row56: Array[Int]
+       do
+               return [
+                               -1, 1, 332 
+                       ]
+       end
+       private meth action_table_row57: Array[Int]
+       do
+               return [
+                               -1, 1, 338 
+                       ]
+       end
+       private meth action_table_row58: Array[Int]
+       do
+               return [
+                               -1, 3, 57 ,
+                               3, 0, 179 ,
+                               4, 0, 180 ,
+                               5, 0, 181 ,
+                               6, 0, 182 ,
+                               7, 0, 183 ,
+                               10, 0, 184 
+                       ]
+       end
+       private meth action_table_row59: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row60: Array[Int]
+       do
+               return [
+                               -1, 1, 234 
+                       ]
+       end
+       private meth action_table_row61: Array[Int]
+       do
+               return [
+                               -1, 1, 235 
+                       ]
+       end
+       private meth action_table_row62: Array[Int]
+       do
+               return [
+                               -1, 1, 241 
+                       ]
+       end
+       private meth action_table_row63: Array[Int]
+       do
+               return [
+                               -1, 1, 242 
+                       ]
+       end
+       private meth action_table_row64: Array[Int]
+       do
+               return [
+                               -1, 1, 243 
+                       ]
+       end
+       private meth action_table_row65: Array[Int]
+       do
+               return [
+                               -1, 1, 244 
+                       ]
+       end
+       private meth action_table_row66: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row67: Array[Int]
+       do
+               return [
+                               -1, 1, 245 
+                       ]
+       end
+       private meth action_table_row68: Array[Int]
+       do
+               return [
+                               -1, 3, 67 ,
+                               49, 0, 191 ,
+                               59, 0, 192 
+                       ]
+       end
+       private meth action_table_row69: Array[Int]
+       do
+               return [
+                               -1, 1, 333 
+                       ]
+       end
+       private meth action_table_row70: Array[Int]
+       do
+               return [
+                               -1, 3, 69 ,
+                               80, 0, 194 ,
+                               81, 0, 195 
+                       ]
+       end
+       private meth action_table_row71: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row72: Array[Int]
+       do
+               return [
+                               -1, 1, 324 
+                       ]
+       end
+       private meth action_table_row73: Array[Int]
+       do
+               return [
+                               -1, 3, 72 ,
+                               42, 0, 201 
+                       ]
+       end
+       private meth action_table_row74: Array[Int]
+       do
+               return [
+                               -1, 1, 563 
+                       ]
+       end
+       private meth action_table_row75: Array[Int]
+       do
+               return [
+                               -1, 1, 354 
+                       ]
+       end
+       private meth action_table_row76: Array[Int]
+       do
+               return [
+                               -1, 1, 356 ,
+                               72, 0, 49 ,
+                               73, 0, 202 
+                       ]
+       end
+       private meth action_table_row77: Array[Int]
+       do
+               return [
+                               -1, 1, 362 ,
+                               0, 0, 1 ,
+                               1, 0, 85 
+                       ]
+       end
+       private meth action_table_row78: Array[Int]
+       do
+               return [
+                               -1, 1, 542 
+                       ]
+       end
+       private meth action_table_row79: Array[Int]
+       do
+               return [
+                               -1, 1, 26 
+                       ]
+       end
+       private meth action_table_row80: Array[Int]
+       do
+               return [
+                               -1, 3, 79 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row81: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 6 
+                       ]
+       end
+       private meth action_table_row82: Array[Int]
+       do
+               return [
+                               -1, 1, 28 
+                       ]
+       end
+       private meth action_table_row83: Array[Int]
+       do
+               return [
+                               -1, 1, 544 
+                       ]
+       end
+       private meth action_table_row84: Array[Int]
+       do
+               return [
+                               -1, 3, 83 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row85: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               13, 0, 26 ,
+                               14, 0, 27 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row86: Array[Int]
+       do
+               return [
+                               -1, 1, 566 
+                       ]
+       end
+       private meth action_table_row87: Array[Int]
+       do
+               return [
+                               -1, 1, 366 ,
+                               0, 0, 87 
+                       ]
+       end
+       private meth action_table_row88: Array[Int]
+       do
+               return [
+                               -1, 1, 568 
+                       ]
+       end
+       private meth action_table_row89: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 10 
+                       ]
+       end
+       private meth action_table_row90: Array[Int]
+       do
+               return [
+                               -1, 1, 27 
+                       ]
+       end
+       private meth action_table_row91: Array[Int]
+       do
+               return [
+                               -1, 3, 90 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row92: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 7 
+                       ]
+       end
+       private meth action_table_row93: Array[Int]
+       do
+               return [
+                               -1, 1, 29 
+                       ]
+       end
+       private meth action_table_row94: Array[Int]
+       do
+               return [
+                               -1, 3, 93 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row95: Array[Int]
+       do
+               return [
+                               -1, 1, 32 
+                       ]
+       end
+       private meth action_table_row96: Array[Int]
+       do
+               return [
+                               -1, 1, 551 
+                       ]
+       end
+       private meth action_table_row97: Array[Int]
+       do
+               return [
+                               -1, 3, 96 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row98: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               13, 0, 26 ,
+                               14, 0, 218 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row99: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 9 
+                       ]
+       end
+       private meth action_table_row100: Array[Int]
+       do
+               return [
+                               -1, 1, 365 
+                       ]
+       end
+       private meth action_table_row101: Array[Int]
+       do
+               return [
+                               -1, 3, 100 ,
+                               73, 0, 222 
+                       ]
+       end
+       private meth action_table_row102: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row103: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row104: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row105: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row106: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row107: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row108: Array[Int]
+       do
+               return [
+                               -1, 1, 485 
+                       ]
+       end
+       private meth action_table_row109: Array[Int]
+       do
+               return [
+                               -1, 1, 486 
+                       ]
+       end
+       private meth action_table_row110: Array[Int]
+       do
+               return [
+                               -1, 1, 487 
+                       ]
+       end
+       private meth action_table_row111: Array[Int]
+       do
+               return [
+                               -1, 1, 488 
+                       ]
+       end
+       private meth action_table_row112: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row113: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row114: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               53, 0, 172 
+                       ]
+       end
+       private meth action_table_row115: Array[Int]
+       do
+               return [
+                               -1, 1, 477 
+                       ]
+       end
+       private meth action_table_row116: Array[Int]
+       do
+               return [
+                               -1, 1, 489 
+                       ]
+       end
+       private meth action_table_row117: Array[Int]
+       do
+               return [
+                               -1, 1, 490 
+                       ]
+       end
+       private meth action_table_row118: Array[Int]
+       do
+               return [
+                               -1, 1, 491 
+                       ]
+       end
+       private meth action_table_row119: Array[Int]
+       do
+               return [
+                               -1, 1, 492 
+                       ]
+       end
+       private meth action_table_row120: Array[Int]
+       do
+               return [
+                               -1, 1, 493 
+                       ]
+       end
+       private meth action_table_row121: Array[Int]
+       do
+               return [
+                               -1, 1, 319 
+                       ]
+       end
+       private meth action_table_row122: Array[Int]
+       do
+               return [
+                               -1, 1, 251 
+                       ]
+       end
+       private meth action_table_row123: Array[Int]
+       do
+               return [
+                               -1, 3, 122 ,
+                               42, 0, 233 
+                       ]
+       end
+       private meth action_table_row124: Array[Int]
+       do
+               return [
+                               -1, 1, 348 
+                       ]
+       end
+       private meth action_table_row125: Array[Int]
+       do
+               return [
+                               -1, 1, 447 ,
+                               31, 0, 234 ,
+                               32, 0, 235 
+                       ]
+       end
+       private meth action_table_row126: Array[Int]
+       do
+               return [
+                               -1, 1, 449 
+                       ]
+       end
+       private meth action_table_row127: Array[Int]
+       do
+               return [
+                               -1, 1, 452 
+                       ]
+       end
+       private meth action_table_row128: Array[Int]
+       do
+               return [
+                               -1, 1, 454 ,
+                               15, 0, 236 ,
+                               40, 0, 237 ,
+                               60, 0, 238 ,
+                               61, 0, 239 ,
+                               65, 0, 240 ,
+                               66, 0, 241 ,
+                               67, 0, 242 ,
+                               68, 0, 243 ,
+                               69, 0, 244 ,
+                               70, 0, 245 ,
+                               71, 0, 246 
+                       ]
+       end
+       private meth action_table_row129: Array[Int]
+       do
+               return [
+                               -1, 1, 464 ,
+                               62, 0, 247 ,
+                               63, 0, 248 ,
+                               64, 0, 249 
+                       ]
+       end
+       private meth action_table_row130: Array[Int]
+       do
+               return [
+                               -1, 1, 467 
+                       ]
+       end
+       private meth action_table_row131: Array[Int]
+       do
+               return [
+                               -1, 1, 471 
+                       ]
+       end
+       private meth action_table_row132: Array[Int]
+       do
+               return [
+                               -1, 1, 474 ,
+                               59, 0, 250 
+                       ]
+       end
+       private meth action_table_row133: Array[Int]
+       do
+               return [
+                               -1, 3, 132 ,
+                               4, 0, 180 ,
+                               5, 0, 181 ,
+                               6, 0, 182 ,
+                               7, 0, 183 ,
+                               10, 0, 251 
+                       ]
+       end
+       private meth action_table_row134: Array[Int]
+       do
+               return [
+                               -1, 1, 232 
+                       ]
+       end
+       private meth action_table_row135: Array[Int]
+       do
+               return [
+                               -1, 1, 268 
+                       ]
+       end
+       private meth action_table_row136: Array[Int]
+       do
+               return [
+                               -1, 1, 228 
+                       ]
+       end
+       private meth action_table_row137: Array[Int]
+       do
+               return [
+                               -1, 3, 136 ,
+                               9, 0, 253 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row138: Array[Int]
+       do
+               return [
+                               -1, 1, 252 ,
+                               52, 0, 255 ,
+                               54, 0, 256 
+                       ]
+       end
+       private meth action_table_row139: Array[Int]
+       do
+               return [
+                               -1, 1, 193 
+                       ]
+       end
+       private meth action_table_row140: Array[Int]
+       do
+               return [
+                               -1, 1, 192 
+                       ]
+       end
+       private meth action_table_row141: Array[Int]
+       do
+               return [
+                               -1, 1, 194 
+                       ]
+       end
+       private meth action_table_row142: Array[Int]
+       do
+               return [
+                               -1, 3, 141 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row143: Array[Int]
+       do
+               return [
+                               -1, 3, 142 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row144: Array[Int]
+       do
+               return [
+                               -1, 3, 143 ,
+                               73, 0, 260 
+                       ]
+       end
+       private meth action_table_row145: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row146: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row147: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row148: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row149: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row150: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row151: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row152: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               53, 0, 172 
+                       ]
+       end
+       private meth action_table_row153: Array[Int]
+       do
+               return [
+                               -1, 1, 313 
+                       ]
+       end
+       private meth action_table_row154: Array[Int]
+       do
+               return [
+                               -1, 1, 237 
+                       ]
+       end
+       private meth action_table_row155: Array[Int]
+       do
+               return [
+                               -1, 1, 283 ,
+                               31, 0, 267 ,
+                               32, 0, 268 
+                       ]
+       end
+       private meth action_table_row156: Array[Int]
+       do
+               return [
+                               -1, 1, 285 
+                       ]
+       end
+       private meth action_table_row157: Array[Int]
+       do
+               return [
+                               -1, 1, 288 
+                       ]
+       end
+       private meth action_table_row158: Array[Int]
+       do
+               return [
+                               -1, 1, 290 ,
+                               15, 0, 269 ,
+                               40, 0, 270 ,
+                               60, 0, 271 ,
+                               61, 0, 272 ,
+                               65, 0, 273 ,
+                               66, 0, 274 ,
+                               67, 0, 275 ,
+                               68, 0, 276 ,
+                               69, 0, 277 ,
+                               70, 0, 278 ,
+                               71, 0, 279 
+                       ]
+       end
+       private meth action_table_row159: Array[Int]
+       do
+               return [
+                               -1, 1, 300 ,
+                               62, 0, 280 ,
+                               63, 0, 281 ,
+                               64, 0, 282 
+                       ]
+       end
+       private meth action_table_row160: Array[Int]
+       do
+               return [
+                               -1, 1, 303 
+                       ]
+       end
+       private meth action_table_row161: Array[Int]
+       do
+               return [
+                               -1, 1, 307 
+                       ]
+       end
+       private meth action_table_row162: Array[Int]
+       do
+               return [
+                               -1, 1, 310 ,
+                               49, 0, 191 ,
+                               59, 0, 283 
+                       ]
+       end
+       private meth action_table_row163: Array[Int]
+       do
+               return [
+                               -1, 3, 162 ,
+                               42, 0, 285 
+                       ]
+       end
+       private meth action_table_row164: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               52, 0, 286 ,
+                               53, 0, 172 
+                       ]
+       end
+       private meth action_table_row165: Array[Int]
+       do
+               return [
+                               -1, 3, 164 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row166: Array[Int]
+       do
+               return [
+                               -1, 1, 280 
+                       ]
+       end
+       private meth action_table_row167: Array[Int]
+       do
+               return [
+                               -1, 3, 166 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row168: Array[Int]
+       do
+               return [
+                               -1, 1, 316 
+                       ]
+       end
+       private meth action_table_row169: Array[Int]
+       do
+               return [
+                               -1, 1, 248 
+                       ]
+       end
+       private meth action_table_row170: Array[Int]
+       do
+               return [
+                               -1, 3, 169 ,
+                               48, 0, 290 
+                       ]
+       end
+       private meth action_table_row171: Array[Int]
+       do
+               return [
+                               -1, 3, 170 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row172: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row173: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row174: Array[Int]
+       do
+               return [
+                               -1, 1, 315 ,
+                               54, 0, 294 ,
+                               55, 0, 176 ,
+                               56, 0, 177 
+                       ]
+       end
+       private meth action_table_row175: Array[Int]
+       do
+               return [
+                               -1, 1, 247 
+                       ]
+       end
+       private meth action_table_row176: Array[Int]
+       do
+               return [
+                               -1, 3, 175 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row177: Array[Int]
+       do
+               return [
+                               -1, 1, 266 
+                       ]
+       end
+       private meth action_table_row178: Array[Int]
+       do
+               return [
+                               -1, 1, 267 
+                       ]
+       end
+       private meth action_table_row179: Array[Int]
+       do
+               return [
+                               -1, 3, 178 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row180: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row181: Array[Int]
+       do
+               return [
+                               -1, 1, 79 
+                       ]
+       end
+       private meth action_table_row182: Array[Int]
+       do
+               return [
+                               -1, 3, 181 ,
+                               4, 0, 299 
+                       ]
+       end
+       private meth action_table_row183: Array[Int]
+       do
+               return [
+                               -1, 1, 81 
+                       ]
+       end
+       private meth action_table_row184: Array[Int]
+       do
+               return [
+                               -1, 1, 82 
+                       ]
+       end
+       private meth action_table_row185: Array[Int]
+       do
+               return [
+                               -1, 3, 184 ,
+                               49, 0, 300 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row186: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row187: Array[Int]
+       do
+               return [
+                               -1, 1, 557 
+                       ]
+       end
+       private meth action_table_row188: Array[Int]
+       do
+               return [
+                               -1, 1, 365 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row189: Array[Int]
+       do
+               return [
+                               -1, 1, 53 
+                       ]
+       end
+       private meth action_table_row190: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row191: Array[Int]
+       do
+               return [
+                               -1, 3, 190 ,
+                               16, 0, 319 
+                       ]
+       end
+       private meth action_table_row192: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row193: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row194: Array[Int]
+       do
+               return [
+                               -1, 1, 320 ,
+                               54, 0, 322 ,
+                               55, 0, 176 ,
+                               56, 0, 177 
+                       ]
+       end
+       private meth action_table_row195: Array[Int]
+       do
+               return [
+                               -1, 1, 340 
+                       ]
+       end
+       private meth action_table_row196: Array[Int]
+       do
+               return [
+                               -1, 1, 341 
+                       ]
+       end
+       private meth action_table_row197: Array[Int]
+       do
+               return [
+                               -1, 1, 559 
+                       ]
+       end
+       private meth action_table_row198: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row199: Array[Int]
+       do
+               return [
+                               -1, 1, 335 
+                       ]
+       end
+       private meth action_table_row200: Array[Int]
+       do
+               return [
+                               -1, 3, 199 ,
+                               80, 0, 194 ,
+                               81, 0, 195 
+                       ]
+       end
+       private meth action_table_row201: Array[Int]
+       do
+               return [
+                               -1, 3, 200 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row202: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row203: Array[Int]
+       do
+               return [
+                               -1, 3, 202 ,
+                               53, 0, 172 
+                       ]
+       end
+       private meth action_table_row204: Array[Int]
+       do
+               return [
+                               -1, 1, 564 
+                       ]
+       end
+       private meth action_table_row205: Array[Int]
+       do
+               return [
+                               -1, 1, 355 
+                       ]
+       end
+       private meth action_table_row206: Array[Int]
+       do
+               return [
+                               -1, 1, 367 ,
+                               0, 0, 87 
+                       ]
+       end
+       private meth action_table_row207: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 12 
+                       ]
+       end
+       private meth action_table_row208: Array[Int]
+       do
+               return [
+                               -1, 1, 30 
+                       ]
+       end
+       private meth action_table_row209: Array[Int]
+       do
+               return [
+                               -1, 3, 208 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row210: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 16 
+                       ]
+       end
+       private meth action_table_row211: Array[Int]
+       do
+               return [
+                               -1, 3, 210 ,
+                               4, 0, 180 ,
+                               5, 0, 181 ,
+                               6, 0, 182 ,
+                               7, 0, 183 ,
+                               10, 0, 184 
+                       ]
+       end
+       private meth action_table_row212: Array[Int]
+       do
+               return [
+                               -1, 1, 34 
+                       ]
+       end
+       private meth action_table_row213: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 11 
+                       ]
+       end
+       private meth action_table_row214: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 14 
+                       ]
+       end
+       private meth action_table_row215: Array[Int]
+       do
+               return [
+                               -1, 1, 31 
+                       ]
+       end
+       private meth action_table_row216: Array[Int]
+       do
+               return [
+                               -1, 3, 215 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row217: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 18 
+                       ]
+       end
+       private meth action_table_row218: Array[Int]
+       do
+               return [
+                               -1, 1, 184 
+                       ]
+       end
+       private meth action_table_row219: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row220: Array[Int]
+       do
+               return [
+                               -1, 3, 219 ,
+                               10, 0, 184 
+                       ]
+       end
+       private meth action_table_row221: Array[Int]
+       do
+               return [
+                               -1, 1, 33 
+                       ]
+       end
+       private meth action_table_row222: Array[Int]
+       do
+               return [
+                               -1, 1, 552 
+                       ]
+       end
+       private meth action_table_row223: Array[Int]
+       do
+               return [
+                               -1, 3, 222 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row224: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row225: Array[Int]
+       do
+               return [
+                               -1, 1, 483 
+                       ]
+       end
+       private meth action_table_row226: Array[Int]
+       do
+               return [
+                               -1, 3, 225 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row227: Array[Int]
+       do
+               return [
+                               -1, 3, 226 ,
+                               13, 0, 101 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row228: Array[Int]
+       do
+               return [
+                               -1, 3, 227 ,
+                               72, 0, 346 
+                       ]
+       end
+       private meth action_table_row229: Array[Int]
+       do
+               return [
+                               -1, 3, 228 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row230: Array[Int]
+       do
+               return [
+                               -1, 1, 480 
+                       ]
+       end
+       private meth action_table_row231: Array[Int]
+       do
+               return [
+                               -1, 3, 230 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               48, 0, 349 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row232: Array[Int]
+       do
+               return [
+                               -1, 3, 231 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row233: Array[Int]
+       do
+               return [
+                               -1, 1, 479 
+                       ]
+       end
+       private meth action_table_row234: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row235: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row236: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row237: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row238: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row239: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row240: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row241: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row242: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row243: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row244: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row245: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row246: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row247: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row248: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row249: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row250: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row251: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row252: Array[Int]
+       do
+               return [
+                               -1, 3, 251 ,
+                               49, 0, 300 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row253: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row254: Array[Int]
+       do
+               return [
+                               -1, 1, 231 
+                       ]
+       end
+       private meth action_table_row255: Array[Int]
+       do
+               return [
+                               -1, 3, 254 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row256: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row257: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row258: Array[Int]
+       do
+               return [
+                               -1, 1, 253 ,
+                               54, 0, 376 
+                       ]
+       end
+       private meth action_table_row259: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row260: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row261: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row262: Array[Int]
+       do
+               return [
+                               -1, 3, 261 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row263: Array[Int]
+       do
+               return [
+                               -1, 3, 262 ,
+                               13, 0, 144 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row264: Array[Int]
+       do
+               return [
+                               -1, 3, 263 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row265: Array[Int]
+       do
+               return [
+                               -1, 3, 264 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row266: Array[Int]
+       do
+               return [
+                               -1, 3, 265 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row267: Array[Int]
+       do
+               return [
+                               -1, 1, 315 
+                       ]
+       end
+       private meth action_table_row268: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row269: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row270: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row271: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row272: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row273: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row274: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row275: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row276: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row277: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row278: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row279: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row280: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row281: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row282: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row283: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row284: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row285: Array[Int]
+       do
+               return [
+                               -1, 1, 320 
+                       ]
+       end
+       private meth action_table_row286: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row287: Array[Int]
+       do
+               return [
+                               -1, 1, 282 
+                       ]
+       end
+       private meth action_table_row288: Array[Int]
+       do
+               return [
+                               -1, 1, 281 
+                       ]
+       end
+       private meth action_table_row289: Array[Int]
+       do
+               return [
+                               -1, 1, 222 ,
+                               49, 0, 402 
+                       ]
+       end
+       private meth action_table_row290: Array[Int]
+       do
+               return [
+                               -1, 3, 289 ,
+                               59, 0, 403 
+                       ]
+       end
+       private meth action_table_row291: Array[Int]
+       do
+               return [
+                               -1, 1, 334 
+                       ]
+       end
+       private meth action_table_row292: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row293: Array[Int]
+       do
+               return [
+                               -1, 1, 358 
+                       ]
+       end
+       private meth action_table_row294: Array[Int]
+       do
+               return [
+                               -1, 1, 357 
+                       ]
+       end
+       private meth action_table_row295: Array[Int]
+       do
+               return [
+                               -1, 3, 294 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row296: Array[Int]
+       do
+               return [
+                               -1, 3, 295 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row297: Array[Int]
+       do
+               return [
+                               -1, 1, 257 
+                       ]
+       end
+       private meth action_table_row298: Array[Int]
+       do
+               return [
+                               -1, 1, 262 
+                       ]
+       end
+       private meth action_table_row299: Array[Int]
+       do
+               return [
+                               -1, 3, 298 ,
+                               9, 0, 407 ,
+                               73, 0, 408 
+                       ]
+       end
+       private meth action_table_row300: Array[Int]
+       do
+               return [
+                               -1, 1, 80 
+                       ]
+       end
+       private meth action_table_row301: Array[Int]
+       do
+               return [
+                               -1, 3, 300 ,
+                               50, 0, 409 
+                       ]
+       end
+       private meth action_table_row302: Array[Int]
+       do
+               return [
+                               -1, 1, 196 
+                       ]
+       end
+       private meth action_table_row303: Array[Int]
+       do
+               return [
+                               -1, 1, 197 
+                       ]
+       end
+       private meth action_table_row304: Array[Int]
+       do
+               return [
+                               -1, 1, 198 
+                       ]
+       end
+       private meth action_table_row305: Array[Int]
+       do
+               return [
+                               -1, 1, 199 
+                       ]
+       end
+       private meth action_table_row306: Array[Int]
+       do
+               return [
+                               -1, 1, 200 
+                       ]
+       end
+       private meth action_table_row307: Array[Int]
+       do
+               return [
+                               -1, 1, 201 
+                       ]
+       end
+       private meth action_table_row308: Array[Int]
+       do
+               return [
+                               -1, 1, 202 
+                       ]
+       end
+       private meth action_table_row309: Array[Int]
+       do
+               return [
+                               -1, 1, 205 
+                       ]
+       end
+       private meth action_table_row310: Array[Int]
+       do
+               return [
+                               -1, 1, 203 
+                       ]
+       end
+       private meth action_table_row311: Array[Int]
+       do
+               return [
+                               -1, 1, 206 
+                       ]
+       end
+       private meth action_table_row312: Array[Int]
+       do
+               return [
+                               -1, 1, 204 
+                       ]
+       end
+       private meth action_table_row313: Array[Int]
+       do
+               return [
+                               -1, 1, 208 
+                       ]
+       end
+       private meth action_table_row314: Array[Int]
+       do
+               return [
+                               -1, 1, 195 ,
+                               54, 0, 410 
+                       ]
+       end
+       private meth action_table_row315: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row316: Array[Int]
+       do
+               return [
+                               -1, 3, 315 ,
+                               72, 0, 415 
+                       ]
+       end
+       private meth action_table_row317: Array[Int]
+       do
+               return [
+                               -1, 1, 233 
+                       ]
+       end
+       private meth action_table_row318: Array[Int]
+       do
+               return [
+                               -1, 1, 558 
+                       ]
+       end
+       private meth action_table_row319: Array[Int]
+       do
+               return [
+                               -1, 1, 54 
+                       ]
+       end
+       private meth action_table_row320: Array[Int]
+       do
+               return [
+                               -1, 3, 319 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row321: Array[Int]
+       do
+               return [
+                               -1, 3, 320 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row322: Array[Int]
+       do
+               return [
+                               -1, 3, 321 ,
+                               13, 0, 418 ,
+                               73, 0, 419 ,
+                               74, 0, 420 
+                       ]
+       end
+       private meth action_table_row323: Array[Int]
+       do
+               return [
+                               -1, 3, 322 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row324: Array[Int]
+       do
+               return [
+                               -1, 3, 323 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row325: Array[Int]
+       do
+               return [
+                               -1, 3, 324 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row326: Array[Int]
+       do
+               return [
+                               -1, 1, 560 
+                       ]
+       end
+       private meth action_table_row327: Array[Int]
+       do
+               return [
+                               -1, 1, 336 
+                       ]
+       end
+       private meth action_table_row328: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row329: Array[Int]
+       do
+               return [
+                               -1, 1, 317 
+                       ]
+       end
+       private meth action_table_row330: Array[Int]
+       do
+               return [
+                               -1, 1, 249 
+                       ]
+       end
+       private meth action_table_row331: Array[Int]
+       do
+               return [
+                               -1, 1, 36 
+                       ]
+       end
+       private meth action_table_row332: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 13 
+                       ]
+       end
+       private meth action_table_row333: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 20 
+                       ]
+       end
+       private meth action_table_row334: Array[Int]
+       do
+               return [
+                               -1, 1, 40 
+                       ]
+       end
+       private meth action_table_row335: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 17 
+                       ]
+       end
+       private meth action_table_row336: Array[Int]
+       do
+               return [
+                               -1, 1, 35 
+                       ]
+       end
+       private meth action_table_row337: Array[Int]
+       do
+               return [
+                               -1, 1, 38 
+                       ]
+       end
+       private meth action_table_row338: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 15 
+                       ]
+       end
+       private meth action_table_row339: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 22 
+                       ]
+       end
+       private meth action_table_row340: Array[Int]
+       do
+               return [
+                               -1, 1, 42 
+                       ]
+       end
+       private meth action_table_row341: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 19 
+                       ]
+       end
+       private meth action_table_row342: Array[Int]
+       do
+               return [
+                               -1, 3, 341 ,
+                               10, 0, 251 
+                       ]
+       end
+       private meth action_table_row343: Array[Int]
+       do
+               return [
+                               -1, 1, 48 
+                       ]
+       end
+       private meth action_table_row344: Array[Int]
+       do
+               return [
+                               -1, 3, 343 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               48, 0, 433 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row345: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row346: Array[Int]
+       do
+               return [
+                               -1, 1, 453 
+                       ]
+       end
+       private meth action_table_row347: Array[Int]
+       do
+               return [
+                               -1, 1, 445 ,
+                               49, 0, 436 
+                       ]
+       end
+       private meth action_table_row348: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               59, 0, 437 
+                       ]
+       end
+       private meth action_table_row349: Array[Int]
+       do
+               return [
+                               -1, 1, 473 
+                       ]
+       end
+       private meth action_table_row350: Array[Int]
+       do
+               return [
+                               -1, 1, 344 ,
+                               0, 1, 349 ,
+                               1, 1, 349 ,
+                               9, 1, 349 ,
+                               27, 1, 349 ,
+                               82, 1, 349 
+                       ]
+       end
+       private meth action_table_row351: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row352: Array[Int]
+       do
+               return [
+                               -1, 1, 472 
+                       ]
+       end
+       private meth action_table_row353: Array[Int]
+       do
+               return [
+                               -1, 1, 481 
+                       ]
+       end
+       private meth action_table_row354: Array[Int]
+       do
+               return [
+                               -1, 3, 353 ,
+                               13, 0, 101 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row355: Array[Int]
+       do
+               return [
+                               -1, 3, 354 ,
+                               13, 0, 101 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row356: Array[Int]
+       do
+               return [
+                               -1, 3, 355 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row357: Array[Int]
+       do
+               return [
+                               -1, 3, 356 ,
+                               72, 0, 346 
+                       ]
+       end
+       private meth action_table_row358: Array[Int]
+       do
+               return [
+                               -1, 3, 357 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row359: Array[Int]
+       do
+               return [
+                               -1, 3, 358 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row360: Array[Int]
+       do
+               return [
+                               -1, 3, 359 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row361: Array[Int]
+       do
+               return [
+                               -1, 3, 360 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row362: Array[Int]
+       do
+               return [
+                               -1, 3, 361 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row363: Array[Int]
+       do
+               return [
+                               -1, 3, 362 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row364: Array[Int]
+       do
+               return [
+                               -1, 3, 363 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row365: Array[Int]
+       do
+               return [
+                               -1, 3, 364 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row366: Array[Int]
+       do
+               return [
+                               -1, 3, 365 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row367: Array[Int]
+       do
+               return [
+                               -1, 3, 366 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row368: Array[Int]
+       do
+               return [
+                               -1, 3, 367 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row369: Array[Int]
+       do
+               return [
+                               -1, 3, 368 ,
+                               13, 0, 101 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row370: Array[Int]
+       do
+               return [
+                               -1, 3, 369 ,
+                               13, 0, 456 ,
+                               73, 0, 457 ,
+                               74, 0, 458 
+                       ]
+       end
+       private meth action_table_row371: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row372: Array[Int]
+       do
+               return [
+                               -1, 3, 371 ,
+                               72, 0, 460 
+                       ]
+       end
+       private meth action_table_row373: Array[Int]
+       do
+               return [
+                               -1, 3, 372 ,
+                               9, 0, 461 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row374: Array[Int]
+       do
+               return [
+                               -1, 3, 373 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row375: Array[Int]
+       do
+               return [
+                               -1, 3, 374 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row376: Array[Int]
+       do
+               return [
+                               -1, 3, 375 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row377: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row378: Array[Int]
+       do
+               return [
+                               -1, 3, 377 ,
+                               26, 0, 466 
+                       ]
+       end
+       private meth action_table_row379: Array[Int]
+       do
+               return [
+                               -1, 3, 378 ,
+                               16, 0, 467 
+                       ]
+       end
+       private meth action_table_row380: Array[Int]
+       do
+               return [
+                               -1, 3, 379 ,
+                               30, 0, 468 
+                       ]
+       end
+       private meth action_table_row381: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row382: Array[Int]
+       do
+               return [
+                               -1, 1, 289 
+                       ]
+       end
+       private meth action_table_row383: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               59, 0, 403 
+                       ]
+       end
+       private meth action_table_row384: Array[Int]
+       do
+               return [
+                               -1, 1, 309 
+                       ]
+       end
+       private meth action_table_row385: Array[Int]
+       do
+               return [
+                               -1, 1, 308 
+                       ]
+       end
+       private meth action_table_row386: Array[Int]
+       do
+               return [
+                               -1, 3, 385 ,
+                               13, 0, 144 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row387: Array[Int]
+       do
+               return [
+                               -1, 3, 386 ,
+                               13, 0, 144 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row388: Array[Int]
+       do
+               return [
+                               -1, 3, 387 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row389: Array[Int]
+       do
+               return [
+                               -1, 3, 388 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row390: Array[Int]
+       do
+               return [
+                               -1, 3, 389 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row391: Array[Int]
+       do
+               return [
+                               -1, 3, 390 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row392: Array[Int]
+       do
+               return [
+                               -1, 3, 391 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row393: Array[Int]
+       do
+               return [
+                               -1, 3, 392 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row394: Array[Int]
+       do
+               return [
+                               -1, 3, 393 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row395: Array[Int]
+       do
+               return [
+                               -1, 3, 394 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row396: Array[Int]
+       do
+               return [
+                               -1, 3, 395 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row397: Array[Int]
+       do
+               return [
+                               -1, 3, 396 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row398: Array[Int]
+       do
+               return [
+                               -1, 3, 397 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row399: Array[Int]
+       do
+               return [
+                               -1, 3, 398 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row400: Array[Int]
+       do
+               return [
+                               -1, 3, 399 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row401: Array[Int]
+       do
+               return [
+                               -1, 3, 400 ,
+                               13, 0, 144 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row402: Array[Int]
+       do
+               return [
+                               -1, 3, 401 ,
+                               13, 0, 487 ,
+                               73, 0, 488 ,
+                               74, 0, 489 
+                       ]
+       end
+       private meth action_table_row403: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row404: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row405: Array[Int]
+       do
+               return [
+                               -1, 3, 404 ,
+                               50, 0, 492 ,
+                               51, 0, 493 ,
+                               58, 0, 494 
+                       ]
+       end
+       private meth action_table_row406: Array[Int]
+       do
+               return [
+                               -1, 1, 259 
+                       ]
+       end
+       private meth action_table_row407: Array[Int]
+       do
+               return [
+                               -1, 1, 264 
+                       ]
+       end
+       private meth action_table_row408: Array[Int]
+       do
+               return [
+                               -1, 3, 407 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row409: Array[Int]
+       do
+               return [
+                               -1, 3, 408 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row410: Array[Int]
+       do
+               return [
+                               -1, 1, 207 ,
+                               54, 0, 499 
+                       ]
+       end
+       private meth action_table_row411: Array[Int]
+       do
+               return [
+                               -1, 1, 209 
+                       ]
+       end
+       private meth action_table_row412: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row413: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               15, 0, 501 
+                       ]
+       end
+       private meth action_table_row414: Array[Int]
+       do
+               return [
+                               -1, 1, 212 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row415: Array[Int]
+       do
+               return [
+                               -1, 1, 213 
+                       ]
+       end
+       private meth action_table_row416: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               49, 0, 504 
+                       ]
+       end
+       private meth action_table_row417: Array[Int]
+       do
+               return [
+                               -1, 1, 278 
+                       ]
+       end
+       private meth action_table_row418: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row419: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row420: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               0, 1, 350 ,
+                               1, 1, 350 ,
+                               9, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 ,
+                               82, 1, 350 
+                       ]
+       end
+       private meth action_table_row421: Array[Int]
+       do
+               return [
+                               -1, 1, 312 ,
+                               54, 0, 515 ,
+                               55, 0, 176 ,
+                               56, 0, 177 
+                       ]
+       end
+       private meth action_table_row422: Array[Int]
+       do
+               return [
+                               -1, 1, 260 
+                       ]
+       end
+       private meth action_table_row423: Array[Int]
+       do
+               return [
+                               -1, 1, 265 
+                       ]
+       end
+       private meth action_table_row424: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row425: Array[Int]
+       do
+               return [
+                               -1, 1, 337 
+                       ]
+       end
+       private meth action_table_row426: Array[Int]
+       do
+               return [
+                               -1, 1, 37 
+                       ]
+       end
+       private meth action_table_row427: Array[Int]
+       do
+               return [
+                               -1, 1, 44 
+                       ]
+       end
+       private meth action_table_row428: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 21 
+                       ]
+       end
+       private meth action_table_row429: Array[Int]
+       do
+               return [
+                               -1, 1, 41 
+                       ]
+       end
+       private meth action_table_row430: Array[Int]
+       do
+               return [
+                               -1, 1, 39 
+                       ]
+       end
+       private meth action_table_row431: Array[Int]
+       do
+               return [
+                               -1, 1, 46 
+                       ]
+       end
+       private meth action_table_row432: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               82, 1, 23 
+                       ]
+       end
+       private meth action_table_row433: Array[Int]
+       do
+               return [
+                               -1, 1, 43 
+                       ]
+       end
+       private meth action_table_row434: Array[Int]
+       do
+               return [
+                               -1, 1, 344 
+                       ]
+       end
+       private meth action_table_row435: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row436: Array[Int]
+       do
+               return [
+                               -1, 3, 435 ,
+                               26, 0, 521 
+                       ]
+       end
+       private meth action_table_row437: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row438: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row439: Array[Int]
+       do
+               return [
+                               -1, 1, 475 
+                       ]
+       end
+       private meth action_table_row440: Array[Int]
+       do
+               return [
+                               -1, 3, 439 ,
+                               48, 0, 524 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row441: Array[Int]
+       do
+               return [
+                               -1, 1, 451 
+                       ]
+       end
+       private meth action_table_row442: Array[Int]
+       do
+               return [
+                               -1, 1, 450 
+                       ]
+       end
+       private meth action_table_row443: Array[Int]
+       do
+               return [
+                               -1, 1, 456 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row444: Array[Int]
+       do
+               return [
+                               -1, 1, 463 
+                       ]
+       end
+       private meth action_table_row445: Array[Int]
+       do
+               return [
+                               -1, 1, 465 ,
+                               62, 0, 247 ,
+                               63, 0, 248 ,
+                               64, 0, 249 
+                       ]
+       end
+       private meth action_table_row446: Array[Int]
+       do
+               return [
+                               -1, 1, 466 ,
+                               62, 0, 247 ,
+                               63, 0, 248 ,
+                               64, 0, 249 
+                       ]
+       end
+       private meth action_table_row447: Array[Int]
+       do
+               return [
+                               -1, 1, 455 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row448: Array[Int]
+       do
+               return [
+                               -1, 1, 457 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row449: Array[Int]
+       do
+               return [
+                               -1, 1, 458 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row450: Array[Int]
+       do
+               return [
+                               -1, 1, 459 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row451: Array[Int]
+       do
+               return [
+                               -1, 1, 460 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row452: Array[Int]
+       do
+               return [
+                               -1, 1, 461 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row453: Array[Int]
+       do
+               return [
+                               -1, 1, 462 ,
+                               60, 0, 238 ,
+                               61, 0, 239 
+                       ]
+       end
+       private meth action_table_row454: Array[Int]
+       do
+               return [
+                               -1, 1, 468 
+                       ]
+       end
+       private meth action_table_row455: Array[Int]
+       do
+               return [
+                               -1, 1, 469 
+                       ]
+       end
+       private meth action_table_row456: Array[Int]
+       do
+               return [
+                               -1, 1, 470 
+                       ]
+       end
+       private meth action_table_row457: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row458: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row459: Array[Int]
+       do
+               return [
+                               -1, 1, 476 
+                       ]
+       end
+       private meth action_table_row460: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               15, 0, 528 
+                       ]
+       end
+       private meth action_table_row461: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               49, 0, 504 
+                       ]
+       end
+       private meth action_table_row462: Array[Int]
+       do
+               return [
+                               -1, 1, 229 
+                       ]
+       end
+       private meth action_table_row463: Array[Int]
+       do
+               return [
+                               -1, 3, 462 ,
+                               9, 0, 534 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row464: Array[Int]
+       do
+               return [
+                               -1, 1, 227 
+                       ]
+       end
+       private meth action_table_row465: Array[Int]
+       do
+               return [
+                               -1, 1, 254 
+                       ]
+       end
+       private meth action_table_row466: Array[Int]
+       do
+               return [
+                               -1, 3, 465 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row467: Array[Int]
+       do
+               return [
+                               -1, 3, 466 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 536 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               27, 0, 540 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row468: Array[Int]
+       do
+               return [
+                               -1, 3, 467 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row469: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row470: Array[Int]
+       do
+               return [
+                               -1, 3, 469 ,
+                               26, 0, 564 
+                       ]
+       end
+       private meth action_table_row471: Array[Int]
+       do
+               return [
+                               -1, 1, 311 
+                       ]
+       end
+       private meth action_table_row472: Array[Int]
+       do
+               return [
+                               -1, 1, 287 
+                       ]
+       end
+       private meth action_table_row473: Array[Int]
+       do
+               return [
+                               -1, 1, 286 
+                       ]
+       end
+       private meth action_table_row474: Array[Int]
+       do
+               return [
+                               -1, 1, 292 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row475: Array[Int]
+       do
+               return [
+                               -1, 1, 299 
+                       ]
+       end
+       private meth action_table_row476: Array[Int]
+       do
+               return [
+                               -1, 1, 301 ,
+                               62, 0, 280 ,
+                               63, 0, 281 ,
+                               64, 0, 282 
+                       ]
+       end
+       private meth action_table_row477: Array[Int]
+       do
+               return [
+                               -1, 1, 302 ,
+                               62, 0, 280 ,
+                               63, 0, 281 ,
+                               64, 0, 282 
+                       ]
+       end
+       private meth action_table_row478: Array[Int]
+       do
+               return [
+                               -1, 1, 291 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row479: Array[Int]
+       do
+               return [
+                               -1, 1, 293 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row480: Array[Int]
+       do
+               return [
+                               -1, 1, 294 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row481: Array[Int]
+       do
+               return [
+                               -1, 1, 295 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row482: Array[Int]
+       do
+               return [
+                               -1, 1, 296 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row483: Array[Int]
+       do
+               return [
+                               -1, 1, 297 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row484: Array[Int]
+       do
+               return [
+                               -1, 1, 298 ,
+                               60, 0, 271 ,
+                               61, 0, 272 
+                       ]
+       end
+       private meth action_table_row485: Array[Int]
+       do
+               return [
+                               -1, 1, 304 
+                       ]
+       end
+       private meth action_table_row486: Array[Int]
+       do
+               return [
+                               -1, 1, 305 
+                       ]
+       end
+       private meth action_table_row487: Array[Int]
+       do
+               return [
+                               -1, 1, 306 
+                       ]
+       end
+       private meth action_table_row488: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row489: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row490: Array[Int]
+       do
+               return [
+                               -1, 1, 312 
+                       ]
+       end
+       private meth action_table_row491: Array[Int]
+       do
+               return [
+                               -1, 3, 490 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row492: Array[Int]
+       do
+               return [
+                               -1, 3, 491 ,
+                               73, 0, 568 
+                       ]
+       end
+       private meth action_table_row493: Array[Int]
+       do
+               return [
+                               -1, 1, 351 
+                       ]
+       end
+       private meth action_table_row494: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row495: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row496: Array[Int]
+       do
+               return [
+                               -1, 1, 561 
+                       ]
+       end
+       private meth action_table_row497: Array[Int]
+       do
+               return [
+                               -1, 3, 496 ,
+                               50, 0, 571 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row498: Array[Int]
+       do
+               return [
+                               -1, 1, 50 
+                       ]
+       end
+       private meth action_table_row499: Array[Int]
+       do
+               return [
+                               -1, 1, 49 
+                       ]
+       end
+       private meth action_table_row500: Array[Int]
+       do
+               return [
+                               -1, 1, 210 
+                       ]
+       end
+       private meth action_table_row501: Array[Int]
+       do
+               return [
+                               -1, 3, 500 ,
+                               48, 0, 573 ,
+                               73, 0, 574 
+                       ]
+       end
+       private meth action_table_row502: Array[Int]
+       do
+               return [
+                               -1, 3, 501 ,
+                               21, 0, 576 
+                       ]
+       end
+       private meth action_table_row503: Array[Int]
+       do
+               return [
+                               -1, 3, 502 ,
+                               16, 0, 577 
+                       ]
+       end
+       private meth action_table_row504: Array[Int]
+       do
+               return [
+                               -1, 1, 214 
+                       ]
+       end
+       private meth action_table_row505: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row506: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row507: Array[Int]
+       do
+               return [
+                               -1, 1, 545 
+                       ]
+       end
+       private meth action_table_row508: Array[Int]
+       do
+               return [
+                               -1, 3, 507 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row509: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 584 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row510: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row511: Array[Int]
+       do
+               return [
+                               -1, 3, 510 ,
+                               50, 0, 492 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row512: Array[Int]
+       do
+               return [
+                               -1, 1, 318 
+                       ]
+       end
+       private meth action_table_row513: Array[Int]
+       do
+               return [
+                               -1, 1, 250 
+                       ]
+       end
+       private meth action_table_row514: Array[Int]
+       do
+               return [
+                               -1, 1, 314 ,
+                               54, 0, 592 ,
+                               55, 0, 176 ,
+                               56, 0, 177 
+                       ]
+       end
+       private meth action_table_row515: Array[Int]
+       do
+               return [
+                               -1, 1, 246 
+                       ]
+       end
+       private meth action_table_row516: Array[Int]
+       do
+               return [
+                               -1, 3, 515 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row517: Array[Int]
+       do
+               return [
+                               -1, 3, 516 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row518: Array[Int]
+       do
+               return [
+                               -1, 1, 339 
+                       ]
+       end
+       private meth action_table_row519: Array[Int]
+       do
+               return [
+                               -1, 1, 45 
+                       ]
+       end
+       private meth action_table_row520: Array[Int]
+       do
+               return [
+                               -1, 1, 47 
+                       ]
+       end
+       private meth action_table_row521: Array[Int]
+       do
+               return [
+                               -1, 3, 520 ,
+                               48, 0, 596 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row522: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row523: Array[Int]
+       do
+               return [
+                               -1, 3, 522 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row524: Array[Int]
+       do
+               return [
+                               -1, 3, 523 ,
+                               73, 0, 600 
+                       ]
+       end
+       private meth action_table_row525: Array[Int]
+       do
+               return [
+                               -1, 1, 342 ,
+                               0, 1, 346 ,
+                               1, 1, 346 ,
+                               9, 1, 346 ,
+                               27, 1, 346 ,
+                               82, 1, 346 
+                       ]
+       end
+       private meth action_table_row526: Array[Int]
+       do
+               return [
+                               -1, 3, 525 ,
+                               48, 0, 601 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row527: Array[Int]
+       do
+               return [
+                               -1, 1, 482 
+                       ]
+       end
+       private meth action_table_row528: Array[Int]
+       do
+               return [
+                               -1, 1, 478 
+                       ]
+       end
+       private meth action_table_row529: Array[Int]
+       do
+               return [
+                               -1, 3, 528 ,
+                               21, 0, 602 
+                       ]
+       end
+       private meth action_table_row530: Array[Int]
+       do
+               return [
+                               -1, 3, 529 ,
+                               16, 0, 603 
+                       ]
+       end
+       private meth action_table_row531: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row532: Array[Int]
+       do
+               return [
+                               -1, 3, 531 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row533: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 608 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row534: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row535: Array[Int]
+       do
+               return [
+                               -1, 1, 230 
+                       ]
+       end
+       private meth action_table_row536: Array[Int]
+       do
+               return [
+                               -1, 1, 255 
+                       ]
+       end
+       private meth action_table_row537: Array[Int]
+       do
+               return [
+                               -1, 1, 276 
+                       ]
+       end
+       private meth action_table_row538: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row539: Array[Int]
+       do
+               return [
+                               -1, 3, 538 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 612 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row540: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row541: Array[Int]
+       do
+               return [
+                               -1, 3, 540 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row542: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row543: Array[Int]
+       do
+               return [
+                               -1, 1, 236 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               27, 1, 425 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row544: Array[Int]
+       do
+               return [
+                               -1, 1, 240 ,
+                               27, 1, 429 
+                       ]
+       end
+       private meth action_table_row545: Array[Int]
+       do
+               return [
+                               -1, 1, 238 ,
+                               27, 1, 427 
+                       ]
+       end
+       private meth action_table_row546: Array[Int]
+       do
+               return [
+                               -1, 1, 239 ,
+                               27, 1, 428 
+                       ]
+       end
+       private meth action_table_row547: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row548: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               0, 1, 350 ,
+                               1, 1, 350 ,
+                               9, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               27, 1, 350 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               53, 0, 172 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 ,
+                               82, 1, 350 
+                       ]
+       end
+       private meth action_table_row549: Array[Int]
+       do
+               return [
+                               -1, 1, 270 
+                       ]
+       end
+       private meth action_table_row550: Array[Int]
+       do
+               return [
+                               -1, 1, 234 ,
+                               27, 1, 423 
+                       ]
+       end
+       private meth action_table_row551: Array[Int]
+       do
+               return [
+                               -1, 1, 235 ,
+                               27, 1, 424 
+                       ]
+       end
+       private meth action_table_row552: Array[Int]
+       do
+               return [
+                               -1, 1, 273 
+                       ]
+       end
+       private meth action_table_row553: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row554: Array[Int]
+       do
+               return [
+                               -1, 1, 245 ,
+                               27, 1, 434 
+                       ]
+       end
+       private meth action_table_row555: Array[Int]
+       do
+               return [
+                               -1, 3, 554 ,
+                               49, 0, 191 ,
+                               59, 0, 623 
+                       ]
+       end
+       private meth action_table_row556: Array[Int]
+       do
+               return [
+                               -1, 3, 555 ,
+                               42, 0, 624 
+                       ]
+       end
+       private meth action_table_row557: Array[Int]
+       do
+               return [
+                               -1, 3, 556 ,
+                               9, 0, 536 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               27, 0, 540 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row558: Array[Int]
+       do
+               return [
+                               -1, 3, 557 ,
+                               27, 0, 627 
+                       ]
+       end
+       private meth action_table_row559: Array[Int]
+       do
+               return [
+                               -1, 1, 430 
+                       ]
+       end
+       private meth action_table_row560: Array[Int]
+       do
+               return [
+                               -1, 1, 431 
+                       ]
+       end
+       private meth action_table_row561: Array[Int]
+       do
+               return [
+                               -1, 1, 432 
+                       ]
+       end
+       private meth action_table_row562: Array[Int]
+       do
+               return [
+                               -1, 1, 433 
+                       ]
+       end
+       private meth action_table_row563: Array[Int]
+       do
+               return [
+                               -1, 1, 277 
+                       ]
+       end
+       private meth action_table_row564: Array[Int]
+       do
+               return [
+                               -1, 3, 563 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row565: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row566: Array[Int]
+       do
+               return [
+                               -1, 1, 314 
+                       ]
+       end
+       private meth action_table_row567: Array[Int]
+       do
+               return [
+                               -1, 1, 224 ,
+                               51, 0, 630 
+                       ]
+       end
+       private meth action_table_row568: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row569: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row570: Array[Int]
+       do
+               return [
+                               -1, 3, 569 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row571: Array[Int]
+       do
+               return [
+                               -1, 3, 570 ,
+                               13, 0, 636 ,
+                               25, 0, 637 ,
+                               33, 0, 638 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row572: Array[Int]
+       do
+               return [
+                               -1, 1, 352 
+                       ]
+       end
+       private meth action_table_row573: Array[Int]
+       do
+               return [
+                               -1, 1, 562 
+                       ]
+       end
+       private meth action_table_row574: Array[Int]
+       do
+               return [
+                               -1, 1, 217 
+                       ]
+       end
+       private meth action_table_row575: Array[Int]
+       do
+               return [
+                               -1, 1, 219 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row576: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               51, 0, 666 
+                       ]
+       end
+       private meth action_table_row577: Array[Int]
+       do
+               return [
+                               -1, 1, 185 ,
+                               78, 0, 670 
+                       ]
+       end
+       private meth action_table_row578: Array[Int]
+       do
+               return [
+                               -1, 3, 577 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row579: Array[Int]
+       do
+               return [
+                               -1, 3, 578 ,
+                               72, 0, 672 
+                       ]
+       end
+       private meth action_table_row580: Array[Int]
+       do
+               return [
+                               -1, 3, 579 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row581: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 675 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row582: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row583: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row584: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row585: Array[Int]
+       do
+               return [
+                               -1, 1, 55 
+                       ]
+       end
+       private meth action_table_row586: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               17, 0, 683 ,
+                               18, 0, 684 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row587: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 686 ,
+                               18, 0, 687 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row588: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 689 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row589: Array[Int]
+       do
+               return [
+                               -1, 3, 588 ,
+                               10, 0, 691 ,
+                               11, 0, 692 ,
+                               12, 0, 693 ,
+                               13, 0, 694 
+                       ]
+       end
+       private meth action_table_row590: Array[Int]
+       do
+               return [
+                               -1, 1, 546 
+                       ]
+       end
+       private meth action_table_row591: Array[Int]
+       do
+               return [
+                               -1, 3, 590 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row592: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 696 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row593: Array[Int]
+       do
+               return [
+                               -1, 3, 592 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row594: Array[Int]
+       do
+               return [
+                               -1, 3, 593 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row595: Array[Int]
+       do
+               return [
+                               -1, 1, 256 
+                       ]
+       end
+       private meth action_table_row596: Array[Int]
+       do
+               return [
+                               -1, 1, 261 
+                       ]
+       end
+       private meth action_table_row597: Array[Int]
+       do
+               return [
+                               -1, 1, 342 
+                       ]
+       end
+       private meth action_table_row598: Array[Int]
+       do
+               return [
+                               -1, 3, 597 ,
+                               48, 0, 699 ,
+                               51, 0, 493 
+                       ]
+       end
+       private meth action_table_row599: Array[Int]
+       do
+               return [
+                               -1, 3, 598 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row600: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row601: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row602: Array[Int]
+       do
+               return [
+                               -1, 1, 343 ,
+                               0, 1, 347 ,
+                               1, 1, 347 ,
+                               9, 1, 347 ,
+                               27, 1, 347 ,
+                               82, 1, 347 
+                       ]
+       end
+       private meth action_table_row603: Array[Int]
+       do
+               return [
+                               -1, 1, 186 ,
+                               78, 0, 703 
+                       ]
+       end
+       private meth action_table_row604: Array[Int]
+       do
+               return [
+                               -1, 3, 603 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row605: Array[Int]
+       do
+               return [
+                               -1, 3, 604 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row606: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 706 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row607: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row608: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row609: Array[Int]
+       do
+               return [
+                               -1, 1, 56 
+                       ]
+       end
+       private meth action_table_row610: Array[Int]
+       do
+               return [
+                               -1, 3, 609 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row611: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 712 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row612: Array[Int]
+       do
+               return [
+                               -1, 1, 251 ,
+                               27, 1, 440 
+                       ]
+       end
+       private meth action_table_row613: Array[Int]
+       do
+               return [
+                               -1, 1, 232 ,
+                               27, 1, 422 
+                       ]
+       end
+       private meth action_table_row614: Array[Int]
+       do
+               return [
+                               -1, 3, 613 ,
+                               9, 0, 713 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row615: Array[Int]
+       do
+               return [
+                               -1, 1, 441 
+                       ]
+       end
+       private meth action_table_row616: Array[Int]
+       do
+               return [
+                               -1, 1, 418 
+                       ]
+       end
+       private meth action_table_row617: Array[Int]
+       do
+               return [
+                               -1, 3, 616 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row618: Array[Int]
+       do
+               return [
+                               -1, 1, 275 
+                       ]
+       end
+       private meth action_table_row619: Array[Int]
+       do
+               return [
+                               -1, 3, 618 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row620: Array[Int]
+       do
+               return [
+                               -1, 1, 237 ,
+                               27, 1, 426 
+                       ]
+       end
+       private meth action_table_row621: Array[Int]
+       do
+               return [
+                               -1, 1, 248 ,
+                               27, 1, 437 
+                       ]
+       end
+       private meth action_table_row622: Array[Int]
+       do
+               return [
+                               -1, 1, 247 ,
+                               27, 1, 436 
+                       ]
+       end
+       private meth action_table_row623: Array[Int]
+       do
+               return [
+                               -1, 3, 622 ,
+                               16, 0, 717 
+                       ]
+       end
+       private meth action_table_row624: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row625: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row626: Array[Int]
+       do
+               return [
+                               -1, 3, 625 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row627: Array[Int]
+       do
+               return [
+                               -1, 1, 274 
+                       ]
+       end
+       private meth action_table_row628: Array[Int]
+       do
+               return [
+                               -1, 3, 627 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row629: Array[Int]
+       do
+               return [
+                               -1, 1, 279 
+                       ]
+       end
+       private meth action_table_row630: Array[Int]
+       do
+               return [
+                               -1, 3, 629 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row631: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row632: Array[Int]
+       do
+               return [
+                               -1, 1, 555 
+                       ]
+       end
+       private meth action_table_row633: Array[Int]
+       do
+               return [
+                               -1, 1, 225 ,
+                               51, 0, 630 
+                       ]
+       end
+       private meth action_table_row634: Array[Int]
+       do
+               return [
+                               -1, 3, 633 ,
+                               50, 0, 726 
+                       ]
+       end
+       private meth action_table_row635: Array[Int]
+       do
+               return [
+                               -1, 1, 321 
+                       ]
+       end
+       private meth action_table_row636: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row637: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row638: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row639: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row640: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row641: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row642: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row643: Array[Int]
+       do
+               return [
+                               -1, 1, 408 
+                       ]
+       end
+       private meth action_table_row644: Array[Int]
+       do
+               return [
+                               -1, 1, 409 
+                       ]
+       end
+       private meth action_table_row645: Array[Int]
+       do
+               return [
+                               -1, 1, 410 
+                       ]
+       end
+       private meth action_table_row646: Array[Int]
+       do
+               return [
+                               -1, 1, 411 
+                       ]
+       end
+       private meth action_table_row647: Array[Int]
+       do
+               return [
+                               -1, 3, 646 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row648: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row649: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               53, 0, 172 
+                       ]
+       end
+       private meth action_table_row650: Array[Int]
+       do
+               return [
+                               -1, 1, 400 
+                       ]
+       end
+       private meth action_table_row651: Array[Int]
+       do
+               return [
+                               -1, 1, 412 
+                       ]
+       end
+       private meth action_table_row652: Array[Int]
+       do
+               return [
+                               -1, 1, 413 
+                       ]
+       end
+       private meth action_table_row653: Array[Int]
+       do
+               return [
+                               -1, 1, 414 
+                       ]
+       end
+       private meth action_table_row654: Array[Int]
+       do
+               return [
+                               -1, 1, 415 
+                       ]
+       end
+       private meth action_table_row655: Array[Int]
+       do
+               return [
+                               -1, 1, 416 
+                       ]
+       end
+       private meth action_table_row656: Array[Int]
+       do
+               return [
+                               -1, 3, 655 ,
+                               42, 0, 737 
+                       ]
+       end
+       private meth action_table_row657: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row658: Array[Int]
+       do
+               return [
+                               -1, 1, 370 ,
+                               31, 0, 739 ,
+                               32, 0, 740 
+                       ]
+       end
+       private meth action_table_row659: Array[Int]
+       do
+               return [
+                               -1, 1, 372 
+                       ]
+       end
+       private meth action_table_row660: Array[Int]
+       do
+               return [
+                               -1, 1, 375 
+                       ]
+       end
+       private meth action_table_row661: Array[Int]
+       do
+               return [
+                               -1, 1, 377 ,
+                               15, 0, 741 ,
+                               40, 0, 742 ,
+                               60, 0, 743 ,
+                               61, 0, 744 ,
+                               65, 0, 745 ,
+                               66, 0, 746 ,
+                               67, 0, 747 ,
+                               68, 0, 748 ,
+                               69, 0, 749 ,
+                               70, 0, 750 ,
+                               71, 0, 751 
+                       ]
+       end
+       private meth action_table_row662: Array[Int]
+       do
+               return [
+                               -1, 1, 387 ,
+                               62, 0, 752 ,
+                               63, 0, 753 ,
+                               64, 0, 754 
+                       ]
+       end
+       private meth action_table_row663: Array[Int]
+       do
+               return [
+                               -1, 1, 390 
+                       ]
+       end
+       private meth action_table_row664: Array[Int]
+       do
+               return [
+                               -1, 1, 394 
+                       ]
+       end
+       private meth action_table_row665: Array[Int]
+       do
+               return [
+                               -1, 1, 397 ,
+                               59, 0, 755 
+                       ]
+       end
+       private meth action_table_row666: Array[Int]
+       do
+               return [
+                               -1, 1, 220 ,
+                               57, 0, 756 
+                       ]
+       end
+       private meth action_table_row667: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row668: Array[Int]
+       do
+               return [
+                               -1, 1, 553 
+                       ]
+       end
+       private meth action_table_row669: Array[Int]
+       do
+               return [
+                               -1, 3, 668 ,
+                               48, 0, 758 
+                       ]
+       end
+       private meth action_table_row670: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               51, 0, 666 
+                       ]
+       end
+       private meth action_table_row671: Array[Int]
+       do
+               return [
+                               -1, 1, 187 
+                       ]
+       end
+       private meth action_table_row672: Array[Int]
+       do
+               return [
+                               -1, 1, 189 
+                       ]
+       end
+       private meth action_table_row673: Array[Int]
+       do
+               return [
+                               -1, 1, 86 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row674: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               51, 0, 762 
+                       ]
+       end
+       private meth action_table_row675: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row676: Array[Int]
+       do
+               return [
+                               -1, 1, 57 
+                       ]
+       end
+       private meth action_table_row677: Array[Int]
+       do
+               return [
+                               -1, 3, 676 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row678: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 769 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row679: Array[Int]
+       do
+               return [
+                               -1, 1, 549 
+                       ]
+       end
+       private meth action_table_row680: Array[Int]
+       do
+               return [
+                               -1, 3, 679 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row681: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 771 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row682: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row683: Array[Int]
+       do
+               return [
+                               -1, 3, 682 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row684: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 775 ,
+                               18, 0, 776 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row685: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 778 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row686: Array[Int]
+       do
+               return [
+                               -1, 3, 685 ,
+                               10, 0, 780 ,
+                               11, 0, 781 ,
+                               12, 0, 782 ,
+                               13, 0, 783 
+                       ]
+       end
+       private meth action_table_row687: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               18, 0, 784 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row688: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 786 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row689: Array[Int]
+       do
+               return [
+                               -1, 3, 688 ,
+                               12, 0, 788 
+                       ]
+       end
+       private meth action_table_row690: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row691: Array[Int]
+       do
+               return [
+                               -1, 3, 690 ,
+                               12, 0, 790 
+                       ]
+       end
+       private meth action_table_row692: Array[Int]
+       do
+               return [
+                               -1, 3, 691 ,
+                               49, 0, 300 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row693: Array[Int]
+       do
+               return [
+                               -1, 3, 692 ,
+                               72, 0, 792 
+                       ]
+       end
+       private meth action_table_row694: Array[Int]
+       do
+               return [
+                               -1, 3, 693 ,
+                               74, 0, 793 
+                       ]
+       end
+       private meth action_table_row695: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               49, 0, 300 ,
+                               52, 0, 255 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row696: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row697: Array[Int]
+       do
+               return [
+                               -1, 1, 59 
+                       ]
+       end
+       private meth action_table_row698: Array[Int]
+       do
+               return [
+                               -1, 1, 258 
+                       ]
+       end
+       private meth action_table_row699: Array[Int]
+       do
+               return [
+                               -1, 1, 263 
+                       ]
+       end
+       private meth action_table_row700: Array[Int]
+       do
+               return [
+                               -1, 1, 343 
+                       ]
+       end
+       private meth action_table_row701: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row702: Array[Int]
+       do
+               return [
+                               -1, 3, 701 ,
+                               50, 0, 799 
+                       ]
+       end
+       private meth action_table_row703: Array[Int]
+       do
+               return [
+                               -1, 1, 484 
+                       ]
+       end
+       private meth action_table_row704: Array[Int]
+       do
+               return [
+                               -1, 1, 188 
+                       ]
+       end
+       private meth action_table_row705: Array[Int]
+       do
+               return [
+                               -1, 1, 190 
+                       ]
+       end
+       private meth action_table_row706: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row707: Array[Int]
+       do
+               return [
+                               -1, 1, 58 
+                       ]
+       end
+       private meth action_table_row708: Array[Int]
+       do
+               return [
+                               -1, 3, 707 ,
+                               0, 0, 22 ,
+                               1, 0, 23 
+                       ]
+       end
+       private meth action_table_row709: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               8, 0, 583 ,
+                               9, 0, 803 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row710: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 804 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row711: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row712: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row713: Array[Int]
+       do
+               return [
+                               -1, 1, 60 
+                       ]
+       end
+       private meth action_table_row714: Array[Int]
+       do
+               return [
+                               -1, 1, 231 ,
+                               27, 1, 421 
+                       ]
+       end
+       private meth action_table_row715: Array[Int]
+       do
+               return [
+                               -1, 3, 714 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row716: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row717: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row718: Array[Int]
+       do
+               return [
+                               -1, 3, 717 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 612 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row719: Array[Int]
+       do
+               return [
+                               -1, 3, 718 ,
+                               13, 0, 813 ,
+                               73, 0, 814 ,
+                               74, 0, 420 
+                       ]
+       end
+       private meth action_table_row720: Array[Int]
+       do
+               return [
+                               -1, 1, 249 ,
+                               27, 1, 438 
+                       ]
+       end
+       private meth action_table_row721: Array[Int]
+       do
+               return [
+                               -1, 3, 720 ,
+                               9, 0, 536 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               27, 0, 540 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row722: Array[Int]
+       do
+               return [
+                               -1, 3, 721 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row723: Array[Int]
+       do
+               return [
+                               -1, 1, 269 
+                       ]
+       end
+       private meth action_table_row724: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row725: Array[Int]
+       do
+               return [
+                               -1, 3, 724 ,
+                               72, 0, 288 
+                       ]
+       end
+       private meth action_table_row726: Array[Int]
+       do
+               return [
+                               -1, 1, 556 
+                       ]
+       end
+       private meth action_table_row727: Array[Int]
+       do
+               return [
+                               -1, 1, 223 
+                       ]
+       end
+       private meth action_table_row728: Array[Int]
+       do
+               return [
+                               -1, 1, 353 
+                       ]
+       end
+       private meth action_table_row729: Array[Int]
+       do
+               return [
+                               -1, 1, 406 
+                       ]
+       end
+       private meth action_table_row730: Array[Int]
+       do
+               return [
+                               -1, 3, 729 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row731: Array[Int]
+       do
+               return [
+                               -1, 3, 730 ,
+                               13, 0, 636 ,
+                               33, 0, 638 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row732: Array[Int]
+       do
+               return [
+                               -1, 3, 731 ,
+                               72, 0, 821 
+                       ]
+       end
+       private meth action_table_row733: Array[Int]
+       do
+               return [
+                               -1, 3, 732 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row734: Array[Int]
+       do
+               return [
+                               -1, 1, 403 
+                       ]
+       end
+       private meth action_table_row735: Array[Int]
+       do
+               return [
+                               -1, 3, 734 ,
+                               48, 0, 824 
+                       ]
+       end
+       private meth action_table_row736: Array[Int]
+       do
+               return [
+                               -1, 3, 735 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row737: Array[Int]
+       do
+               return [
+                               -1, 1, 402 
+                       ]
+       end
+       private meth action_table_row738: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row739: Array[Int]
+       do
+               return [
+                               -1, 3, 738 ,
+                               49, 0, 827 ,
+                               50, 0, 828 
+                       ]
+       end
+       private meth action_table_row740: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row741: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row742: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row743: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row744: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row745: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row746: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row747: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row748: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row749: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row750: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row751: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row752: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row753: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row754: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row755: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row756: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row757: Array[Int]
+       do
+               return [
+                               -1, 1, 221 
+                       ]
+       end
+       private meth action_table_row758: Array[Int]
+       do
+               return [
+                               -1, 3, 757 ,
+                               73, 0, 574 
+                       ]
+       end
+       private meth action_table_row759: Array[Int]
+       do
+               return [
+                               -1, 1, 215 
+                       ]
+       end
+       private meth action_table_row760: Array[Int]
+       do
+               return [
+                               -1, 1, 554 
+                       ]
+       end
+       private meth action_table_row761: Array[Int]
+       do
+               return [
+                               -1, 3, 760 ,
+                               48, 0, 847 
+                       ]
+       end
+       private meth action_table_row762: Array[Int]
+       do
+               return [
+                               -1, 1, 87 
+                       ]
+       end
+       private meth action_table_row763: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row764: Array[Int]
+       do
+               return [
+                               -1, 1, 547 
+                       ]
+       end
+       private meth action_table_row765: Array[Int]
+       do
+               return [
+                               -1, 3, 764 ,
+                               50, 0, 849 
+                       ]
+       end
+       private meth action_table_row766: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               51, 0, 762 
+                       ]
+       end
+       private meth action_table_row767: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 852 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row768: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row769: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row770: Array[Int]
+       do
+               return [
+                               -1, 1, 61 
+                       ]
+       end
+       private meth action_table_row771: Array[Int]
+       do
+               return [
+                               -1, 1, 89 
+                       ]
+       end
+       private meth action_table_row772: Array[Int]
+       do
+               return [
+                               -1, 1, 63 
+                       ]
+       end
+       private meth action_table_row773: Array[Int]
+       do
+               return [
+                               -1, 1, 550 
+                       ]
+       end
+       private meth action_table_row774: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 856 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row775: Array[Int]
+       do
+               return [
+                               -1, 1, 88 
+                       ]
+       end
+       private meth action_table_row776: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               18, 0, 857 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row777: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 859 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row778: Array[Int]
+       do
+               return [
+                               -1, 3, 777 ,
+                               12, 0, 861 
+                       ]
+       end
+       private meth action_table_row779: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row780: Array[Int]
+       do
+               return [
+                               -1, 3, 779 ,
+                               12, 0, 863 
+                       ]
+       end
+       private meth action_table_row781: Array[Int]
+       do
+               return [
+                               -1, 3, 780 ,
+                               49, 0, 300 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row782: Array[Int]
+       do
+               return [
+                               -1, 3, 781 ,
+                               72, 0, 865 
+                       ]
+       end
+       private meth action_table_row783: Array[Int]
+       do
+               return [
+                               -1, 3, 782 ,
+                               74, 0, 866 
+                       ]
+       end
+       private meth action_table_row784: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               49, 0, 300 ,
+                               52, 0, 255 ,
+                               60, 0, 301 ,
+                               61, 0, 302 ,
+                               62, 0, 303 ,
+                               63, 0, 304 ,
+                               64, 0, 305 ,
+                               65, 0, 306 ,
+                               66, 0, 307 ,
+                               67, 0, 308 ,
+                               68, 0, 309 ,
+                               69, 0, 310 ,
+                               70, 0, 311 ,
+                               71, 0, 312 ,
+                               73, 0, 313 
+                       ]
+       end
+       private meth action_table_row785: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 869 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row786: Array[Int]
+       do
+               return [
+                               -1, 3, 785 ,
+                               12, 0, 871 
+                       ]
+       end
+       private meth action_table_row787: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row788: Array[Int]
+       do
+               return [
+                               -1, 3, 787 ,
+                               12, 0, 873 
+                       ]
+       end
+       private meth action_table_row789: Array[Int]
+       do
+               return [
+                               -1, 3, 788 ,
+                               74, 0, 874 
+                       ]
+       end
+       private meth action_table_row790: Array[Int]
+       do
+               return [
+                               -1, 3, 789 ,
+                               12, 0, 875 
+                       ]
+       end
+       private meth action_table_row791: Array[Int]
+       do
+               return [
+                               -1, 3, 790 ,
+                               74, 0, 876 
+                       ]
+       end
+       private meth action_table_row792: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row793: Array[Int]
+       do
+               return [
+                               -1, 3, 792 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row794: Array[Int]
+       do
+               return [
+                               -1, 1, 98 ,
+                               52, 0, 255 ,
+                               54, 0, 879 
+                       ]
+       end
+       private meth action_table_row795: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row796: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row797: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 883 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row798: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row799: Array[Int]
+       do
+               return [
+                               -1, 3, 798 ,
+                               27, 0, 885 
+                       ]
+       end
+       private meth action_table_row800: Array[Int]
+       do
+               return [
+                               -1, 1, 446 
+                       ]
+       end
+       private meth action_table_row801: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 886 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row802: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row803: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row804: Array[Int]
+       do
+               return [
+                               -1, 1, 62 
+                       ]
+       end
+       private meth action_table_row805: Array[Int]
+       do
+               return [
+                               -1, 1, 65 
+                       ]
+       end
+       private meth action_table_row806: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 890 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row807: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 891 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row808: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row809: Array[Int]
+       do
+               return [
+                               -1, 3, 808 ,
+                               9, 0, 893 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row810: Array[Int]
+       do
+               return [
+                               -1, 3, 809 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row811: Array[Int]
+       do
+               return [
+                               -1, 3, 810 ,
+                               26, 0, 895 
+                       ]
+       end
+       private meth action_table_row812: Array[Int]
+       do
+               return [
+                               -1, 3, 811 ,
+                               16, 0, 896 
+                       ]
+       end
+       private meth action_table_row813: Array[Int]
+       do
+               return [
+                               -1, 1, 444 
+                       ]
+       end
+       private meth action_table_row814: Array[Int]
+       do
+               return [
+                               -1, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               49, 1, 345 ,
+                               59, 1, 345 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row815: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               0, 1, 350 ,
+                               1, 1, 350 ,
+                               9, 1, 350 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               27, 1, 350 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               47, 0, 111 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 ,
+                               82, 1, 350 
+                       ]
+       end
+       private meth action_table_row816: Array[Int]
+       do
+               return [
+                               -1, 1, 271 
+                       ]
+       end
+       private meth action_table_row817: Array[Int]
+       do
+               return [
+                               -1, 3, 816 ,
+                               9, 0, 536 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               27, 0, 540 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row818: Array[Int]
+       do
+               return [
+                               -1, 3, 817 ,
+                               27, 0, 900 
+                       ]
+       end
+       private meth action_table_row819: Array[Int]
+       do
+               return [
+                               -1, 1, 226 
+                       ]
+       end
+       private meth action_table_row820: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row821: Array[Int]
+       do
+               return [
+                               -1, 1, 376 
+                       ]
+       end
+       private meth action_table_row822: Array[Int]
+       do
+               return [
+                               -1, 1, 369 
+                       ]
+       end
+       private meth action_table_row823: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 ,
+                               59, 0, 902 
+                       ]
+       end
+       private meth action_table_row824: Array[Int]
+       do
+               return [
+                               -1, 1, 396 
+                       ]
+       end
+       private meth action_table_row825: Array[Int]
+       do
+               return [
+                               -1, 1, 417 
+                       ]
+       end
+       private meth action_table_row826: Array[Int]
+       do
+               return [
+                               -1, 1, 395 
+                       ]
+       end
+       private meth action_table_row827: Array[Int]
+       do
+               return [
+                               -1, 1, 404 
+                       ]
+       end
+       private meth action_table_row828: Array[Int]
+       do
+               return [
+                               -1, 1, 323 
+                       ]
+       end
+       private meth action_table_row829: Array[Int]
+       do
+               return [
+                               -1, 1, 322 
+                       ]
+       end
+       private meth action_table_row830: Array[Int]
+       do
+               return [
+                               -1, 3, 829 ,
+                               13, 0, 636 ,
+                               33, 0, 638 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row831: Array[Int]
+       do
+               return [
+                               -1, 3, 830 ,
+                               13, 0, 636 ,
+                               33, 0, 638 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row832: Array[Int]
+       do
+               return [
+                               -1, 3, 831 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row833: Array[Int]
+       do
+               return [
+                               -1, 3, 832 ,
+                               72, 0, 821 
+                       ]
+       end
+       private meth action_table_row834: Array[Int]
+       do
+               return [
+                               -1, 3, 833 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row835: Array[Int]
+       do
+               return [
+                               -1, 3, 834 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row836: Array[Int]
+       do
+               return [
+                               -1, 3, 835 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row837: Array[Int]
+       do
+               return [
+                               -1, 3, 836 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row838: Array[Int]
+       do
+               return [
+                               -1, 3, 837 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row839: Array[Int]
+       do
+               return [
+                               -1, 3, 838 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row840: Array[Int]
+       do
+               return [
+                               -1, 3, 839 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row841: Array[Int]
+       do
+               return [
+                               -1, 3, 840 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row842: Array[Int]
+       do
+               return [
+                               -1, 3, 841 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row843: Array[Int]
+       do
+               return [
+                               -1, 3, 842 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row844: Array[Int]
+       do
+               return [
+                               -1, 3, 843 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row845: Array[Int]
+       do
+               return [
+                               -1, 3, 844 ,
+                               13, 0, 636 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row846: Array[Int]
+       do
+               return [
+                               -1, 3, 845 ,
+                               13, 0, 920 ,
+                               73, 0, 921 ,
+                               74, 0, 922 
+                       ]
+       end
+       private meth action_table_row847: Array[Int]
+       do
+               return [
+                               -1, 1, 218 
+                       ]
+       end
+       private meth action_table_row848: Array[Int]
+       do
+               return [
+                               -1, 1, 216 
+                       ]
+       end
+       private meth action_table_row849: Array[Int]
+       do
+               return [
+                               -1, 3, 848 ,
+                               72, 0, 672 
+                       ]
+       end
+       private meth action_table_row850: Array[Int]
+       do
+               return [
+                               -1, 1, 83 
+                       ]
+       end
+       private meth action_table_row851: Array[Int]
+       do
+               return [
+                               -1, 1, 548 
+                       ]
+       end
+       private meth action_table_row852: Array[Int]
+       do
+               return [
+                               -1, 3, 851 ,
+                               50, 0, 924 
+                       ]
+       end
+       private meth action_table_row853: Array[Int]
+       do
+               return [
+                               -1, 1, 67 
+                       ]
+       end
+       private meth action_table_row854: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 925 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row855: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 926 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row856: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row857: Array[Int]
+       do
+               return [
+                               -1, 1, 64 
+                       ]
+       end
+       private meth action_table_row858: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               14, 0, 928 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row859: Array[Int]
+       do
+               return [
+                               -1, 3, 858 ,
+                               12, 0, 930 
+                       ]
+       end
+       private meth action_table_row860: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row861: Array[Int]
+       do
+               return [
+                               -1, 3, 860 ,
+                               12, 0, 932 
+                       ]
+       end
+       private meth action_table_row862: Array[Int]
+       do
+               return [
+                               -1, 3, 861 ,
+                               74, 0, 933 
+                       ]
+       end
+       private meth action_table_row863: Array[Int]
+       do
+               return [
+                               -1, 3, 862 ,
+                               12, 0, 934 
+                       ]
+       end
+       private meth action_table_row864: Array[Int]
+       do
+               return [
+                               -1, 3, 863 ,
+                               74, 0, 935 
+                       ]
+       end
+       private meth action_table_row865: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row866: Array[Int]
+       do
+               return [
+                               -1, 3, 865 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row867: Array[Int]
+       do
+               return [
+                               -1, 1, 107 ,
+                               52, 0, 255 ,
+                               54, 0, 938 
+                       ]
+       end
+       private meth action_table_row868: Array[Int]
+       do
+               return [
+                               -1, 1, 211 ,
+                               47, 0, 411 ,
+                               52, 0, 255 
+                       ]
+       end
+       private meth action_table_row869: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row870: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row871: Array[Int]
+       do
+               return [
+                               -1, 3, 870 ,
+                               12, 0, 943 
+                       ]
+       end
+       private meth action_table_row872: Array[Int]
+       do
+               return [
+                               -1, 3, 871 ,
+                               74, 0, 944 
+                       ]
+       end
+       private meth action_table_row873: Array[Int]
+       do
+               return [
+                               -1, 3, 872 ,
+                               12, 0, 945 
+                       ]
+       end
+       private meth action_table_row874: Array[Int]
+       do
+               return [
+                               -1, 3, 873 ,
+                               74, 0, 946 
+                       ]
+       end
+       private meth action_table_row875: Array[Int]
+       do
+               return [
+                               -1, 1, 92 ,
+                               52, 0, 255 ,
+                               54, 0, 947 
+                       ]
+       end
+       private meth action_table_row876: Array[Int]
+       do
+               return [
+                               -1, 3, 875 ,
+                               74, 0, 949 
+                       ]
+       end
+       private meth action_table_row877: Array[Int]
+       do
+               return [
+                               -1, 1, 96 ,
+                               52, 0, 255 ,
+                               54, 0, 950 
+                       ]
+       end
+       private meth action_table_row878: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               15, 0, 952 
+                       ]
+       end
+       private meth action_table_row879: Array[Int]
+       do
+               return [
+                               -1, 1, 182 
+                       ]
+       end
+       private meth action_table_row880: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row881: Array[Int]
+       do
+               return [
+                               -1, 1, 116 ,
+                               54, 0, 955 
+                       ]
+       end
+       private meth action_table_row882: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row883: Array[Int]
+       do
+               return [
+                               -1, 3, 882 ,
+                               16, 0, 957 
+                       ]
+       end
+       private meth action_table_row884: Array[Int]
+       do
+               return [
+                               -1, 1, 71 
+                       ]
+       end
+       private meth action_table_row885: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 958 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row886: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row887: Array[Int]
+       do
+               return [
+                               -1, 1, 69 
+                       ]
+       end
+       private meth action_table_row888: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 960 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row889: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 961 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row890: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row891: Array[Int]
+       do
+               return [
+                               -1, 1, 66 
+                       ]
+       end
+       private meth action_table_row892: Array[Int]
+       do
+               return [
+                               -1, 1, 73 
+                       ]
+       end
+       private meth action_table_row893: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 963 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row894: Array[Int]
+       do
+               return [
+                               -1, 1, 229 ,
+                               27, 1, 419 
+                       ]
+       end
+       private meth action_table_row895: Array[Int]
+       do
+               return [
+                               -1, 3, 894 ,
+                               9, 0, 964 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row896: Array[Int]
+       do
+               return [
+                               -1, 3, 895 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 536 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               27, 0, 540 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row897: Array[Int]
+       do
+               return [
+                               -1, 3, 896 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 612 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row898: Array[Int]
+       do
+               return [
+                               -1, 1, 250 ,
+                               27, 1, 439 
+                       ]
+       end
+       private meth action_table_row899: Array[Int]
+       do
+               return [
+                               -1, 1, 246 ,
+                               27, 1, 435 
+                       ]
+       end
+       private meth action_table_row900: Array[Int]
+       do
+               return [
+                               -1, 1, 272 
+                       ]
+       end
+       private meth action_table_row901: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row902: Array[Int]
+       do
+               return [
+                               -1, 3, 901 ,
+                               26, 0, 968 
+                       ]
+       end
+       private meth action_table_row903: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row904: Array[Int]
+       do
+               return [
+                               -1, 1, 398 
+                       ]
+       end
+       private meth action_table_row905: Array[Int]
+       do
+               return [
+                               -1, 1, 374 
+                       ]
+       end
+       private meth action_table_row906: Array[Int]
+       do
+               return [
+                               -1, 1, 373 
+                       ]
+       end
+       private meth action_table_row907: Array[Int]
+       do
+               return [
+                               -1, 1, 379 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row908: Array[Int]
+       do
+               return [
+                               -1, 1, 386 
+                       ]
+       end
+       private meth action_table_row909: Array[Int]
+       do
+               return [
+                               -1, 1, 388 ,
+                               62, 0, 752 ,
+                               63, 0, 753 ,
+                               64, 0, 754 
+                       ]
+       end
+       private meth action_table_row910: Array[Int]
+       do
+               return [
+                               -1, 1, 389 ,
+                               62, 0, 752 ,
+                               63, 0, 753 ,
+                               64, 0, 754 
+                       ]
+       end
+       private meth action_table_row911: Array[Int]
+       do
+               return [
+                               -1, 1, 378 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row912: Array[Int]
+       do
+               return [
+                               -1, 1, 380 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row913: Array[Int]
+       do
+               return [
+                               -1, 1, 381 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row914: Array[Int]
+       do
+               return [
+                               -1, 1, 382 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row915: Array[Int]
+       do
+               return [
+                               -1, 1, 383 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row916: Array[Int]
+       do
+               return [
+                               -1, 1, 384 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row917: Array[Int]
+       do
+               return [
+                               -1, 1, 385 ,
+                               60, 0, 743 ,
+                               61, 0, 744 
+                       ]
+       end
+       private meth action_table_row918: Array[Int]
+       do
+               return [
+                               -1, 1, 391 
+                       ]
+       end
+       private meth action_table_row919: Array[Int]
+       do
+               return [
+                               -1, 1, 392 
+                       ]
+       end
+       private meth action_table_row920: Array[Int]
+       do
+               return [
+                               -1, 1, 393 
+                       ]
+       end
+       private meth action_table_row921: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row922: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row923: Array[Int]
+       do
+               return [
+                               -1, 1, 399 
+                       ]
+       end
+       private meth action_table_row924: Array[Int]
+       do
+               return [
+                               -1, 1, 85 
+                       ]
+       end
+       private meth action_table_row925: Array[Int]
+       do
+               return [
+                               -1, 1, 84 
+                       ]
+       end
+       private meth action_table_row926: Array[Int]
+       do
+               return [
+                               -1, 1, 68 
+                       ]
+       end
+       private meth action_table_row927: Array[Int]
+       do
+               return [
+                               -1, 1, 75 
+                       ]
+       end
+       private meth action_table_row928: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 972 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row929: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row930: Array[Int]
+       do
+               return [
+                               -1, 3, 929 ,
+                               12, 0, 974 
+                       ]
+       end
+       private meth action_table_row931: Array[Int]
+       do
+               return [
+                               -1, 3, 930 ,
+                               74, 0, 975 
+                       ]
+       end
+       private meth action_table_row932: Array[Int]
+       do
+               return [
+                               -1, 3, 931 ,
+                               12, 0, 976 
+                       ]
+       end
+       private meth action_table_row933: Array[Int]
+       do
+               return [
+                               -1, 3, 932 ,
+                               74, 0, 977 
+                       ]
+       end
+       private meth action_table_row934: Array[Int]
+       do
+               return [
+                               -1, 1, 95 ,
+                               52, 0, 255 ,
+                               54, 0, 978 
+                       ]
+       end
+       private meth action_table_row935: Array[Int]
+       do
+               return [
+                               -1, 3, 934 ,
+                               74, 0, 980 
+                       ]
+       end
+       private meth action_table_row936: Array[Int]
+       do
+               return [
+                               -1, 1, 97 ,
+                               52, 0, 255 ,
+                               54, 0, 981 
+                       ]
+       end
+       private meth action_table_row937: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               15, 0, 983 
+                       ]
+       end
+       private meth action_table_row938: Array[Int]
+       do
+               return [
+                               -1, 1, 183 
+                       ]
+       end
+       private meth action_table_row939: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row940: Array[Int]
+       do
+               return [
+                               -1, 1, 125 ,
+                               54, 0, 986 
+                       ]
+       end
+       private meth action_table_row941: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row942: Array[Int]
+       do
+               return [
+                               -1, 3, 941 ,
+                               16, 0, 988 
+                       ]
+       end
+       private meth action_table_row943: Array[Int]
+       do
+               return [
+                               -1, 3, 942 ,
+                               12, 0, 989 
+                       ]
+       end
+       private meth action_table_row944: Array[Int]
+       do
+               return [
+                               -1, 3, 943 ,
+                               74, 0, 990 
+                       ]
+       end
+       private meth action_table_row945: Array[Int]
+       do
+               return [
+                               -1, 1, 101 ,
+                               52, 0, 255 ,
+                               54, 0, 991 
+                       ]
+       end
+       private meth action_table_row946: Array[Int]
+       do
+               return [
+                               -1, 3, 945 ,
+                               74, 0, 993 
+                       ]
+       end
+       private meth action_table_row947: Array[Int]
+       do
+               return [
+                               -1, 1, 90 ,
+                               52, 0, 255 ,
+                               54, 0, 994 
+                       ]
+       end
+       private meth action_table_row948: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row949: Array[Int]
+       do
+               return [
+                               -1, 1, 110 ,
+                               54, 0, 997 
+                       ]
+       end
+       private meth action_table_row950: Array[Int]
+       do
+               return [
+                               -1, 1, 105 ,
+                               52, 0, 255 ,
+                               54, 0, 998 
+                       ]
+       end
+       private meth action_table_row951: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row952: Array[Int]
+       do
+               return [
+                               -1, 1, 114 ,
+                               54, 0, 1001 
+                       ]
+       end
+       private meth action_table_row953: Array[Int]
+       do
+               return [
+                               -1, 3, 952 ,
+                               5, 0, 1002 ,
+                               20, 0, 1003 ,
+                               21, 0, 1004 
+                       ]
+       end
+       private meth action_table_row954: Array[Int]
+       do
+               return [
+                               -1, 3, 953 ,
+                               16, 0, 1005 
+                       ]
+       end
+       private meth action_table_row955: Array[Int]
+       do
+               return [
+                               -1, 3, 954 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row956: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row957: Array[Int]
+       do
+               return [
+                               -1, 3, 956 ,
+                               16, 0, 1008 
+                       ]
+       end
+       private meth action_table_row958: Array[Int]
+       do
+               return [
+                               -1, 3, 957 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row959: Array[Int]
+       do
+               return [
+                               -1, 1, 72 
+                       ]
+       end
+       private meth action_table_row960: Array[Int]
+       do
+               return [
+                               -1, 3, 959 ,
+                               13, 0, 101 ,
+                               25, 0, 102 ,
+                               33, 0, 103 ,
+                               39, 0, 104 ,
+                               41, 0, 105 ,
+                               42, 0, 106 ,
+                               43, 0, 107 ,
+                               44, 0, 108 ,
+                               45, 0, 109 ,
+                               46, 0, 110 ,
+                               61, 0, 112 ,
+                               72, 0, 49 ,
+                               73, 0, 113 ,
+                               74, 0, 114 ,
+                               75, 0, 115 ,
+                               76, 0, 116 ,
+                               77, 0, 117 ,
+                               78, 0, 118 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row961: Array[Int]
+       do
+               return [
+                               -1, 1, 70 
+                       ]
+       end
+       private meth action_table_row962: Array[Int]
+       do
+               return [
+                               -1, 1, 77 
+                       ]
+       end
+       private meth action_table_row963: Array[Int]
+       do
+               return [
+                               -1, 1, 191 ,
+                               9, 0, 1011 ,
+                               14, 0, 585 ,
+                               17, 0, 586 ,
+                               18, 0, 587 ,
+                               22, 0, 30 ,
+                               23, 0, 31 ,
+                               24, 0, 32 
+                       ]
+       end
+       private meth action_table_row964: Array[Int]
+       do
+               return [
+                               -1, 1, 74 
+                       ]
+       end
+       private meth action_table_row965: Array[Int]
+       do
+               return [
+                               -1, 1, 230 ,
+                               27, 1, 420 
+                       ]
+       end
+       private meth action_table_row966: Array[Int]
+       do
+               return [
+                               -1, 3, 965 ,
+                               27, 0, 1012 
+                       ]
+       end
+       private meth action_table_row967: Array[Int]
+       do
+               return [
+                               -1, 1, 443 
+                       ]
+       end
+       private meth action_table_row968: Array[Int]
+       do
+               return [
+                               -1, 3, 967 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row969: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row970: Array[Int]
+       do
+               return [
+                               -1, 3, 969 ,
+                               73, 0, 1015 
+                       ]
+       end
+       private meth action_table_row971: Array[Int]
+       do
+               return [
+                               -1, 1, 405 
+                       ]
+       end
+       private meth action_table_row972: Array[Int]
+       do
+               return [
+                               -1, 1, 401 
+                       ]
+       end
+       private meth action_table_row973: Array[Int]
+       do
+               return [
+                               -1, 1, 76 
+                       ]
+       end
+       private meth action_table_row974: Array[Int]
+       do
+               return [
+                               -1, 3, 973 ,
+                               12, 0, 1016 
+                       ]
+       end
+       private meth action_table_row975: Array[Int]
+       do
+               return [
+                               -1, 3, 974 ,
+                               74, 0, 1017 
+                       ]
+       end
+       private meth action_table_row976: Array[Int]
+       do
+               return [
+                               -1, 1, 104 ,
+                               52, 0, 255 ,
+                               54, 0, 1018 
+                       ]
+       end
+       private meth action_table_row977: Array[Int]
+       do
+               return [
+                               -1, 3, 976 ,
+                               74, 0, 1020 
+                       ]
+       end
+       private meth action_table_row978: Array[Int]
+       do
+               return [
+                               -1, 1, 93 ,
+                               52, 0, 255 ,
+                               54, 0, 1021 
+                       ]
+       end
+       private meth action_table_row979: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row980: Array[Int]
+       do
+               return [
+                               -1, 1, 113 ,
+                               54, 0, 1024 
+                       ]
+       end
+       private meth action_table_row981: Array[Int]
+       do
+               return [
+                               -1, 1, 106 ,
+                               52, 0, 255 ,
+                               54, 0, 1025 
+                       ]
+       end
+       private meth action_table_row982: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row983: Array[Int]
+       do
+               return [
+                               -1, 1, 115 ,
+                               54, 0, 1028 
+                       ]
+       end
+       private meth action_table_row984: Array[Int]
+       do
+               return [
+                               -1, 3, 983 ,
+                               5, 0, 1029 ,
+                               20, 0, 1030 ,
+                               21, 0, 1031 
+                       ]
+       end
+       private meth action_table_row985: Array[Int]
+       do
+               return [
+                               -1, 3, 984 ,
+                               16, 0, 1032 
+                       ]
+       end
+       private meth action_table_row986: Array[Int]
+       do
+               return [
+                               -1, 3, 985 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row987: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row988: Array[Int]
+       do
+               return [
+                               -1, 3, 987 ,
+                               16, 0, 1035 
+                       ]
+       end
+       private meth action_table_row989: Array[Int]
+       do
+               return [
+                               -1, 3, 988 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row990: Array[Int]
+       do
+               return [
+                               -1, 3, 989 ,
+                               74, 0, 1037 
+                       ]
+       end
+       private meth action_table_row991: Array[Int]
+       do
+               return [
+                               -1, 1, 91 ,
+                               52, 0, 255 ,
+                               54, 0, 1038 
+                       ]
+       end
+       private meth action_table_row992: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row993: Array[Int]
+       do
+               return [
+                               -1, 1, 119 ,
+                               54, 0, 1041 
+                       ]
+       end
+       private meth action_table_row994: Array[Int]
+       do
+               return [
+                               -1, 1, 99 ,
+                               52, 0, 255 ,
+                               54, 0, 1042 
+                       ]
+       end
+       private meth action_table_row995: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row996: Array[Int]
+       do
+               return [
+                               -1, 1, 108 ,
+                               54, 0, 1045 
+                       ]
+       end
+       private meth action_table_row997: Array[Int]
+       do
+               return [
+                               -1, 3, 996 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row998: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row999: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1000: Array[Int]
+       do
+               return [
+                               -1, 1, 123 ,
+                               54, 0, 1049 
+                       ]
+       end
+       private meth action_table_row1001: Array[Int]
+       do
+               return [
+                               -1, 3, 1000 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1002: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1003: Array[Int]
+       do
+               return [
+                               -1, 1, 162 
+                       ]
+       end
+       private meth action_table_row1004: Array[Int]
+       do
+               return [
+                               -1, 1, 164 
+                       ]
+       end
+       private meth action_table_row1005: Array[Int]
+       do
+               return [
+                               -1, 1, 166 ,
+                               78, 0, 1052 
+                       ]
+       end
+       private meth action_table_row1006: Array[Int]
+       do
+               return [
+                               -1, 3, 1005 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1007: Array[Int]
+       do
+               return [
+                               -1, 1, 134 
+                       ]
+       end
+       private meth action_table_row1008: Array[Int]
+       do
+               return [
+                               -1, 3, 1007 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1009: Array[Int]
+       do
+               return [
+                               -1, 3, 1008 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1010: Array[Int]
+       do
+               return [
+                               -1, 1, 174 ,
+                               9, 0, 1056 
+                       ]
+       end
+       private meth action_table_row1011: Array[Int]
+       do
+               return [
+                               -1, 1, 448 
+                       ]
+       end
+       private meth action_table_row1012: Array[Int]
+       do
+               return [
+                               -1, 1, 78 
+                       ]
+       end
+       private meth action_table_row1013: Array[Int]
+       do
+               return [
+                               -1, 3, 1012 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 612 ,
+                               13, 0, 537 ,
+                               16, 0, 538 ,
+                               19, 0, 29 ,
+                               25, 0, 539 ,
+                               28, 0, 541 ,
+                               29, 0, 35 ,
+                               34, 0, 542 ,
+                               35, 0, 543 ,
+                               36, 0, 544 ,
+                               37, 0, 545 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 546 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 547 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1014: Array[Int]
+       do
+               return [
+                               -1, 1, 284 
+                       ]
+       end
+       private meth action_table_row1015: Array[Int]
+       do
+               return [
+                               -1, 3, 1014 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1016: Array[Int]
+       do
+               return [
+                               -1, 1, 345 ,
+                               47, 0, 223 
+                       ]
+       end
+       private meth action_table_row1017: Array[Int]
+       do
+               return [
+                               -1, 3, 1016 ,
+                               74, 0, 1060 
+                       ]
+       end
+       private meth action_table_row1018: Array[Int]
+       do
+               return [
+                               -1, 1, 94 ,
+                               52, 0, 255 ,
+                               54, 0, 1061 
+                       ]
+       end
+       private meth action_table_row1019: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1020: Array[Int]
+       do
+               return [
+                               -1, 1, 122 ,
+                               54, 0, 1064 
+                       ]
+       end
+       private meth action_table_row1021: Array[Int]
+       do
+               return [
+                               -1, 1, 102 ,
+                               52, 0, 255 ,
+                               54, 0, 1065 
+                       ]
+       end
+       private meth action_table_row1022: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1023: Array[Int]
+       do
+               return [
+                               -1, 1, 111 ,
+                               54, 0, 1068 
+                       ]
+       end
+       private meth action_table_row1024: Array[Int]
+       do
+               return [
+                               -1, 3, 1023 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1025: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1026: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1027: Array[Int]
+       do
+               return [
+                               -1, 1, 124 ,
+                               54, 0, 1072 
+                       ]
+       end
+       private meth action_table_row1028: Array[Int]
+       do
+               return [
+                               -1, 3, 1027 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1029: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1030: Array[Int]
+       do
+               return [
+                               -1, 1, 163 
+                       ]
+       end
+       private meth action_table_row1031: Array[Int]
+       do
+               return [
+                               -1, 1, 165 
+                       ]
+       end
+       private meth action_table_row1032: Array[Int]
+       do
+               return [
+                               -1, 1, 167 ,
+                               78, 0, 1075 
+                       ]
+       end
+       private meth action_table_row1033: Array[Int]
+       do
+               return [
+                               -1, 3, 1032 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1034: Array[Int]
+       do
+               return [
+                               -1, 1, 143 
+                       ]
+       end
+       private meth action_table_row1035: Array[Int]
+       do
+               return [
+                               -1, 3, 1034 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1036: Array[Int]
+       do
+               return [
+                               -1, 3, 1035 ,
+                               0, 0, 1 ,
+                               1, 0, 2 ,
+                               9, 0, 133 ,
+                               13, 0, 26 ,
+                               16, 0, 28 ,
+                               19, 0, 29 ,
+                               25, 0, 33 ,
+                               28, 0, 34 ,
+                               29, 0, 35 ,
+                               34, 0, 36 ,
+                               35, 0, 37 ,
+                               36, 0, 38 ,
+                               37, 0, 39 ,
+                               38, 0, 40 ,
+                               39, 0, 41 ,
+                               42, 0, 42 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               72, 0, 49 ,
+                               73, 0, 50 ,
+                               74, 0, 51 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1037: Array[Int]
+       do
+               return [
+                               -1, 1, 175 ,
+                               9, 0, 1079 
+                       ]
+       end
+       private meth action_table_row1038: Array[Int]
+       do
+               return [
+                               -1, 1, 100 ,
+                               52, 0, 255 ,
+                               54, 0, 1080 
+                       ]
+       end
+       private meth action_table_row1039: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1040: Array[Int]
+       do
+               return [
+                               -1, 1, 109 ,
+                               54, 0, 1083 
+                       ]
+       end
+       private meth action_table_row1041: Array[Int]
+       do
+               return [
+                               -1, 3, 1040 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1042: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1043: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1044: Array[Int]
+       do
+               return [
+                               -1, 1, 117 ,
+                               54, 0, 1087 
+                       ]
+       end
+       private meth action_table_row1045: Array[Int]
+       do
+               return [
+                               -1, 3, 1044 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1046: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1047: Array[Int]
+       do
+               return [
+                               -1, 1, 128 
+                       ]
+       end
+       private meth action_table_row1048: Array[Int]
+       do
+               return [
+                               -1, 3, 1047 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1049: Array[Int]
+       do
+               return [
+                               -1, 3, 1048 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1050: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1051: Array[Int]
+       do
+               return [
+                               -1, 1, 132 
+                       ]
+       end
+       private meth action_table_row1052: Array[Int]
+       do
+               return [
+                               -1, 3, 1051 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1053: Array[Int]
+       do
+               return [
+                               -1, 1, 168 
+                       ]
+       end
+       private meth action_table_row1054: Array[Int]
+       do
+               return [
+                               -1, 1, 170 ,
+                               9, 0, 1094 
+                       ]
+       end
+       private meth action_table_row1055: Array[Int]
+       do
+               return [
+                               -1, 1, 152 
+                       ]
+       end
+       private meth action_table_row1056: Array[Int]
+       do
+               return [
+                               -1, 1, 176 ,
+                               9, 0, 1095 
+                       ]
+       end
+       private meth action_table_row1057: Array[Int]
+       do
+               return [
+                               -1, 1, 178 
+                       ]
+       end
+       private meth action_table_row1058: Array[Int]
+       do
+               return [
+                               -1, 1, 442 
+                       ]
+       end
+       private meth action_table_row1059: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1060: Array[Int]
+       do
+               return [
+                               -1, 1, 407 
+                       ]
+       end
+       private meth action_table_row1061: Array[Int]
+       do
+               return [
+                               -1, 1, 103 ,
+                               52, 0, 255 ,
+                               54, 0, 1097 
+                       ]
+       end
+       private meth action_table_row1062: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1063: Array[Int]
+       do
+               return [
+                               -1, 1, 112 ,
+                               54, 0, 1100 
+                       ]
+       end
+       private meth action_table_row1064: Array[Int]
+       do
+               return [
+                               -1, 3, 1063 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1065: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1066: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1067: Array[Int]
+       do
+               return [
+                               -1, 1, 120 ,
+                               54, 0, 1104 
+                       ]
+       end
+       private meth action_table_row1068: Array[Int]
+       do
+               return [
+                               -1, 3, 1067 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1069: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1070: Array[Int]
+       do
+               return [
+                               -1, 1, 131 
+                       ]
+       end
+       private meth action_table_row1071: Array[Int]
+       do
+               return [
+                               -1, 3, 1070 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1072: Array[Int]
+       do
+               return [
+                               -1, 3, 1071 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1073: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1074: Array[Int]
+       do
+               return [
+                               -1, 1, 133 
+                       ]
+       end
+       private meth action_table_row1075: Array[Int]
+       do
+               return [
+                               -1, 3, 1074 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1076: Array[Int]
+       do
+               return [
+                               -1, 1, 169 
+                       ]
+       end
+       private meth action_table_row1077: Array[Int]
+       do
+               return [
+                               -1, 1, 171 ,
+                               9, 0, 1111 
+                       ]
+       end
+       private meth action_table_row1078: Array[Int]
+       do
+               return [
+                               -1, 1, 161 
+                       ]
+       end
+       private meth action_table_row1079: Array[Int]
+       do
+               return [
+                               -1, 1, 177 ,
+                               9, 0, 1112 
+                       ]
+       end
+       private meth action_table_row1080: Array[Int]
+       do
+               return [
+                               -1, 1, 179 
+                       ]
+       end
+       private meth action_table_row1081: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1082: Array[Int]
+       do
+               return [
+                               -1, 1, 118 ,
+                               54, 0, 1114 
+                       ]
+       end
+       private meth action_table_row1083: Array[Int]
+       do
+               return [
+                               -1, 3, 1082 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1084: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1085: Array[Int]
+       do
+               return [
+                               -1, 1, 137 
+                       ]
+       end
+       private meth action_table_row1086: Array[Int]
+       do
+               return [
+                               -1, 3, 1085 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1087: Array[Int]
+       do
+               return [
+                               -1, 3, 1086 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1088: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1089: Array[Int]
+       do
+               return [
+                               -1, 1, 126 
+                       ]
+       end
+       private meth action_table_row1090: Array[Int]
+       do
+               return [
+                               -1, 3, 1089 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1091: Array[Int]
+       do
+               return [
+                               -1, 1, 146 
+                       ]
+       end
+       private meth action_table_row1092: Array[Int]
+       do
+               return [
+                               -1, 1, 141 
+                       ]
+       end
+       private meth action_table_row1093: Array[Int]
+       do
+               return [
+                               -1, 3, 1092 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1094: Array[Int]
+       do
+               return [
+                               -1, 1, 150 
+                       ]
+       end
+       private meth action_table_row1095: Array[Int]
+       do
+               return [
+                               -1, 1, 172 
+                       ]
+       end
+       private meth action_table_row1096: Array[Int]
+       do
+               return [
+                               -1, 1, 180 
+                       ]
+       end
+       private meth action_table_row1097: Array[Int]
+       do
+               return [
+                               -1, 3, 1096 ,
+                               27, 0, 1122 
+                       ]
+       end
+       private meth action_table_row1098: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1099: Array[Int]
+       do
+               return [
+                               -1, 1, 121 ,
+                               54, 0, 1124 
+                       ]
+       end
+       private meth action_table_row1100: Array[Int]
+       do
+               return [
+                               -1, 3, 1099 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1101: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1102: Array[Int]
+       do
+               return [
+                               -1, 1, 140 
+                       ]
+       end
+       private meth action_table_row1103: Array[Int]
+       do
+               return [
+                               -1, 3, 1102 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1104: Array[Int]
+       do
+               return [
+                               -1, 3, 1103 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1105: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1106: Array[Int]
+       do
+               return [
+                               -1, 1, 129 
+                       ]
+       end
+       private meth action_table_row1107: Array[Int]
+       do
+               return [
+                               -1, 3, 1106 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1108: Array[Int]
+       do
+               return [
+                               -1, 1, 149 
+                       ]
+       end
+       private meth action_table_row1109: Array[Int]
+       do
+               return [
+                               -1, 1, 142 
+                       ]
+       end
+       private meth action_table_row1110: Array[Int]
+       do
+               return [
+                               -1, 3, 1109 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1111: Array[Int]
+       do
+               return [
+                               -1, 1, 151 
+                       ]
+       end
+       private meth action_table_row1112: Array[Int]
+       do
+               return [
+                               -1, 1, 173 
+                       ]
+       end
+       private meth action_table_row1113: Array[Int]
+       do
+               return [
+                               -1, 1, 181 
+                       ]
+       end
+       private meth action_table_row1114: Array[Int]
+       do
+               return [
+                               -1, 3, 1113 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1115: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1116: Array[Int]
+       do
+               return [
+                               -1, 1, 127 
+                       ]
+       end
+       private meth action_table_row1117: Array[Int]
+       do
+               return [
+                               -1, 3, 1116 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1118: Array[Int]
+       do
+               return [
+                               -1, 1, 155 
+                       ]
+       end
+       private meth action_table_row1119: Array[Int]
+       do
+               return [
+                               -1, 1, 135 
+                       ]
+       end
+       private meth action_table_row1120: Array[Int]
+       do
+               return [
+                               -1, 3, 1119 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1121: Array[Int]
+       do
+               return [
+                               -1, 1, 144 
+                       ]
+       end
+       private meth action_table_row1122: Array[Int]
+       do
+               return [
+                               -1, 1, 159 
+                       ]
+       end
+       private meth action_table_row1123: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1124: Array[Int]
+       do
+               return [
+                               -1, 3, 1123 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1125: Array[Int]
+       do
+               return [
+                               -1, 1, 364 ,
+                               0, 0, 1 ,
+                               1, 0, 2 
+                       ]
+       end
+       private meth action_table_row1126: Array[Int]
+       do
+               return [
+                               -1, 1, 130 
+                       ]
+       end
+       private meth action_table_row1127: Array[Int]
+       do
+               return [
+                               -1, 3, 1126 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1128: Array[Int]
+       do
+               return [
+                               -1, 1, 158 
+                       ]
+       end
+       private meth action_table_row1129: Array[Int]
+       do
+               return [
+                               -1, 1, 138 
+                       ]
+       end
+       private meth action_table_row1130: Array[Int]
+       do
+               return [
+                               -1, 3, 1129 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1131: Array[Int]
+       do
+               return [
+                               -1, 1, 147 
+                       ]
+       end
+       private meth action_table_row1132: Array[Int]
+       do
+               return [
+                               -1, 1, 160 
+                       ]
+       end
+       private meth action_table_row1133: Array[Int]
+       do
+               return [
+                               -1, 1, 136 
+                       ]
+       end
+       private meth action_table_row1134: Array[Int]
+       do
+               return [
+                               -1, 3, 1133 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1135: Array[Int]
+       do
+               return [
+                               -1, 1, 145 
+                       ]
+       end
+       private meth action_table_row1136: Array[Int]
+       do
+               return [
+                               -1, 1, 153 
+                       ]
+       end
+       private meth action_table_row1137: Array[Int]
+       do
+               return [
+                               -1, 3, 1136 ,
+                               13, 0, 636 ,
+                               25, 0, 637 ,
+                               33, 0, 638 ,
+                               39, 0, 639 ,
+                               41, 0, 640 ,
+                               42, 0, 641 ,
+                               43, 0, 642 ,
+                               44, 0, 643 ,
+                               45, 0, 644 ,
+                               46, 0, 645 ,
+                               47, 0, 646 ,
+                               61, 0, 647 ,
+                               72, 0, 49 ,
+                               73, 0, 648 ,
+                               74, 0, 649 ,
+                               75, 0, 650 ,
+                               76, 0, 651 ,
+                               77, 0, 652 ,
+                               78, 0, 653 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1138: Array[Int]
+       do
+               return [
+                               -1, 1, 139 
+                       ]
+       end
+       private meth action_table_row1139: Array[Int]
+       do
+               return [
+                               -1, 3, 1138 ,
+                               13, 0, 144 ,
+                               25, 0, 145 ,
+                               33, 0, 146 ,
+                               39, 0, 147 ,
+                               41, 0, 148 ,
+                               42, 0, 149 ,
+                               43, 0, 43 ,
+                               44, 0, 44 ,
+                               45, 0, 45 ,
+                               46, 0, 46 ,
+                               47, 0, 47 ,
+                               49, 0, 48 ,
+                               61, 0, 150 ,
+                               72, 0, 49 ,
+                               73, 0, 151 ,
+                               74, 0, 152 ,
+                               75, 0, 52 ,
+                               76, 0, 53 ,
+                               77, 0, 54 ,
+                               78, 0, 55 ,
+                               79, 0, 56 
+                       ]
+       end
+       private meth action_table_row1140: Array[Int]
+       do
+               return [
+                               -1, 1, 148 
+                       ]
+       end
+       private meth action_table_row1141: Array[Int]
+       do
+               return [
+                               -1, 1, 156 
+                       ]
+       end
+       private meth action_table_row1142: Array[Int]
+       do
+               return [
+                               -1, 1, 154 
+                       ]
+       end
+       private meth action_table_row1143: Array[Int]
+       do
+               return [
+                               -1, 1, 371 
+                       ]
+       end
+       private meth action_table_row1144: Array[Int]
+       do
+               return [
+                               -1, 1, 157 
+                       ]
+       end
+
+       attr _goto_table: Array[Array[Int]]
+       private meth build_goto_table
+       do
+               _goto_table = once [ 
+                       [
+                               -1, 3 
+                       ] ,
+                       [
+                               -1, 4 
+                       ] ,
+                       [
+                               -1, 5 ,
+                               13, 77 ,
+                               20, 77 
+                       ] ,
+                       [
+                               -1, 6 ,
+                               4, 17 ,
+                               13, 78 ,
+                               14, 81 ,
+                               20, 89 ,
+                               21, 92 ,
+                               24, 94 ,
+                               80, 207 ,
+                               88, 211 ,
+                               91, 214 ,
+                               98, 220 ,
+                               206, 330 ,
+                               209, 333 ,
+                               212, 335 ,
+                               213, 336 ,
+                               216, 339 ,
+                               331, 425 ,
+                               332, 426 ,
+                               334, 428 ,
+                               337, 429 ,
+                               338, 430 ,
+                               340, 432 ,
+                               427, 518 ,
+                               431, 519 
+                       ] ,
+                       [
+                               -1, 7 
+                       ] ,
+                       [
+                               -1, 8 ,
+                               14, 82 ,
+                               21, 82 ,
+                               80, 82 ,
+                               91, 82 
+                       ] ,
+                       [
+                               -1, 185 ,
+                               132, 252 
+                       ] ,
+                       [
+                               -1, 505 ,
+                               460, 530 
+                       ] ,
+                       [
+                               -1, 763 ,
+                               765, 850 
+                       ] ,
+                       [
+                               -1, 673 ,
+                               848, 923 
+                       ] ,
+                       [
+                               -1, 506 ,
+                               509, 589 ,
+                               533, 589 ,
+                               581, 589 ,
+                               606, 589 
+                       ] ,
+                       [
+                               -1, 678 ,
+                               681, 772 ,
+                               710, 772 ,
+                               767, 772 ,
+                               797, 772 ,
+                               801, 772 ,
+                               807, 772 ,
+                               855, 772 ,
+                               889, 772 
+                       ] ,
+                       [
+                               -1, 679 ,
+                               415, 507 ,
+                               460, 531 ,
+                               505, 579 ,
+                               509, 590 ,
+                               530, 604 ,
+                               533, 609 ,
+                               581, 676 ,
+                               606, 707 
+                       ] ,
+                       [
+                               -1, 95 ,
+                               98, 221 ,
+                               212, 221 ,
+                               331, 221 ,
+                               334, 221 ,
+                               337, 221 ,
+                               340, 221 ,
+                               427, 221 ,
+                               431, 221 
+                       ] ,
+                       [
+                               -1, 96 ,
+                               0, 9 ,
+                               4, 18 ,
+                               13, 79 ,
+                               14, 83 ,
+                               20, 90 ,
+                               21, 93 ,
+                               80, 208 ,
+                               91, 215 
+                       ] ,
+                       [
+                               -1, 588 ,
+                               11, 57 ,
+                               19, 57 ,
+                               27, 132 ,
+                               84, 210 ,
+                               97, 219 ,
+                               218, 341 ,
+                               585, 685 ,
+                               586, 688 ,
+                               587, 690 ,
+                               683, 777 ,
+                               684, 779 ,
+                               686, 785 ,
+                               687, 787 ,
+                               689, 789 ,
+                               775, 858 ,
+                               776, 860 ,
+                               778, 862 ,
+                               784, 870 ,
+                               786, 872 ,
+                               857, 929 ,
+                               859, 931 ,
+                               869, 942 ,
+                               928, 973 
+                       ] ,
+                       [
+                               -1, 314 ,
+                               251, 370 ,
+                               691, 791 ,
+                               694, 794 ,
+                               780, 864 ,
+                               783, 867 
+                       ] ,
+                       [
+                               -1, 412 ,
+                               370, 459 ,
+                               694, 795 ,
+                               783, 868 ,
+                               791, 877 ,
+                               794, 881 ,
+                               864, 936 ,
+                               867, 940 
+                       ] ,
+                       [
+                               -1, 413 
+                       ] ,
+                       [
+                               -1, 667 ,
+                               669, 759 
+                       ] ,
+                       [
+                               -1, 575 ,
+                               757, 846 
+                       ] ,
+                       [
+                               -1, 566 ,
+                               166, 289 ,
+                               263, 382 ,
+                               374, 463 ,
+                               388, 474 ,
+                               682, 774 ,
+                               724, 818 
+                       ] ,
+                       [
+                               -1, 567 ,
+                               522, 599 
+                       ] ,
+                       [
+                               -1, 631 ,
+                               632, 725 
+                       ] ,
+                       [
+                               -1, 414 ,
+                               137, 257 ,
+                               413, 503 ,
+                               574, 665 ,
+                               672, 761 ,
+                               792, 878 ,
+                               793, 880 ,
+                               865, 937 ,
+                               866, 939 ,
+                               874, 948 ,
+                               876, 951 ,
+                               933, 979 ,
+                               935, 982 ,
+                               944, 992 ,
+                               946, 995 ,
+                               949, 999 ,
+                               975, 1019 ,
+                               977, 1022 ,
+                               980, 1026 ,
+                               990, 1039 ,
+                               993, 1043 ,
+                               1017, 1062 ,
+                               1020, 1066 ,
+                               1037, 1081 ,
+                               1060, 1098 
+                       ] ,
+                       [
+                               -1, 134 ,
+                               319, 416 ,
+                               467, 562 ,
+                               540, 617 ,
+                               577, 671 ,
+                               603, 704 ,
+                               627, 722 ,
+                               717, 416 ,
+                               896, 562 ,
+                               957, 1009 ,
+                               988, 1036 ,
+                               1005, 1053 ,
+                               1008, 1055 ,
+                               1012, 722 ,
+                               1032, 1076 ,
+                               1035, 1078 
+                       ] ,
+                       [
+                               -1, 186 ,
+                               189, 317 ,
+                               373, 317 ,
+                               721, 317 ,
+                               809, 317 
+                       ] ,
+                       [
+                               -1, 135 ,
+                               11, 58 ,
+                               19, 58 ,
+                               84, 58 ,
+                               97, 58 ,
+                               136, 254 ,
+                               187, 316 ,
+                               372, 316 ,
+                               462, 316 ,
+                               466, 548 ,
+                               556, 625 ,
+                               613, 714 ,
+                               720, 316 ,
+                               808, 316 ,
+                               816, 316 ,
+                               894, 316 ,
+                               895, 548 
+                       ] ,
+                       [
+                               -1, 59 ,
+                               466, 549 ,
+                               538, 549 ,
+                               717, 549 ,
+                               895, 549 ,
+                               896, 549 ,
+                               1012, 549 
+                       ] ,
+                       [
+                               -1, 60 ,
+                               466, 550 ,
+                               538, 550 ,
+                               717, 550 ,
+                               895, 550 ,
+                               896, 550 ,
+                               1012, 550 
+                       ] ,
+                       [
+                               -1, 178 ,
+                               173, 295 ,
+                               193, 323 ,
+                               420, 516 ,
+                               513, 593 
+                       ] ,
+                       [
+                               -1, 61 
+                       ] ,
+                       [
+                               -1, 62 
+                       ] ,
+                       [
+                               -1, 551 ,
+                               556, 626 ,
+                               720, 815 ,
+                               816, 899 
+                       ] ,
+                       [
+                               -1, 63 
+                       ] ,
+                       [
+                               -1, 64 
+                       ] ,
+                       [
+                               -1, 65 ,
+                               466, 552 ,
+                               538, 552 ,
+                               717, 552 ,
+                               895, 552 ,
+                               896, 552 ,
+                               1012, 552 
+                       ] ,
+                       [
+                               -1, 66 ,
+                               466, 553 ,
+                               538, 553 ,
+                               717, 553 ,
+                               895, 553 ,
+                               896, 553 ,
+                               1012, 553 
+                       ] ,
+                       [
+                               -1, 164 
+                       ] ,
+                       [
+                               -1, 153 ,
+                               40, 165 ,
+                               47, 169 ,
+                               141, 258 ,
+                               142, 259 ,
+                               164, 287 ,
+                               170, 291 ,
+                               175, 296 ,
+                               178, 297 ,
+                               200, 327 ,
+                               225, 344 ,
+                               230, 350 ,
+                               261, 380 ,
+                               294, 405 ,
+                               295, 406 ,
+                               320, 417 ,
+                               322, 421 ,
+                               323, 422 ,
+                               324, 423 ,
+                               343, 434 ,
+                               375, 464 ,
+                               465, 535 ,
+                               515, 594 ,
+                               516, 595 ,
+                               542, 619 ,
+                               563, 628 ,
+                               569, 635 ,
+                               592, 697 ,
+                               593, 698 ,
+                               598, 700 ,
+                               616, 715 ,
+                               618, 716 ,
+                               629, 723 ,
+                               646, 734 ,
+                               729, 819 ,
+                               954, 1006 ,
+                               967, 1013 ,
+                               985, 1033 ,
+                               996, 1046 ,
+                               1000, 1050 ,
+                               1007, 1054 ,
+                               1014, 1058 ,
+                               1023, 1069 ,
+                               1027, 1073 ,
+                               1034, 1077 ,
+                               1040, 1084 ,
+                               1044, 1088 ,
+                               1047, 1090 ,
+                               1048, 1091 ,
+                               1051, 1093 ,
+                               1063, 1101 ,
+                               1067, 1105 ,
+                               1070, 1107 ,
+                               1071, 1108 ,
+                               1074, 1110 ,
+                               1082, 1115 ,
+                               1085, 1117 ,
+                               1086, 1118 ,
+                               1089, 1120 ,
+                               1092, 1121 ,
+                               1099, 1125 ,
+                               1102, 1127 ,
+                               1103, 1128 ,
+                               1106, 1130 ,
+                               1109, 1131 ,
+                               1113, 1132 ,
+                               1116, 1134 ,
+                               1119, 1135 ,
+                               1123, 1137 ,
+                               1126, 1139 ,
+                               1129, 1140 ,
+                               1133, 1141 ,
+                               1138, 1143 
+                       ] ,
+                       [
+                               -1, 154 
+                       ] ,
+                       [
+                               -1, 155 ,
+                               262, 381 ,
+                               385, 471 ,
+                               386, 472 
+                       ] ,
+                       [
+                               -1, 156 
+                       ] ,
+                       [
+                               -1, 157 ,
+                               387, 473 ,
+                               391, 477 ,
+                               392, 478 ,
+                               393, 479 ,
+                               394, 480 ,
+                               395, 481 ,
+                               396, 482 ,
+                               397, 483 
+                       ] ,
+                       [
+                               -1, 158 ,
+                               389, 475 ,
+                               390, 476 
+                       ] ,
+                       [
+                               -1, 159 ,
+                               264, 383 ,
+                               265, 384 ,
+                               398, 484 ,
+                               399, 485 ,
+                               400, 486 
+                       ] ,
+                       [
+                               -1, 160 
+                       ] ,
+                       [
+                               -1, 161 ,
+                               11, 67 ,
+                               19, 67 ,
+                               28, 67 ,
+                               84, 67 ,
+                               97, 67 ,
+                               136, 67 ,
+                               187, 67 ,
+                               319, 67 ,
+                               372, 67 ,
+                               462, 67 ,
+                               466, 554 ,
+                               467, 67 ,
+                               538, 554 ,
+                               540, 67 ,
+                               556, 67 ,
+                               577, 67 ,
+                               603, 67 ,
+                               613, 67 ,
+                               627, 67 ,
+                               717, 554 ,
+                               720, 67 ,
+                               808, 67 ,
+                               816, 67 ,
+                               894, 67 ,
+                               895, 554 ,
+                               896, 554 ,
+                               957, 67 ,
+                               988, 67 ,
+                               1005, 67 ,
+                               1008, 67 ,
+                               1012, 554 ,
+                               1032, 67 ,
+                               1035, 67 
+                       ] ,
+                       [
+                               -1, 68 ,
+                               26, 119 ,
+                               42, 119 ,
+                               50, 119 ,
+                               201, 119 ,
+                               226, 119 ,
+                               228, 119 ,
+                               231, 119 ,
+                               353, 119 ,
+                               354, 119 ,
+                               355, 119 ,
+                               357, 119 ,
+                               358, 119 ,
+                               359, 119 ,
+                               360, 119 ,
+                               361, 119 ,
+                               362, 119 ,
+                               363, 119 ,
+                               364, 119 ,
+                               365, 119 ,
+                               366, 119 ,
+                               367, 119 ,
+                               368, 119 ,
+                               418, 119 ,
+                               419, 119 ,
+                               537, 119 ,
+                               546, 119 ,
+                               547, 119 ,
+                               570, 654 ,
+                               624, 119 ,
+                               730, 654 ,
+                               732, 654 ,
+                               735, 654 ,
+                               813, 119 ,
+                               814, 119 ,
+                               829, 654 ,
+                               830, 654 ,
+                               831, 654 ,
+                               833, 654 ,
+                               834, 654 ,
+                               835, 654 ,
+                               836, 654 ,
+                               837, 654 ,
+                               838, 654 ,
+                               839, 654 ,
+                               840, 654 ,
+                               841, 654 ,
+                               842, 654 ,
+                               843, 654 ,
+                               844, 654 ,
+                               959, 119 ,
+                               1136, 654 
+                       ] ,
+                       [
+                               -1, 69 
+                       ] ,
+                       [
+                               -1, 70 
+                       ] ,
+                       [
+                               -1, 196 ,
+                               199, 325 
+                       ] ,
+                       [
+                               -1, 197 
+                       ] ,
+                       [
+                               -1, 198 ,
+                               199, 326 
+                       ] ,
+                       [
+                               -1, 120 ,
+                               42, 167 ,
+                               50, 173 ,
+                               101, 224 ,
+                               106, 229 ,
+                               113, 232 ,
+                               149, 167 ,
+                               151, 266 ,
+                               163, 266 ,
+                               201, 328 ,
+                               233, 352 ,
+                               285, 328 ,
+                               347, 438 ,
+                               382, 470 ,
+                               418, 511 ,
+                               419, 513 ,
+                               456, 526 ,
+                               457, 527 ,
+                               487, 511 ,
+                               488, 565 ,
+                               546, 167 ,
+                               547, 173 ,
+                               568, 634 ,
+                               600, 702 ,
+                               624, 328 ,
+                               636, 728 ,
+                               641, 733 ,
+                               648, 736 ,
+                               737, 826 ,
+                               813, 511 ,
+                               814, 513 ,
+                               822, 903 ,
+                               920, 970 ,
+                               921, 971 ,
+                               1015, 1059 
+                       ] ,
+                       [
+                               -1, 121 ,
+                               42, 168 ,
+                               50, 174 ,
+                               201, 329 ,
+                               418, 512 ,
+                               419, 514 ,
+                               537, 611 ,
+                               546, 620 ,
+                               547, 621 ,
+                               624, 719 ,
+                               813, 897 ,
+                               814, 898 
+                       ] ,
+                       [
+                               -1, 71 ,
+                               67, 193 ,
+                               161, 284 ,
+                               554, 193 
+                       ] ,
+                       [
+                               -1, 495 ,
+                               496, 572 ,
+                               525, 572 ,
+                               597, 572 
+                       ] ,
+                       [
+                               -1, 162 ,
+                               11, 72 ,
+                               19, 72 ,
+                               26, 122 ,
+                               28, 72 ,
+                               42, 122 ,
+                               50, 122 ,
+                               84, 72 ,
+                               97, 72 ,
+                               136, 72 ,
+                               187, 72 ,
+                               201, 122 ,
+                               226, 122 ,
+                               228, 122 ,
+                               231, 122 ,
+                               319, 72 ,
+                               353, 122 ,
+                               354, 122 ,
+                               355, 122 ,
+                               357, 122 ,
+                               358, 122 ,
+                               359, 122 ,
+                               360, 122 ,
+                               361, 122 ,
+                               362, 122 ,
+                               363, 122 ,
+                               364, 122 ,
+                               365, 122 ,
+                               366, 122 ,
+                               367, 122 ,
+                               368, 122 ,
+                               372, 72 ,
+                               418, 122 ,
+                               419, 122 ,
+                               462, 72 ,
+                               466, 555 ,
+                               467, 72 ,
+                               537, 122 ,
+                               538, 555 ,
+                               540, 72 ,
+                               546, 122 ,
+                               547, 122 ,
+                               556, 72 ,
+                               570, 655 ,
+                               577, 72 ,
+                               603, 72 ,
+                               613, 72 ,
+                               624, 122 ,
+                               627, 72 ,
+                               717, 555 ,
+                               720, 72 ,
+                               730, 655 ,
+                               732, 655 ,
+                               735, 655 ,
+                               808, 72 ,
+                               813, 122 ,
+                               814, 122 ,
+                               816, 72 ,
+                               829, 655 ,
+                               830, 655 ,
+                               831, 655 ,
+                               833, 655 ,
+                               834, 655 ,
+                               835, 655 ,
+                               836, 655 ,
+                               837, 655 ,
+                               838, 655 ,
+                               839, 655 ,
+                               840, 655 ,
+                               841, 655 ,
+                               842, 655 ,
+                               843, 655 ,
+                               844, 655 ,
+                               894, 72 ,
+                               895, 555 ,
+                               896, 555 ,
+                               957, 72 ,
+                               959, 122 ,
+                               988, 72 ,
+                               1005, 72 ,
+                               1008, 72 ,
+                               1012, 555 ,
+                               1032, 72 ,
+                               1035, 72 ,
+                               1136, 655 
+                       ] ,
+                       [
+                               -1, 73 ,
+                               75, 203 
+                       ] ,
+                       [
+                               -1, 74 ,
+                               75, 204 
+                       ] ,
+                       [
+                               -1, 24 ,
+                               18, 88 ,
+                               79, 206 ,
+                               83, 209 ,
+                               90, 213 ,
+                               93, 216 ,
+                               96, 217 ,
+                               208, 332 ,
+                               215, 338 ,
+                               222, 342 ,
+                               407, 497 ,
+                               408, 498 ,
+                               507, 582 ,
+                               531, 607 ,
+                               579, 674 ,
+                               590, 695 ,
+                               604, 705 ,
+                               609, 711 ,
+                               676, 768 ,
+                               679, 770 ,
+                               707, 802 
+                       ] ,
+                       [
+                               -1, 99 ,
+                               0, 10 ,
+                               4, 10 ,
+                               13, 10 ,
+                               14, 10 ,
+                               20, 10 ,
+                               21, 10 ,
+                               24, 10 ,
+                               28, 136 ,
+                               58, 187 ,
+                               80, 10 ,
+                               88, 10 ,
+                               91, 10 ,
+                               98, 10 ,
+                               189, 187 ,
+                               206, 10 ,
+                               209, 10 ,
+                               212, 10 ,
+                               213, 10 ,
+                               216, 10 ,
+                               254, 372 ,
+                               319, 136 ,
+                               331, 10 ,
+                               332, 10 ,
+                               334, 10 ,
+                               337, 10 ,
+                               338, 10 ,
+                               340, 10 ,
+                               373, 462 ,
+                               427, 10 ,
+                               431, 10 ,
+                               466, 556 ,
+                               467, 136 ,
+                               538, 613 ,
+                               540, 136 ,
+                               577, 136 ,
+                               603, 136 ,
+                               625, 720 ,
+                               627, 136 ,
+                               714, 808 ,
+                               717, 613 ,
+                               721, 816 ,
+                               809, 894 ,
+                               895, 556 ,
+                               896, 613 ,
+                               957, 136 ,
+                               988, 136 ,
+                               1005, 136 ,
+                               1008, 136 ,
+                               1012, 613 ,
+                               1032, 136 ,
+                               1035, 136 
+                       ] ,
+                       [
+                               -1, 97 ,
+                               0, 11 ,
+                               4, 19 ,
+                               13, 19 ,
+                               14, 84 ,
+                               20, 19 ,
+                               21, 84 ,
+                               25, 100 ,
+                               30, 138 ,
+                               31, 139 ,
+                               32, 140 ,
+                               33, 141 ,
+                               34, 142 ,
+                               35, 143 ,
+                               41, 166 ,
+                               48, 170 ,
+                               58, 188 ,
+                               65, 190 ,
+                               70, 200 ,
+                               80, 84 ,
+                               91, 84 ,
+                               102, 225 ,
+                               103, 226 ,
+                               104, 227 ,
+                               105, 228 ,
+                               111, 230 ,
+                               112, 231 ,
+                               145, 261 ,
+                               146, 262 ,
+                               147, 263 ,
+                               148, 264 ,
+                               150, 265 ,
+                               171, 292 ,
+                               172, 293 ,
+                               179, 298 ,
+                               185, 315 ,
+                               189, 318 ,
+                               191, 320 ,
+                               192, 321 ,
+                               197, 324 ,
+                               223, 343 ,
+                               234, 353 ,
+                               235, 354 ,
+                               236, 355 ,
+                               237, 356 ,
+                               238, 357 ,
+                               239, 358 ,
+                               240, 359 ,
+                               241, 360 ,
+                               242, 361 ,
+                               243, 362 ,
+                               244, 363 ,
+                               245, 364 ,
+                               246, 365 ,
+                               247, 366 ,
+                               248, 367 ,
+                               249, 368 ,
+                               250, 369 ,
+                               252, 371 ,
+                               255, 374 ,
+                               256, 375 ,
+                               258, 377 ,
+                               259, 378 ,
+                               260, 379 ,
+                               267, 385 ,
+                               268, 386 ,
+                               269, 387 ,
+                               270, 388 ,
+                               271, 389 ,
+                               272, 390 ,
+                               273, 391 ,
+                               274, 392 ,
+                               275, 393 ,
+                               276, 394 ,
+                               277, 395 ,
+                               278, 396 ,
+                               279, 397 ,
+                               280, 398 ,
+                               281, 399 ,
+                               282, 400 ,
+                               283, 401 ,
+                               291, 404 ,
+                               327, 424 ,
+                               344, 435 ,
+                               350, 439 ,
+                               376, 465 ,
+                               380, 469 ,
+                               402, 490 ,
+                               403, 491 ,
+                               411, 500 ,
+                               412, 502 ,
+                               415, 508 ,
+                               417, 510 ,
+                               423, 517 ,
+                               434, 520 ,
+                               436, 522 ,
+                               437, 523 ,
+                               459, 529 ,
+                               460, 532 ,
+                               468, 563 ,
+                               493, 569 ,
+                               494, 570 ,
+                               504, 578 ,
+                               505, 580 ,
+                               509, 591 ,
+                               521, 598 ,
+                               530, 605 ,
+                               533, 610 ,
+                               539, 616 ,
+                               541, 618 ,
+                               552, 622 ,
+                               564, 629 ,
+                               567, 633 ,
+                               575, 668 ,
+                               581, 677 ,
+                               582, 680 ,
+                               583, 682 ,
+                               599, 701 ,
+                               606, 708 ,
+                               607, 709 ,
+                               623, 718 ,
+                               630, 724 ,
+                               635, 727 ,
+                               637, 729 ,
+                               638, 730 ,
+                               639, 731 ,
+                               640, 732 ,
+                               647, 735 ,
+                               656, 738 ,
+                               666, 757 ,
+                               669, 760 ,
+                               673, 764 ,
+                               674, 766 ,
+                               681, 773 ,
+                               695, 796 ,
+                               700, 798 ,
+                               705, 800 ,
+                               710, 805 ,
+                               711, 806 ,
+                               715, 810 ,
+                               716, 811 ,
+                               723, 817 ,
+                               739, 829 ,
+                               740, 830 ,
+                               741, 831 ,
+                               742, 832 ,
+                               743, 833 ,
+                               744, 834 ,
+                               745, 835 ,
+                               746, 836 ,
+                               747, 837 ,
+                               748, 838 ,
+                               749, 839 ,
+                               750, 840 ,
+                               751, 841 ,
+                               752, 842 ,
+                               753, 843 ,
+                               754, 844 ,
+                               755, 845 ,
+                               762, 848 ,
+                               765, 851 ,
+                               767, 853 ,
+                               768, 854 ,
+                               795, 882 ,
+                               797, 884 ,
+                               801, 887 ,
+                               802, 888 ,
+                               807, 892 ,
+                               819, 901 ,
+                               855, 927 ,
+                               868, 941 ,
+                               877, 953 ,
+                               879, 954 ,
+                               881, 956 ,
+                               885, 959 ,
+                               889, 962 ,
+                               900, 967 ,
+                               902, 969 ,
+                               936, 984 ,
+                               938, 985 ,
+                               940, 987 ,
+                               947, 996 ,
+                               950, 1000 ,
+                               955, 1007 ,
+                               968, 1014 ,
+                               978, 1023 ,
+                               981, 1027 ,
+                               986, 1034 ,
+                               991, 1040 ,
+                               994, 1044 ,
+                               997, 1047 ,
+                               998, 1048 ,
+                               1001, 1051 ,
+                               1018, 1063 ,
+                               1021, 1067 ,
+                               1024, 1070 ,
+                               1025, 1071 ,
+                               1028, 1074 ,
+                               1038, 1082 ,
+                               1041, 1085 ,
+                               1042, 1086 ,
+                               1045, 1089 ,
+                               1049, 1092 ,
+                               1058, 1096 ,
+                               1061, 1099 ,
+                               1064, 1102 ,
+                               1065, 1103 ,
+                               1068, 1106 ,
+                               1072, 1109 ,
+                               1080, 1113 ,
+                               1083, 1116 ,
+                               1087, 1119 ,
+                               1097, 1123 ,
+                               1100, 1126 ,
+                               1104, 1129 ,
+                               1114, 1133 ,
+                               1122, 1136 ,
+                               1124, 1138 
+                       ] ,
+                       [
+                               -1, 12 
+                       ] ,
+                       [
+                               -1, 822 ,
+                               832, 907 
+                       ] ,
+                       [
+                               -1, 656 ,
+                               1136, 1142 
+                       ] ,
+                       [
+                               -1, 657 
+                       ] ,
+                       [
+                               -1, 658 ,
+                               730, 820 ,
+                               829, 904 ,
+                               830, 905 
+                       ] ,
+                       [
+                               -1, 659 
+                       ] ,
+                       [
+                               -1, 660 ,
+                               831, 906 ,
+                               835, 910 ,
+                               836, 911 ,
+                               837, 912 ,
+                               838, 913 ,
+                               839, 914 ,
+                               840, 915 ,
+                               841, 916 
+                       ] ,
+                       [
+                               -1, 661 ,
+                               833, 908 ,
+                               834, 909 
+                       ] ,
+                       [
+                               -1, 662 ,
+                               732, 823 ,
+                               735, 825 ,
+                               842, 917 ,
+                               843, 918 ,
+                               844, 919 
+                       ] ,
+                       [
+                               -1, 663 
+                       ] ,
+                       [
+                               -1, 664 
+                       ] ,
+                       [
+                               -1, 614 ,
+                               717, 812 ,
+                               896, 966 ,
+                               1012, 1057 
+                       ] ,
+                       [
+                               -1, 615 ,
+                               466, 557 ,
+                               895, 965 
+                       ] ,
+                       [
+                               -1, 558 
+                       ] ,
+                       [
+                               -1, 559 
+                       ] ,
+                       [
+                               -1, 560 
+                       ] ,
+                       [
+                               -1, 561 
+                       ] ,
+                       [
+                               -1, 347 ,
+                               356, 443 
+                       ] ,
+                       [
+                               -1, 123 ,
+                               959, 1010 
+                       ] ,
+                       [
+                               -1, 124 
+                       ] ,
+                       [
+                               -1, 125 ,
+                               226, 345 ,
+                               353, 440 ,
+                               354, 441 
+                       ] ,
+                       [
+                               -1, 126 
+                       ] ,
+                       [
+                               -1, 127 ,
+                               355, 442 ,
+                               359, 446 ,
+                               360, 447 ,
+                               361, 448 ,
+                               362, 449 ,
+                               363, 450 ,
+                               364, 451 ,
+                               365, 452 
+                       ] ,
+                       [
+                               -1, 128 ,
+                               357, 444 ,
+                               358, 445 
+                       ] ,
+                       [
+                               -1, 129 ,
+                               228, 348 ,
+                               231, 351 ,
+                               366, 453 ,
+                               367, 454 ,
+                               368, 455 
+                       ] ,
+                       [
+                               -1, 130 
+                       ] ,
+                       [
+                               -1, 131 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, -1 
+                       ] ,
+                       [
+                               -1, 13 ,
+                               4, 20 
+                       ] ,
+                       [
+                               -1, 14 ,
+                               4, 21 ,
+                               13, 80 ,
+                               20, 91 
+                       ] ,
+                       [
+                               -1, 509 ,
+                               460, 533 ,
+                               505, 581 ,
+                               530, 606 
+                       ] ,
+                       [
+                               -1, 765 
+                       ] ,
+                       [
+                               -1, 681 ,
+                               607, 710 ,
+                               674, 767 ,
+                               695, 797 ,
+                               705, 801 ,
+                               711, 807 ,
+                               768, 855 ,
+                               802, 889 
+                       ] ,
+                       [
+                               -1, 98 ,
+                               88, 212 ,
+                               206, 331 ,
+                               209, 334 ,
+                               213, 337 ,
+                               216, 340 ,
+                               332, 427 ,
+                               338, 431 
+                       ] ,
+                       [
+                               -1, 669 
+                       ] ,
+                       [
+                               -1, 632 
+                       ] ,
+                       [
+                               -1, 189 ,
+                               254, 373 ,
+                               625, 721 ,
+                               714, 809 
+                       ] ,
+                       [
+                               -1, 199 
+                       ] ,
+                       [
+                               -1, 496 ,
+                               439, 525 ,
+                               520, 597 
+                       ] ,
+                       [
+                               -1, 75 
+                       ] ,
+                       [
+                               -1, 15 ,
+                               12, 76 
+                       ] ,
+                       [
+                               -1, 16 ,
+                               15, 86 ,
+                               76, 205 
+                       ] 
+               ]
+       end
+
+       private meth error_messages: Array[String]
+       do
+               return once [
+                       "expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF" ,
+                       "expecting: EOF" ,
+                       "expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment" ,
+                       "expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF" ,
+                       "expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, id" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'protected', 'private', 'intrude'" ,
+                       "expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: id" ,
+                       "expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'" ,
+                       "expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'end', EOF" ,
+                       "expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, classid" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: '::'" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: '[', '=', '+=', '-=', '.'" ,
+                       "expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth'" ,
+                       "expecting: eol, comment, EOF" ,
+                       "expecting: eol, comment, 'do'" ,
+                       "expecting: '[', '.'" ,
+                       "expecting: mid string, end string" ,
+                       "expecting: 'super'" ,
+                       "expecting: 'super', classid, id" ,
+                       "expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'in', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: eol, comment, 'end', 'else', EOF" ,
+                       "expecting: eol, comment, 'end', 'else', 'and', 'or', EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: 'class', 'abstract', 'interface', 'universal', 'meth'" ,
+                       "expecting: 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'else', ':', '=', EOF" ,
+                       "expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '::', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '[', ':', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: classid" ,
+                       "expecting: ')'" ,
+                       "expecting: eol, comment, 'super'" ,
+                       "expecting: eol, comment, 'super', classid, id" ,
+                       "expecting: eol, comment, 'end', id" ,
+                       "expecting: 'class'" ,
+                       "expecting: '[', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id" ,
+                       "expecting: 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: 'do'" ,
+                       "expecting: eol, comment, 'init', id, attrid" ,
+                       "expecting: 'meth', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'meth'" ,
+                       "expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'else', '=', EOF" ,
+                       "expecting: eol, comment, 'then'" ,
+                       "expecting: eol, comment, 'in'" ,
+                       "expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: '.'" ,
+                       "expecting: eol, comment, ']', ',', '..'" ,
+                       "expecting: 'end', id" ,
+                       "expecting: ']'" ,
+                       "expecting: eol, comment, 'is', 'do', '(', ':'" ,
+                       "expecting: eol, comment, 'is', 'do', '(', ':', '='" ,
+                       "expecting: 'init', id, attrid" ,
+                       "expecting: eol, comment, mid string, end string" ,
+                       "expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '(', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF" ,
+                       "expecting: eol, comment, 'end', 'else', '[', '=', '+=', '-=', '.', EOF" ,
+                       "expecting: eol, comment, ')', ','" ,
+                       "expecting: 'then'" ,
+                       "expecting: 'in'" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: ']', ',', '..'" ,
+                       "expecting: eol, comment, ')', id" ,
+                       "expecting: eol, comment, 'is', 'do'" ,
+                       "expecting: eol, comment, 'is', 'do', ':'" ,
+                       "expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude', '['" ,
+                       "expecting: eol, comment, ']', ','" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: ')', ','" ,
+                       "expecting: eol, comment, 'end', 'else', 'and', 'or', '+', '-', EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'else', ')', ']', ',', '=', '...', EOF" ,
+                       "expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', '+', '-', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', '[', ']', ',', '=', '+=', '-=', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: ')', ']', ','" ,
+                       "expecting: ']', ','" ,
+                       "expecting: ')', id" ,
+                       "expecting: 'extern'" ,
+                       "expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'else'" ,
+                       "expecting: eol, comment, ']'" ,
+                       "expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, ')', ',', ':'" ,
+                       "expecting: eol, comment, string" ,
+                       "expecting: eol, comment, 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'meth', 'type', 'attr', 'init', 'readable', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'attr', 'redef', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'attr', 'redef', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'meth', 'type', 'attr', 'init'" ,
+                       "expecting: eol, comment, ')', ']', ','" ,
+                       "expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'" ,
+                       "expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'" ,
+                       "expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'" ,
+                       "expecting: eol, comment, '[', ']'" ,
+                       "expecting: eol, comment, 'and', 'or', '[', ']'" ,
+                       "expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>'" ,
+                       "expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'" ,
+                       "expecting: eol, comment, ')', ',', '...'" ,
+                       "expecting: eol, comment, ']', ',', ':'" ,
+                       "expecting: 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'attr', 'writable', 'protected', 'private', 'intrude'" ,
+                       "expecting: 'attr'" ,
+                       "expecting: 'attr', 'protected', 'private', 'intrude'" ,
+                       "expecting: attrid" ,
+                       "expecting: eol, comment, 'do', '(', '[', ':', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id" ,
+                       "expecting: eol, comment, 'else'" ,
+                       "expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', '(', ')', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF" ,
+                       "expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: '[', ']'" ,
+                       "expecting: ':'" ,
+                       "expecting: eol, comment, ':', '='" ,
+                       "expecting: eol, comment, 'do', '(', ':'" ,
+                       "expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF" ,
+                       "expecting: eol, comment, '='" ,
+                       "expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'and', 'or', '[', ']', '+', '-'" ,
+                       "expecting: 'abstract', 'intern', 'extern'" ,
+                       "expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string" ,
+                       "expecting: eol, comment, 'end'" ,
+                       "expecting: eol, comment, 'end', 'do', 'then', 'else', ')', ']', ',', '..', mid string, end string, EOF" 
+               ]
+       end
+
+       private meth errors: Array[Int]
+       do
+               return once [
+                       0 , 1 , 1 , 2 , 3 , 3 , 2 , 2 , 4 , 5 , 6 , 7 , 8 , 3 , 4 , 1 , 1 , 2 , 5 , 9 , 3 , 4 , 10 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 17 , 17 , 18 , 18 , 12 , 19 , 20 , 20 , 20 , 21 , 22 , 13 , 23 , 23 , 23 , 23 , 21 , 18 , 24 , 25 , 26 , 23 , 23 , 23 , 23 , 18 , 27 , 28 , 20 , 20 , 20 , 20 , 20 , 20 , 29 , 20 , 30 , 23 , 31 , 18 , 23 , 32 , 33 , 32 , 33 , 1 , 3 , 2 , 5 , 4 , 2 , 4 , 5 , 34 , 1 , 1 , 1 , 11 , 2 , 5 , 4 , 2 , 5 , 2 , 11 , 5 , 35 , 11 , 36 , 16 , 37 , 18 , 38 , 22 , 39 , 37 , 40 , 40 , 40 , 40 , 41 , 39 , 42 , 40 , 40 , 40 , 40 , 40 , 40 , 23 , 20 , 32 , 43 , 44 , 44 , 44 , 45 , 46 , 46 , 46 , 40 , 47 , 20 , 20 , 20 , 48 , 49 , 50 , 50 , 50 , 21 , 21 , 16 , 51 , 18 , 52 , 22 , 53 , 51 , 53 , 54 , 23 , 20 , 55 , 55 , 55 , 56 , 57 , 57 , 57 , 23 , 32 , 58 , 21 , 43 , 59 , 23 , 20 , 60 , 21 , 61 , 62 , 26 , 20 , 21 , 21 , 21 , 21 , 63 , 22 , 64 , 22 , 22 , 65 , 22 , 28 , 66 , 2 , 28 , 67 , 18 , 68 , 26 , 18 , 23 , 31 , 18 , 23 , 31 , 21 , 13 , 24 , 33 , 32 , 1 , 11 , 2 , 5 , 11 , 47 , 2 , 11 , 11 , 2 , 5 , 11 , 11 , 69 , 70 , 2 , 11 , 5 , 41 , 40 , 21 , 71 , 59 , 72 , 40 , 73 , 72 , 40 , 37 , 38 , 38 , 39 , 22 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 68 , 65 , 22 , 20 , 5 , 22 , 18 , 74 , 75 , 29 , 76 , 21 , 77 , 59 , 78 , 78 , 23 , 52 , 52 , 53 , 22 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 53 , 68 , 23 , 51 , 21 , 43 , 79 , 80 , 23 , 81 , 32 , 33 , 21 , 21 , 43 , 43 , 82 , 22 , 83 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 84 , 85 , 84 , 59 , 28 , 28 , 2 , 15 , 21 , 86 , 21 , 21 , 21 , 31 , 23 , 87 , 23 , 20 , 2 , 11 , 11 , 2 , 11 , 2 , 2 , 11 , 11 , 2 , 11 , 70 , 3 , 73 , 75 , 44 , 88 , 37 , 46 , 89 , 90 , 46 , 40 , 71 , 71 , 72 , 59 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 72 , 86 , 84 , 59 , 48 , 5 , 59 , 21 , 18 , 91 , 67 , 92 , 75 , 55 , 93 , 57 , 57 , 77 , 77 , 78 , 59 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 86 , 22 , 12 , 94 , 43 , 43 , 5 , 5 , 85 , 84 , 95 , 96 , 97 , 96 , 98 , 20 , 99 , 13 , 100 , 26 , 43 , 43 , 87 , 31 , 2 , 2 , 11 , 2 , 2 , 2 , 11 , 2 , 23 , 90 , 91 , 22 , 12 , 46 , 101 , 44 , 44 , 102 , 44 , 46 , 46 , 102 , 102 , 102 , 102 , 102 , 102 , 102 , 46 , 46 , 46 , 37 , 37 , 40 , 96 , 98 , 20 , 48 , 103 , 43 , 21 , 104 , 15 , 18 , 91 , 57 , 55 , 55 , 105 , 55 , 57 , 57 , 105 , 105 , 105 , 105 , 105 , 105 , 105 , 57 , 57 , 57 , 51 , 51 , 23 , 59 , 16 , 106 , 18 , 107 , 108 , 109 , 3 , 3 , 84 , 110 , 111 , 67 , 96 , 22 , 112 , 112 , 5 , 113 , 112 , 109 , 23 , 20 , 26 , 20 , 21 , 21 , 31 , 2 , 2 , 101 , 18 , 59 , 16 , 89 , 101 , 40 , 40 , 111 , 67 , 112 , 5 , 113 , 112 , 20 , 43 , 20 , 114 , 15 , 18 , 15 , 18 , 115 , 43 , 43 , 43 , 114 , 116 , 20 , 43 , 43 , 20 , 29 , 43 , 30 , 32 , 117 , 118 , 118 , 118 , 118 , 118 , 20 , 21 , 18 , 23 , 99 , 119 , 51 , 21 , 120 , 106 , 108 , 97 , 121 , 90 , 122 , 15 , 59 , 5 , 113 , 112 , 123 , 22 , 4 , 124 , 125 , 126 , 127 , 112 , 5 , 113 , 21 , 21 , 43 , 43 , 23 , 101 , 21 , 119 , 37 , 89 , 122 , 15 , 5 , 113 , 112 , 123 , 4 , 5 , 113 , 43 , 43 , 48 , 118 , 118 , 21 , 20 , 21 , 43 , 43 , 43 , 67 , 68 , 114 , 5 , 20 , 15 , 29 , 21 , 22 , 99 , 99 , 83 , 23 , 128 , 129 , 18 , 130 , 22 , 131 , 129 , 132 , 132 , 132 , 132 , 21 , 131 , 133 , 132 , 132 , 132 , 132 , 132 , 132 , 32 , 134 , 135 , 135 , 135 , 136 , 137 , 137 , 137 , 132 , 138 , 12 , 90 , 60 , 90 , 5 , 5 , 139 , 99 , 123 , 4 , 5 , 113 , 123 , 5 , 140 , 123 , 59 , 125 , 126 , 127 , 141 , 126 , 142 , 143 , 142 , 65 , 59 , 144 , 145 , 123 , 4 , 43 , 43 , 23 , 146 , 83 , 40 , 5 , 5 , 123 , 4 , 5 , 113 , 140 , 123 , 123 , 4 , 43 , 5 , 75 , 29 , 15 , 86 , 43 , 117 , 5 , 20 , 146 , 59 , 99 , 147 , 108 , 132 , 21 , 148 , 59 , 149 , 132 , 60 , 149 , 132 , 129 , 150 , 130 , 130 , 131 , 22 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 131 , 68 , 90 , 16 , 97 , 90 , 60 , 99 , 22 , 99 , 83 , 99 , 140 , 123 , 123 , 4 , 123 , 4 , 123 , 140 , 112 , 141 , 126 , 142 , 143 , 142 , 65 , 59 , 144 , 145 , 126 , 142 , 143 , 142 , 144 , 142 , 144 , 84 , 151 , 152 , 153 , 29 , 140 , 123 , 118 , 37 , 140 , 123 , 123 , 4 , 4 , 140 , 140 , 123 , 48 , 5 , 91 , 67 , 118 , 114 , 154 , 20 , 117 , 118 , 99 , 75 , 135 , 129 , 129 , 137 , 132 , 137 , 132 , 23 , 23 , 148 , 148 , 149 , 59 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 149 , 86 , 90 , 97 , 59 , 112 , 99 , 83 , 4 , 140 , 140 , 123 , 4 , 126 , 142 , 143 , 142 , 144 , 142 , 144 , 84 , 151 , 152 , 153 , 29 , 143 , 142 , 144 , 142 , 144 , 152 , 144 , 152 , 96 , 5 , 18 , 155 , 29 , 67 , 4 , 140 , 156 , 4 , 140 , 140 , 123 , 4 , 4 , 140 , 43 , 48 , 104 , 15 , 43 , 43 , 20 , 18 , 91 , 12 , 137 , 135 , 135 , 157 , 135 , 137 , 137 , 157 , 157 , 157 , 157 , 157 , 157 , 157 , 137 , 137 , 137 , 129 , 129 , 132 , 99 , 112 , 4 , 4 , 140 , 143 , 142 , 144 , 142 , 144 , 152 , 144 , 152 , 96 , 5 , 18 , 155 , 29 , 67 , 142 , 144 , 152 , 144 , 152 , 18 , 155 , 152 , 18 , 155 , 158 , 67 , 21 , 18 , 67 , 15 , 4 , 159 , 4 , 4 , 140 , 4 , 43 , 118 , 118 , 21 , 18 , 16 , 132 , 132 , 4 , 142 , 144 , 152 , 144 , 152 , 18 , 155 , 152 , 18 , 155 , 158 , 67 , 21 , 18 , 67 , 15 , 144 , 152 , 18 , 155 , 152 , 18 , 155 , 21 , 18 , 18 , 155 , 21 , 18 , 5 , 5 , 122 , 15 , 5 , 21 , 15 , 160 , 43 , 4 , 15 , 161 , 21 , 129 , 144 , 152 , 18 , 155 , 152 , 18 , 155 , 21 , 18 , 18 , 155 , 21 , 18 , 5 , 5 , 122 , 15 , 5 , 21 , 15 , 160 , 152 , 18 , 155 , 21 , 18 , 18 , 155 , 21 , 18 , 5 , 21 , 21 , 18 , 5 , 21 , 5 , 160 , 5 , 160 , 5 , 118 , 146 , 132 , 152 , 18 , 155 , 21 , 18 , 18 , 155 , 21 , 18 , 5 , 21 , 21 , 18 , 5 , 21 , 5 , 160 , 5 , 160 , 5 , 18 , 155 , 21 , 18 , 5 , 21 , 21 , 18 , 5 , 21 , 5 , 5 , 21 , 5 , 5 , 5 , 118 , 18 , 155 , 21 , 18 , 5 , 21 , 21 , 18 , 5 , 21 , 5 , 5 , 21 , 5 , 5 , 5 , 21 , 18 , 5 , 21 , 5 , 5 , 21 , 5 , 5 , 107 , 21 , 18 , 5 , 21 , 5 , 5 , 21 , 5 , 5 , 5 , 21 , 5 , 5 , 120 , 5 , 21 , 5 , 5 , 5 , 134 , 5  
+               ]
+       end
+end
diff --git a/src/parser/test_parser.nit b/src/parser/test_parser.nit
new file mode 100644 (file)
index 0000000..2fbfb1a
--- /dev/null
@@ -0,0 +1,90 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Program used to test the NIT parser
+package test_parser
+
+import parser
+
+class PrintTreeVisitor
+special Visitor
+       attr _rank: Int
+       meth visit(n: PNode)
+       do
+               printn("  " * _rank, n.to_s, "\n")
+               _rank = _rank + 1
+               n.visit_all(self)
+               _rank = _rank - 1
+       end
+
+       init
+       do
+               _rank = 0
+       end
+end
+
+var no_print = false
+var only_lexer = false
+var need_help = false
+
+while not args.is_empty and args.first.first == '-' do
+       if args.first = "-n" then
+               no_print = true
+       else if args.first = "-l" then
+               only_lexer = true
+       else if args.first = "-p" then
+               only_lexer = false 
+       else if args.first = "-h" or args.first = "-?" then
+               need_help = true
+       else
+               stderr.write("Unknown option {args.first}.\n")
+               exit(0)
+       end
+       args.shift
+end
+
+if args.is_empty or need_help then
+       print("usage:")
+       print("  test_parser [options]... <filename.nit>...")
+       print("options:")
+       print("  -n     do not print anything")
+       print("  -l     only lexer")
+       print("  -p     lexer and parser (default)")
+       print("  -h     print this help")
+else
+       for a in args do
+               var f = new IFStream.open(a)
+               var lexer = new Lexer(f, a)
+               if only_lexer then
+                       var token = lexer.next
+                       while not token isa EOF do
+                               if not no_print then
+                                       print("Read token at [{token.line},{token.pos}] text='{token.text}'")
+                               end
+                               token = lexer.next
+                       end
+                       f.close
+               else
+                       var parser = new Parser(lexer)
+                       var tree = parser.parse
+                       f.close
+
+                       if not no_print then
+                               (new PrintTreeVisitor).visit(tree)
+                       end
+               end
+       end
+end
diff --git a/src/parser/xss/lexer.xss b/src/parser/xss/lexer.xss
new file mode 100644 (file)
index 0000000..843a52b
--- /dev/null
@@ -0,0 +1,298 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ template make_lexer()
+
+# The lexer extract NIT tokens from an input stream.
+# It is better user with the Parser
+class Lexer
+       # Last peeked token
+       attr _token: Token
+
+       # Lexer current state
+       attr _state: Int
+
+       # Name of the stream (as given to tokens)
+       readable attr _filename: String 
+
+       # Input stream where character are read
+       attr _stream: IStream
+
+       # Pushback buffer to store unread character
+       attr _stream_buf: String
+
+       # Number of character stored in the pushback buffer
+       attr _stream_pos: Int
+
+       # Current line number in the input stream
+       attr _line: Int
+
+       # Current column in the input stream
+       attr _pos: Int
+
+       # Was the last character a cariage-return?
+       attr _cr: Bool
+
+       # If the end of stream?
+       attr _eof: Bool
+
+       # Current working text read from the input stream
+       attr _text: String
+
+$ foreach {lexer_data/state}
+       # Constante state values
+       private meth state_${translate(@name,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}: Int do return @id end
+$ end foreach
+
+       # Create a new lexer for a stream (and a name)
+       init(stream: IStream, fname: String)
+       do
+               _filename = fname
+               _text = new String
+               _stream = stream
+               _stream_pos = -1
+               _stream_buf = new String
+               build_goto_table
+               build_accept_table
+       end
+
+       # Give the next token (but do not consume it)
+       meth peek: Token
+       do
+               while _token == null do
+                       _token = get_token
+               end
+               return _token
+       end
+
+       # Give and consume the next token
+       meth next: Token
+       do
+               var result = _token
+               while result == null do
+                       result = get_token
+               end
+               _token = null
+               return result
+       end
+
+       # Get a token, or null if it is discarded
+       private meth get_token: Token
+       do
+               var dfa_state = 0
+
+               var start_pos = _pos
+               var start_line = _line
+
+               var accept_state = -1
+               var accept_token = -1
+               var accept_length = -1
+               var accept_pos = -1
+               var accept_line = -1
+
+               var goto_table = _goto_table[_state]
+               var accept = _accept_table[_state]
+               _text.clear
+
+               while true do
+                       var c = get_char
+
+                       if c != -1 then
+                               if c == 10 then
+                                       if _cr then
+                                               _cr = false
+                                       else
+                                               _line = _line + 1
+                                               _pos = 0
+                                       end
+                               else if c == 13 then
+                                       _line = _line + 1
+                                       _pos = 0
+                                       _cr = true
+                               else
+                                       _pos = _pos + 1
+                                       _cr = false
+                               end
+
+                               _text.add(c.ascii)
+
+                               var first_loop = true # aka until
+                               while dfa_state < -1 or first_loop do
+                                       var old_state = dfa_state
+                                       if dfa_state < -1 then
+                                               old_state = -2 - dfa_state
+                                       end
+
+                                       dfa_state = -1
+
+                                       var tmp1 = goto_table[old_state]
+                                       var low = 0
+                                       var high = tmp1.length - 1
+
+                                       while low <= high do
+                                               var middle = (low + high) / 2
+                                               var tmp2 = tmp1[middle]
+
+                                               if c < tmp2[0] then
+                                                       high = middle - 1
+                                               else if c > tmp2[1] then
+                                                       low = middle + 1
+                                               else
+                                                       dfa_state = tmp2[2]
+                                                       low = high + 1 # aka break
+                                               end
+                                       end
+                                       first_loop = false # aka until
+                               end
+                       else
+                               dfa_state = -1
+                       end
+
+                       if dfa_state >= 0 then
+                               if accept[dfa_state] != -1 then
+                                       accept_state = dfa_state
+                                       accept_token = accept[dfa_state]
+                                       accept_length = _text.length
+                                       accept_pos = _pos
+                                       accept_line = _line
+                               end
+                       else
+                               if accept_state != -1 then
+$ foreach {//token}
+                                       if accept_token == ${position()-1} then
+$    if {not(@text)}
+$        if {@parser_index}
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new @ename(token_text, _filename, start_line + 1, start_pos + 1)
+$        end
+$    else
+                                               var token = new @ename(_filename, start_line + 1, start_pos + 1)
+$    end
+                                               push_back(accept_length)
+                                               _pos = accept_pos
+                                               _line = accept_line
+$    if {count(transition[@from!=@to])!=0}
+                                               var state_id = _state
+$        foreach transition in {transition[@from!=@to]}
+                                               if state_id == ${/parser/lexer_data/state[@name=$transition/@from]/@id} then
+                                                       _state = state_${translate(@to,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+                                               end
+$        end
+$    end if
+$    if {@parser_index}
+                                               return token
+$    else
+                                               return null
+$    end
+                                       end
+$ end foreach
+                               else
+                                       if _text.length > 0 then
+                                               var token = new PError.init_error(_filename, start_line + 1, start_pos + 1, "Unknown token: {_text}")
+                                               return token
+                                       else
+                                               var token = new EOF(_filename, start_line + 1, start_pos + 1)
+                                               return token
+                                       end
+                               end
+                       end
+               end
+               return null
+       end
+
+       # Read the next character.
+       # The character is read from the stream of from the pushback buffer.
+       private meth get_char: Int
+       do
+               if _eof then
+                       return -1
+               end
+
+               var result: Int
+
+               var sp = _stream_pos
+               if sp >= 0 then
+                       var res = _stream_buf[_stream_pos]
+                       _stream_pos = sp - 1
+                       result = res.ascii
+               else
+                       result = _stream.read_char
+               end
+
+               if result == -1 then
+                       _eof = true
+               end
+
+               return result
+       end
+
+       # Unread some characters.
+       # Unread characters are stored in the pushback buffer.
+       private meth push_back(accept_length: Int)
+       do
+               var length = _text.length
+               var i = length - 1
+               while i >= accept_length do
+                       _eof = false
+                       _stream_pos = _stream_pos + 1
+                       _stream_buf[_stream_pos] = _text[i]
+                       i = i - 1
+               end
+       end
+
+       attr _goto_table: Array[Array[Array[Array[Int]]]]
+       private meth build_goto_table
+       do
+               _goto_table = once [
+$ foreach {lexer_data/goto_table/state}
+                       [
+$     foreach {row}
+$         if {count(goto)!=0}
+                               [
+$             foreach {goto}
+                                       [@low, @high, @state] [-sep ','-]
+$             end foreach
+                               ] [-sep ','-]
+$         else
+                               nil_array [-sep ','-]
+$         end
+$     end foreach
+                       ] [-sep ','-]
+$ end foreach
+               ]
+       end
+    
+       private meth nil_array: Array[Array[Int]]
+       do
+               return once new Array[Array[Int]]
+       end
+
+       attr _accept_table: Array[Array[Int]]
+       private meth build_accept_table do
+               _accept_table = once [
+$ foreach {lexer_data/accept_table/state}
+                       [
+                               [-foreach {i}-]${.} [-sep ','-] [-end foreach-]
+
+                       ] [-sep ','-]
+$ end foreach
+               ]
+       end
+end
+
+$ end template
diff --git a/src/parser/xss/main.xss b/src/parser/xss/main.xss
new file mode 100644 (file)
index 0000000..dc32b23
--- /dev/null
@@ -0,0 +1,82 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ include 'nodes.xss'
+$ include 'lexer.xss'
+$ include 'parser.xss'
+$ include 'tokens.xss'
+$ include 'prods.xss'
+
+$ output 'parser_abs.nit'
+# Raw AST node hierarchy.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_abs
+
+$ call make_abs_nodes()
+$ call make_abs_tokens()
+$ call make_abs_prods()
+$ end output
+
+$ output 'lexer.nit'
+# Lexer and its tokens.
+# This file was generated by SableCC (http://www.sablecc.org/).
+package lexer
+
+$ if $usermodule
+import $usermodule
+$ else
+import parser_abs
+$ end
+$ call make_tokens()
+$ call make_lexer()
+$ end output
+
+$ output 'parser_prod.nit'
+# Production AST nodes full definition.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_prod
+
+import lexer
+$ if $usermodule
+intrude import $usermodule
+$ else
+intrude import parser_abs
+$ end
+
+$ call make_nodes()
+$ call make_prods()
+$ end output
+
+$ output 'parser_tables.nit'
+# Tables used by the parser.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser_tables
+
+$ call make_parser_tables()
+$ end output
+
+$ output 'parser.nit'
+# Parser.
+# This file was generated by SableCC (http://www.sablecc.org/). 
+package parser
+
+import parser_prod
+intrude import parser_tables
+$ call make_parser()
+$ end output
+
diff --git a/src/parser/xss/nodes.xss b/src/parser/xss/nodes.xss
new file mode 100644 (file)
index 0000000..3d59406
--- /dev/null
@@ -0,0 +1,123 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ template make_abs_nodes()
+# Root of the AST hierarchy
+abstract class PNode
+end
+
+# Ancestor of all tokens
+abstract class Token
+special PNode
+end
+
+# Ancestor of all productions
+abstract class Prod
+special PNode
+end
+$ end template
+
+$ template make_nodes()
+redef class PNode
+       # Parent of the node in the AST
+       readable writable attr _parent: PNode 
+
+       # Remove a child from the AST
+       meth remove_child(child: PNode)
+       do
+               replace_child(child, null)
+       end
+
+       # Replace a child with an other node in the AST
+       meth replace_child(old_child: PNode, new_child: PNode) is abstract
+
+       # Replace itself with an other node in the AST
+       meth replace_with(node: PNode)
+       do
+               if (_parent != null) then
+                       _parent.replace_child(self, node)
+               end
+       end
+
+       # Visit all nodes in order.
+       # Thus, call "v.visit(e)" for each node e
+       meth visit_all(v: Visitor) is abstract
+
+       # Visit all nodes in reverse order.
+       # Thus, call "v.visit(e)" for each node e starting from the last child
+       meth visit_all_reverse(v: Visitor) is abstract
+
+       # Give a human readable location of the node.
+       meth locate: String is abstract
+
+       # Debug method: output a message prefixed with the location.
+       meth printl(str: String)
+       do
+               print("{locate}: {str}\n")
+       end
+end
+
+redef class Token
+       redef meth visit_all(v: Visitor) do end
+       redef meth visit_all_reverse(v: Visitor) do end
+       redef meth replace_child(old_child: PNode, new_child: PNode) do end
+
+       redef meth locate: String
+       do
+               return "{filename}:{line},{pos}"
+       end
+end
+
+redef class Prod
+       # The first token of the production node
+       readable writable attr _first_token: Token 
+
+       # The last token of the production node
+       readable writable attr _last_token: Token 
+
+       redef meth locate: String
+       do
+               if first_token == null then
+                       return "????"
+               end
+               var lastpos = last_token.pos + last_token.text.length - 1
+               if first_token.line == last_token.line then
+                       return "{first_token.locate}--{lastpos}"
+               else
+                       return "{first_token.locate}--{last_token.line}:{lastpos}"
+               end
+       end
+
+       redef meth replace_with(n: PNode)
+       do
+               super
+               assert n isa Prod
+               n.first_token = first_token
+               n.last_token = last_token
+       end
+end
+
+# Abstract standard visitor
+class Visitor
+        # Ask the visitor to visit a given node.
+        # Usually automatically called by visit_all* methods.
+        # Concrete visitors should redefine this method.
+        meth visit(e: PNode) is abstract
+end
+
+$ end template
diff --git a/src/parser/xss/parser.xss b/src/parser/xss/parser.xss
new file mode 100644 (file)
index 0000000..2f6d2db
--- /dev/null
@@ -0,0 +1,333 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ template make_parser()
+
+# State of the parser automata as stored in the parser stack.
+private class State
+       # The internal state number
+       readable writable attr _state: Int
+
+       # The node stored with the state in the stack
+       readable writable attr _nodes: Object 
+
+       init(state: Int, nodes: Object)
+       do
+               _state = state
+               _nodes = nodes
+       end
+end
+
+redef class Parser
+       # Associated lexer
+       attr _lexer: Lexer
+
+       # Stack of pushed states and productions
+       attr _stack: Array[State]
+
+       # Position in the stack
+       attr _stack_pos: Int
+
+       # Create a new parser based on a given lexer
+       init(lexer: Lexer)
+       do
+               _lexer = lexer
+               _stack = new Array[State]
+               _stack_pos = -1
+               build_goto_table
+               build_action_table
+               build_reduce_table
+       end
+
+       # Do a transition in the automata
+       private meth go_to(index: Int): Int
+       do
+               var state = state
+               var table = _goto_table[index]
+               var low = 1
+               var high = table.length/2 - 1
+
+               while low <= high do
+                       var middle = (low + high) / 2
+                       var subindex = middle * 2
+
+                       if state < table[subindex] then
+                               high = middle - 1
+                       else if state > table[subindex] then
+                               low = middle + 1
+                       else
+                               return table[subindex + 1]
+                       end
+               end
+
+               return table[1] # Default value
+       end
+
+       # Push someting in the state stack
+       private meth push(numstate: Int, list_node: Object)
+       do
+               var pos = _stack_pos + 1
+               _stack_pos = pos
+               if pos < _stack.length then
+                       var state = _stack[pos]
+                       state.state = numstate
+                       state.nodes = list_node
+               else
+                       _stack.push(new State(numstate, list_node))
+               end
+       end
+
+       # The current state
+       private meth state: Int
+       do
+               return _stack[_stack_pos].state
+       end
+
+       # Pop something from the stack state
+       private meth pop: Object
+       do
+               var res = _stack[_stack_pos].nodes
+               _stack_pos = _stack_pos -1
+               return res
+       end
+
+       # Build and return a full AST.
+       meth parse: Start
+       do
+               push(0, null)
+
+               var ign: List[Token] = null
+               var lexer = _lexer
+               while true do
+                       var token = lexer.peek
+                       var last_pos = token.pos
+                       var last_line = token.line
+
+                       if token isa PError then
+                               assert token isa PError
+                               return new Start(null, token)
+                       end
+
+                       var index = token.parser_index
+                       var table = _action_table[state]
+                       var action_type = table[1]
+                       var action_value = table[2]
+
+                       var low = 1
+                       var high = table.length/3 - 1
+
+                       while low <= high do
+                               var middle = (low + high) / 2
+                               var subindex = middle * 3
+
+                               if index < table[subindex] then
+                                       high = middle - 1
+                               else if index > table[subindex] then
+                                       low = middle + 1
+                               else
+                                       action_type = table[subindex + 1]
+                                       action_value = table[subindex + 2]
+                                       high = low -1 # break
+                               end
+                       end
+
+                       if action_type == 0 then # SHIFT
+                               push(action_value, lexer.next)
+                       else if action_type == 1 then # REDUCE
+                               _reduce_table[action_value].action(self)
+                       else if action_type == 2 then # ACCEPT
+                               var node2 = lexer.next
+                               assert node2 isa EOF
+                               var node1 = pop
+                               assert node1 isa ${/parser/prods/prod/@ename}
+                               var node = new Start(node1, node2)
+                               (new SearchTokensVisitor).visit(node)
+                               return node
+                       else if action_type == 3 then # ERROR
+                               var node2 = new PError.init_error(lexer.filename, last_line, last_pos, error_messages[errors[action_value]])
+                               var node = new Start(null, node2)
+                               return node
+                       end
+               end
+               return null
+       end
+
+       attr _reduce_table: Array[ReduceAction]
+       private meth build_reduce_table
+       do
+               _reduce_table = new Array[ReduceAction].with(
+$ foreach {rules/rule}
+                       new ReduceAction@index[-sep ','-]
+$ end foreach
+               )
+       end
+end
+
+# Find first and last tokens of production nodes
+private class SearchTokensVisitor
+special Visitor
+       attr _untokenned_nodes: Array[Prod]
+       attr _last_token: Token
+       redef meth visit(n: PNode)
+       do
+               if n isa Token then
+                       assert n isa Token
+                       _last_token = n
+                       for no in _untokenned_nodes do
+                               no.first_token = n
+                       end
+                       _untokenned_nodes.clear
+               else
+                       assert n isa Prod
+                       _untokenned_nodes.add(n)
+                       n.visit_all(self)
+                       n.last_token = _last_token
+               end
+       end
+       init
+       do
+               _untokenned_nodes = new Array[Prod]
+       end
+end
+
+# Each reduca action has its own class, this one is the root of the hierarchy.
+private abstract class ReduceAction
+       meth action(p: Parser) is abstract
+end
+
+$ foreach {rules/rule}
+private class ReduceAction@index
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+$   foreach {action}
+$   choose
+$     when {@cmd='POP'}
+                                       var ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = p.pop
+$     end
+$     when {@cmd='FETCHLIST'}
+                                       var ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = ${translate(@from,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} 
+                                       assert ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} isa Array[Object]
+$     end
+$     when {@cmd='FETCHNODE'}
+                                       var ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = ${translate(@from,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+                                       assert ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} isa @etype
+$     end
+$     when {@cmd='ADDNODE'}
+                                       if ${translate(@node,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} != null then
+                                               ${translate(@tolist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}.add(${translate(@node,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")})
+                                       end
+$     end
+$     when {@cmd='ADDLIST'}
+                                       if ${translate(@fromlist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} != null then
+                                               if ${translate(@tolist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}.is_empty then
+                                                       ${translate(@tolist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = ${translate(@fromlist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+                                               else
+                                                       ${translate(@tolist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}.append(${translate(@fromlist,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")})
+                                               end
+                                       end
+$     end
+$     when {@cmd='MAKELIST'}
+                                       var ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = new Array[Object]
+$     end
+$     when {@cmd='MAKENODE'}
+                                       var ${translate(@result,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} = new @etype.init_${translate(@etype,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}(
+$       foreach {arg}
+$           if @null
+                                               null[-sep ','-]
+$           else
+                                               ${translate(.,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}[-sep ','-]
+$           end
+$       end foreach
+                                       )
+$     end
+$     when {@cmd='RETURNNODE'}
+$       if @null
+                                       node_list = null
+$       else
+                                       node_list = ${translate(@node,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+$       end
+$     end
+$     when {@cmd='RETURNLIST'}
+                                       node_list = ${translate(@list,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+$     end
+$   end choose
+$   end foreach
+                                       p.push(p.go_to(@leftside), node_list)
+       end
+init do end
+end
+$ end foreach
+$ end template
+
+$ template make_parser_tables()
+# Parser that build a full AST
+class Parser
+       attr _action_table: Array[Array[Int]]
+       private meth build_action_table
+       do
+               _action_table = once [ 
+$ foreach {parser_data/action_table/row}
+                       action_table_row${position()}[-sep ','-]
+$ end foreach
+               ]
+       end
+
+$ foreach {parser_data/action_table/row}
+       private meth action_table_row${position()}: Array[Int]
+       do
+               return [
+$   foreach {action}
+                               @from, @action, @to [-sep ','-]
+$   end foreach
+                       ]
+       end
+$ end foreach
+
+       attr _goto_table: Array[Array[Int]]
+       private meth build_goto_table
+       do
+               _goto_table = once [ 
+$ foreach {parser_data/goto_table/row}
+                       [
+$   foreach {goto}
+                               @from, @to [-sep ','-]
+$   end foreach
+                       ] [-sep ','-]
+$ end foreach
+               ]
+       end
+
+       private meth error_messages: Array[String]
+       do
+               return once [
+$ foreach {parser_data/error_messages/msg}
+                       "${sablecc:string2escaped_unicode(.)}" [-sep ','-]
+$ end
+               ]
+       end
+
+       private meth errors: Array[Int]
+       do
+               return once [
+                       [-foreach {parser_data/errors/i}-]${.} [-sep ','-] [-end-]
+               ]
+       end
+end
+$ end template
diff --git a/src/parser/xss/prods.xss b/src/parser/xss/prods.xss
new file mode 100644 (file)
index 0000000..d00060b
--- /dev/null
@@ -0,0 +1,202 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ template make_abs_prods()
+$ set baseprod = {//prod/@ename}
+
+$ foreach {//prod}
+class @ename special Prod end
+$ end
+
+$ foreach {//alt}
+class @ename
+special ${../@ename}
+$ foreach {elem}
+$   if @is_list
+    readable writable attr _n_@name: List[@etype] 
+$   else
+    readable writable attr _n_@name: @etype 
+$   end
+$ end
+end
+$ end
+
+class Start
+special Prod
+    readable writable attr _n_base: $baseprod 
+    readable writable attr _n_eof: EOF 
+end
+$ end template
+
+$ template make_prods()
+$ set baseprod = {//prod/@ename}
+$ foreach {//alt}
+redef class @ename
+$ foreach {elem}
+$   if @is_list
+$   else
+    redef meth n_@name=(n: @etype)
+    do
+        _n_@name = n
+        if n != null then
+           n.parent = self
+        end
+    end
+$   end
+$ end
+
+    private init empty_init do end
+
+$ if {count(elem)!=0}
+    init init_${translate(@ename,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} (
+$ foreach {elem}
+$   if {@is_list}
+            n_@{name}: Array[Object] [-sep ','-] # Should be Array[@etype]
+$   else
+            n_@{name}: @etype [-sep ','-]
+$   end
+$ end
+    )
+$ else
+    init init_${translate(@ename,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")}
+$ end
+    do
+$ foreach {elem}
+$   if @is_list
+        _n_@{name} = new List[@{etype}]
+       for n in n_@{name} do
+               assert n isa @{etype}
+               _n_@{name}.add(n)
+               n.parent = self
+       end
+$   else
+        _n_@name = n_@{name}
+       if n_@{name} != null then
+               n_@{name}.parent = self
+       end
+$   end
+$ end
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+$ foreach {elem}
+$   if @is_list
+        for i in [0.._n_@{name}.length[ do
+            if _n_@{name}[i] == old_child then
+                if new_child != null then
+                   assert new_child isa @etype
+                    _n_@{name}[i] = new_child
+                    new_child.parent = self
+                else
+                    _n_@{name}.remove_at(i)
+                end
+                return
+            end
+        end
+$   else
+        if _n_@{name} == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa @etype
+                _n_@{name} = new_child
+           else
+               _n_@{name} = null
+            end
+            return
+       end
+$   end
+$ end foreach
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+$   foreach {elem}
+$     if @is_list
+            for n in _n_@{name} do
+                v.visit(n)
+           end
+$     else
+        if _n_@{name} != null then
+            v.visit(_n_@{name})
+        end
+$     end
+$   end foreach
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+$   foreach {elem}
+$     if @is_list
+       do
+           var i = _n_@{name}.length
+            while i >= 0 do
+                v.visit(_n_@{name}[i])
+               i = i - 1
+           end
+       end
+$     else
+        if _n_@{name} != null then
+            v.visit(_n_@{name})
+        end
+$     end
+$   end foreach
+    end
+end
+$ end foreach
+
+redef class Start
+    init(
+        n_base: $baseprod,
+        n_eof: EOF)
+    do
+        _n_base = n_base
+        _n_eof = n_eof
+    end
+
+    redef meth replace_child(old_child: PNode, new_child: PNode)
+    do
+        assert old_child != null
+        if _n_base == old_child then
+            if new_child == null then
+            else
+                new_child.parent = self
+               assert new_child isa $baseprod
+                _n_base = new_child
+            end
+            old_child.parent = null
+            return
+       end
+    end
+
+    redef meth visit_all(v: Visitor)
+    do
+        if _n_base != null then
+            v.visit(_n_base)
+        end
+    end
+
+    redef meth visit_all_reverse(v: Visitor)
+    do
+        if _n_base != null then
+            v.visit(_n_base)
+        end
+    end
+end
+$ end template
diff --git a/src/parser/xss/tokens.xss b/src/parser/xss/tokens.xss
new file mode 100644 (file)
index 0000000..9e9f808
--- /dev/null
@@ -0,0 +1,101 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2008 Jean Privat <jean@pryen.org>
+ * Based on algorithms developped for ( http://www.sablecc.org/ ).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$ template make_abs_tokens()
+$ foreach {//token}
+$ if {@parser_index}    
+class @ename
+special Token
+end
+$ end
+$ end
+class EOF 
+special Token
+end
+class PError
+special EOF
+end
+$ end template
+
+$ template make_tokens()
+
+redef class Token
+    readable writable attr _text: String 
+    readable attr _filename: String 
+    readable attr _line: Int 
+    readable attr _pos: Int 
+    
+    meth parser_index: Int is abstract
+
+    redef meth to_s: String do
+        return "'{_text}'"
+    end
+end
+
+$ foreach {//token}
+$ if {@parser_index}    
+redef class @ename
+    redef meth parser_index: Int
+    do
+       return @parser_index
+    end
+
+$ if {not(@text)}
+    init(text: String, fname: String, line: Int, pos: Int)
+    do
+        _text = text
+$ else
+    init(fname: String, line: Int, pos: Int)
+    do
+        _text = once "${sablecc:string2escaped_unicode(@text)}"
+$ end
+       _filename = fname
+        _line = line
+        _pos = pos
+    end
+end
+
+$ end if 
+$ end foreach
+
+redef class EOF 
+    redef meth parser_index: Int
+    do
+       return ${tokens/eof/@parser_index}
+    end
+    
+    init(fname: String, line: Int, pos: Int)
+    do
+       _filename = fname
+        _text = ""
+        _line = line
+        _pos = pos
+    end
+end
+
+redef class PError
+    readable writable attr _message: String 
+    
+    init init_error(fname: String, line: Int, pos: Int, message: String)
+    do
+        init(fname, line, pos)
+       _message = message
+    end
+end
+
+$ end template
diff --git a/src/syntax/control_flow.nit b/src/syntax/control_flow.nit
new file mode 100644 (file)
index 0000000..bda14ad
--- /dev/null
@@ -0,0 +1,248 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Analysis control flow in property bodies, statements and expressions
+package control_flow
+
+import syntax_base
+
+redef class MMSrcModule
+       # Walk trough the module and type statments and expressions
+       # Require than supermodules are processed
+       meth do_control_flow(tc: ToolContext)
+       do
+               var tv = new ControlFlowVisitor(tc, self)
+               tv.visit(node)
+       end
+end
+
+# Control flow visitor
+# * Check reachability in methods
+# * Associate breaks and continues
+# * Check some other warning
+private class ControlFlowVisitor
+special AbsSyntaxVisitor
+       redef meth visit(n)
+       do
+               if n != null then n.accept_control_flow(self)
+       end
+
+       # Number of nested once
+       readable writable attr _once_count: Int
+
+       # Current knowledge about variables types
+       readable writable attr _control_flow_ctx: ControlFlowContext
+
+       init(tc, m) do super
+end
+
+private class ControlFlowContext
+       # Previous control flow context if any
+       readable attr _prev: ControlFlowContext
+
+       # Is a return met?
+       readable writable attr _has_return: Bool 
+
+       # Is a control flow break met? (return, break, continue)
+       readable writable attr _unreash: Bool
+
+       # Is a control flow already broken?
+       # Used to avoid repeating the same error message
+       readable writable attr _already_unreash: Bool
+
+       # Current controlable block (for or while)
+       readable writable attr _base_block: AControlableBlock
+
+       meth sub: ControlFlowContext
+       do
+               return new ControlFlowContext.with(self)
+       end
+
+       init
+       do 
+       end
+
+       init with(p: ControlFlowContext)
+       do
+               _prev = p
+               _has_return = p.has_return
+               _unreash = p.unreash
+               _already_unreash = p.already_unreash
+               _base_block = p.base_block
+       end
+end
+
+###############################################################################
+
+redef class PNode
+       private meth accept_control_flow(v: ControlFlowVisitor) 
+       do
+               accept_abs_syntax_visitor(v)
+       end
+end
+
+redef class AMethPropdef
+       redef meth accept_control_flow(v)
+       do
+               v.control_flow_ctx = new ControlFlowContext
+               super
+       end
+end
+
+redef class AConcreteMethPropdef
+       redef meth accept_control_flow(v)
+       do
+               super
+               if v.control_flow_ctx.has_return == false and method.signature.return_type != null then
+                       v.error(self, "Control error: Reached end of function.")
+               end
+       end
+end
+
+redef class ABlockExpr
+       redef meth accept_control_flow(v)
+       do
+               for e in n_expr do
+                       if v.control_flow_ctx.unreash and not v.control_flow_ctx.already_unreash then
+                               v.control_flow_ctx.already_unreash = true
+                               v.warning(e, "Warning: unreachable statement.")
+                       end
+                       v.visit(e)
+               end
+       end
+end
+
+redef class AReturnExpr
+       redef meth accept_control_flow(v)
+       do
+               super
+               v.control_flow_ctx.has_return = true
+               v.control_flow_ctx.unreash = true
+       end
+end
+
+class ABlockControler
+special PExpr
+       readable attr _block: AControlableBlock
+end
+
+redef class ABreakExpr
+special ABlockControler
+       redef meth accept_control_flow(v)
+       do
+               super
+               var block = v.control_flow_ctx.base_block
+               if block == null then
+                       v.error(self, "Syntax Error: 'break' statment outside block.")
+                       return
+               end
+               _block = block
+               v.control_flow_ctx.unreash = true
+       end
+end
+redef class AContinueExpr
+special ABlockControler
+       redef meth accept_control_flow(v)
+       do
+               super
+               var block = v.control_flow_ctx.base_block
+               if block == null then
+                       v.error(self, "Syntax Error: 'continue' outside block.")
+                       return
+               end
+               _block = block
+               v.control_flow_ctx.unreash = true
+       end
+end
+
+redef class AAbortExpr
+       redef meth accept_control_flow(v)
+       do
+               super
+               v.control_flow_ctx.has_return = true
+               v.control_flow_ctx.unreash = true
+       end
+end
+
+redef class AIfExpr
+       redef meth accept_control_flow(v)
+       do
+               v.visit(n_expr)
+
+               var old_control_flow_ctx = v.control_flow_ctx
+               v.control_flow_ctx = v.control_flow_ctx.sub
+
+               v.visit(n_then)
+
+               if n_else == null then
+                       # Restore control flow ctx
+                       v.control_flow_ctx = old_control_flow_ctx
+               else
+                       # Remember what appens in the 'then'
+                       var then_control_flow_ctx = v.control_flow_ctx
+                       # Reset to execute the 'else'
+                       v.control_flow_ctx = old_control_flow_ctx
+
+                       v.visit(n_else)
+
+                       # Restore and conclude
+                       v.control_flow_ctx = old_control_flow_ctx
+                       v.control_flow_ctx.has_return = v.control_flow_ctx.has_return and then_control_flow_ctx.has_return
+                       v.control_flow_ctx.unreash = v.control_flow_ctx.unreash and then_control_flow_ctx.unreash
+               end
+       end
+end
+
+class AControlableBlock
+special PExpr
+       redef meth accept_control_flow(v)
+       do
+               # Store old control flow values
+               var old_control_flow_ctx = v.control_flow_ctx
+               v.control_flow_ctx = v.control_flow_ctx.sub
+
+               # Register the block
+               v.control_flow_ctx.base_block = self
+
+               super
+
+               # Restore control flow value
+               v.control_flow_ctx = old_control_flow_ctx
+       end
+end
+
+redef class AWhileExpr
+special AControlableBlock
+end
+
+redef class AForExpr
+special AControlableBlock
+end
+
+redef class AOnceExpr
+       redef meth accept_control_flow(v)
+       do
+               if v.once_count > 0 then
+                       v.warning(self, "Useless once in a once expression.")
+               end
+               v.once_count = v.once_count + 1
+
+               super
+
+               v.once_count = v.once_count - 1
+       end
+end
+
diff --git a/src/syntax/mmbuilder.nit b/src/syntax/mmbuilder.nit
new file mode 100644 (file)
index 0000000..e9cf796
--- /dev/null
@@ -0,0 +1,1047 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Build MM entity from NIT AST and check conformance of these entities.
+# This module introduce specific MM class (MMSrcXXX) that specialize the abstract one from metamodel
+#
+package mmbuilder
+
+import syntax_base
+
+# Class specialization hierarchy sorter
+private class CSHSorter
+special AbstractSorter[MMLocalClass]
+       redef meth compare(a, b)
+       do
+               return a.cshe.rank <=> b.cshe.rank
+       end
+
+       init do end
+end
+
+redef class MMSrcModule
+       # Syntax analysis and MM construction for the module
+       # Require that supermodules are processed
+       meth do_mmbuilder(tc: ToolContext)
+       do
+               # Import global classes
+               import_global_classes
+
+               # Create local classes and attach them to global classes
+               var mmbv = new ClassBuilderVisitor(tc, self)
+               mmbv.visit(node)
+               if tc.error_count > 0 then exit(1)
+
+               # Import unrefined local classes and attach them to global classes
+               import_local_classes
+
+               # Resolve classes in super clauses
+               var mmbv1 = new ClassSpecializationBuilderVisitor(tc, self)
+               mmbv1.visit(node)
+               if tc.error_count > 0 then exit(1)
+
+               # Compute specialization relation
+               for c in local_classes do
+                       if visibility_for(c.global.intro.module) < c.global.visibility_level then
+                               continue
+                       end
+                       c.compute_super_classes
+               end
+
+               # Class that we will process now are those in the hierarchy
+               # Its mean all the visible classes and their super-classes
+               # Note that leaves invisible classes are not in the 'classes' set
+               var classes = class_specialization_hierarchy.to_a
+
+               # Prepare class list to process the following in a right order
+               var sorter = once new CSHSorter
+               sorter.sort(classes)
+
+               # Compute class ancestors types
+               var mmbv1b = new ClassAncestorBuilder(tc, self)
+               for c in classes do
+                       if c isa MMSrcLocalClass then
+                               for n in c.nodes do
+                                       mmbv1b.visit(n)
+                               end
+                       end
+                       c.compute_ancestors
+               end
+               if tc.error_count > 0 then exit(1)
+
+               # Check class conformity
+               var mmbv1b = new ClassVerifierVisitor(tc, self)
+               for c in classes do
+                       if c isa MMSrcLocalClass then
+                               for n in c.nodes do
+                                       mmbv1b.visit(n)
+                               end
+                       end
+               end
+               if tc.error_count > 0 then exit(1)
+
+               # Property inhritance and introduction
+               var mmbv2 = new PropertyBuilderVisitor(tc, self)
+               for c in classes do
+                       # Inherit global properties
+                       c.inherit_global_properties
+
+                       # Global property introduction and redefinition 
+                       if c isa MMSrcLocalClass then
+                               for n in c.nodes do
+                                       mmbv2.visit(n)
+                               end
+                       end
+
+                       # Note that inherited unredefined property are processed on demand latter
+               end
+               if tc.error_count > 0 then exit(1)
+
+               # Property signature analysis and inheritance conformance
+               var mmbv3 = new PropertyVerifierVisitor(tc, self)
+               for c in classes do
+                       if c isa MMSrcLocalClass then
+                               for n in c.nodes do
+                                       mmbv3.visit(n)
+                               end
+                       end
+               end
+
+               # Check inherited local properties
+               for c in classes do
+                       for g in c.global_properties do
+                               if visibility_for(g.intro.module) < g.visibility_level then continue
+                               var p = c[g]
+                       end
+               end
+
+               if tc.error_count > 0 then exit(1)
+       end
+end
+
+redef class MMSrcLocalClass
+       # Add a source property
+       # Register it to the class and attach it to global property
+       private meth add_src_local_property(v: PropertyBuilderVisitor, prop: MMSrcLocalProperty)
+       do
+               var pname = prop.name
+               # Check double definition in the same class
+               if src_local_properties.has_key(pname) then
+                       v.error(prop.node, "Error: A property {pname} is already defined in class {name} at line {src_local_properties[pname].node.first_token.line}.")
+                       return
+               end
+               src_local_properties[pname] = prop
+
+               # Intro or redefinition ?
+               if has_global_property_by_name(pname) then
+                       var globs = properties_by_name[pname]
+                       if globs.length > 1 then
+                               v.error(prop.node, "Name error: {self} inherits {globs.length} global properties named {pname}.")
+                       end
+                       var g = globs.first
+                       prop.inherit_global(g)
+               end
+
+               if prop.global == null then
+                       #print "{prop.full_name} is an introduction"
+                       prop.new_global
+                       prop.global.is_init = prop.node isa AConcreteInitPropdef
+               end
+       end
+end
+
+# Concrete NIT class specialization relation
+class MMSrcAncestor
+special MMAncestor
+       # The related AST node
+       readable attr _node: ASuperclass
+       redef readable attr _local_class: MMLocalClass
+
+       init(n: ASuperclass, c: MMLocalClass)
+       do
+               _node = n
+               _local_class = c
+       end
+end
+
+###############################################################################
+
+# A pass visitor for syntax analysis.
+# * Build the classes and attach them to global classes
+# * Collect generic formal parameters.
+private class ClassBuilderVisitor
+special AbsSyntaxVisitor
+       # Current class arity
+       readable writable attr _local_class_arity: Int 
+
+       # Current class formal parameters
+       readable writable attr _formals: Map[Symbol, MMTypeFormalParameter] 
+
+       redef meth visit(n) do n.accept_class_builder(self)
+       init(tc, m) do super
+end
+
+# Another pass visitor for syntax analysis.
+# * Build ancertors (with only class informations not the type one)
+private class ClassSpecializationBuilderVisitor
+special AbsSyntaxVisitor
+       redef meth visit(n) do n.accept_class_specialization_builder(self)
+       init(tc, m) do super
+end
+
+# Another pass visitor for syntax analysis.
+# * Compute types in ancestors
+private class ClassAncestorBuilder
+special AbsSyntaxVisitor
+       redef meth visit(n) do n.accept_class_ancestor_builder(self)
+       init(tc, m) do super
+end
+
+# Another pass visitor for syntax analysis.
+# * Checks classes in regard to superclasses
+private class ClassVerifierVisitor
+special AbsSyntaxVisitor
+       redef meth visit(n) do n.accept_class_verifier(self)
+       init(tc, m) do super
+end
+
+
+# Another pass visitor for syntax analysis.
+# * Build propertie names
+# * Build local properties and attache them to global properties
+# * Attach bound to formal types
+private class PropertyBuilderVisitor
+special AbsSyntaxVisitor
+       redef meth visit(n) do n.accept_property_builder(self)
+       init(tc, m) do super
+end
+
+# Another pass pass visitor for syntax analysis.
+# * Check property conformance
+private class PropertyVerifierVisitor
+special AbsSyntaxVisitor
+       # Current visited parameter types
+       readable writable attr _params: Array[PParam] 
+       
+       # Visited parameters without type information added
+       readable writable attr _untyped_params: Array[PParam]
+
+       # Position of the current star parameter
+       readable writable attr _vararg_rank: Int
+
+       # Current signature
+       readable writable attr _signature: MMSignature 
+
+       redef meth visit(n) do n.accept_property_verifier(self)
+
+       init(tc, m) do super
+end
+
+###############################################################################
+
+redef class PNode
+       private meth accept_class_builder(v: ClassBuilderVisitor) do accept_abs_syntax_visitor(v)
+       private meth accept_class_specialization_builder(v: ClassSpecializationBuilderVisitor) do accept_abs_syntax_visitor(v)
+       private meth accept_class_ancestor_builder(v: ClassAncestorBuilder) do accept_abs_syntax_visitor(v)
+       private meth accept_class_verifier(v: ClassVerifierVisitor) do accept_abs_syntax_visitor(v)
+       private meth accept_property_builder(v: PropertyBuilderVisitor) do accept_abs_syntax_visitor(v)
+       private meth accept_property_verifier(v: PropertyVerifierVisitor) do accept_abs_syntax_visitor(v)
+end
+
+redef class AModule
+       # Import supermodules and compute visibility
+       meth import_super_modules(tc: ToolContext, mod: MMSrcModule)
+       do
+               # Import super-modules
+               var module_names_to_import = new Array[Symbol]
+               var module_visibility = new HashMap[Symbol, Int]
+               var no_import: PImport
+               for i in n_imports do
+                       var n = i.module_name
+                       if n != null then
+                               module_names_to_import.add(n)
+                               module_visibility[n] = i.visibility_level
+                       else
+                               no_import = i
+                       end
+               end
+               if no_import != null then
+                       if not module_names_to_import.is_empty then
+                               tc.error("{no_import.locate}: Error: Top modules cannot import other modules.")
+                       end
+               else if module_names_to_import.is_empty then
+                       var stdname = once "standard".to_symbol
+                       module_names_to_import.add(stdname)
+                       module_visibility[stdname] = 1
+               end
+
+               mod.import_supers_modules(module_names_to_import)
+
+               for mname in module_names_to_import do
+                       var level = module_visibility[mname]
+                       var m = tc.get_module(mname, mod)
+                       mod.add_super_module(m, level)
+               end
+       end
+end
+
+redef class APackagedecl
+       redef meth accept_class_builder(v)
+       do
+               if n_id.to_symbol != v.module.name then
+                       v.error(n_id, "Error: Package name missmatch between {v.module.name} and {n_id.to_symbol}")
+               end
+       end
+end
+
+redef class PImport
+       # Imported module name (or null)
+       meth module_name: Symbol is abstract
+
+       # Visibility level (intrude/public/private)
+       meth visibility_level: Int is abstract
+end
+redef class AImport
+       redef meth module_name
+       do
+               return n_id.to_symbol
+       end
+       redef meth visibility_level
+       do
+               return n_visibility.level
+       end
+end
+redef class ANoImport
+       redef meth module_name
+       do
+               return null
+       end
+end
+
+redef class PVisibility
+       # Visibility level
+       meth level: Int is abstract
+end
+redef class APublicVisibility
+       redef meth level do return 1
+end
+redef class AProtectedVisibility
+       redef meth level do return 2
+end
+redef class APrivateVisibility
+       redef meth level do return 3
+end
+redef class AIntrudeVisibility
+       redef meth level do return 0
+end
+
+
+redef class PClassdef
+       redef readable attr _local_class: MMSrcLocalClass
+
+       # Name of the class
+       meth name: Symbol is abstract
+
+       # Number of formal parameters
+       meth arity: Int do return 0
+
+       # Visibility of the class
+       meth visibility_level: Int do return 1
+
+       redef meth accept_class_builder(v)
+       do
+               var local_class: MMSrcLocalClass
+               var mod = v.module
+               var local_classes = mod.src_local_classes
+               if (local_classes.has_key(name)) then
+                       local_class = local_classes[name]
+                       if self isa AClassdef then
+                               # If we are not a special implicit class then rant
+                               v.error(self, "Error: A class {name} is already defined at line {local_class.nodes.first.first_token.line}.")
+                               return
+                       end
+                       local_class.nodes.add(self)
+               else
+                       local_class = new MMSrcLocalClass(name, self, arity)
+                       mod.add_local_class(local_class)
+                       local_classes[name] = local_class
+                       var g = mod.global_class_named(name)
+                       if g == null then
+                               # Intro
+                               local_class.new_global
+                               g = local_class.global
+                       else
+                               local_class.set_global(g)
+                       end
+
+               end
+               _local_class = local_class
+               v.local_class_arity = 0
+               v.formals = new HashMap[Symbol, MMTypeFormalParameter]
+
+               #####
+               super
+               #####
+
+               _local_class.formal_dict = v.formals
+               v.formals = null
+       end
+
+       redef meth accept_abs_syntax_visitor(v)
+       do
+               v.local_class = _local_class
+               super
+               v.local_class = null
+       end
+end
+
+redef class PClasskind
+       meth is_interface: Bool do return false
+       meth is_universal: Bool do return false
+       meth is_abstract: Bool do return false
+end
+
+redef class AInterfaceClasskind
+       redef meth is_interface do return true
+end
+redef class AUniversalClasskind
+       redef meth is_universal do return true
+end
+redef class AAbstractClasskind
+       redef meth is_abstract do return true
+end
+
+redef class AClassdef
+       redef meth name
+       do
+               return n_id.to_symbol
+       end
+       redef meth arity
+       do
+               return n_formaldefs.length
+       end
+       redef meth accept_class_verifier(v)
+       do
+               super
+               var glob = _local_class.global
+               if glob.intro == _local_class then
+                       # Intro
+                       glob.visibility_level = visibility_level
+                       glob.is_interface = n_classkind.is_interface
+                       glob.is_abstract = n_classkind.is_abstract
+                       glob.is_universal = n_classkind.is_universal
+                       if n_kwredef != null then
+                               v.error(self, "Redef error: No class {name} is imported. Remove the redef keyword to define a new class.")
+                       end
+
+                       for c in _local_class.cshe.direct_greaters do
+                               var cg = c.global
+                               if glob.is_interface then
+                                       if cg.is_universal then
+                                               v.error(self, "Special error: Interface {name} try to specialise universal class {c.name}.")
+                                       else if not cg.is_interface then
+                                               v.error(self, "Special error: Interface {name} try to specialise class {c.name}.")
+                                       end
+                               else if glob.is_universal then
+                                       if not cg.is_interface and not cg.is_universal then
+                                               v.error(self, "Special error: Universal class {name} try to specialise class {c.name}.")
+                                       end
+                               else
+                                       if cg.is_universal then
+                                               v.error(self, "Special error: Class {name} try to specialise universal class {c.name}.")
+                                       end
+                               end
+
+                       end
+                       return
+               end
+
+               # Redef
+
+               glob.check_visibility(v, self, v.module)
+               if n_kwredef == null then
+                       v.error(self, "Redef error: {name} is an imported class. Add the redef keyword to refine it.")
+                       return
+               end
+
+               if glob.intro.arity != _local_class.arity then
+                       v.error(self, "Redef error: Formal parameter arity missmatch; got {_local_class.arity}, expected {glob.intro.arity}.")
+               end
+
+               if 
+                       not glob.is_interface and n_classkind.is_interface or
+                       not glob.is_abstract and n_classkind.is_abstract or
+                       not glob.is_universal and n_classkind.is_universal
+               then
+                       v.error(self, "Redef error: cannot change kind of class {name}.")
+               end
+       end
+
+       redef meth visibility_level
+       do
+               return n_visibility.level
+       end
+end
+
+redef class AMainClassdef
+       redef meth name
+       do
+               return once "Sys".to_symbol
+       end
+end
+
+redef class ATopClassdef
+       redef meth name
+       do
+               return once "Object".to_symbol
+       end
+end
+
+class MMSrcTypeFormalParameter
+special MMTypeFormalParameter
+       # The associated node
+       readable attr _node: AFormaldef 
+
+       init(name: Symbol, pos: Int, local_class: MMLocalClass, n: AFormaldef)
+       do
+               super(name, pos, local_class)
+               _node = n
+       end
+end
+
+redef class AFormaldef
+       # The associated formal generic parameter (MM entity)
+       attr _formal: MMSrcTypeFormalParameter
+
+       redef meth accept_class_builder(v)
+       do
+               var name = n_id.to_symbol
+               var formal_type = new MMSrcTypeFormalParameter(name, v.local_class_arity, v.local_class, self)
+               _formal = formal_type
+               v.local_class_arity = v.local_class_arity + 1
+               v.local_class.register_formal(formal_type)
+               v.formals[name] = formal_type
+               super
+       end
+
+       redef meth accept_class_verifier(v)
+       do
+               super
+               var c = v.local_class
+               var o = c.global.intro
+               if c == o then
+                       if n_type == null then
+                               _formal.bound = v.module.type_any
+                       else
+                               _formal.bound = n_type.get_stype(v)
+                       end
+               else
+                       var ob = o.get_formal(_formal.position).bound.for_module(v.module)
+                       if n_type == null then
+                               _formal.bound = ob
+                       else
+                               _formal.bound = n_type.get_stype(v)
+                               if _formal.bound != ob then
+                                       v.error(self, "Redef error: Cannot change formal parameter type of class {c}; got {_formal.bound}, expected {ob}.")
+                               end
+                       end
+               end
+       end
+end
+
+redef class ASuperclass
+       readable attr _ancestor: MMSrcAncestor
+
+       redef meth accept_class_specialization_builder(v)
+       do
+               super
+               var c = n_type.get_local_class(v)
+               var ancestor = new MMSrcAncestor(self, c)
+               _ancestor = ancestor
+               v.local_class.add_direct_parent(ancestor)
+       end
+
+       redef meth accept_class_ancestor_builder(v)
+       do
+               super
+               _ancestor.stype = n_type.get_unchecked_stype(v)
+               _ancestor.inheriter = v.local_class.get_type
+       end
+
+       redef meth accept_class_verifier(v)
+       do
+               super
+               n_type.check_conform(v)
+       end
+end
+
+redef class PPropdef
+       # Process and check properties of the property.
+       # * Distinguish inits and methods
+       # * Inherit or check visibility.
+       # * Check redef errors.
+       # * Check forbiden attribute definitions.
+       # * Check signature conformance.
+       private meth process_and_check(v: PropertyVerifierVisitor, prop: MMSrcLocalProperty, has_redef: Bool, visibility_level: Int)
+       do
+               if prop.global.intro == prop then
+                       do_and_check_intro(v, prop, has_redef, visibility_level)
+               else
+                       do_and_check_redef(v, prop, has_redef, visibility_level)
+               end
+       end
+
+       # The part of process_and_check when prop is an introduction
+       private meth do_and_check_intro(v: PropertyVerifierVisitor, prop: MMSrcLocalProperty, has_redef: Bool, visibility_level: Int)
+       do
+               var glob = prop.global
+               var gbc = prop.local_class.global
+               if v.local_class.global.visibility_level >= 3 then
+                       # Method of private classes are private
+                       visibility_level = 3
+               end
+               glob.visibility_level = visibility_level
+               if has_redef and not glob.is_init then
+                       v.error(self, "Error: No property {prop.local_class}::{prop} is inherited. Remove the redef keyword to define a new property.")
+               end
+               if glob.is_attribute then
+                       if gbc.is_interface then
+                               v.error(self, "Error: Attempt to define attribute {prop} in the interface {prop.local_class}.")
+                       else if gbc.is_universal then
+                               v.error(self, "Error: Attempt to define attribute {prop} in the universal class {prop.local_class}.")
+                       end
+               else if glob.is_init then
+                       if gbc.is_interface then
+                               v.error(self, "Error: Attempt to define a constructor {prop} in the class {prop.local_class}.")
+                       else if gbc.is_universal then
+                               v.error(self, "Error: Attempt to define a constructor {prop} in the universal {prop.local_class}.")
+                       end
+               end
+               if prop.signature == null then
+                       if glob.is_init then
+                               var supers = prop.local_class.super_methods_named(prop.name)
+                               inherit_signature(v, prop, supers)
+                       end
+                       if prop.signature != null then
+                               # ok
+                       else if not v.untyped_params.is_empty then
+                               v.error(v.untyped_params.first, "Error: Untyped parameter.")
+                       else
+                               prop.signature = new MMSignature(new Array[MMType], null, v.local_class.get_type)
+                       end
+               end
+       end
+
+       private meth inherit_signature(v: PropertyVerifierVisitor, prop: MMSrcLocalProperty, supers: Array[MMLocalProperty])
+       do
+               var s = prop.signature
+               for ip in supers do
+                       var isig = ip.signature.adaptation_to(v.local_class.get_type)
+
+                       if s == null then
+                               if v.params.length != isig.arity then
+                                       prop.node.printl("v.params.length {v.params.length} != isig.arity {isig.arity} ; {prop.full_name} vs {ip.full_name}")
+                                       return
+                               end
+                               for p in v.params do
+                                       var t = isig[p.position]
+                                       p.stype = t
+                                       if p.position == isig.vararg_rank then
+                                               t = v.type_array(t)
+                                       end
+                                       p.variable.stype = t
+                               end
+
+                               s = isig
+                               prop.signature = s
+                       end
+               end
+       end
+
+       # The part of process_and_check when prop is a redefinition
+       private meth do_and_check_redef(v: PropertyVerifierVisitor, prop: MMSrcLocalProperty, has_redef: Bool, visibility_level: Int)
+       do
+               var is_init = self isa AConcreteInitPropdef
+               var glob = prop.global
+
+               if not has_redef and prop.name != once "init".to_symbol then
+                       v.error(self, "Redef error: {prop.local_class}::{prop} is an inherited property. To redefine it, add the redef keyword.")
+                       return
+               end
+               if glob.is_init and not is_init then
+                       v.error(self, "Redef error: A method {prop.local_class}::{prop} cannot redefine a constructor.")
+               else if not glob.is_init and is_init then
+                       v.error(self, "Redef error: A constructor {prop.local_class}::{prop} cannot redefine a method.")
+               end
+
+               var s = prop.signature
+               #print "process {prop.local_class.module}::{prop.local_class}::{prop} from global {prop.global.local_property.local_class.module}::{prop.global.local_property.local_class}::{prop.global.local_property}"
+               for i in prop.cprhe.direct_greaters do
+                       var ip = i.local_class[prop.global]
+                       var isig = i.signature.adaptation_to(v.local_class.get_type)
+
+                       if s == null then
+                               #print "{prop.full_name} inherits signature from {ip.full_name}"
+                               if v.params.length != isig.arity then
+                                       v.error(self, "Redef error: {prop.local_class}::{prop} redefines {ip.local_class}::{ip} with {isig.arity} parameter(s).")
+                                       return
+                               end
+                               for p in v.params do
+                                       var t = isig[p.position]
+                                       p.stype = t
+                                       if p.position == isig.vararg_rank then
+                                               t = v.type_array(t)
+                                       end
+                                       p.variable.stype = t
+                               end
+                               s = isig
+                               prop.signature = s
+                       end
+
+                       #print "orig signature:  {i.signature.recv} . {i.signature}"
+                       #print "inh signature:   {isig.recv} . {isig}"
+                       #print "redef signature: {s.recv} . {s}"
+
+                       if glob.is_init and i.local_class.global != prop.local_class.global then
+                               # Do not check signature
+                       else if s.arity != isig.arity then
+                               v.error(self, "Redef error: {prop.local_class}::{prop} redefines {ip.local_class}::{ip} with {isig.arity} parameter(s).")
+                       else
+                               for i in [0..s.arity[ do
+                                       if s[i] != isig[i] then
+                                               v.error(self, "Redef error: Expected {isig[i]} (as in {ip.local_class}::{ip}), got {s[i]} in {prop.local_class}::{prop}.")
+                                       end
+                               end
+                       end
+
+                       var srt = s.return_type
+                       var isrt = isig.return_type
+                       if srt == null and isrt != null then
+                               v.error(self, "Redef error: The procedure {prop.local_class}::{prop} redefines the function {ip.local_class}::{ip}.")
+                       else if srt != null and isrt == null then
+                               v.error(self, "Redef error: The function {prop.local_class}::{prop} redefines the procedure {ip.local_class}::{ip}.")
+                       else if srt != null and isrt != null and not srt < isrt then
+                               v.error(self, "Redef error: Expected {isrt} (as in {ip.local_class}::{ip}), got {srt} in {prop.local_class}::{prop}.")
+                       else if srt != null and isrt != null and srt != isrt and prop isa MMAttribute then
+                               # FIXME: To remove
+                               v.warning(self, "Redef warning: Expected {isrt} (as in {ip.local_class}::{ip}), got {srt} in {prop.local_class}::{prop}.")
+                       end
+               end
+
+               if visibility_level != 1 and glob.visibility_level != visibility_level then
+                       v.error(self, "Redef error: {prop.local_class}::{prop} redefinition cannot change visibility.")
+               end
+               glob.check_visibility(v, self, v.module, true)
+       end
+end
+
+redef class AAttrPropdef
+       redef readable attr _readmethod: MMSrcMethod
+       redef readable attr _writemethod: MMSrcMethod
+       redef readable attr _prop: MMSrcAttribute 
+
+       redef meth accept_property_builder(v)
+       do
+               super
+               var name = n_id.to_symbol
+               var prop = new MMSrcAttribute(name, v.local_class, self)
+               _prop = prop
+               v.local_class.add_src_local_property(v, prop)
+
+               if n_readable != null then
+                       name = n_id.text.substring_from(1).to_symbol
+                       _readmethod = new MMReadImplementationMethod(name, v.local_class, self)
+                       v.local_class.add_src_local_property(v, _readmethod)
+               end
+               if n_writable != null then
+                       name = (n_id.text.substring_from(1) + "=").to_symbol
+                       _writemethod = new MMWriteImplementationMethod(name, v.local_class, self)
+                       v.local_class.add_src_local_property(v, _writemethod)
+               end
+       end
+       
+       redef meth accept_property_verifier(v)
+       do
+               super
+               var t: MMType
+               if n_type != null then
+                       t = n_type.get_stype(v)
+               else
+                       v.error(self, "Not yet implemented: Attribute definition {_prop.local_class}::{_prop} requires an explicit type.")
+                       return
+               end
+
+               var signature = new MMSignature(new Array[MMType], t, v.local_class.get_type)
+               _prop.signature = signature
+               var visibility_level = n_visibility.level
+               process_and_check(v, _prop, n_kwredef != null, visibility_level)
+               if n_readable != null then
+                       _readmethod.signature = signature
+                       process_and_check(v, _readmethod, n_readable.n_kwredef != null, visibility_level)
+                       n_type.check_visibility(v, _readmethod)
+               end
+               if n_writable != null then
+                       _writemethod.signature = new MMSignature(new Array[MMType].with(t), null, v.local_class.get_type)
+                       process_and_check(v, _writemethod, n_writable.n_kwredef != null, visibility_level)
+                       n_type.check_visibility(v, _writemethod)
+               end
+       end
+
+       redef meth accept_abs_syntax_visitor(v)
+       do
+               v.local_property = prop
+               super
+               v.local_property = null
+       end
+end
+
+redef class AMethPropdef
+       # Name of the method
+       readable attr _name: Symbol 
+
+       redef readable attr _method: MMMethSrcMethod
+
+       redef meth accept_property_builder(v)
+       do
+               super
+               if n_methid == null then
+                       if self isa AConcreteInitPropdef then
+                               _name = once "init".to_symbol
+                       else
+                               _name = once "main".to_symbol
+                       end
+               else 
+                       _name = n_methid.name
+                       # FIXME: Add the 'unary' keyword
+                       if n_methid.name == (once "-".to_symbol) then
+                               var ns = n_signature
+                               if ns isa ASignature and ns.n_params.length == 0 then
+                                       _name = once "unary -".to_symbol
+                               end
+                       end
+               end
+               var prop = new MMMethSrcMethod(_name, v.local_class, self)
+               _method = prop
+               v.local_class.add_src_local_property(v, prop)
+       end
+
+       redef meth accept_property_verifier(v)
+       do
+               v.params = new Array[PParam]
+               v.untyped_params = new Array[PParam]
+               v.signature = null
+               v.vararg_rank = -1
+
+               super
+
+               if v.signature == null then
+                       #_method.signature = new MMSignature(new Array[MMType], null, v.local_class.get_type)
+               else
+                       _method.signature = v.signature
+               end
+               var visibility_level = 1
+               if n_visibility != null and n_visibility.level > 1 then
+                       visibility_level = n_visibility.level
+               end
+               process_and_check(v, _method, n_kwredef != null, visibility_level)
+               if n_signature != null then n_signature.check_visibility(v, _method)
+       end
+
+       redef meth accept_abs_syntax_visitor(v)
+       do
+               v.local_property = method
+               super
+               v.local_property = null
+       end
+end
+
+redef class AMainMethPropdef
+       redef meth process_and_check(v, prop, has_redef, visibility_level)
+       do
+               prop.global.visibility_level = visibility_level
+               prop.signature = new MMSignature(new Array[MMType], null, v.local_class.get_type)
+               # Disable all checks for main
+       end
+end
+
+redef class ATypePropdef
+       redef readable attr _prop: MMSrcTypeProperty 
+
+       redef meth accept_property_builder(v)
+       do
+               super
+               var name = n_id.to_symbol
+               var prop = new MMSrcTypeProperty(name, v.local_class, self)
+               _prop = prop
+               v.local_class.add_src_local_property(v, prop)
+       end
+       
+       redef meth accept_property_verifier(v)
+       do
+               super
+               var signature = new MMSignature(new Array[MMType], n_type.get_stype(v), v.local_class.get_type)
+               _prop.signature = signature
+               var visibility_level = n_visibility.level
+               process_and_check(v, _prop, n_kwredef != null, visibility_level)
+       end
+       
+       redef meth accept_abs_syntax_visitor(v)
+       do
+               v.local_property = prop
+               super
+               v.local_property = null
+       end
+end
+
+# Visitor used to build a full method name from multiple tokens
+private class MethidAccumulator
+special Visitor
+       readable attr _name: String 
+       redef meth visit(n)
+       do
+               if n isa Token then
+                       _name.append(n.text)
+               else
+                       n.visit_all(self)
+               end
+       end
+
+       init
+       do
+               _name = new String
+       end
+end
+
+redef class PMethid
+       # Method name
+       readable attr _name: Symbol 
+
+       redef meth accept_property_builder(v)
+       do
+               var accumulator = new MethidAccumulator
+               accumulator.visit(self)
+               _name = accumulator.name.to_symbol
+               super
+       end
+end
+
+redef class PSignature
+       # Check that visibilities of types in the signature are compatible with the visibility of the property.
+       meth check_visibility(v: AbsSyntaxVisitor, p: MMSrcLocalProperty) is abstract
+end
+
+redef class ASignature
+       redef meth accept_property_verifier(v)
+       do
+               super
+               if not v.untyped_params.is_empty then
+                       if v.untyped_params.first != v.params.first or n_type != null then
+                               v.error(v.untyped_params.first, "Syntax error: untyped parameter.")
+                               return
+                       end
+               else if not v.params.is_empty or n_type != null then
+                       var pars = new Array[MMType]
+                       for p in v.params do
+                               pars.add(p.stype)
+                       end
+                       var ret: MMType = null
+                       if n_type != null then
+                               ret = n_type.get_stype(v)
+                       end
+                       v.signature = new MMSignature(pars, ret, v.local_class.get_type)
+                       if v.vararg_rank >= 0 then
+                               v.signature.vararg_rank = v.vararg_rank
+                       end
+               end
+       end
+
+       redef meth check_visibility(v, p)
+       do
+               if p.global.visibility_level >= 3 then return
+               for n in n_params do
+                       if n.n_type != null then n.n_type.check_visibility(v, p)
+               end
+               if n_type != null then n_type.check_visibility(v, p)
+       end
+end
+
+redef class PParam
+       redef readable attr _position: Int
+
+       redef readable attr _variable: Variable 
+
+       # The type of the parameter in signature
+       readable writable attr _stype: MMType
+
+       redef meth accept_property_verifier(v)
+       do
+               super
+               _position = v.params.length
+               _variable = new Variable(n_id.to_symbol, self)
+               v.params.add(self)
+               v.untyped_params.add(self)
+               if n_type != null then
+                       var stype = n_type.get_stype(v)
+                       for p in v.untyped_params do
+                               p.stype = stype
+                               if is_vararg then
+                                       if v.vararg_rank == -1 then
+                                               v.vararg_rank = p.position
+                                       else
+                                               v.error(self, "Error: A vararg parameter is already defined.")
+                                       end
+                                       stype = v.type_array(stype) 
+                               end
+                               p.variable.stype = stype
+                       end
+                       v.untyped_params.clear
+               end
+       end
+
+       meth is_vararg: Bool is abstract
+end
+
+redef class AParam
+       redef meth is_vararg do return n_dotdotdot != null
+end
+
+redef class PType
+       # Check that visibilities of types in the signature are compatible with the visibility of the property.
+       private meth check_visibility(v: AbsSyntaxVisitor, p: MMSrcLocalProperty) is abstract
+end
+
+redef class AType
+       redef meth check_visibility(v, p)
+       do
+               if p.global.visibility_level >= 3 then return
+               var t = get_stype(v)
+               if t == null then return
+               var bc = t.local_class
+               if bc == null then return
+               if bc.global.visibility_level >= 3 then
+                       v.error(self, "Access error: Class {bc} is private and cannot be used in the signature of the non-private property {p}.")
+               end
+               for n in n_types do
+                       n.check_visibility(v, p)
+               end
+       end
+end
+
+redef class PExpr
+       redef meth accept_class_builder(v) do end
+       redef meth accept_property_builder(v) do end
+       redef meth accept_property_verifier(v) do end
+end
diff --git a/src/syntax/syntax.nit b/src/syntax/syntax.nit
new file mode 100644 (file)
index 0000000..c52625c
--- /dev/null
@@ -0,0 +1,89 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Full syntax analysis of NIT AST.
+# Detect syntax and some metamodel errors.
+package syntax
+
+import mmloader
+import mmbuilder
+import control_flow
+import typing
+
+# Loader of nit source files
+class SrcModuleLoader
+special ModuleLoader
+       redef type MODULE: MMSrcModule
+
+       redef meth file_type do return "nit"
+
+       redef meth parse_file(context, file, filename, name, dir)
+       do
+               var lexer = new Lexer(file, filename)
+               var parser = new Parser(lexer)
+               var node_tree = parser.parse
+               if node_tree.n_base == null then
+                       var err = node_tree.n_eof
+                       assert err isa PError
+                       context.error("{err.locate}: {err.message}")
+                       exit(1)
+               end
+               var node_module = node_tree.n_base
+               assert node_module isa AModule
+               var module = new MMSrcModule(context, node_module, dir, name)
+               #module.filename = fname
+               #module.mtime = fname.file_stat.mtime
+               return module
+       end
+
+       redef meth process_metamodel(context, module)
+       do
+               module.process_supermodules(context)
+               module.process_syntax(context)
+       end
+
+       init do end
+end
+
+redef class MMContext
+       # The current configuration/status of the tool
+        readable writable attr _tc: ToolContext 
+end
+
+redef class MMSrcModule
+       # Loading and syntax analysis of super modules
+       private meth process_supermodules(tc: ToolContext)
+       do
+               node.import_super_modules(tc, self)
+               
+       end
+
+       # Syntax analysis and MM construction for the module
+       # Require than supermodules are processed
+       private meth process_syntax(tc: ToolContext)
+       do
+               do_mmbuilder(tc)
+               if tc.error_count > 0 then exit(1)
+
+               do_control_flow(tc)
+               if tc.error_count > 0 then exit(1)
+
+               do_typing(tc)
+               if tc.error_count > 0 then exit(1)
+       end
+
+end
+
diff --git a/src/syntax/syntax_base.nit b/src/syntax/syntax_base.nit
new file mode 100644 (file)
index 0000000..6bd86ef
--- /dev/null
@@ -0,0 +1,503 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Common syntax structures for syntax analysis of NIT AST.
+package syntax_base
+
+import parser
+import mmloader
+
+# Concrete NIT source module
+class MMSrcModule
+special MMModule
+       # The related AST node
+       readable attr _node: AModule
+
+       # Concrete NIT source local classs by name
+       readable attr _src_local_classes: Map[Symbol, MMSrcLocalClass]
+
+       init(c: MMContext, source: AModule, dir: MMDirectory, name: Symbol)
+       do
+               super(name, dir, c)
+               _node = source
+               _src_local_classes = new HashMap[Symbol, MMSrcLocalClass]
+       end
+end
+
+redef class MMGlobalClass
+       # Check that a module can access a class
+       meth check_visibility(v: AbsSyntaxVisitor, n: PNode, cm: MMSrcModule): Bool do
+               var pm = intro.module
+               assert pm isa MMSrcModule
+               var vpm = cm.visibility_for(pm)
+               if vpm == 3 then
+                       return true
+               else if vpm == 0 then
+                       v.error(n, "Visibility error: Class {self} comes from the hidden module {cm}.") # TODO: should not occur
+                       return false
+               else if visibility_level >= 3 then
+                       v.error(n, "Visibility error: Class {self} is private.")
+                       return false
+               end
+               return true
+       end
+end
+
+# Concrete NIT source local classes
+class MMSrcLocalClass
+special MMConcreteClass
+       # The related AST nodes
+       readable attr _nodes: Array[PClassdef]
+
+       # Concrete NIT source generic formal parameter by name
+       readable writable attr _formal_dict: Map[Symbol, MMTypeFormalParameter]
+
+       # Concrete NIT source properties by name
+       readable attr _src_local_properties: Map[Symbol, MMSrcLocalProperty] 
+
+       init(n: Symbol, cla: PClassdef, a: Int)
+       do
+               super(n, a)
+               _nodes = [cla]
+               _src_local_properties = new HashMap[Symbol, MMSrcLocalProperty]
+       end
+end
+
+redef class MMGlobalProperty
+       # Check that a module can access a property
+       meth check_visibility(v: AbsSyntaxVisitor, n: PNode, cm: MMSrcModule, allows_protected: Bool): Bool do
+               var pm = local_class.module
+               assert pm isa MMSrcModule
+               var vpm = cm.visibility_for(pm)
+               if vpm == 3 then
+                       return true
+               else if vpm == 0 then
+                       # TODO: should not occurs 
+                       v.error(n, "Visibility error: Property {self} comes from the hidden module {cm}.")
+                       return false
+               else if visibility_level >= 3 then
+                       v.error(n, "Visibility error: Property {self} is private.")
+                       return false
+               else if visibility_level >= 2 and not allows_protected then
+                       v.error(n, "Visibility error: Property {self} is protected and can only acceded by self.")
+                       return false
+               end
+               return true
+       end
+end
+
+# Concrete NIT source local property
+class MMSrcLocalProperty
+special MMConcreteProperty
+       # Type of the related AST node
+       type NODE: PPropdef
+
+       # The related AST node
+       readable attr _node: NODE
+end
+
+# Concrete NIT source attribute
+class MMSrcAttribute
+special MMSrcLocalProperty
+special MMAttribute
+       init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
+       do
+               super(name, cla, self)
+               _node = n
+       end
+end
+
+# Concrete NIT source method
+class MMSrcMethod
+special MMSrcLocalProperty
+special MMMethod
+end
+
+# Concrete NIT source method for an automatic accesor
+class MMAttrImplementationMethod
+special MMSrcMethod
+       redef type NODE: AAttrPropdef
+end
+
+# Concrete NIT source method for an automatic read accesor
+class MMReadImplementationMethod
+special MMAttrImplementationMethod
+
+       init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
+       do
+               super(name, cla, self)
+               _node = n
+       end
+end
+
+# Concrete NIT source method for an automatic write accesor
+class MMWriteImplementationMethod
+special MMAttrImplementationMethod
+
+       init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
+       do
+               super(name, cla, self)
+               _node = n
+       end
+end
+
+# Concrete NIT source method for an explicit method
+class MMMethSrcMethod
+special MMSrcMethod
+       redef type NODE: AMethPropdef
+
+       init(name: Symbol, cla: MMLocalClass, n: AMethPropdef)
+       do
+               super(name, cla, self)
+               _node = n
+       end
+end
+
+# Concrete NIT source virtual type
+class MMSrcTypeProperty
+special MMSrcLocalProperty
+special MMTypeProperty
+       init(name: Symbol, cla: MMLocalClass, n: ATypePropdef)
+       do
+               super(name, cla, self)
+               _node = n
+       end
+end
+
+
+# Local variable and method parameter
+class Variable
+       # Name of the variable
+       readable attr _name: Symbol 
+
+       # Declaration AST node
+       readable attr _decl: PNode
+
+       # Static type
+       readable writable attr _stype: MMType 
+
+       init(n: Symbol, d: PNode)
+       do
+               assert n != null
+               assert d != null
+               _name = n
+               _decl = d
+       end
+end
+
+###############################################################################
+
+# Visitor used during the syntax analysis
+class AbsSyntaxVisitor
+special Visitor
+       # The primitive type Bool
+       meth type_bool: MMType
+       do
+               return _module.class_by_name(once ("Bool".to_symbol)).get_type
+       end
+       
+       # The primitive type Int 
+       meth type_int: MMType
+       do
+               return _module.class_by_name(once ("Int".to_symbol)).get_type
+       end
+
+       # The primitive type Float
+       meth type_float: MMType
+       do
+               return _module.class_by_name(once ("Float".to_symbol)).get_type
+       end
+
+       # The primitive type Char
+       meth type_char: MMType
+       do
+               return _module.class_by_name(once ("Char".to_symbol)).get_type
+       end
+
+       # The primitive type String
+       meth type_string: MMType
+       do
+               return _module.class_by_name(once ("String".to_symbol)).get_type
+       end
+
+       # The primitive type Collection[Object]
+       meth type_collection: MMType
+       do
+               return _module.class_by_name(once ("Collection".to_symbol)).get_type
+       end
+
+       # The primitive type Array[?]
+       meth type_array(stype: MMType): MMType
+       do
+               return _module.class_by_name(once ("Array".to_symbol)).get_instantiate_type([stype])
+       end
+
+       # The primitive type Discrete
+       meth type_discrete: MMType
+       do
+               return _module.class_by_name(once ("Discrete".to_symbol)).get_type
+       end
+
+       # The primitive type Range[?]
+       meth type_range(stype: MMType): MMType
+       do
+               return _module.class_by_name(once ("Range".to_symbol)).get_instantiate_type([stype])
+       end
+
+       # The primitive type of null
+       meth type_none: MMType
+       do
+               return _module.type_none
+       end
+
+       # The current module
+       readable writable attr _module: MMSrcModule 
+
+       # The current class
+       readable writable attr _local_class: MMSrcLocalClass 
+
+       # The current property
+       readable writable attr _local_property: MMSrcLocalProperty
+
+       # The current tool configuration/status
+       readable attr _tc: ToolContext 
+
+       # Display an error for a given syntax node
+       meth error(n: PNode, s: String)
+       do
+               _tc.error("{n.locate}: {s}")
+       end
+
+       # Display a warning for a given syntax node
+       meth warning(n: PNode, s: String)
+       do
+               _tc.warning("{n.locate}: {s}")
+       end
+
+       # Check conformity and display error
+       meth check_conform(n: PNode, subtype: MMType, stype: MMType): Bool
+       do
+               if stype == null or subtype == null then
+                       return false
+               end
+               if subtype < stype then
+                       return true
+               end
+               error(n, "Type error: expected {stype}, got {subtype}")
+               return false
+       end
+
+
+       protected init(tc: ToolContext, module: MMSrcModule)
+       do
+               _tc = tc
+               _module = module
+       end
+end
+
+###############################################################################
+
+redef class PNode
+       protected meth accept_abs_syntax_visitor(v: AbsSyntaxVisitor) do visit_all(v)
+end
+
+redef class Token
+       attr _symbol: Symbol
+
+       # Symbol associated with the text
+       # Lazily computed
+       meth to_symbol: Symbol
+       do
+               var s = _symbol
+               if s == null then
+                       s = text.to_symbol
+                       _symbol = s
+               end
+               return s
+       end
+end
+
+redef class PClassdef
+       # Associated class (MM entity)
+       meth local_class: MMSrcLocalClass is abstract
+end
+
+redef class AAttrPropdef
+       # Associated attribute (MM entity)
+       meth prop: MMSrcAttribute is abstract
+
+       # Associated read accessor (MM entity)
+       meth readmethod: MMSrcMethod is abstract
+
+       # Associated write accessor (MM entity)
+       meth writemethod: MMSrcMethod is abstract
+end
+
+redef class AMethPropdef
+       # Associated method (MM entity)
+       meth method: MMMethSrcMethod is abstract
+end
+
+redef class ATypePropdef
+       # Associated formal type (MM entity)
+       meth prop: MMSrcTypeProperty is abstract
+end
+
+redef class PParam
+       # Position in the signature
+       meth position: Int is abstract
+
+       # Associated local variable
+       meth variable: Variable is abstract 
+end
+
+redef class PType
+       # Retrieve the local class corresponding to the type.
+       # Display an error and return null if there is no class
+       # Display an error and return null if the type is not class based (formal one)
+       meth get_local_class(v: AbsSyntaxVisitor): MMLocalClass is abstract
+
+       # Retrieve corresponding static type.
+       # Display an error and return null if there is a problem
+       meth get_stype(v: AbsSyntaxVisitor): MMType is abstract
+
+       # Retrieve corresponding static type.
+       # Display an error and return null if there is a problem
+       # But do not performs any subtype check.
+       # get_unchecked_stype should be called to check that the static type is fully valid
+       meth get_unchecked_stype(v: AbsSyntaxVisitor): MMType is abstract
+
+       # Check that a static definition type is conform with regard to formal types
+       # Useful with get_unchecked_stype
+       # Remember that conformance check need that ancestors are totaly computed
+       meth check_conform(v: AbsSyntaxVisitor) is abstract
+end
+
+redef class AType
+       attr _stype_cache: MMType
+       attr _stype_cached: Bool
+
+       redef meth get_local_class(v)
+       do
+               var name = n_id.to_symbol
+               var mod = v.module
+               var cla = v.local_class
+
+               if (cla.formal_dict != null and cla.formal_dict.has_key(name)) or (cla.global_properties != null and cla.has_global_property_by_name(name)) then
+                       v.error(n_id, "Type error: {name} is a formal type")
+                       _stype_cached = true
+                       return null
+               end
+
+               if not mod.has_global_class_named(name) then
+                       v.error(n_id, "Type error: class {name} not found in module {mod}.")
+                       _stype_cached = true
+                       return null
+               end
+
+               var local_class = mod.class_by_name(name)
+               local_class.global.check_visibility(v, self, mod)
+               return local_class
+       end
+
+       redef meth get_unchecked_stype(v)
+       do
+               if _stype_cached then return _stype_cache
+               _stype_cached = true
+
+               var name = n_id.to_symbol
+               var mod = v.module
+               var cla = v.local_class
+
+               if cla.formal_dict.has_key(name) then
+                       if n_types.length > 0 then
+                               v.error(self, "Type error: formal type {name} cannot have formal parameters.")
+                               return null
+                       end
+                       var formal = cla.formal_dict[name]
+                       _stype_cache = formal
+                       return formal
+               end
+
+               if cla.global_properties != null and cla.has_global_property_by_name(name) then
+                       if n_types.length > 0 then
+                               v.error(self, "Type error: formal type {name} cannot have formal parameters.")
+                               return null
+                       end
+                       var t = cla.get_type.select_virtual_type(name).stype
+                       if t == null then
+                               v.error(self, "Type error: circular definition in formal type {name}.")
+                               return null
+                       end
+                       _stype_cache = t
+                       return t
+               end
+
+               var local_class = get_local_class(v)
+               if local_class == null then return null
+
+               var arity = n_types.length 
+               if local_class.arity != arity then
+                       v.error(self, "Type error: '{local_class}' has {local_class.arity} parameters which differs from the {arity} params.")
+                       return null
+               end
+
+               if arity > 0 then
+                       var tab = new Array[MMType]
+                       for p in n_types do
+                               tab.add(p.get_unchecked_stype(v))
+                       end
+                       var t = local_class.get_instantiate_type(tab)
+                       _stype_cache = t
+                       return t
+               else
+                       var t = local_class.get_type
+                       _stype_cache = t
+                       return t
+               end
+       end
+       
+       redef meth get_stype(v)
+       do
+               var t = get_unchecked_stype(v)
+               if t != null then check_conform(v)
+               return t
+       end
+
+       redef meth check_conform(v)
+       do
+               var st = get_unchecked_stype(v)
+               if st == null then return 
+               var local_class = st.local_class
+               var arity = n_types.length
+               if arity > 0 then
+                       for i in [0..arity[ do
+                               var p = n_types[i]
+                               var pt = p.get_stype(v)
+                               var bt = local_class.get_formal(i).bound
+                               if bt == null then return
+                               bt = bt.adapt_to(st) # We need to abapt because of F-genericity
+                               v.check_conform(p, pt, bt)
+                       end
+               end
+       end
+end
+
+redef class PExpr
+       # Static type
+       # Is null for statement and for erronus expression
+       meth stype: MMType is abstract
+end
diff --git a/src/syntax/typing.nit b/src/syntax/typing.nit
new file mode 100644 (file)
index 0000000..3912ef2
--- /dev/null
@@ -0,0 +1,1147 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Analysis property bodies, statements and expressions
+package typing
+
+import syntax_base
+
+redef class MMSrcModule
+       # Walk trough the module and type statments and expressions
+       # Require than supermodules are processed
+       meth do_typing(tc: ToolContext)
+       do
+               var tv = new TypingVisitor(tc, self)
+               tv.visit(node)
+       end
+end
+
+# Typing visitor
+# * Associate local variables to nodes
+# * Distinguish method call and local variable access
+# * Resolve call and attribute access
+# * Check type conformance
+private class TypingVisitor
+special AbsSyntaxVisitor
+       redef meth visit(n)
+       do
+               if n != null then n.accept_typing(self)
+       end
+
+       # Current knowledge about variables names and types
+       readable writable attr _variable_ctx: VariableContext
+
+       # Type of the receiver
+       readable writable attr _self_type: MMType
+
+       # Block of the current method
+       readable writable attr _top_block: PExpr
+
+       # List of explicit invocation of constructors of super-classes
+       readable writable attr _explicit_super_init_calls: Array[MMMethod]
+
+       # Is a other constructor of the same class invoked
+       readable writable attr _explicit_other_init_call: Bool
+
+       init(tc, module) do super
+
+       private meth get_default_constructor_for(n: PNode, c: MMLocalClass, prop: MMMethod): MMMethod
+       do
+               var v = self
+               #var prop = v.local_property
+               #assert prop isa MMMethod
+               var candidates = new Array[MMMethod]
+               var false_candidates = new Array[MMMethod]
+               var parity = prop.signature.arity
+               for g in c.global_properties do
+                       if not g.is_init then continue
+                       if g.intro.local_class != c then continue
+                       var gp = c[g]
+                       assert gp isa MMMethod
+                       var garity = g.intro.signature.arity
+                       if prop != null and g.intro.name == prop.name then
+                               if garity == 0 or garity == parity then
+                                       return gp
+                               else
+                                       false_candidates.add(gp)
+                               end
+                       else if garity == 0 then
+                               candidates.add(gp)
+                               false_candidates.add(gp)
+                       else
+                               false_candidates.add(gp)
+                       end
+               end
+               if candidates.length == 1 then
+                       return candidates.first
+               else if false_candidates.is_empty then
+                       v.warning(n, "Fatal error: there is no available constrctor in {c}.")
+                       return null
+                       #abort
+               else
+                       v.error(n, "Error: Conflicting default constructor to call for {c}: {false_candidates.join(", ")}.")
+                       return null
+               end
+       end
+end
+
+# Associate symbols to variable and variables to type
+# Can be nested
+private class VariableContext
+       # Look for the variable from its name
+       # Return null if nothing found
+       meth [](s: Symbol): Variable
+       do
+               if _dico.has_key(s) then
+                       return _dico[s]
+               else
+                       return null
+               end
+       end
+
+       # Register a new variable with its name
+       meth add(v: Variable)
+       do
+               _dico[v.name] = v
+       end
+
+
+       # The effective static type of a given variable
+       # May be different from the declaration static type
+       meth stype(v: Variable): MMType
+       do
+               return v.stype
+       end
+
+       # Variables by name (in the current context only)
+       attr _dico: Map[Symbol, Variable]
+
+       # Build a new VariableContext
+       meth sub: VariableContext
+       do
+               return new SubVariableContext.with(self, null, null)
+       end
+
+       # Build a nested VariableContext with new variable information
+       meth sub_with(v: Variable, t: MMType): VariableContext
+       do
+               return new SubVariableContext.with(self, v, t)
+       end
+
+       init
+       do 
+               _dico = new HashMap[Symbol, Variable]
+       end
+end
+
+private class SubVariableContext
+special VariableContext
+       readable attr _prev: VariableContext
+       attr _variable: Variable
+       attr _var_type: MMType
+
+       redef meth [](s)
+       do
+               if _dico.has_key(s) then
+                       return _dico[s]
+               else
+                       return prev[s]
+               end
+       end
+
+       redef meth stype(v)
+       do
+               if _variable == v then
+                       return _var_type
+               end
+               return prev.stype(v)
+       end
+
+       init with(p: VariableContext, v: Variable, t: MMType)
+       do
+               init
+               _prev = p
+               _variable = v
+               _var_type =t
+       end
+end
+
+
+###############################################################################
+
+redef class PNode
+       private meth accept_typing(v: TypingVisitor) 
+       do
+               accept_abs_syntax_visitor(v)
+               after_typing(v)
+       end
+       private meth after_typing(v: TypingVisitor) do end
+end
+
+redef class PClassdef
+       redef meth accept_typing(v)
+       do
+               v.self_type = local_class.get_type
+               super
+       end
+end
+
+redef class AAttrPropdef
+       redef meth accept_typing(v)
+       do
+               super
+               if n_expr != null then
+                       v.check_conform(n_expr, n_expr.stype, prop.signature.return_type)
+               end
+       end
+end
+
+redef class AMethPropdef
+       redef meth accept_typing(v)
+       do
+               v.variable_ctx = new VariableContext
+               super
+       end
+end
+
+redef class AConcreteInitPropdef
+       readable attr _super_init_calls: Array[MMMethod] = new Array[MMMethod]
+       readable attr _explicit_super_init_calls: Array[MMMethod] = new Array[MMMethod]
+       redef meth accept_typing(v)
+       do
+               v.top_block = n_block
+               v.explicit_super_init_calls = explicit_super_init_calls
+               v.explicit_other_init_call = false
+               super
+               if v.explicit_other_init_call then
+                       # TODO: something?
+               else 
+                       var i = 0
+                       var l = explicit_super_init_calls.length
+                       var cur_m: MMMethod
+                       var cur_c: MMLocalClass
+                       if i < l then
+                               cur_m = explicit_super_init_calls[i]
+                               cur_c = cur_m.global.intro.local_class
+                       end
+                       var j = 0
+                       while j < v.local_class.cshe.direct_greaters.length do
+                               var c = v.local_class.cshe.direct_greaters[j]
+                               if cur_c != null and c.cshe <= cur_c then
+                                       if c == cur_c then j += 1
+                                       super_init_calls.add(cur_m)
+                                       i += 1
+                                       if i < l then
+                                               cur_m = explicit_super_init_calls[i]
+                                               cur_c = cur_m.global.intro.local_class
+                                       else
+                                               cur_m = null
+                                               cur_c = null
+                                       end
+                               else
+                                       var p = v.get_default_constructor_for(self, c, method)
+                                       if p != null then
+                                               super_init_calls.add(p)
+                                       end
+                                       j += 1
+                               end
+                       end
+               end
+       end
+end
+
+redef class PParam
+       redef meth after_typing(v)
+       do
+               if v.variable_ctx != null then
+                       v.variable_ctx.add(variable)
+               end
+       end
+end
+
+redef class PType
+       readable attr _stype: MMType
+       redef meth after_typing(v)
+       do
+               _stype = get_stype(v)
+       end
+end
+
+redef class PExpr
+       redef readable attr _stype: MMType
+       
+       # Is the expression the implicit receiver
+       meth is_implicit_self: Bool do return false
+
+       # Is the expression the current receiver (implicit or explicit)
+       meth is_self: Bool do return false
+
+       # Is the expression a variable access
+       meth is_variable: Bool do return false
+
+       # The variable type information if current boolean expression is true
+       readable private attr _if_true_variable_ctx: VariableContext
+end
+
+redef class AVardeclExpr
+       # Assiociated local variable
+        readable attr _variable: Variable
+
+       redef meth after_typing(v)
+       do
+               var va = new Variable(n_id.to_symbol, self)
+               _variable = va
+               v.variable_ctx.add(va)
+
+               if n_type != null then
+                       va.stype = n_type.stype
+                       if n_expr != null then
+                               v.check_conform(self, n_expr.stype, va.stype)
+                       end
+               else
+                       va.stype = n_expr.stype
+               end
+       end
+end
+
+redef class ABlockExpr
+       redef meth accept_typing(v)
+       do
+               var old_var_ctx = v.variable_ctx
+               v.variable_ctx = v.variable_ctx.sub
+
+               super
+
+               v.variable_ctx = old_var_ctx
+       end
+end
+
+redef class AReturnExpr
+       redef meth after_typing(v)
+       do
+               var t = v.local_property.signature.return_type
+               if n_expr == null and t != null then
+                       v.error(self, "Error: Return without value in a function.")
+               else if n_expr != null and t == null then
+                       v.error(self, "Error: Return with value in a procedure.")
+               else if n_expr != null and t != null then
+                       v.check_conform(self, n_expr.stype, t)
+               end
+       end
+end
+
+redef class AIfExpr
+       redef meth accept_typing(v)
+       do
+               var old_var_ctx = v.variable_ctx
+               v.visit(n_expr)
+               v.check_conform(self, n_expr.stype, v.type_bool)
+
+               if n_expr.if_true_variable_ctx != null then
+                       v.variable_ctx = n_expr.if_true_variable_ctx
+               end
+
+               v.visit(n_then)
+               # Restore variable ctx
+               v.variable_ctx = old_var_ctx
+
+               if n_else != null then
+                       v.visit(n_else)
+                       v.variable_ctx = old_var_ctx
+               end
+       end
+end
+
+redef class AWhileExpr
+       redef meth after_typing(v)
+       do
+               v.check_conform(self, n_expr.stype, v.type_bool)
+       end
+end
+
+redef class AForExpr
+       redef meth after_typing(v)
+       do
+               # pop context created in AForVardeclExpr
+               var varctx = v.variable_ctx 
+               assert varctx isa SubVariableContext
+               v.variable_ctx = varctx.prev
+       end
+end
+
+redef class AForVardeclExpr
+       # Associated automatic local variable
+       readable attr _variable: Variable
+
+       redef meth after_typing(v)
+       do
+               v.variable_ctx = v.variable_ctx.sub
+               var variable = new Variable(n_id.to_symbol, self)
+               _variable = variable
+               v.variable_ctx.add(variable)
+
+               var expr_type = n_expr.stype
+               if not v.check_conform(self, expr_type, v.type_collection) then
+                       return
+               end
+               var prop = expr_type.select_method(once ("iterator".to_symbol))
+               if prop == null then
+                       v.error(self, "Error: Collection MUST have an iterate method")
+                       return
+               end
+               var iter_type = prop.signature.return_type
+               var prop2 = iter_type.select_method(once ("item".to_symbol))
+               if prop2 == null then
+                       v.error(self, "Error: {iter_type} MUST have an item method")
+                       return
+               end
+               var t = prop2.signature.return_type
+               if not n_expr.is_self then t = t.not_for_self
+               variable.stype = t
+       end
+end
+
+redef class AAssertExpr
+       redef meth after_typing(v)
+       do
+               v.check_conform(self, n_expr.stype, v.type_bool)
+               if n_expr.if_true_variable_ctx != null then v.variable_ctx = n_expr.if_true_variable_ctx
+       end
+end
+
+redef class AVarFormExpr
+       # Associated local variable
+        readable writable attr _variable: Variable 
+end
+
+redef class AVarExpr
+       redef meth is_variable do return true
+
+       redef meth after_typing(v)
+       do
+               _stype = v.variable_ctx.stype(variable)
+       end
+end
+
+redef class AVarAssignExpr
+       redef meth after_typing(v)
+       do
+               var t = v.variable_ctx.stype(variable)
+               v.check_conform(self, n_value.stype, t)
+       end
+end
+
+redef class AReassignFormExpr
+       # Compute and check method used through the reassigment operator 
+       private meth do_lvalue_typing(v: TypingVisitor, type_lvalue: MMType)
+       do
+               if type_lvalue == null then
+                       return
+               end
+               var name = n_assign_op.method_name
+               var prop = type_lvalue.select_method(name)
+               if prop == null then
+                       v.error(self, "Error: Method '{name}' doesn't exists in {type_lvalue}.")
+                       return
+               end
+               prop.global.check_visibility(v, self, v.module, false)
+               var psig = prop.signature
+               _assign_method = prop
+               v.check_conform(self, n_value.stype, psig[0].not_for_self)
+               v.check_conform(self, psig.return_type.not_for_self, n_value.stype)
+       end
+
+       # Method used through the reassigment operator (once computed)
+       readable attr _assign_method: MMMethod
+end
+
+redef class PAssignOp
+       meth method_name: Symbol is abstract
+end
+redef class APlusAssignOp
+       redef meth method_name do return once "+".to_symbol
+end
+redef class AMinusAssignOp
+       redef meth method_name do return once "-".to_symbol
+end
+
+redef class AVarReassignExpr
+       redef meth after_typing(v)
+       do
+               var t = v.variable_ctx.stype(variable)
+               do_lvalue_typing(v, t)
+       end
+end
+
+redef class ASelfExpr
+       redef meth after_typing(v)
+       do
+               assert v.self_type != null
+               _stype = v.self_type
+       end
+
+        redef meth is_self do return true
+end
+
+redef class AImplicitSelfExpr
+        redef meth is_implicit_self do return true
+end
+
+redef class AIfexprExpr
+       redef meth accept_typing(v)
+       do
+               var old_var_ctx = v.variable_ctx
+
+               v.visit(n_expr)
+               if n_expr.if_true_variable_ctx != null then v.variable_ctx = n_expr.if_true_variable_ctx
+               v.visit(n_then)
+               v.variable_ctx = old_var_ctx
+               v.visit(n_else)
+
+               v.check_conform(self, n_expr.stype, v.type_bool)
+
+               var t = n_then.stype
+               var te = n_else.stype
+               if t < te then
+                       t = te
+               else if not te < t then
+                       v.error(self, "Type error: {te} is not a subtype of {t}.")
+                       return
+               end
+               
+               _stype = t
+       end
+end
+
+redef class ABoolExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_bool
+       end
+end
+
+redef class AOrExpr
+       redef meth after_typing(v)
+       do
+               v.check_conform(self, n_expr.stype, v.type_bool)
+               v.check_conform(self, n_expr2.stype, v.type_bool)
+               _stype = v.type_bool
+       end
+end
+
+redef class AAndExpr
+       redef meth accept_typing(v)
+       do
+               var old_var_ctx = v.variable_ctx
+
+               v.visit(n_expr)
+               if n_expr.if_true_variable_ctx != null then v.variable_ctx = n_expr.if_true_variable_ctx
+
+               v.visit(n_expr2)
+               if n_expr2.if_true_variable_ctx != null then 
+                       _if_true_variable_ctx = n_expr2.if_true_variable_ctx
+               else
+                       _if_true_variable_ctx = v.variable_ctx
+               end
+
+               v.variable_ctx = old_var_ctx
+
+               v.check_conform(self, n_expr.stype, v.type_bool)
+               v.check_conform(self, n_expr2.stype, v.type_bool)
+               _stype = v.type_bool
+       end
+end
+
+redef class ANotExpr
+       redef meth after_typing(v)
+       do
+               v.check_conform(self, n_expr.stype, v.type_bool)
+               _stype = v.type_bool
+       end
+end
+
+redef class AIntExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_int
+
+       end
+end
+
+redef class AFloatExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_float
+       end
+end
+
+redef class ACharExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_char
+       end
+end
+
+redef class AStringFormExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_string
+       end
+end
+
+redef class ASuperstringExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_string
+       end
+end
+
+redef class ANullExpr
+       redef meth after_typing(v)
+       do
+               _stype = v.type_none
+       end
+end
+
+redef class AArrayExpr
+       private meth stype=(t: MMType) do _stype = t
+
+       redef meth after_typing(v)
+       do
+               var stype: MMType
+               for n in n_exprs do
+                       var ntype = n.stype
+                       if stype == null or (ntype != null and stype < ntype) then
+                               stype = ntype
+                       end
+               end
+               for n in n_exprs do
+                       v.check_conform(self, n.stype, stype)
+               end
+               _stype = v.type_array(stype)
+       end
+end
+
+redef class ARangeExpr
+       redef meth after_typing(v)
+       do
+               var ntype = n_expr.stype
+               var ntype2 = n_expr2.stype
+               if ntype == null or ntype == null then
+                       return
+               end
+               if ntype < ntype2 then
+                       ntype = ntype2
+               else if not ntype2 < ntype then
+                       v.error(self, "Type error: {ntype} incompatible with {ntype2}.")
+                       return
+               end
+               var dtype = v.type_discrete
+               v.check_conform(self, ntype, dtype)
+               _stype = v.type_range(ntype)
+       end
+end
+
+redef class ASuperExpr
+special ASuperInitCall
+       # readable attr _prop: MMSrcMethod
+       readable attr _init_in_superclass: MMMethod
+       redef meth after_typing(v)
+       do
+               var precs: Array[MMLocalProperty] = v.local_property.cprhe.direct_greaters
+               if not precs.is_empty then
+                       v.local_property.need_super = true
+               else if v.local_property.global.is_init then
+                       var base_precs = v.local_class.super_methods_named(v.local_property.name)
+                       for p in base_precs do
+                               if not p.global.is_init then
+                                       v.error(self, "Error: {p.local_class}::{p} is not a constructor.")
+                               else
+                                       precs.add(v.self_type.select_property(p.global))
+                               end
+                       end
+                       if precs.is_empty then
+                               v.error(self, "Error: No contructor named {v.local_property.name} in superclasses.")
+                               return
+                       else if precs.length > 1 then
+                               v.error(self, "Error: Conflicting contructors named {v.local_property.name} in superclasses: {precs.join(", ")}.")
+                               return
+                       end
+                       var p = base_precs.first
+                       assert p isa MMMethod
+                       _init_in_superclass = p
+                       register_super_init_call(v, p)
+                       if n_args.length > 0 then
+                               _arguments = process_signature(v, p, true, n_args.to_a)
+                       end
+               else
+                       v.error(self, "Error: No super method to call for {v.local_property}.")
+                       return
+               end
+
+               if precs.first.signature.return_type != null then
+                       var stypes = new Array[MMType]
+                       var stype: MMType
+                       for prop in precs do
+                               assert prop isa MMMethod
+                               var t = prop.signature.return_type.for_module(v.module).adapt_to(v.local_property.signature.recv)
+                               stypes.add(t)
+                               if stype == null or stype < t then
+                                       stype = t
+                               end
+                       end
+                       for t in stypes do
+                               v.check_conform(self, t, stype)
+                       end
+                       _stype = stype
+               end
+               var p = v.local_property
+               assert p isa MMSrcMethod
+               _prop = p
+       end
+end
+
+redef class AAttrFormExpr
+       # Attribute accessed
+       readable attr _prop: MMAttribute
+
+       # Compute the attribute accessed
+       private meth do_typing(v: TypingVisitor)
+       do
+               var type_recv = n_expr.stype
+               if type_recv == null then
+                       return
+               end
+               var name = n_id.to_symbol
+               var prop = type_recv.select_attribute(name)
+               if prop == null then
+                       v.error(self, "Error: Attribute {name} doesn't exists in {type_recv}.")
+                       return
+               else if v.module.visibility_for(prop.global.local_class.module) < 3 then
+                       v.error(self, "Error: Attribute {name} from {prop.global.local_class.module} is invisible in {v.module}")
+               end
+               _prop = prop
+       end
+end
+
+redef class AAttrExpr
+       redef meth after_typing(v)
+       do
+               do_typing(v)
+               if prop == null then
+                       return
+               end
+               var attr_type = prop.signature.return_type
+               if not n_expr.is_self then attr_type = attr_type.not_for_self
+               _stype = attr_type
+       end
+end
+
+redef class AAttrAssignExpr
+       redef meth after_typing(v)
+       do
+               do_typing(v)
+               if prop == null then
+                       return
+               end
+               var attr_type = prop.signature.return_type
+               if not n_expr.is_self then attr_type = attr_type.not_for_self
+               v.check_conform(self, n_value.stype, attr_type)
+       end
+end
+
+redef class AAttrReassignExpr
+       redef meth after_typing(v)
+       do
+               do_typing(v)
+               if prop == null then
+                       return
+               end
+               var attr_type = prop.signature.return_type
+               if not n_expr.is_self then attr_type = attr_type.not_for_self
+               do_lvalue_typing(v, attr_type)
+       end
+end
+
+class AAbsSendExpr
+special PExpr
+       # Compute the called global property
+       private meth do_typing(v: TypingVisitor, type_recv: MMType, is_implicit_self: Bool, recv_is_self: Bool, name: Symbol, raw_args: Array[PExpr])
+       do
+               var prop = get_property(v, type_recv, is_implicit_self, name)
+               if prop == null then return
+               var args = process_signature(v, prop, recv_is_self, raw_args)
+               if args == null then return
+               _prop = prop
+               _arguments = args
+       end
+
+       private meth get_property(v: TypingVisitor, type_recv: MMType, is_implicit_self: Bool, name: Symbol): MMMethod
+       do
+               if type_recv == null then return null
+               var prop = type_recv.select_method(name)
+               if prop == null and v.local_property.global.is_init then
+                       var props = type_recv.local_class.super_methods_named(name)
+                       if props.length > 1 then
+                               v.error(self, "Error: Ambigous method name '{name}' for {props.join(", ")}. Use explicit designation.")
+                               return null
+                       else if props.length == 1 then 
+                               var p = type_recv.select_property(props.first.global)
+                               assert p isa MMMethod
+                               prop = p
+                       end
+
+               end
+               if prop == null then
+                       if is_implicit_self then
+                               v.error(self, "Error: Method or variable '{name}' unknown in {type_recv}.")
+                       else
+                               v.error(self, "Error: Method '{name}' doesn't exists in {type_recv}.")
+                       end
+                       return null
+               end
+               return prop
+       end
+
+       private meth process_signature(v: TypingVisitor, prop: MMMethod, recv_is_self: Bool, raw_args: Array[PExpr]): Array[PExpr]
+       do
+               prop.global.check_visibility(v, self, v.module, recv_is_self)
+               var psig = prop.signature
+               var par_vararg = psig.vararg_rank
+               var par_arity = psig.arity
+               var raw_arity: Int
+               if raw_args == null then raw_arity = 0 else raw_arity = raw_args.length
+               if par_arity > raw_arity or (par_arity != raw_arity and par_vararg == -1) then
+                       v.error(self, "Error: Method '{prop}' arity missmatch.")
+                       return null
+               end
+               var arg_idx = 0
+               var args = new Array[PExpr]
+               for par_idx in [0..par_arity[ do
+                       var a: PExpr
+                       var par_type = psig[par_idx]
+                       if not recv_is_self then par_type = par_type.not_for_self
+                       if par_idx == par_vararg then
+                               var star = new Array[PExpr]
+                               for i in [0..(raw_arity-par_arity)] do
+                                       a = raw_args[arg_idx]
+                                       v.check_conform(self, a.stype, par_type)
+                                       star.add(a)
+                                       arg_idx = arg_idx + 1
+                               end
+                               var aa = new AArrayExpr.init_aarrayexpr(star)
+                               aa.stype = v.type_array(par_type)
+                               a = aa
+                       else
+                               a = raw_args[arg_idx]
+                               v.check_conform(self, a.stype, par_type)
+                               arg_idx = arg_idx + 1
+                       end
+                       args.add(a)
+               end
+               return args
+       end
+
+       # The invoked method (once computed)
+       readable attr _prop: MMMethod
+
+       # The real arguments used (after star transformation) (once computed)
+       readable attr _arguments: Array[PExpr]
+end
+
+# A possible call of constructor in a super class
+# Could be an explicit call or with the 'super' keyword
+class ASuperInitCall
+special AAbsSendExpr
+       private meth register_super_init_call(v: TypingVisitor, property: MMMethod)
+       do
+               if parent != v.top_block and self != v.top_block then
+                       v.error(self, "Error: Constructor invocation {property} must not be in nested block.")
+               end
+               var cla = v.module[property.global.intro.local_class.global]
+               var prev_class: MMLocalClass
+               if not v.explicit_super_init_calls.is_empty then
+                       prev_class = v.explicit_super_init_calls.last.global.intro.local_class
+               end
+               var order = v.local_class.cshe.reverse_linear_extension
+               if cla == v.local_class then
+                       v.explicit_other_init_call = true
+               else if not order.has(cla) then
+                       v.error(self, "Error: Constructor of class {cla} must be one in {order.join(", ")}.")
+               else if cla == prev_class then
+                       v.error(self, "Error: Only one super constructor invocation of class {cla} is allowed.")
+               else
+                       var last_is_found = prev_class == null
+                       for c in order do
+                               if c == prev_class then
+                                       last_is_found = true
+                               else if c == cla then
+                                       if not last_is_found then
+                                               v.error(self, "Error: Constructor of {c} must be invoked before constructor of {prev_class}")
+                                       end
+                                       v.explicit_super_init_calls.add(property)
+                                       break
+                               end
+                       end
+               end
+       end
+
+end
+
+redef class ANewExpr
+special AAbsSendExpr
+       redef meth after_typing(v)
+       do
+               var t = n_type.stype
+               if t == null then return
+               if t.local_class.global.is_abstract then
+                       v.error(self, "Error: try to instantiate abstract class {t.local_class}.")
+                       return
+               end
+               var name: Symbol
+               if n_id == null then
+                       name = once "init".to_symbol
+               else
+                       name = n_id.to_symbol
+               end
+
+               do_typing(v, t, false, false, name, n_args.to_a)
+               if not prop.global.is_init then
+                       v.error(self, "Error: {prop} is not a constructor.")
+               end
+               _stype = t
+       end
+end
+
+
+redef class ASendExpr
+special ASuperInitCall
+       # Name of the invoked property
+       meth name: Symbol is abstract 
+
+       # Raw arguments used (withour star transformation)
+       meth raw_arguments: Array[PExpr] is abstract
+
+       redef meth after_typing(v)
+       do
+               do_all_typing(v)
+       end
+
+       private meth do_all_typing(v: TypingVisitor)
+       do
+               do_typing(v, n_expr.stype, n_expr.is_implicit_self, n_expr.is_self, name, raw_arguments)
+               if prop == null then return
+               if prop.global.is_init then
+                       if not v.local_property.global.is_init then
+                               v.error(self, "Error: try to invoke constructor {prop} in a method.")
+                       else if not n_expr.is_self then
+                               v.error(self, "Error: constructor {prop} is not invoken on 'self'.")
+                       else
+                               register_super_init_call(v, prop)
+                       end
+               end
+               var t = prop.signature.return_type
+               if t != null and not n_expr.is_self then t = t.not_for_self
+               _stype = t
+       end
+end
+
+class ASendReassignExpr
+special ASendExpr
+special AReassignFormExpr
+       readable attr _read_prop: MMMethod
+       redef meth do_all_typing(v)
+       do
+               var raw_args = raw_arguments
+               do_typing(v, n_expr.stype, n_expr.is_implicit_self, n_expr.is_self, name, raw_args)
+               if prop == null then return
+               if prop.global.is_init then
+                       if not v.local_property.global.is_init then
+                               v.error(self, "Error: try to invoke constructor {prop} in a method.")
+                       else if not n_expr.is_self then
+                               v.error(self, "Error: constructor {prop} is not invoken on 'self'.")
+                       end
+               end
+               var t = prop.signature.return_type
+               if not n_expr.is_self then t = t.not_for_self
+
+               do_lvalue_typing(v, t)
+
+               _read_prop = prop
+               var old_args = arguments
+               raw_args.add(n_value)
+
+               do_typing(v, n_expr.stype, n_expr.is_implicit_self, n_expr.is_self, "{name}=".to_symbol, raw_args)
+               if prop == null then return
+               if prop.global.is_init then
+                       if not v.local_property.global.is_init then
+                               v.error(self, "Error: try to invoke constructor {prop} in a method.")
+                       else if not n_expr.is_self then
+                               v.error(self, "Error: constructor {prop} is not invoken on 'self'.")
+                       end
+               end
+
+               _arguments = old_args # FIXME: What if star parameters do not match betwen the two methods?
+       end
+end
+
+redef class ABinopExpr
+       redef meth raw_arguments do return [n_expr2]
+end
+redef class AEqExpr
+       redef meth name do return once "==".to_symbol
+end
+redef class ANeExpr
+       redef meth name do return once "!=".to_symbol
+end
+redef class ALtExpr
+       redef meth name do return once "<".to_symbol
+end
+redef class ALeExpr
+       redef meth name do return once "<=".to_symbol
+end
+redef class AGtExpr
+       redef meth name do return once ">".to_symbol
+end
+redef class AGeExpr
+       redef meth name do return once ">=".to_symbol
+end
+redef class APlusExpr
+       redef meth name do return once "+".to_symbol
+end
+redef class AMinusExpr
+       redef meth name do return once "-".to_symbol
+end
+redef class AStarshipExpr
+       redef meth name do return once "<=>".to_symbol
+end
+redef class AStarExpr
+       redef meth name do return once "*".to_symbol
+end
+redef class ASlashExpr
+       redef meth name do return once "/".to_symbol
+end
+redef class APercentExpr
+       redef meth name do return once "%".to_symbol
+end
+
+redef class AUminusExpr
+       redef meth name do return once "unary -".to_symbol
+       redef meth raw_arguments do return null
+end
+
+redef class ACallFormExpr
+       redef meth after_typing(v)
+       do
+               if n_expr.is_implicit_self then
+                       var name = n_id.to_symbol
+                       var variable = v.variable_ctx[name]
+                       if variable != null then
+                               if not n_args.is_empty then
+                                       v.error(self, "Error: {name} is variable, not a function.")
+                               end
+                               var vform = variable_create(variable)
+                               vform.variable = variable
+                               replace_with(vform)
+                               vform.after_typing(v)
+                               return
+                       end
+               end
+               super
+       end
+
+       # Create a variable acces corresponding to the call form
+       meth variable_create(variable: Variable): AVarFormExpr is abstract
+end
+
+redef class ACallExpr
+       redef meth variable_create(variable)
+       do
+               return new AVarExpr.init_avarexpr(n_id)
+       end
+
+       redef meth name do return n_id.to_symbol
+       redef meth raw_arguments do return n_args.to_a
+end
+
+redef class ACallAssignExpr
+       redef meth variable_create(variable)
+       do
+               return new AVarAssignExpr.init_avarassignexpr(n_id, n_assign, n_value)
+       end
+
+       redef meth name do return (n_id.text + "=").to_symbol
+       redef meth raw_arguments do
+               var res = n_args.to_a
+               res.add(n_value)
+               return res
+       end
+end
+
+redef class ACallReassignExpr
+special ASendReassignExpr
+       redef meth variable_create(variable)
+       do
+               return new AVarReassignExpr.init_avarreassignexpr(n_id, n_assign_op, n_value)
+       end
+
+       redef meth name do return n_id.to_symbol
+       redef meth raw_arguments do return n_args.to_a
+end
+
+redef class ABraExpr
+       redef meth name do return once "[]".to_symbol
+       redef meth raw_arguments do return n_args.to_a
+end
+
+redef class ABraAssignExpr
+       redef meth name do return once "[]=".to_symbol
+       redef meth raw_arguments do
+               var res = n_args.to_a
+               res.add(n_value)
+               return res
+       end
+end
+
+redef class ABraReassignExpr
+special ASendReassignExpr
+       redef meth name do return once "[]".to_symbol
+       redef meth raw_arguments do return n_args.to_a
+end
+
+redef class AInitExpr
+       redef meth name do return once "init".to_symbol
+       redef meth raw_arguments do return n_args.to_a
+end
+
+redef class AIsaExpr
+       redef meth after_typing(v)
+       do
+               if n_expr.is_variable then
+                       var n = n_expr
+                       assert n isa AVarExpr
+                       _if_true_variable_ctx = v.variable_ctx.sub_with(n.variable, n_type.stype)
+               end
+               _stype = v.type_bool
+       end
+end
+
+redef class AProxyExpr
+       redef meth after_typing(v)
+       do
+               _stype = n_expr.stype
+       end
+end
diff --git a/src/utils.nit b/src/utils.nit
new file mode 100644 (file)
index 0000000..1aa727f
--- /dev/null
@@ -0,0 +1,76 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Various functions for NIT tools
+package utils
+
+# Mangle an array of symbol using only alphanums and underscores
+meth cmangle(symbols: Symbol...): String
+do
+       var table = once cmangle_table
+       var res = new String
+       for sym in symbols do
+               if not res.is_empty then
+                       res.add('_')
+                       res.add('_')
+                       res.add('_')
+               end
+               var underscore = false
+               var normal = true
+               var s = sym.to_s
+               for c in s do
+                       if (c >= 'a' and c <= 'z') or (c >='A' and c <= 'Z') or (c >= '0' and c <= '9') then
+                               res.add(c)
+                               underscore = false
+                               normal = true
+                       else if c == '_' and not underscore then
+                               res.add(c)
+                               underscore = true
+                               normal = true
+                       else if table.has_key(c) then
+                               if normal then
+                                       res.add('_')
+                                       res.add('_')
+                               end
+                               res.append(table[c])
+                               normal = false
+                               underscore = false
+                       end
+               end
+       end
+       return res
+end
+
+# Build the table that associates character to mangle to string
+private meth cmangle_table: HashMap[Char, String]
+do
+       var res = new HashMap[Char, String]
+       res['+'] = "plus"
+       res['-'] = "minus"
+       res['*'] = "star"
+       res['/'] = "slash"
+       res['%'] = "percent"
+       res['['] = "bra"
+       res['='] = "eq"
+       res['<'] = "l"
+       res['>'] = "g"
+       res['!'] = "n"
+       res['_'] = "u"
+       res['@'] = "at"
+       return res
+end
+
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644 (file)
index 0000000..ed6ef6b
--- /dev/null
@@ -0,0 +1,11 @@
+all:
+       ./tests.sh *.nit ../examples/*.nit 
+
+some:
+       ./tests.sh base_compile.nit base_attr.nit base_gen.nit test_gen_inh.nit bench_fib.nit example_objet.nit
+
+store:
+       ./store_save.sh *.nit
+
+clean:
+       @rm -r -f -- *.bin *.res *.write *.err *.log alt || true
diff --git a/tests/README b/tests/README
new file mode 100644 (file)
index 0000000..c41d71d
--- /dev/null
@@ -0,0 +1,7 @@
+This directory contains small NIT programs divided in some categories:
+* 'base' are minimal and fundamental tests
+* 'bench' are memory and time tests
+* 'error' are invalid programs
+* 'example' are examples 
+* 'test' are others tests
+* 'shootout' are benchmarks from http://shootout.alioth.debian.org/
diff --git a/tests/base_abort.nit b/tests/base_abort.nit
new file mode 100644 (file)
index 0000000..6922ad0
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+meth foo: Int
+do
+       abort
+end
+
+foo
diff --git a/tests/base_abort.sav b/tests/base_abort.sav
new file mode 100644 (file)
index 0000000..6680898
--- /dev/null
@@ -0,0 +1,5 @@
+Aborted: ./base_abort.nit:21,2--6
+,---- Stack trace -- - -  -
+| base_abort::Object::foo (./base_abort.nit:19,1--21:6)
+| base_abort::Sys::main (./base_abort.nit:24,1--3)
+`------------------- - -  -
diff --git a/tests/base_array.nit b/tests/base_array.nit
new file mode 100644 (file)
index 0000000..9b793e6
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import array
+
+var a = [10, 20]
+a.length.output 
+a.first.output
+a[1].output
+for i in a do
+       (i*10).output
+end
+
+#alt1# var a = [10, true]
diff --git a/tests/base_array.sav b/tests/base_array.sav
new file mode 100644 (file)
index 0000000..f742d26
--- /dev/null
@@ -0,0 +1,5 @@
+2
+10
+20
+100
+200
diff --git a/tests/base_array_alt1.sav b/tests/base_array_alt1.sav
new file mode 100644 (file)
index 0000000..d768bb4
--- /dev/null
@@ -0,0 +1 @@
+alt/base_array_alt1.nit:27,11--18: Type error: expected Int, got Bool
diff --git a/tests/base_attr.nit b/tests/base_attr.nit
new file mode 100644 (file)
index 0000000..736d7ff
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+end
+
+class Int
+       meth output is intern
+end
+
+class Foo
+       attr _a1: Int
+       attr _a2: Int
+       meth run
+       do
+               _a1.output
+               _a2.output
+       end
+
+       init
+       do
+               _a1 = 1
+               _a2 = 2
+       end
+end
+
+class Bar
+special Foo
+       attr _a3: Int
+       redef meth run
+       do
+               _a1.output
+               _a2.output
+               _a3.output
+       end
+
+       redef init 
+       do 
+               _a1 = 10
+               _a2 = 20
+               _a3 = 30
+       end
+end
+
+var f = new Foo
+var b = new Bar
+f.run
+b.run
diff --git a/tests/base_attr.sav b/tests/base_attr.sav
new file mode 100644 (file)
index 0000000..66b1ef1
--- /dev/null
@@ -0,0 +1,5 @@
+1
+2
+10
+20
+30
diff --git a/tests/base_attr_def.nit b/tests/base_attr_def.nit
new file mode 100644 (file)
index 0000000..24e0037
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+end
+
+class Int
+       meth output is intern
+end
+
+class Foo
+       readable writable attr _a1: Int 
+       readable writable attr _a2: Int
+       meth run
+       do
+               a1.output
+               a2.output
+       end
+
+       init
+       do
+               a1 = 1
+               a2 = 2
+       end
+end
+
+class Bar
+special Foo
+       readable writable attr _a3: Int 
+       redef meth run
+       do
+               a1.output
+               a2.output
+               a3.output
+       end
+
+       redef init 
+       do 
+               a1 = 10
+               a2 = 20
+               a3 = 30
+       end
+end
+
+var f = new Foo
+var b = new Bar
+f.run
+b.run
diff --git a/tests/base_attr_def.sav b/tests/base_attr_def.sav
new file mode 100644 (file)
index 0000000..66b1ef1
--- /dev/null
@@ -0,0 +1,5 @@
+1
+2
+10
+20
+30
diff --git a/tests/base_attr_init_val1.nit b/tests/base_attr_init_val1.nit
new file mode 100644 (file)
index 0000000..f92fdfe
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       readable attr _i: Int = 1
+       init do end
+end
+
+class B
+       readable attr _a: A = new A
+       init do end
+end
+
+(new A).i.output
+(new B).a.i.output
diff --git a/tests/base_attr_init_val1.sav b/tests/base_attr_init_val1.sav
new file mode 100644 (file)
index 0000000..6ed281c
--- /dev/null
@@ -0,0 +1,2 @@
+1
+1
diff --git a/tests/base_attr_init_val2.nit b/tests/base_attr_init_val2.nit
new file mode 100644 (file)
index 0000000..4dd716f
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+class Object
+end
+class Int
+end
+class A
+       attr _i: Int = 1
+end
diff --git a/tests/base_attr_init_val2.sav b/tests/base_attr_init_val2.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_classid.nit b/tests/base_classid.nit
new file mode 100644 (file)
index 0000000..ec1415b
--- /dev/null
@@ -0,0 +1,52 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init do end
+end
+
+class B
+special A
+       meth unreasheable
+       do
+               var a: A
+               a = new B
+               (a isa C).output
+       end
+       redef init do end
+end
+
+class C
+special A
+       redef init do end
+end
+
+var a: A
+var ab: A
+var b: B
+a = new A
+ab = new B
+b = new B
+(not(a == b)).output
+(a == a).output
+(a isa A).output
+(ab isa A).output
+(b isa A).output
+(not(a isa B)).output
+(ab isa B).output
+(b isa B).output
diff --git a/tests/base_classid.sav b/tests/base_classid.sav
new file mode 100644 (file)
index 0000000..310e632
--- /dev/null
@@ -0,0 +1,8 @@
+true
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_combined_assignment.nit b/tests/base_combined_assignment.nit
new file mode 100644 (file)
index 0000000..756d60d
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+var i = 1
+#alt1#var i: Object = 1
+i += 2
+i.output
diff --git a/tests/base_combined_assignment.sav b/tests/base_combined_assignment.sav
new file mode 100644 (file)
index 0000000..00750ed
--- /dev/null
@@ -0,0 +1 @@
+3
diff --git a/tests/base_combined_assignment_alt1.sav b/tests/base_combined_assignment_alt1.sav
new file mode 100644 (file)
index 0000000..130e589
--- /dev/null
@@ -0,0 +1 @@
+alt/base_combined_assignment_alt1.nit:21,1--6: Error: Method '+' doesn't exists in Object.
diff --git a/tests/base_compile.nit b/tests/base_compile.nit
new file mode 100644 (file)
index 0000000..eac166d
--- /dev/null
@@ -0,0 +1,41 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class Client
+       attr _budjet: Int # 
+       meth regarde(t: Tableau)
+       do
+               if t.joli and dans_mes_moyens(t.etiquette.prix) then
+                       achette(t)
+               end
+       end
+       meth achette(t: Tableau) is abstract
+       meth dans_mes_moyens(i: Int): Bool
+       do
+               return i < _budjet
+       end
+end
+
+class Tableau
+       meth joli: Bool is abstract
+       meth etiquette: Etiquette is abstract
+end
+
+class Etiquette
+       meth prix: Int is abstract
+end
diff --git a/tests/base_compile.sav b/tests/base_compile.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_control_flow.nit b/tests/base_control_flow.nit
new file mode 100644 (file)
index 0000000..95182c0
--- /dev/null
@@ -0,0 +1,55 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+meth a: Int
+do
+       a
+       return 0
+       a
+end
+
+meth b: Int
+do
+       a
+       if true then return 0
+       a
+       return 1#!alt1#
+end
+
+meth c: Int
+do
+       a
+       if true then
+               a
+       else
+               return 0
+       end
+       a
+       return 2#!alt1#
+end
+
+meth d: Int
+do
+       a
+       if true then
+               return 0
+       else
+               return 0
+       end
+       a
+end
diff --git a/tests/base_control_flow.sav b/tests/base_control_flow.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_control_flow2.nit b/tests/base_control_flow2.nit
new file mode 100644 (file)
index 0000000..a2b1185
--- /dev/null
@@ -0,0 +1,55 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+meth a do end
+
+while true do
+       a
+       break
+       a
+end
+
+while false do
+       a
+       continue
+       a
+end
+
+while false do
+       a
+       if true then continue
+       a
+end
+
+while true do
+       a
+       if false then continue else break
+       a
+end
+
+while true do
+       a
+       while true do
+               a
+               break
+               a
+       end
+       a
+       break
+       a
+end
diff --git a/tests/base_control_flow2.sav b/tests/base_control_flow2.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_empty.nit b/tests/base_empty.nit
new file mode 100644 (file)
index 0000000..b348328
--- /dev/null
@@ -0,0 +1,16 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/tests/base_empty.sav b/tests/base_empty.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_empty_comments.nit b/tests/base_empty_comments.nit
new file mode 100644 (file)
index 0000000..b902200
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+# A single comment
+
+# A Double
+# comment
+
diff --git a/tests/base_empty_comments.sav b/tests/base_empty_comments.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_empty_module.nit b/tests/base_empty_module.nit
new file mode 100644 (file)
index 0000000..7b30e04
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+class Object
+end
diff --git a/tests/base_empty_module.sav b/tests/base_empty_module.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_eq.nit b/tests/base_eq.nit
new file mode 100644 (file)
index 0000000..b2db161
--- /dev/null
@@ -0,0 +1,83 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       readable attr _a: Int 
+       
+       init(a: Int)
+       do
+               _a = a
+       end
+end
+
+class B
+special A
+       redef meth ==(a: Object): Bool
+       do
+               if not a isa B then
+                       return false
+               end
+               assert a isa B
+               return a.a is _a
+       end
+
+       redef init(b: Int)
+       do
+               _a = b
+       end
+end
+
+var a1 = new A(1)
+var a2 = a1
+var a3 = new A(1)
+var b1 = new B(1)
+var b2 = new B(1)
+var b3 = new B(2)
+
+a1.is_same_type(a1).output
+a1.is_same_type(a2).output
+a1.is_same_type(a3).output
+(not a1.is_same_type(b1)).output
+(not a1.is_same_type(b2)).output
+(not a1.is_same_type(b3)).output
+(not b1.is_same_type(a1)).output
+(not b1.is_same_type(a2)).output
+(not b1.is_same_type(a3)).output
+b1.is_same_type(b1).output
+b1.is_same_type(b2).output
+b1.is_same_type(b2).output
+
+'\n'.output
+
+(a1 is a1).output
+(a1 is a2).output
+(not a1 is a3).output
+(not a1 is b1).output
+(not b1 is b2).output
+(not b1 is b3).output
+
+'\n'.output
+
+(a1 == a1).output
+(a1 == a2).output
+(not a1 == a3).output
+(not a1 == b1).output
+(b1 == b1).output
+(b1 == b2).output
+(not b1 == b3).output
+
diff --git a/tests/base_eq.sav b/tests/base_eq.sav
new file mode 100644 (file)
index 0000000..1068f94
--- /dev/null
@@ -0,0 +1,27 @@
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_eq_int.nit b/tests/base_eq_int.nit
new file mode 100644 (file)
index 0000000..e92796d
--- /dev/null
@@ -0,0 +1,73 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+var a = 5
+var b = 5
+var c: Object = 5
+var d: Object = 6
+var e: Object = 5.0
+
+(5 == 5).output
+(not 5 == 5.0).output
+(5.0 == 5.0).output
+(not 5.0 == 5).output
+(not 6 == 5).output
+(not 6 == 5.0).output
+(not 6.0 == 5.0).output
+(not 6.0 == 5).output
+
+'\n'.output
+
+(a is 5).output
+(not a is 6).output
+(a is a).output
+(a is b).output
+(a is c).output
+(not a is d).output
+(not a is e).output
+
+'\n'.output
+
+(a == 5).output
+(not a == 6).output
+(a == a).output
+(a == b).output
+(a == c).output
+(not a == d).output
+(not a == e).output
+
+'\n'.output
+
+(c is 5).output
+(not c is 6).output
+(c is a).output
+(c is b).output
+(c is c).output
+(not c is d).output
+(not c is e).output
+
+'\n'.output
+
+(c == 5).output
+(not c == 6).output
+(c == a).output
+(c == b).output
+(c == c).output
+(not c == d).output
+(not c == e).output
+
diff --git a/tests/base_eq_int.sav b/tests/base_eq_int.sav
new file mode 100644 (file)
index 0000000..c859cc2
--- /dev/null
@@ -0,0 +1,40 @@
+true
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_eq_int2.nit b/tests/base_eq_int2.nit
new file mode 100644 (file)
index 0000000..5f49b7f
--- /dev/null
@@ -0,0 +1,102 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+var a = 5
+var b = 5
+var c: Object = 5
+var d: Object = 6
+var e: Object = 5.0
+
+a.is_same_type(5).output
+a.is_same_type(a).output
+a.is_same_type(b).output
+a.is_same_type(c).output
+a.is_same_type(d).output
+(not a.is_same_type(e)).output
+
+'\n'.output
+
+c.is_same_type(5).output
+c.is_same_type(a).output
+c.is_same_type(b).output
+c.is_same_type(c).output
+c.is_same_type(d).output
+(not c.is_same_type(e)).output
+
+'\n'.output
+
+(not 1.0.is_same_type(5)).output
+(not 1.0.is_same_type(a)).output
+(not 1.0.is_same_type(b)).output
+(not 1.0.is_same_type(c)).output
+(not 1.0.is_same_type(d)).output
+1.0.is_same_type(e).output
+
+'\n'.output
+'\n'.output
+
+
+(5 == 5).output
+(5 != 5.0).output
+(5.0 == 5.0).output
+(5.0 != 5).output
+(not 6 == 5).output
+(not 6 == 5.0).output
+(not 6.0 == 5.0).output
+(not 6.0 == 5).output
+
+'\n'.output
+
+(a == 5).output
+(not a == 6).output
+(a == a).output
+(a == b).output
+(a == c).output
+(not a == d).output
+(not a == e).output
+
+'\n'.output
+
+(a == 5).output
+(not a == 6).output
+(a == a).output
+(a == b).output
+(a == c).output
+(not a == d).output
+(a != e).output
+
+'\n'.output
+
+(c == 5).output
+(not c == 6).output
+(c == a).output
+(c == b).output
+(c == c).output
+(not c == d).output
+(not c == e).output
+
+'\n'.output
+
+(c == 5).output
+(not c == 6).output
+(c == a).output
+(c == b).output
+(c == c).output
+(not c == d).output
+(c != e).output
+
diff --git a/tests/base_eq_int2.sav b/tests/base_eq_int2.sav
new file mode 100644 (file)
index 0000000..190fc32
--- /dev/null
@@ -0,0 +1,62 @@
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+
+
+true
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_gen.nit b/tests/base_gen.nit
new file mode 100644 (file)
index 0000000..0df5b69
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+       meth i_to_s(i: Int)
+       do
+               i.output
+       end
+end
+
+class A
+       init do end
+end
+
+class Int
+       meth output is intern
+       meth +(i: Int): Int is intern
+end
+
+class B
+special A
+       redef meth i_to_s(i: Int)
+       do
+               (i+1).output
+       end
+
+       redef init do end
+end
+
+class G[E: Object]
+       meth i_to_s2(a: E, i: Int)
+       do
+               a.i_to_s(i)
+       end
+
+       init do end
+end
+
+var a = new A
+var b = new B
+var g = new G[Object]
+var h = new G[B]
+a.i_to_s(10)
+b.i_to_s(20)
+g.i_to_s2(a,30)
+g.i_to_s2(b,40)
+#alt1#h.i_to_s2(a,50)
+h.i_to_s2(b,60)
diff --git a/tests/base_gen.sav b/tests/base_gen.sav
new file mode 100644 (file)
index 0000000..42eebe3
--- /dev/null
@@ -0,0 +1,5 @@
+10
+21
+30
+41
+61
diff --git a/tests/base_gen_alt1.sav b/tests/base_gen_alt1.sav
new file mode 100644 (file)
index 0000000..8be7508
--- /dev/null
@@ -0,0 +1 @@
+alt/base_gen_alt1.nit:62,1--14: Type error: expected B, got A
diff --git a/tests/base_gen_f.nit b/tests/base_gen_f.nit
new file mode 100644 (file)
index 0000000..57d0c70
--- /dev/null
@@ -0,0 +1,46 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class G[E: G[E]]
+       meth ide(e: E): E
+       do
+               return e
+       end
+       meth foo is abstract
+end
+
+class G1
+special G[G1]
+       redef meth foo
+       do
+               1.output
+       end
+
+       init init_g1 do end
+end
+
+class G2
+special G[G2]
+       redef meth foo
+       do
+               2.output
+       end
+
+       init init_g2 do end
+end
+
diff --git a/tests/base_gen_f.sav b/tests/base_gen_f.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_gen_int.nit b/tests/base_gen_int.nit
new file mode 100644 (file)
index 0000000..2165e0f
--- /dev/null
@@ -0,0 +1,57 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+       meth i_to_s(i: Int)
+       do
+               i.output
+       end
+end
+
+class A
+       init do end
+end
+
+class Int
+       meth output is intern
+       meth +(i: Int): Int is intern
+       redef meth i_to_s(i: Int)
+       do
+               (self+i).output
+       end
+end
+
+class G[E: Object]
+       meth i_to_s2(a: E, i: Int)
+       do
+               a.i_to_s(i)
+       end
+
+       init do end
+end
+
+var a = new A
+var b = 1
+var g = new G[Object]
+var h = new G[Int]
+a.i_to_s(10)
+b.i_to_s(20)
+g.i_to_s2(a,30)
+g.i_to_s2(b,40)
+#alt1#h.i_to_s2(a,50)
+h.i_to_s2(b,60)
diff --git a/tests/base_gen_int.sav b/tests/base_gen_int.sav
new file mode 100644 (file)
index 0000000..42eebe3
--- /dev/null
@@ -0,0 +1,5 @@
+10
+21
+30
+41
+61
diff --git a/tests/base_gen_int_alt1.sav b/tests/base_gen_int_alt1.sav
new file mode 100644 (file)
index 0000000..9c39e7b
--- /dev/null
@@ -0,0 +1 @@
+alt/base_gen_int_alt1.nit:56,1--14: Type error: expected Int, got A
diff --git a/tests/base_if_expr.nit b/tests/base_if_expr.nit
new file mode 100644 (file)
index 0000000..9a5e117
--- /dev/null
@@ -0,0 +1,53 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init do end
+       redef meth output do 'A'.output
+end
+
+meth max(a: Int, b: Int): Int do return if a > b then a else b
+
+var x = if true then 1 else 0
+x.output
+
+max(1,2).output
+max(2,2).output
+max(2,1).output
+
+var o: Object = 1
+var y = if true then new A else o
+y.output
+var y2 = if true then o else new A
+var y3 = if true then null else new A
+var y4 = if true then new A else null
+#alt1# var y5 = if true then new A else 1
+
+var z = 0
+while z <=4 do
+       var i = if z < 2 then
+               if z == 0 then 'a'
+               else 'b'
+       else
+               if z == 2 then 'c'
+               else 'd'
+       i.output
+       z = z + 1
+end
+'\n'.output
+
diff --git a/tests/base_if_expr.sav b/tests/base_if_expr.sav
new file mode 100644 (file)
index 0000000..6ee2937
--- /dev/null
@@ -0,0 +1,5 @@
+1
+2
+2
+2
+Aabcdd
diff --git a/tests/base_if_expr_alt1.sav b/tests/base_if_expr_alt1.sav
new file mode 100644 (file)
index 0000000..522294d
--- /dev/null
@@ -0,0 +1 @@
+alt/base_if_expr_alt1.nit:39,11--35: Type error: Int is not a subtype of A.
diff --git a/tests/base_init_inh.nit b/tests/base_init_inh.nit
new file mode 100644 (file)
index 0000000..f67f2c1
--- /dev/null
@@ -0,0 +1,58 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init do
+               'A'.output
+       end
+end
+
+class B
+special A
+       init(s: Char) do
+               'B'.output
+               '['.output
+               super 
+               ']'.output
+               s.output
+       end
+end
+
+class C
+special B
+       init(s) do
+               'C'.output
+               '['.output
+               super 
+               ']'.output
+       end
+end
+
+class D
+special C
+       init(s) do super
+end
+
+var a = new A
+'\n'.output
+var b = new B('.')
+'\n'.output
+var c = new C('.')
+'\n'.output
+var d = new D('.')
+'\n'.output
diff --git a/tests/base_init_inh.sav b/tests/base_init_inh.sav
new file mode 100644 (file)
index 0000000..a353090
--- /dev/null
@@ -0,0 +1,4 @@
+A
+B[A].
+C[B[A].]
+C[B[A].]
diff --git a/tests/base_init_linext.nit b/tests/base_init_linext.nit
new file mode 100644 (file)
index 0000000..0503278
--- /dev/null
@@ -0,0 +1,129 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init inita do
+               'A'.output
+               ' '.output
+       end
+       meth work do '\n'.output
+end
+
+class B
+special A
+       init initb do
+               'B'.output
+               '1'.output
+               ' '.output
+               inita
+               'B'.output
+               '2'.output
+               ' '.output
+       end
+end
+
+class C
+special A
+       init initc do
+               'C'.output
+               '1'.output
+               ' '.output
+               inita
+               'C'.output
+               '2'.output
+               ' '.output
+       end
+end
+
+class D
+special B
+special C
+       init initd do
+               'D'.output
+               '0'.output
+               ' '.output
+#alt1#         inita
+#alt3#         inita
+#alt5#         inita
+#alt7#         inita
+#alt9#         inita
+#alt11#                inita
+#alt13#                inita
+#alt15#                inita
+               'D'.output
+               '1'.output
+               ' '.output
+#alt2#         initb
+#alt3#         initb
+#alt6#         initb
+#alt7#         initb
+#alt10#                initb
+#alt11#                initb
+#alt14#                initb
+#alt15#                initb
+               'D'.output
+               '2'.output
+               ' '.output
+#alt4#         initc
+#alt5#         initc
+#alt6#         initc
+#alt7#         initc
+#alt12#                initc
+#alt13#                initc
+#alt14#                initc
+#alt15#                initc
+               'D'.output
+               '3'.output
+               ' '.output
+#alt8#         inite
+#alt9#         inite
+#alt10#                inite
+#alt11#                inite
+#alt12#                inite
+#alt13#                inite
+#alt14#                inite
+#alt15#                inite
+               'D'.output
+               '4'.output
+               ' '.output
+       end
+
+       init inite do
+               'E'.output
+               '1'.output
+               ' '.output
+               inita
+               'E'.output
+               '2'.output
+               ' '.output
+               initb
+               'E'.output
+               '3'.output
+               ' '.output
+               initc
+               'E'.output
+               '4'.output
+               ' '.output
+       end
+end
+
+#alt0#(new A.inita).work
+#alt0#(new B.initb).work
+#alt0#(new C.initc).work
+(new D.initd).work
+#alt0#(new D.inite).work
diff --git a/tests/base_init_linext.sav b/tests/base_init_linext.sav
new file mode 100644 (file)
index 0000000..6f74ed3
--- /dev/null
@@ -0,0 +1 @@
+B1 A B2 C1 C2 D0 D1 D2 D3 D4 
diff --git a/tests/base_init_linext2.nit b/tests/base_init_linext2.nit
new file mode 100644 (file)
index 0000000..624aa6f
--- /dev/null
@@ -0,0 +1,122 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init inita do
+               'A'.output
+               ' '.output
+       end
+       init init_par(c: Char) do
+               'A'.output
+               '2'.output
+               c.output
+               ' '.output
+       end
+       init init_par3(c: Char) do
+               'A'.output
+               '3'.output
+               c.output
+               ' '.output
+       end
+       meth work do '\n'.output
+end
+
+class B
+special A
+       init initb do
+               'B'.output
+               '1'.output
+               ' '.output
+               inita
+               'B'.output
+               '2'.output
+               ' '.output
+       end
+       init init_par do
+               'B'.output
+               '3'.output
+               ' '.output
+       end
+       init init_par2(c: Char) do
+               'B'.output
+               '4'.output
+               c.output
+               ' '.output
+       end
+end
+
+class C
+special A
+       init initc do
+               'C'.output
+               '1'.output
+               ' '.output
+               inita
+               'C'.output
+               '2'.output
+               ' '.output
+       end
+       init init_par(c: Char)
+       do
+               'C'.output
+               '3'.output
+               c.output
+               ' '.output
+       end
+       init init_par3(c: Char)
+       do
+               'C'.output
+               '4'.output
+               c.output
+               ' '.output
+               super
+               'C'.output
+               '5'.output
+               ' '.output
+       end
+end
+
+class D
+special B
+special C
+       init initd do
+#alt1#         super
+               'D'.output
+               '1'.output
+               ' '.output
+#alt4#         initc
+               initb #!alt2#
+               'D'.output
+               '2'.output
+               ' '.output
+#alt5#         initb
+#alt3#         initc
+               'D'.output
+               '3'.output
+               ' '.output
+       end
+end
+
+(new A.inita).work
+(new A.init_par('x')).work
+(new B.initb).work
+(new B.init_par).work
+(new B.init_par2('y')).work
+(new C.initc).work
+(new C.init_par('z')).work
+(new D.initd).work
diff --git a/tests/base_init_linext2.sav b/tests/base_init_linext2.sav
new file mode 100644 (file)
index 0000000..c12605c
--- /dev/null
@@ -0,0 +1,8 @@
+A 
+A2x 
+B1 A B2 
+A B3 
+A B4y 
+C1 A C2 
+A2z C3z 
+D1 B1 A B2 C1 C2 D2 D3 
diff --git a/tests/base_init_linext2_alt1.sav b/tests/base_init_linext2_alt1.sav
new file mode 100644 (file)
index 0000000..ba321e3
--- /dev/null
@@ -0,0 +1 @@
+alt/base_init_linext2_alt1.nit:98,3--7: Error: No contructor named initd in superclasses.
diff --git a/tests/base_init_linext2_alt2.sav b/tests/base_init_linext2_alt2.sav
new file mode 100644 (file)
index 0000000..53abc6b
--- /dev/null
@@ -0,0 +1 @@
+alt/base_init_linext2_alt2.nit:81,2--94:12: Error: Conflicting default constructor to call for B: initb, init_par, init_par2.
diff --git a/tests/base_init_linext2_alt3.sav b/tests/base_init_linext2_alt3.sav
new file mode 100644 (file)
index 0000000..924b31d
--- /dev/null
@@ -0,0 +1,8 @@
+A 
+A2x 
+B1 A B2 
+A B3 
+A B4y 
+C1 A C2 
+A2z C3z 
+D1 B1 A B2 D2 C1 C2 D3 
diff --git a/tests/base_init_linext2_alt4.sav b/tests/base_init_linext2_alt4.sav
new file mode 100644 (file)
index 0000000..ebdd308
--- /dev/null
@@ -0,0 +1,2 @@
+alt/base_init_linext2_alt4.nit:103,3--7: Error: Constructor of B must be invoked before constructor of C
+alt/base_init_linext2_alt4.nit:97,2--111:12: Error: Conflicting default constructor to call for B: initb, init_par, init_par2.
diff --git a/tests/base_init_linext2_alt5.sav b/tests/base_init_linext2_alt5.sav
new file mode 100644 (file)
index 0000000..fe48c02
--- /dev/null
@@ -0,0 +1 @@
+alt/base_init_linext2_alt5.nit:107,3--7: Error: Only one super constructor invocation of class B is allowed.
diff --git a/tests/base_init_linext_alt0.sav b/tests/base_init_linext_alt0.sav
new file mode 100644 (file)
index 0000000..90938b0
--- /dev/null
@@ -0,0 +1,5 @@
+A 
+B1 A B2 
+C1 A C2 
+B1 A B2 C1 C2 D0 D1 D2 D3 D4 
+E1 A E2 B1 B2 E3 C1 C2 E4 
diff --git a/tests/base_init_linext_alt1.sav b/tests/base_init_linext_alt1.sav
new file mode 100644 (file)
index 0000000..04e3275
--- /dev/null
@@ -0,0 +1 @@
+D0 A B1 B2 C1 C2 D1 D2 D3 D4 
diff --git a/tests/base_init_linext_alt10.sav b/tests/base_init_linext_alt10.sav
new file mode 100644 (file)
index 0000000..683e93c
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 B1 A B2 D2 D3 E1 E2 E3 C1 C2 E4 D4 
diff --git a/tests/base_init_linext_alt11.sav b/tests/base_init_linext_alt11.sav
new file mode 100644 (file)
index 0000000..edef552
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 B1 B2 D2 D3 E1 E2 E3 C1 C2 E4 D4 
diff --git a/tests/base_init_linext_alt12.sav b/tests/base_init_linext_alt12.sav
new file mode 100644 (file)
index 0000000..a92a06b
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 D2 C1 A C2 D3 E1 E2 B1 B2 E3 E4 D4 
diff --git a/tests/base_init_linext_alt13.sav b/tests/base_init_linext_alt13.sav
new file mode 100644 (file)
index 0000000..cea7bbd
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 D2 C1 C2 D3 E1 E2 B1 B2 E3 E4 D4 
diff --git a/tests/base_init_linext_alt14.sav b/tests/base_init_linext_alt14.sav
new file mode 100644 (file)
index 0000000..ce9cfc0
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 B1 A B2 D2 C1 C2 D3 E1 E2 E3 E4 D4 
diff --git a/tests/base_init_linext_alt15.sav b/tests/base_init_linext_alt15.sav
new file mode 100644 (file)
index 0000000..d48d0e2
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 B1 B2 D2 C1 C2 D3 E1 E2 E3 E4 D4 
diff --git a/tests/base_init_linext_alt2.sav b/tests/base_init_linext_alt2.sav
new file mode 100644 (file)
index 0000000..0d383df
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 B1 A B2 C1 C2 D2 D3 D4 
diff --git a/tests/base_init_linext_alt3.sav b/tests/base_init_linext_alt3.sav
new file mode 100644 (file)
index 0000000..539f8ad
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 B1 B2 C1 C2 D2 D3 D4 
diff --git a/tests/base_init_linext_alt4.sav b/tests/base_init_linext_alt4.sav
new file mode 100644 (file)
index 0000000..2aa8b4e
--- /dev/null
@@ -0,0 +1 @@
+B1 A B2 D0 D1 D2 C1 C2 D3 D4 
diff --git a/tests/base_init_linext_alt5.sav b/tests/base_init_linext_alt5.sav
new file mode 100644 (file)
index 0000000..7883af4
--- /dev/null
@@ -0,0 +1 @@
+D0 A B1 B2 D1 D2 C1 C2 D3 D4 
diff --git a/tests/base_init_linext_alt6.sav b/tests/base_init_linext_alt6.sav
new file mode 100644 (file)
index 0000000..ce5e04a
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 B1 A B2 D2 C1 C2 D3 D4 
diff --git a/tests/base_init_linext_alt7.sav b/tests/base_init_linext_alt7.sav
new file mode 100644 (file)
index 0000000..c075e86
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 B1 B2 D2 C1 C2 D3 D4 
diff --git a/tests/base_init_linext_alt8.sav b/tests/base_init_linext_alt8.sav
new file mode 100644 (file)
index 0000000..305d19c
--- /dev/null
@@ -0,0 +1 @@
+D0 D1 D2 D3 E1 A E2 B1 B2 E3 C1 C2 E4 D4 
diff --git a/tests/base_init_linext_alt9.sav b/tests/base_init_linext_alt9.sav
new file mode 100644 (file)
index 0000000..322c6ab
--- /dev/null
@@ -0,0 +1 @@
+D0 A D1 D2 D3 E1 E2 B1 B2 E3 C1 C2 E4 D4 
diff --git a/tests/base_init_linext_raf.nit b/tests/base_init_linext_raf.nit
new file mode 100644 (file)
index 0000000..9d9dfea
--- /dev/null
@@ -0,0 +1,58 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_init_linext
+
+redef class B
+       redef init initb do
+               'b'.output
+               '1'.output
+               ' '.output
+               super
+               'b'.output
+               '2'.output
+               ' '.output
+       end
+end
+
+redef class C
+       redef init initc do
+               'c'.output
+               '1'.output
+               ' '.output
+               super
+               'c'.output
+               '2'.output
+               ' '.output
+       end
+end
+
+redef class D
+       redef init initd do
+               'd'.output
+               '1'.output
+               ' '.output
+               super
+               'd'.output
+               '2'.output
+               ' '.output
+       end
+end
+
+(new A.inita).work
+(new B.initb).work
+(new C.initc).work
+(new D.initd).work
diff --git a/tests/base_init_linext_raf.sav b/tests/base_init_linext_raf.sav
new file mode 100644 (file)
index 0000000..2d4d642
--- /dev/null
@@ -0,0 +1,4 @@
+A 
+b1 B1 A B2 b2 
+c1 C1 A C2 c2 
+d1 b1 B1 A B2 b2 c1 C1 C2 c2 D0 D1 D2 D3 D4 d2 
diff --git a/tests/base_init_raf.nit b/tests/base_init_raf.nit
new file mode 100644 (file)
index 0000000..ea0ba6c
--- /dev/null
@@ -0,0 +1,51 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_init_inh
+
+redef class A
+       redef init
+       do
+               'A'.output
+               '2'.output
+               '['.output
+               super
+               ']'.output
+       end
+end
+
+redef class B
+       redef init(c)
+       do
+               'B'.output
+               '2'.output
+               '['.output
+               super
+               ']'.output
+       end
+end
+
+redef class D
+       redef init(c)
+       do
+               'D'.output
+               '2'.output
+               '['.output
+               super
+               ']'.output
+       end
+end
+
diff --git a/tests/base_init_raf.sav b/tests/base_init_raf.sav
new file mode 100644 (file)
index 0000000..54b58cd
--- /dev/null
@@ -0,0 +1,4 @@
+A2[A]
+B2[B[A2[A]].]
+C[B2[B[A2[A]].]]
+D2[C[B2[B[A2[A]].]]]
diff --git a/tests/base_inline_statement.nit b/tests/base_inline_statement.nit
new file mode 100644 (file)
index 0000000..a7df76d
--- /dev/null
@@ -0,0 +1,60 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+var x: Int
+while x == 0 do x = 2
+while x == 0 do
+       x = 2
+end
+#alt1#while x == 0 do x = 2 end
+while x == 0 do end
+while x == 0 do
+end
+if x == 0 then x = 1 else x = 1
+if x == 0 then x = 1 else
+       x = 1
+end
+if x == 0 then x = 1
+if x == 0 then x = 1 else
+end
+if x == 0 then
+end
+if x == 0 then
+       x = 1
+else
+       x = 1
+end
+if x == 0 then
+else
+       x = 1
+end
+if x == 0 then
+else x = 1
+
+if x == 0 then
+       if x == 0 then x = 0
+else x = 0
+
+if x == 0 then if x == 0 then x = 0
+if x == 0 then if x == 0 then x = 0 else x = 0 
+if x == 0 then if x == 0 then x = 0 else x = 0 else x = 0
+#alt2#if x == 0 then if x == 0 then x = 0 else x = 0 else x = 0 else x = 0
+if x == 0 then if x == 0 then x = 0 else if x == 0 then x = 0 else x = 0
+
+if x == 0 then x = 1
+#alt3#else x = 2
diff --git a/tests/base_inline_statement.sav b/tests/base_inline_statement.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_inline_statement_alt1.sav b/tests/base_inline_statement_alt1.sav
new file mode 100644 (file)
index 0000000..2907158
--- /dev/null
@@ -0,0 +1 @@
+alt/base_inline_statement_alt1.nit:24,23: expecting: EOF
diff --git a/tests/base_inline_statement_alt2.sav b/tests/base_inline_statement_alt2.sav
new file mode 100644 (file)
index 0000000..60b5d23
--- /dev/null
@@ -0,0 +1 @@
+alt/base_inline_statement_alt2.nit:56,59: expecting: EOF
diff --git a/tests/base_inline_statement_alt3.sav b/tests/base_inline_statement_alt3.sav
new file mode 100644 (file)
index 0000000..27a5c2a
--- /dev/null
@@ -0,0 +1 @@
+alt/base_inline_statement_alt3.nit:60,1: expecting: EOF
diff --git a/tests/base_int.nit b/tests/base_int.nit
new file mode 100644 (file)
index 0000000..b6cdbe5
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+redef class Object
+       meth printn(a: Object)
+       do
+               if a == null then
+                       'n'.output
+               else
+                       a.output
+               end
+       end
+end
+
+printn(1)
diff --git a/tests/base_int.sav b/tests/base_int.sav
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/base_isa.nit b/tests/base_isa.nit
new file mode 100644 (file)
index 0000000..0e41f32
--- /dev/null
@@ -0,0 +1,55 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class O
+end
+
+class A
+special O
+       init do end
+end
+
+class U
+end
+
+class B
+special A
+special U
+       redef init do end
+end
+
+var a: Object = new A
+var b: Object = new B
+
+(a isa Object).output
+(a isa O).output
+(a isa A).output
+(not a isa U).output
+(not a isa B).output
+(not a isa Int).output
+(not a isa Comparable).output
+
+'\n'.output
+
+(b isa Object).output
+(b isa O).output
+(b isa A).output
+(b isa U).output
+(b isa B).output
+(not b isa Int).output
+(not b isa Comparable).output
diff --git a/tests/base_isa.sav b/tests/base_isa.sav
new file mode 100644 (file)
index 0000000..b1b808f
--- /dev/null
@@ -0,0 +1,15 @@
+true
+true
+true
+true
+true
+true
+true
+
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_isa_cast.nit b/tests/base_isa_cast.nit
new file mode 100644 (file)
index 0000000..f57511a
--- /dev/null
@@ -0,0 +1,59 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       init do end
+end
+
+class B
+special A
+       meth foo do 0.output
+       init do end
+end
+
+class C
+special B
+       meth bar do 1.output
+       init do end
+end
+
+var a: A = new C
+#alt5# a = new B
+#alt6# a = new A
+if a isa B then
+       a.foo
+       if a isa C then
+               a.bar
+       end
+#alt1# a.bar
+       a.foo
+else
+#alt2# a.foo
+end
+#alt3#a.foo
+
+if a isa B and a == a then
+       a.foo
+end
+
+if a isa B or a == a then
+#alt4# a.foo
+end
+
+assert a isa B
+a.foo
diff --git a/tests/base_isa_cast.sav b/tests/base_isa_cast.sav
new file mode 100644 (file)
index 0000000..6473747
--- /dev/null
@@ -0,0 +1,5 @@
+0
+1
+0
+0
+0
diff --git a/tests/base_isa_cast_alt1.sav b/tests/base_isa_cast_alt1.sav
new file mode 100644 (file)
index 0000000..012e5b5
--- /dev/null
@@ -0,0 +1 @@
+alt/base_isa_cast_alt1.nit:43,2--6: Error: Method 'bar' doesn't exists in B.
diff --git a/tests/base_isa_cast_alt2.sav b/tests/base_isa_cast_alt2.sav
new file mode 100644 (file)
index 0000000..c0aaadf
--- /dev/null
@@ -0,0 +1 @@
+alt/base_isa_cast_alt2.nit:46,2--6: Error: Method 'foo' doesn't exists in A.
diff --git a/tests/base_isa_cast_alt3.sav b/tests/base_isa_cast_alt3.sav
new file mode 100644 (file)
index 0000000..becbea3
--- /dev/null
@@ -0,0 +1 @@
+alt/base_isa_cast_alt3.nit:48,1--5: Error: Method 'foo' doesn't exists in A.
diff --git a/tests/base_isa_cast_alt4.sav b/tests/base_isa_cast_alt4.sav
new file mode 100644 (file)
index 0000000..910ae2f
--- /dev/null
@@ -0,0 +1 @@
+alt/base_isa_cast_alt4.nit:55,2--6: Error: Method 'foo' doesn't exists in A.
diff --git a/tests/base_isa_cast_alt5.sav b/tests/base_isa_cast_alt5.sav
new file mode 100644 (file)
index 0000000..44e0be8
--- /dev/null
@@ -0,0 +1,4 @@
+0
+0
+0
+0
diff --git a/tests/base_isa_cast_alt6.sav b/tests/base_isa_cast_alt6.sav
new file mode 100644 (file)
index 0000000..e74a435
--- /dev/null
@@ -0,0 +1,4 @@
+Assert failed: alt/base_isa_cast_alt6.nit:58,1--14
+,---- Stack trace -- - -  -
+| base_isa_cast_alt6::Sys::main (alt/base_isa_cast_alt6.nit:35,1--59:5)
+`------------------- - -  -
diff --git a/tests/base_isa_nil.nit b/tests/base_isa_nil.nit
new file mode 100644 (file)
index 0000000..ec90a06
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+
+       init do end
+end
+
+class B
+
+       init do end
+end
+
+var a: Object
+var a = new A
+var b = new B
+(a isa A).output
+(a isa Object).output
+(not a isa B).output
+a = null
+(a isa A).output
+(a isa Object).output
+(a isa B).output
diff --git a/tests/base_isa_nil.sav b/tests/base_isa_nil.sav
new file mode 100644 (file)
index 0000000..5ec39bb
--- /dev/null
@@ -0,0 +1,6 @@
+true
+true
+true
+true
+true
+true
diff --git a/tests/base_once.nit b/tests/base_once.nit
new file mode 100644 (file)
index 0000000..2e95c75
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+var i = 5
+var j = 0
+while i < 10 do
+       i = i + 1
+       j = once i
+end
+j.output
diff --git a/tests/base_once.sav b/tests/base_once.sav
new file mode 100644 (file)
index 0000000..1e8b314
--- /dev/null
@@ -0,0 +1 @@
+6
diff --git a/tests/base_primitive.nit b/tests/base_primitive.nit
new file mode 100644 (file)
index 0000000..57ef32c
--- /dev/null
@@ -0,0 +1,68 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+redef class Object
+       meth foo(i: Int)
+       do
+               0.output
+       end
+end
+
+redef class Int
+       redef meth foo(i: Int)
+       do
+               (-i).output
+       end
+end
+
+class A
+       redef meth foo(i: Int)
+       do
+               i.output
+       end
+       meth bar(i: Int)
+       do
+               (i*10).output
+       end
+
+       init do end
+end
+
+class B
+special A
+       redef meth bar(i: Int)
+       do
+               (i*100).output
+       end
+
+       redef init do end
+end
+
+var a = new A
+var b = new B
+var i = 5
+var aa: Object
+a.foo(1)
+i.foo(2)
+aa = a
+aa.foo(3)
+aa = i
+aa.foo(4)
+a.bar(5)
+a = b
+a.bar(6)
diff --git a/tests/base_primitive.sav b/tests/base_primitive.sav
new file mode 100644 (file)
index 0000000..b6096d1
--- /dev/null
@@ -0,0 +1,6 @@
+1
+-2
+3
+-4
+50
+600
diff --git a/tests/base_prot.nit b/tests/base_prot.nit
new file mode 100644 (file)
index 0000000..f7eba89
--- /dev/null
@@ -0,0 +1,37 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth pub do 0.output
+       protected meth pro do 1.output
+       private meth pri do 2.output
+       init do end
+end
+
+class O1
+       meth o
+       do
+               var a = new A
+               a.pub
+               a.pro
+               a.pri
+       end
+       init do end
+end
+
+(new O1).o
diff --git a/tests/base_prot.sav b/tests/base_prot.sav
new file mode 100644 (file)
index 0000000..4539bbf
--- /dev/null
@@ -0,0 +1,3 @@
+0
+1
+2
diff --git a/tests/base_prot2.nit b/tests/base_prot2.nit
new file mode 100644 (file)
index 0000000..02d15e5
--- /dev/null
@@ -0,0 +1,47 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+private import base_prot
+
+class A2
+special A
+       meth o
+       do
+               pub
+               pro
+               #alt1#pri
+       end
+       init do end
+end
+
+class O2
+       meth o
+       do
+               var a = new A
+               a.pub
+               #alt2#a.pro
+               #alt3#a.pri
+
+               var a2 = new A2
+               a2.o
+               a2.pub
+               #alt4#a2.pro
+               #alt5#a2.pri
+       end
+       init do end
+end
+
+(new O2).o
diff --git a/tests/base_prot2.sav b/tests/base_prot2.sav
new file mode 100644 (file)
index 0000000..3dbd404
--- /dev/null
@@ -0,0 +1,4 @@
+0
+0
+1
+0
diff --git a/tests/base_prot2_alt1.sav b/tests/base_prot2_alt1.sav
new file mode 100644 (file)
index 0000000..2e15f3a
--- /dev/null
@@ -0,0 +1 @@
+alt/base_prot2_alt1.nit:25,3--5: Visibility error: Property base_prot::A::pri is private.
diff --git a/tests/base_prot2_alt2.sav b/tests/base_prot2_alt2.sav
new file mode 100644 (file)
index 0000000..55c385d
--- /dev/null
@@ -0,0 +1 @@
+alt/base_prot2_alt2.nit:35,3--7: Visibility error: Property base_prot::A::pro is protected and can only acceded by self.
diff --git a/tests/base_prot2_alt3.sav b/tests/base_prot2_alt3.sav
new file mode 100644 (file)
index 0000000..f24464d
--- /dev/null
@@ -0,0 +1 @@
+alt/base_prot2_alt3.nit:36,3--7: Visibility error: Property base_prot::A::pri is private.
diff --git a/tests/base_prot2_alt4.sav b/tests/base_prot2_alt4.sav
new file mode 100644 (file)
index 0000000..44bc124
--- /dev/null
@@ -0,0 +1 @@
+alt/base_prot2_alt4.nit:41,3--8: Visibility error: Property base_prot::A::pro is protected and can only acceded by self.
diff --git a/tests/base_prot2_alt5.sav b/tests/base_prot2_alt5.sav
new file mode 100644 (file)
index 0000000..41b4a28
--- /dev/null
@@ -0,0 +1 @@
+alt/base_prot2_alt5.nit:42,3--8: Visibility error: Property base_prot::A::pri is private.
diff --git a/tests/base_prot3.nit b/tests/base_prot3.nit
new file mode 100644 (file)
index 0000000..3f70aee
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+private import base_prot2
+intrude import base_prot
+
+class O3
+       meth o
+       do
+               var a = new A
+               a.pub
+               a.pro
+               a.pri
+       end
+       init do end
+end
+
+(new O3).o
+
diff --git a/tests/base_prot3.sav b/tests/base_prot3.sav
new file mode 100644 (file)
index 0000000..4539bbf
--- /dev/null
@@ -0,0 +1,3 @@
+0
+1
+2
diff --git a/tests/base_sig_inh.nit b/tests/base_sig_inh.nit
new file mode 100644 (file)
index 0000000..ab04209
--- /dev/null
@@ -0,0 +1,53 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth f0 is abstract
+       meth f1(a,b: Int) is abstract 
+       meth f2(a,b: Int) is abstract
+       meth f3(a,b: Int): Int is abstract
+       meth f4: Int is abstract
+end
+
+class B
+special A
+       redef meth f0 do 0.output
+       redef meth f1(a: Int, b: Int) do (a+b).output
+       redef meth f2(a,b) do (a+b).output
+       redef meth f3(a,b) do return a+b
+       redef meth f4 do return 4
+       init do end
+end
+
+
+meth m1 do 1.output
+meth m2(a:Int) do a.output
+meth m3(a,b:Int) do (a+b).output
+#alt1#meth e1(a,b:Int...) do (a.first).output
+
+m1
+m2(2)
+m3(1,2)
+#alt1#e1(4,5)
+
+var b = new B
+b.f0
+b.f1(0,1)
+b.f2(1,1)
+b.f3(1,2).output
+b.f4.output
diff --git a/tests/base_sig_inh.sav b/tests/base_sig_inh.sav
new file mode 100644 (file)
index 0000000..6432b03
--- /dev/null
@@ -0,0 +1,8 @@
+1
+2
+3
+0
+1
+2
+3
+4
diff --git a/tests/base_simple.nit b/tests/base_simple.nit
new file mode 100644 (file)
index 0000000..a9f1afd
--- /dev/null
@@ -0,0 +1,64 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+end
+
+class Int
+       meth output is intern
+end
+
+class A
+       meth foo(i: Int)
+       do
+               i.output
+               i.output
+       end
+       meth bar(i: Int)
+       do
+               0.output
+       end
+
+       init
+       do
+       end
+end
+
+class B
+special A
+       redef meth bar(i: Int)
+       do
+               i.output
+               i.output
+               i.output
+       end
+       meth this_is_a_dead_method
+       do
+               0.output
+       end
+
+       redef init
+       do
+               1.output
+       end
+end
+
+var a = new A  # A simple construction
+a = new B      # A complex construction
+a.foo(2)       # A monormphic call
+a.bar(3)       # A polymorphic call
diff --git a/tests/base_simple.sav b/tests/base_simple.sav
new file mode 100644 (file)
index 0000000..f799204
--- /dev/null
@@ -0,0 +1,6 @@
+1
+2
+2
+3
+3
+3
diff --git a/tests/base_simple2.nit b/tests/base_simple2.nit
new file mode 100644 (file)
index 0000000..1d23616
--- /dev/null
@@ -0,0 +1,82 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+end
+
+class Int
+       meth output is intern
+end
+
+class A
+       meth foo(i: Int)
+       do
+               i.output
+               i.output
+       end
+       meth bar(i: Int)
+       do
+               0.output
+       end
+       meth baz(a: A)
+       do
+               0.output
+       end
+
+       init
+       do
+       end
+end
+
+class B
+special A
+       redef meth bar(i: Int)
+       do
+               i.output
+               i.output
+               i.output
+       end
+
+       redef meth baz(a: A)
+       do
+               4.output
+       end
+
+       meth this_is_a_dead_method
+       do
+               0.output
+       end
+
+       redef init
+       do
+               1.output
+       end
+end
+
+class Sys
+       meth foo(a: A)
+       do
+               a.baz(a)
+       end
+end
+
+var a = new A  # A simple construction
+a = new B      # A complex construction
+a.foo(2)       # A monormphic call
+a.bar(3)       # A polymorphic call
+self.foo(a)    # A non null call 
diff --git a/tests/base_simple2.sav b/tests/base_simple2.sav
new file mode 100644 (file)
index 0000000..2b08553
--- /dev/null
@@ -0,0 +1,7 @@
+1
+2
+2
+3
+3
+3
+4
diff --git a/tests/base_super_linext.nit b/tests/base_super_linext.nit
new file mode 100644 (file)
index 0000000..f4da116
--- /dev/null
@@ -0,0 +1,86 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth work do
+               foo
+               '\n'.output
+               bar.output
+               '\n'.output
+       end
+       meth foo do 'A'.output
+       meth bar: Char do return 'A'
+       init do end
+end
+
+class B
+special A
+       redef meth foo
+       do
+               'B'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'B'
+       end
+       init do end
+end
+
+class C
+special A
+       redef meth foo
+       do
+               'C'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'C'
+       end
+       init do end
+end
+
+class D
+special B
+special C
+       redef meth foo
+       do
+               'D'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'D'
+       end
+       init do end
+end
+
+(new A).work
+(new B).work
+(new C).work
+(new D).work
diff --git a/tests/base_super_linext.sav b/tests/base_super_linext.sav
new file mode 100644 (file)
index 0000000..c50fdf1
--- /dev/null
@@ -0,0 +1,8 @@
+A
+A
+B[A]
+AB
+C[A]
+AC
+D[B[C[A]]]
+ACBD
diff --git a/tests/base_super_linext_raf.nit b/tests/base_super_linext_raf.nit
new file mode 100644 (file)
index 0000000..6f8fb74
--- /dev/null
@@ -0,0 +1,77 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_super_linext
+
+redef class A
+       redef meth foo
+       do
+               'a'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'a'
+       end
+end
+
+redef class B
+       redef meth foo
+       do
+               'b'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'b'
+       end
+end
+
+redef class C
+       redef meth foo
+       do
+               'c'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'c'
+       end
+end
+
+redef class D
+       redef meth foo
+       do
+               'd'.output
+               '['.output
+               super
+               ']'.output
+       end
+       redef meth bar
+       do 
+               super.output
+               return 'd'
+       end
+end
diff --git a/tests/base_super_linext_raf.sav b/tests/base_super_linext_raf.sav
new file mode 100644 (file)
index 0000000..e9742a5
--- /dev/null
@@ -0,0 +1,8 @@
+a[A]
+Aa
+b[B[a[A]]]
+AaBb
+c[C[a[A]]]
+AaCc
+d[D[b[B[c[C[a[A]]]]]]]
+AaCcBbDd
diff --git a/tests/base_virtual_type.nit b/tests/base_virtual_type.nit
new file mode 100644 (file)
index 0000000..9f1023a
--- /dev/null
@@ -0,0 +1,44 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       type E: T
+       
+       readable writable attr _e: E
+end
+
+class B
+special A
+       init do end
+end
+
+class T
+       meth foo do 0.output
+       init do end
+end
+
+var b = new B
+var t = new T
+var i = 2
+var t2 = b.e
+#alt1#i = b.e
+#alt2#b.e = i
+b.e = t2
+b.e = t
+#alt3#b.e = b
+b.e.foo
diff --git a/tests/base_virtual_type.sav b/tests/base_virtual_type.sav
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/base_virtual_type2.nit b/tests/base_virtual_type2.nit
new file mode 100644 (file)
index 0000000..0d56676
--- /dev/null
@@ -0,0 +1,48 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       type E: T
+       
+       readable writable attr _e: E
+end
+
+class B
+special A
+       init do end
+end
+
+class T
+       meth foo do 0.output
+       init do end
+end
+
+class U
+special T
+       redef meth foo do 1.output
+       init do end
+end
+
+var b = new B
+var t: T
+var u = new U
+
+b.e = u
+#alt1#u = b.e
+t = b.e
+b.e.foo
diff --git a/tests/base_virtual_type2.sav b/tests/base_virtual_type2.sav
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/base_virtual_type2_alt1.sav b/tests/base_virtual_type2_alt1.sav
new file mode 100644 (file)
index 0000000..c6a327d
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type2_alt1.nit:46,1--7: Type error: expected U, got T
diff --git a/tests/base_virtual_type3.nit b/tests/base_virtual_type3.nit
new file mode 100644 (file)
index 0000000..0f33aa8
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_virtual_type2
+import array
+
+class C
+special A
+       readable writable attr _tab: Array[E]
+       init do end
+end
+
+var c = new C
+c.tab = new Array[T]
+c.tab.add(new U)
+c.tab.first.foo
+
+var i = 2
+#alt1#i = c.tab.first
diff --git a/tests/base_virtual_type3.sav b/tests/base_virtual_type3.sav
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/base_virtual_type3_alt1.sav b/tests/base_virtual_type3_alt1.sav
new file mode 100644 (file)
index 0000000..447a3f1
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type3_alt1.nit:32,1--15: Type error: expected Int, got T
diff --git a/tests/base_virtual_type4.nit b/tests/base_virtual_type4.nit
new file mode 100644 (file)
index 0000000..133d9ee
--- /dev/null
@@ -0,0 +1,26 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_virtual_type2
+
+redef class A
+       redef type E: U
+end
+
+var c = new B
+#alt1# c.e = new T
+c.e = new U
+c.e.foo
diff --git a/tests/base_virtual_type4.sav b/tests/base_virtual_type4.sav
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/base_virtual_type4_alt1.sav b/tests/base_virtual_type4_alt1.sav
new file mode 100644 (file)
index 0000000..f9796d8
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type4_alt1.nit:24,2--12: Type error: expected U, got T
diff --git a/tests/base_virtual_type5.nit b/tests/base_virtual_type5.nit
new file mode 100644 (file)
index 0000000..8d25f7c
--- /dev/null
@@ -0,0 +1,29 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_virtual_type2
+
+class C
+special A
+       redef type E: U
+       init do end
+end
+
+var c = new C
+#alt1#c.e = 4
+#alt2#c.e = new T
+c.e = new U
+c.e.foo
diff --git a/tests/base_virtual_type5.sav b/tests/base_virtual_type5.sav
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/base_virtual_type5_alt1.sav b/tests/base_virtual_type5_alt1.sav
new file mode 100644 (file)
index 0000000..14eee4e
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type5_alt1.nit:26,1--7: Type error: expected U, got Int
diff --git a/tests/base_virtual_type5_alt2.sav b/tests/base_virtual_type5_alt2.sav
new file mode 100644 (file)
index 0000000..3bc0367
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type5_alt2.nit:27,1--11: Type error: expected U, got T
diff --git a/tests/base_virtual_type6.nit b/tests/base_virtual_type6.nit
new file mode 100644 (file)
index 0000000..2f092ef
--- /dev/null
@@ -0,0 +1,40 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class G[E]
+       type F: E
+       type F2: F
+
+       readable writable attr _e: E
+       readable writable attr _f: F
+       readable writable attr _f2: F2
+
+       init do end
+end
+
+var gi = new G[Int]
+
+gi.e = 1 + gi.e
+gi.e = 1 + gi.f
+gi.e = 1 + gi.f2
+gi.f = 1 + gi.e
+gi.f = 1 + gi.f
+gi.f = 1 + gi.f2
+gi.f2 = 1 + gi.e
+gi.f2 = 1 + gi.f
+gi.f2 = 1 + gi.f2
diff --git a/tests/base_virtual_type6.sav b/tests/base_virtual_type6.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/base_virtual_type7.nit b/tests/base_virtual_type7.nit
new file mode 100644 (file)
index 0000000..f426cab
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       type E: F
+       type F: E
+       readable writable attr _e: E
+       init do end
+end
+
+var a = new A
+a.e = a.e + 1
diff --git a/tests/base_virtual_type7.sav b/tests/base_virtual_type7.sav
new file mode 100644 (file)
index 0000000..7d0142c
--- /dev/null
@@ -0,0 +1 @@
+./base_virtual_type7.nit:20,10--10: Type error: circular definition in formal type F.
diff --git a/tests/base_virtual_type_alt1.sav b/tests/base_virtual_type_alt1.sav
new file mode 100644 (file)
index 0000000..bc14863
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type_alt1.nit:39,1--7: Type error: expected Int, got T
diff --git a/tests/base_virtual_type_alt2.sav b/tests/base_virtual_type_alt2.sav
new file mode 100644 (file)
index 0000000..9bf3325
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type_alt2.nit:40,1--7: Type error: expected T, got Int
diff --git a/tests/base_virtual_type_alt3.sav b/tests/base_virtual_type_alt3.sav
new file mode 100644 (file)
index 0000000..8d06fe8
--- /dev/null
@@ -0,0 +1 @@
+alt/base_virtual_type_alt3.nit:43,1--7: Type error: expected T, got B
diff --git a/tests/bench_421.nit b/tests/bench_421.nit
new file mode 100644 (file)
index 0000000..91cf80e
--- /dev/null
@@ -0,0 +1,47 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth count_421(n: Int): Int
+# Return the number of steps to come back to 1
+do
+       var steps = 0
+       while n > 1 do
+               steps = steps + 1
+               if n % 2 == 0 then
+                       n = n / 2
+               else
+                       n = n * 3 + 1
+               end
+       end
+       return steps
+end
+
+var n = 10
+if not args.is_empty then
+       n = args.first.to_i
+end
+
+var max_i = 1
+var max_v = 0
+for i in [2..n] do
+       var v = count_421(i)
+       if v >= max_v then
+               max_i = i
+               max_v = v
+       end
+end
+
+print("{max_i}: {max_v}")
diff --git a/tests/bench_421.sav b/tests/bench_421.sav
new file mode 100644 (file)
index 0000000..5079bf7
--- /dev/null
@@ -0,0 +1 @@
+9: 19
diff --git a/tests/bench_421_ref.c b/tests/bench_421_ref.c
new file mode 100644 (file)
index 0000000..4a3df4d
--- /dev/null
@@ -0,0 +1,34 @@
+#include <stdio.h>
+int count_421(int n) {
+       int steps = 0;
+       while (n > 1) {
+               steps++;
+               if (n%2==0)
+                       n /= 2;
+               else
+                       n = n * 3 + 1;
+       }
+       return steps;
+}
+
+int main(int argc, char ** argv) {
+       int n = 10;
+       int i, v;
+       int max_i, max_v;
+       if (argc>1) {
+               n = atoi(argv[1]);
+       }
+       
+       max_i = 1;
+       max_v = 0;
+       for(i=2; i<=n; i++) {
+               v = count_421(i);
+               if (v >= max_v) {
+                       max_i = i;
+                       max_v = v;
+               }
+       }
+       
+       printf("%d: %d\n", max_i, max_v);
+       return 0;
+}
diff --git a/tests/bench_complex_sort.nit b/tests/bench_complex_sort.nit
new file mode 100644 (file)
index 0000000..9ee9dda
--- /dev/null
@@ -0,0 +1,129 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class Elt
+       meth val1: Int is abstract
+       meth val2: Int do return val1 end
+end
+
+class A
+special Elt
+       attr _a: Int
+       redef meth val1: Int do return _a end
+
+       init(i: Int) do _a = i end
+end
+
+class Elt2
+special Elt
+       attr _b: Int
+       redef meth val1: Int do return _b/2 end
+       redef meth val2: Int do return _b end
+end
+
+class B
+special Elt2
+
+       init(i: Int) do _b = i end
+end
+
+class C
+special Elt
+       attr _c: Int
+       attr _d: Int
+       redef meth val1: Int do return _c end
+       redef meth val2: Int do return _d end
+
+       init init2(i: Int, j: Int) do
+               _c = i
+               _d = j
+       end
+end
+
+class D
+special A
+special Elt2
+       redef meth val1: Int do return _a end
+       redef meth val2: Int do return _b end
+
+       init init2(i: Int, j: Int) do
+               init(i)
+               _b = j
+       end
+end
+
+class E
+special Elt2
+       redef meth val1: Int do return 5 end
+
+       init(i: Int) do _b = i end
+end
+
+class EltSorter
+special AbstractSorter[Elt]
+       redef meth compare(a: Elt, b: Elt): Int
+       do
+               if _is_val1 then
+                       return a.val1 <=> b.val1
+               else
+                       return a.val2 <=> b.val2
+               end
+       end
+       
+       meth toggle
+       do
+               _is_val1 = not _is_val1
+       end
+       
+       attr _is_val1: Bool
+
+       init do end
+end
+
+meth generator: Elt
+do
+       var r = 5.rand
+       if r == 0 then
+               return new A(10.rand)
+       else if r == 1 then
+               return new B(10.rand)
+       else if r == 2 then
+               return new C.init2(10.rand, 10.rand)
+       else if r == 3 then
+               return new D.init2(10.rand, 10.rand)
+       else
+               return new E(10.rand)
+       end
+end
+
+var n = 100
+
+if not args.is_empty then
+       n = args.first.to_i
+end
+
+var array = new Array[Elt].with_capacity(n)
+for i in [0..n[ do
+       array.push(generator)
+end
+
+var sorter = new EltSorter
+for i in [0..n[ do
+       sorter.sort(array)
+       sorter.toggle
+end
+
diff --git a/tests/bench_complex_sort.sav b/tests/bench_complex_sort.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/bench_fib.nit b/tests/bench_fib.nit
new file mode 100644 (file)
index 0000000..a67cdc5
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The fibbonacci program
+
+redef class Int
+       meth fib: Int
+       # Unefficient recursive implementation
+       do
+               if self <= 0 then
+                       return 0
+               else if self < 2 then
+                       return 1
+               else
+                       return (self-1).fib + (self-2).fib
+               end
+       end
+end
+
+var n = 10
+if not args.is_empty then
+       n = args.first.to_i
+end
+
+print(n.fib)
diff --git a/tests/bench_fib.sav b/tests/bench_fib.sav
new file mode 100644 (file)
index 0000000..c3f407c
--- /dev/null
@@ -0,0 +1 @@
+55
diff --git a/tests/bench_fib_ref.c b/tests/bench_fib_ref.c
new file mode 100644 (file)
index 0000000..3389224
--- /dev/null
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+int fib(int c)
+{
+       if (c <= 0)
+               return 0;
+       else if (c < 2)
+               return 1;
+       else
+               return fib(c-1) + fib(c-2);
+}
+
+int main(int argc, char ** argv)
+{
+       printf("%d\n", fib(atoi(argv[1])));
+       return 0;
+}
diff --git a/tests/bench_netsim.nit b/tests/bench_netsim.nit
new file mode 100644 (file)
index 0000000..74781ca
--- /dev/null
@@ -0,0 +1,280 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class Node
+       redef meth to_s: String
+       do
+               return _name
+       end
+       attr _name: String
+end
+
+class WakeUpNode
+special Node
+       meth wake_up is abstract
+       # Wake up the node
+       meth wake_up_in(d: Int)
+       # Ask to be weaked up in `d' time units
+       do
+               _scheduler.add_event(self, d)
+       end
+       attr _scheduler: Scheduler
+end
+
+class NodeSource
+special Node
+       attr _nexts: ArraySet[NodeSink]
+       meth attach(n: NodeSink)
+       # Add the sink `n' the the connected nodes
+       # Do nothing if `n' is already connected
+       do
+               assert n != null
+               # Create the collection if needed
+               if _nexts == null then
+                       _nexts = new ArraySet[NodeSink]
+               end
+               _nexts.add(n)
+       end
+       
+       meth detach(n: NodeSink)
+       # Remove the sink `n' from the connected nodes
+       # Do nothing if `n' is not connected
+       do
+               assert n != null
+               _nexts.remove(n)
+       end
+
+       protected meth send
+       # Notify the sinks by calling the recieve(1) method of each sink
+       do
+               if _nexts == null then
+                       return
+               end
+               for n in _nexts do
+                       n.recieve(self)
+               end
+       end
+end
+
+class NodeSink
+special Node
+       meth recieve(n: NodeSource) is abstract
+       # the `n' has emeted a signal
+end
+
+#
+
+class Scheduler
+       attr _time_list: Array[Couple[Int, WakeUpNode]]
+       attr _time: Int # What time is it ?
+       meth add_event(n: WakeUpNode, d: Int)
+       # The node `n' whant to be weaked up in `d' time units
+       do
+               var entry = new Couple[Int, WakeUpNode](d+_time, n)
+               _time_list.add(entry)
+       end
+
+       meth next_event: WakeUpNode
+       # Get the
+       do
+               if _time_list.is_empty then
+                       return null
+               end
+
+               # Get the next entry
+               var entry = _time_list.first
+               for e in _time_list do
+                       if e.first < entry.first then
+                               entry = e
+                       end
+               end
+               _time_list.remove(entry)
+
+               _time = entry.first
+               return entry.second
+       end
+
+       meth run_for(time_limit: Int)
+       do
+               while true do
+                       var node = next_event 
+                       if _time > time_limit then
+                               print("Time limit.")
+                               return
+                       end
+                       if node == null then
+                               print("No more event.")
+                               return
+                       end
+                       node.wake_up
+               end
+       end
+
+       init
+       do
+               _time_list = new Array[Couple[Int, WakeUpNode]]
+       end
+end
+
+#
+
+class BeepSource
+special NodeSource
+special WakeUpNode
+       redef meth wake_up
+       do
+               send
+               wake_up_in(_delay)
+       end
+       attr _delay: Int
+       meth start
+       do
+               wake_up_in(_delay)
+       end
+
+       init(name: String, s: Scheduler, delay: Int)
+       do
+               _name = name
+               _scheduler = s
+               _delay = delay
+       end
+end
+
+class CountSink
+special NodeSink
+       readable attr _count: Int
+       redef meth recieve(n: NodeSource)
+       do
+               _count = _count + 1
+       end
+end
+
+class SimpleCountSink
+special CountSink
+
+       init(name: String)
+       do
+               _name = name
+       end
+end
+
+class NodeAlternate
+special NodeSink
+special NodeSource
+       attr _last: NodeSource
+       redef meth recieve(n: NodeSource)
+       do
+               if n != _last then
+                       _last = n
+                       send
+               end
+       end
+
+       init(name: String)
+       do
+               _name = name
+       end
+end
+
+class NodeEat
+special CountSink
+special NodeSource
+       attr _limit: Int
+       redef meth recieve(n: NodeSource)
+       do
+               var c = _count + 1
+               if c >= _limit then
+                       _count = 0
+                       send
+               else
+                       _count = c
+               end
+       end
+
+       init(name: String, limit: Int)
+       do
+               _name = name
+               _limit = limit
+       end
+end
+
+class NodeDelay
+special NodeSource
+special NodeSink
+special WakeUpNode
+       attr _delay: Int
+       redef meth recieve(n: NodeSource)
+       do
+               wake_up_in(_delay)
+       end
+       redef meth wake_up
+       do
+               send
+       end
+
+       init(name: String, scheduler: Scheduler, delay: Int)
+       do
+               _name = name
+               _scheduler = scheduler
+               _delay = delay
+       end
+end
+
+#
+
+var s = new Scheduler
+
+var b1 = new BeepSource("Beep 1", s, 10)
+var b2 = new BeepSource("Beep 2", s, 7)
+var a1 = new NodeAlternate("Alternate 1")
+var a2 = new NodeAlternate("Alternate 2")
+var a3 = new NodeAlternate("Alternate 3")
+var d1 = new NodeDelay("Delay 1", s, 2)
+var e1 = new NodeEat("Eat 1", 5)
+var c1 = new SimpleCountSink("Count 1")
+b1.attach(a1)
+b1.attach(a3)
+
+b2.attach(a1)
+b2.attach(a2)
+
+b2.attach(a3)
+
+a1.attach(e1)
+a1.attach(a2)
+
+a2.attach(a2)
+a2.attach(a3)
+
+a3.attach(e1)
+a3.attach(d1)
+
+d1.attach(e1)
+
+e1.attach(c1)
+e1.attach(a1)
+
+b1.start
+b2.start
+
+var nb = 100000
+if not args.is_empty then
+       nb = args.first.to_i
+end
+
+s.run_for(nb)
+print(c1.count)
+
diff --git a/tests/bench_netsim.sav b/tests/bench_netsim.sav
new file mode 100644 (file)
index 0000000..dc83631
--- /dev/null
@@ -0,0 +1,2 @@
+Time limit.
+28570
diff --git a/tests/bench_nsieve_bool.nit b/tests/bench_nsieve_bool.nit
new file mode 100644 (file)
index 0000000..4adb225
--- /dev/null
@@ -0,0 +1,56 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth nsieve(n: Int): Int
+do
+       var count = n-2
+       var array = new Array[Bool].with_capacity(n)
+       for i in [0..n[ do
+               array.add(true)
+       end
+       for i in [2..n[ do
+               if array[i] then
+                       var j = i * 2
+                       while j < n do
+                               if array[j] then
+                                       array[j] = false
+                                       count = count - 1
+                               end
+                               j = j + i
+                       end
+               end
+       end
+       return count
+end
+
+meth test(n: Int)
+do
+       var m = 10000.lshift(n)
+       print("Primes up to {m} {nsieve(m)}")
+end
+
+var n = 2
+if args.length == 1 then
+       n = args.first.to_i
+end
+
+test(n)
+if n >= 1 then
+       test(n-1)
+end
+if n >= 2 then
+       test(n-2)
+end
diff --git a/tests/bench_nsieve_bool.sav b/tests/bench_nsieve_bool.sav
new file mode 100644 (file)
index 0000000..d9e91fa
--- /dev/null
@@ -0,0 +1,3 @@
+Primes up to 40000 4203
+Primes up to 20000 2262
+Primes up to 10000 1229
diff --git a/tests/bench_prime.nit b/tests/bench_prime.nit
new file mode 100644 (file)
index 0000000..32bd5b5
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+redef class Int
+       meth is_premier: Bool
+       do
+               var i = 2
+               while i < self do
+                       if self % i == 0 then
+                               return true
+                       end
+                       i = i + 1
+               end
+               return false
+       end
+end
+
+if 4012009.is_premier then
+       printn("premier\n")
+else
+       printn("pas premier\n")
+end
diff --git a/tests/bench_prime.sav b/tests/bench_prime.sav
new file mode 100644 (file)
index 0000000..1692720
--- /dev/null
@@ -0,0 +1 @@
+premier
diff --git a/tests/bench_random_n_sort.nit b/tests/bench_random_n_sort.nit
new file mode 100644 (file)
index 0000000..5287a54
--- /dev/null
@@ -0,0 +1,86 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import example_sorts
+
+redef class Int
+       meth random: Int
+       # Return a random generated number between 0 and self
+       do
+               var val = (last_number.value * 3877 + 29573) % 139968
+               last_number.value = val
+               return val % self
+       end
+
+       meth last_number: Integer
+       do
+               return once new Integer
+       end
+end
+
+class Integer
+       readable writable attr _value: Int 
+
+       init
+       do
+               _value = 42
+       end
+end
+
+var n = 100
+if not args.is_empty then
+       n = args.first.to_i
+       n = n * n
+end
+
+# Build an array
+var array = new Array[Int].with_capacity(n)
+for i in [0..n[ do
+       array.add(n.random)
+end
+
+# Clone the array
+var array2 = new Array[Int].with_capacity(n)
+for i in [0..n[ do
+       array2.add(array[i])
+end
+
+# Sort now
+
+for i in [0..10[ do
+       printn(array[n*i/10], " ")
+end
+print(array.last)
+
+quicksort(array)
+
+for i in [0..10[ do
+       printn(array[n*i/10], " ")
+end
+print(array.last)
+
+
+for i in [0..10[ do
+       printn(array2[n*i/10], " ")
+end
+print(array2.last)
+
+heapsort(array2)
+
+for i in [0..10[ do
+       printn(array2[n*i/10], " ")
+end
+print(array2.last)
diff --git a/tests/bench_random_n_sort.sav b/tests/bench_random_n_sort.sav
new file mode 100644 (file)
index 0000000..3674e63
--- /dev/null
@@ -0,0 +1,4 @@
+39 13 31 53 23 65 51 81 43 93 74
+4 13 23 32 44 53 63 70 83 88 96
+39 13 31 53 23 65 51 81 43 93 74
+0 13 23 32 44 53 63 70 83 88 96
diff --git a/tests/bench_send.nit b/tests/bench_send.nit
new file mode 100644 (file)
index 0000000..61c57fb
--- /dev/null
@@ -0,0 +1,103 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class A
+       readable writable attr _val: Int
+       meth hop(a: A, b: A, c: A)
+       do
+               if a.val > val then
+                       a.hop(b, c, self)
+               end
+               foo(a, b)
+               foo(a, c)
+               foo(b, c)
+               foo(c, b)
+       end
+       meth foo(a: A, b: A)
+       do
+               if a.val > val then
+                       a.foo(b, self)
+               end
+               bar(a)
+               bar(b)
+       end
+       meth bar(a: A)
+       do
+               if a.val > val then
+                       a.bar(self)
+               end
+               baz
+       end
+       meth baz
+       do
+       end
+
+       init
+       do
+       end
+end
+
+class B
+special A
+       redef meth val: Int
+       do
+               return 1
+       end
+
+       redef init
+       do
+       end
+end
+
+class C
+special A
+       redef meth val: Int
+       do
+               return 2
+       end
+
+       redef init
+       do
+       end
+end
+
+class D
+special A
+       redef meth val: Int
+       do
+               return 3
+       end
+
+       redef init
+       do
+       end
+end
+
+var a = new A
+var b = new B
+var c = new C
+var d = new D
+
+a.val = 0
+b.val = 1
+c.val = 2
+d.val = 3
+var i = 0
+while i < 100000 do
+       a.hop(b, c, d)
+       i = i + 1
+end
diff --git a/tests/bench_send.sav b/tests/bench_send.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/bench_send2.nit b/tests/bench_send2.nit
new file mode 100644 (file)
index 0000000..7bf907f
--- /dev/null
@@ -0,0 +1,71 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+redef class Object
+       meth foo do end
+end
+class A
+       redef meth foo do end
+       init do end
+end
+class B
+special A
+       redef meth foo do end
+       redef init do end
+
+end
+class C
+special A
+       redef init do end
+
+end
+class D
+special B
+special C
+       redef init do end
+
+end
+class E
+special B
+special C
+       redef meth foo do end
+       redef init do end
+
+end
+class F
+special D
+special E
+       redef meth foo do end
+       redef init do end
+
+end
+
+var nb = 60
+var a = new Array[Object].with_capacity(nb)
+for i in [0..(nb/6)[ do
+       a[i*6] = new A
+       a[i*6+1] = new B
+       a[i*6+2] = new C
+       a[i*6+3] = new D
+       a[i*6+4] = new E
+       a[i*6+5] = new F
+end
+for i in [0..1000000[ do
+       for j in [0..nb[ do
+               a[j].foo
+       end
+end
+
diff --git a/tests/bench_send2.sav b/tests/bench_send2.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/bench_string_append.nit b/tests/bench_string_append.nit
new file mode 100644 (file)
index 0000000..1856a7a
--- /dev/null
@@ -0,0 +1,56 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var n = 7
+if not args.is_empty then
+       n = args.first.to_i
+end
+
+var s = "*"
+var i = 0
+while i < n do
+       var s2 = "Je dis Â«"
+       s2.append(s)
+       s2.append("» et redis Â«")
+       s2.append(s)
+       s2.append("» et deux fois de plus : Â«")
+       s2.append(s)
+       s2.append(s)
+       s2.append("».\n")
+       s = s2
+       i = i + 1
+end
+print("Je dis Â«Je dis".search_all_in(s).length)
+
+i = 0
+var j = 0
+while j >= 0 do
+       j = "Je dis Â«Je dis".search_index_in(s, j)
+       if j >= 0 then
+               i = i + 1
+               j = j + 1
+       end
+end
+print(i)
+
+i = 0
+for k in [0..s.length[ do
+       var c = s[k]
+       if c >= 'a' and c <= 'z' then
+               i = i + 1
+       end
+end
+print(i)
diff --git a/tests/bench_string_append.sav b/tests/bench_string_append.sav
new file mode 100644 (file)
index 0000000..24c2167
--- /dev/null
@@ -0,0 +1,3 @@
+1092
+1365
+147447
diff --git a/tests/bench_string_super.nit b/tests/bench_string_super.nit
new file mode 100644 (file)
index 0000000..ad27304
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var s = "*"
+var i = 0
+while i < 8 do
+       s = "Je dis Â«{s}» et redis Â«{s}» et trois fois de plus : Â«{s}{s}{s}».\n"
+       i = i + 1
+end
+print(s.length)
diff --git a/tests/bench_string_super.sav b/tests/bench_string_super.sav
new file mode 100644 (file)
index 0000000..e64f947
--- /dev/null
@@ -0,0 +1 @@
+5859361
diff --git a/tests/bench_string_tos.nit b/tests/bench_string_tos.nit
new file mode 100644 (file)
index 0000000..1d59691
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var s = "*"
+var i = 0
+while i < 8 do
+       s = ["Je dis Â«", s, "» et redis Â«", s, "» et trois fois de plus : Â«", s, s, s, "».\n"].to_s
+       i = i + 1
+end
+print(s.length)
diff --git a/tests/bench_string_tos.sav b/tests/bench_string_tos.sav
new file mode 100644 (file)
index 0000000..e64f947
--- /dev/null
@@ -0,0 +1 @@
+5859361
diff --git a/tests/bench_svn105_papillon.log.sav b/tests/bench_svn105_papillon.log.sav
new file mode 100644 (file)
index 0000000..dc3b169
--- /dev/null
@@ -0,0 +1,53 @@
+3.09 bench_netsim 1000000
+2.02 bench_netsim 1000000       --boost
+3.08 bench_netsim 1000000       --tag
+3.05 bench_netsim 1000000       --tag --tag
+4.43 bench_netsim 1000000       --gc boehm
+4.17 bench_netsim 1000000       --gc boehm --tag
+4.14 bench_netsim 1000000       --gc boehm --tag --tag
+3.07 bench_netsim 1000000       --select btd
+3.05 bench_netsim 1000000       --tag --select btd
+3.02 bench_netsim 1000000       --tag --select btd --tag
+4.42 bench_netsim 1000000       --gc boehm --select btd
+4.14 bench_netsim 1000000       --gc boehm --tag --select btd
+4.12 bench_netsim 1000000       --gc boehm --tag --select btd --tag
+3.34 bench_string_append 10
+2.71 bench_string_append 10     --boost
+3.37 bench_string_append 10     --tag
+3.36 bench_string_append 10     --tag --tag
+3.71 bench_string_append 10     --gc boehm
+3.70 bench_string_append 10     --gc boehm --tag
+3.71 bench_string_append 10     --gc boehm --tag --tag
+3.38 bench_string_append 10     --select btd
+3.35 bench_string_append 10     --tag --select btd
+3.36 bench_string_append 10     --tag --select btd --tag
+3.72 bench_string_append 10     --gc boehm --select btd
+3.68 bench_string_append 10     --gc boehm --tag --select btd
+3.71 bench_string_append 10     --gc boehm --tag --select btd --tag
+1.28 shootout_binarytrees 15
+1.24 shootout_binarytrees 15    --boost
+1.28 shootout_binarytrees 15    --tag
+1.26 shootout_binarytrees 15    --tag --tag
+4.34 shootout_binarytrees 15    --gc boehm
+4.34 shootout_binarytrees 15    --gc boehm --tag
+4.34 shootout_binarytrees 15    --gc boehm --tag --tag
+1.28 shootout_binarytrees 15    --select btd
+1.29 shootout_binarytrees 15    --tag --select btd
+1.28 shootout_binarytrees 15    --tag --select btd --tag
+4.34 shootout_binarytrees 15    --gc boehm --select btd
+4.34 shootout_binarytrees 15    --gc boehm --tag --select btd
+4.34 shootout_binarytrees 15    --gc boehm --tag --select btd --tag
+5.50 bench_random_n_sort 700
+4.66 bench_random_n_sort 700    --boost
+3.59 bench_random_n_sort 700    --tag
+3.45 bench_random_n_sort 700    --tag --tag
+5.97 bench_random_n_sort 700    --gc boehm
+3.60 bench_random_n_sort 700    --gc boehm --tag
+3.47 bench_random_n_sort 700    --gc boehm --tag --tag
+5.02 bench_random_n_sort 700    --select btd
+3.42 bench_random_n_sort 700    --tag --select btd
+3.33 bench_random_n_sort 700    --tag --select btd --tag
+5.39 bench_random_n_sort 700    --gc boehm --select btd
+3.43 bench_random_n_sort 700    --gc boehm --tag --select btd
+3.35 bench_random_n_sort 700    --gc boehm --tag --select btd --tag
+
diff --git a/tests/bench_svn107_bird.log.sav b/tests/bench_svn107_bird.log.sav
new file mode 100644 (file)
index 0000000..6efeea0
--- /dev/null
@@ -0,0 +1,65 @@
+4.14 bench_int 40              
+4.01 bench_int 40      --boost 
+3.83 bench_int 40      --tag   
+4.28 bench_int 40      --tag --tag     
+4.21 bench_int 40      --gc boehm      
+4.32 bench_int 40      --gc boehm --tag        
+3.85 bench_int 40      --gc boehm --tag --tag  
+3.56 bench_int 40      --select btd    
+3.69 bench_int 40      --tag --select btd      
+3.63 bench_int 40      --tag --select btd --tag        
+3.96 bench_int 40      --gc boehm --select btd 
+4.20 bench_int 40      --gc boehm --tag --select btd   
+4.09 bench_int 40      --gc boehm --tag --select btd --tag     
+2.38 bench_netsim 1000000              
+1.45 bench_netsim 1000000      --boost 
+2.38 bench_netsim 1000000      --tag   
+2.36 bench_netsim 1000000      --tag --tag     
+4.99 bench_netsim 1000000      --gc boehm      
+4.47 bench_netsim 1000000      --gc boehm --tag        
+4.42 bench_netsim 1000000      --gc boehm --tag --tag  
+2.37 bench_netsim 1000000      --select btd    
+2.38 bench_netsim 1000000      --tag --select btd      
+2.31 bench_netsim 1000000      --tag --select btd --tag        
+5.00 bench_netsim 1000000      --gc boehm --select btd 
+4.45 bench_netsim 1000000      --gc boehm --tag --select btd   
+4.45 bench_netsim 1000000      --gc boehm --tag --select btd --tag     
+2.20 bench_string_append 10            
+1.91 bench_string_append 10    --boost 
+2.19 bench_string_append 10    --tag   
+2.21 bench_string_append 10    --tag --tag     
+2.37 bench_string_append 10    --gc boehm      
+2.41 bench_string_append 10    --gc boehm --tag        
+2.39 bench_string_append 10    --gc boehm --tag --tag  
+2.18 bench_string_append 10    --select btd    
+2.19 bench_string_append 10    --tag --select btd      
+2.19 bench_string_append 10    --tag --select btd --tag        
+2.38 bench_string_append 10    --gc boehm --select btd 
+2.39 bench_string_append 10    --gc boehm --tag --select btd   
+2.40 bench_string_append 10    --gc boehm --tag --select btd --tag     
+1.29 shootout_binarytrees 15           
+1.29 shootout_binarytrees 15   --boost 
+1.30 shootout_binarytrees 15   --tag   
+1.28 shootout_binarytrees 15   --tag --tag     
+5.51 shootout_binarytrees 15   --gc boehm      
+5.52 shootout_binarytrees 15   --gc boehm --tag        
+5.49 shootout_binarytrees 15   --gc boehm --tag --tag  
+1.30 shootout_binarytrees 15   --select btd    
+1.30 shootout_binarytrees 15   --tag --select btd      
+1.29 shootout_binarytrees 15   --tag --select btd --tag        
+5.63 shootout_binarytrees 15   --gc boehm --select btd 
+5.50 shootout_binarytrees 15   --gc boehm --tag --select btd   
+5.50 shootout_binarytrees 15   --gc boehm --tag --select btd --tag     
+3.87 bench_random_n_sort 700           
+3.00 bench_random_n_sort 700   --boost 
+2.39 bench_random_n_sort 700   --tag   
+2.30 bench_random_n_sort 700   --tag --tag     
+4.29 bench_random_n_sort 700   --gc boehm      
+2.38 bench_random_n_sort 700   --gc boehm --tag        
+2.33 bench_random_n_sort 700   --gc boehm --tag --tag  
+3.87 bench_random_n_sort 700   --select btd    
+2.30 bench_random_n_sort 700   --tag --select btd      
+2.36 bench_random_n_sort 700   --tag --select btd --tag        
+4.28 bench_random_n_sort 700   --gc boehm --select btd 
+2.30 bench_random_n_sort 700   --gc boehm --tag --select btd   
+2.33 bench_random_n_sort 700   --gc boehm --tag --select btd --tag     
diff --git a/tests/bench_svn219_bird.log.sav b/tests/bench_svn219_bird.log.sav
new file mode 100644 (file)
index 0000000..64e97d2
--- /dev/null
@@ -0,0 +1,66 @@
+5.56 bench_421 5000000         
+5.56 bench_421 5000000 --boost 
+5.55 bench_421 5000000 --tag   
+5.38 bench_421 5000000 --tag --tag     
+5.59 bench_421 5000000 --gc boehm      
+5.49 bench_421 5000000 --gc boehm --tag        
+5.56 bench_421 5000000 --gc boehm --tag --tag  
+5.57 bench_421 5000000 --select btd    
+5.64 bench_421 5000000 --tag --select btd      
+5.62 bench_421 5000000 --tag --select btd --tag        
+5.50 bench_421 5000000 --gc boehm --select btd 
+5.41 bench_421 5000000 --gc boehm --tag --select btd   
+5.59 bench_421 5000000 --gc boehm --tag --select btd --tag     
+5.44 bench_421 5000000 ref_c   
+2.76 bench_netsim 1000000              
+1.92 bench_netsim 1000000      --boost 
+2.52 bench_netsim 1000000      --tag   
+2.50 bench_netsim 1000000      --tag --tag     
+10.07 bench_netsim 1000000     --gc boehm      
+4.56 bench_netsim 1000000      --gc boehm --tag        
+4.54 bench_netsim 1000000      --gc boehm --tag --tag  
+2.71 bench_netsim 1000000      --select btd    
+2.52 bench_netsim 1000000      --tag --select btd      
+2.53 bench_netsim 1000000      --tag --select btd --tag        
+10.29 bench_netsim 1000000     --gc boehm --select btd 
+4.59 bench_netsim 1000000      --gc boehm --tag --select btd   
+4.55 bench_netsim 1000000      --gc boehm --tag --select btd --tag     
+4.25 bench_string_append 10            
+4.01 bench_string_append 10    --boost 
+3.33 bench_string_append 10    --tag   
+3.34 bench_string_append 10    --tag --tag     
+30.14 bench_string_append 10   --gc boehm      
+3.52 bench_string_append 10    --gc boehm --tag        
+3.51 bench_string_append 10    --gc boehm --tag --tag  
+4.32 bench_string_append 10    --select btd    
+3.37 bench_string_append 10    --tag --select btd      
+3.33 bench_string_append 10    --tag --select btd --tag        
+30.09 bench_string_append 10   --gc boehm --select btd 
+3.54 bench_string_append 10    --gc boehm --tag --select btd   
+3.45 bench_string_append 10    --gc boehm --tag --select btd --tag     
+1.31 shootout_binarytrees 15           
+1.28 shootout_binarytrees 15   --boost 
+1.30 shootout_binarytrees 15   --tag   
+1.31 shootout_binarytrees 15   --tag --tag     
+5.53 shootout_binarytrees 15   --gc boehm      
+5.54 shootout_binarytrees 15   --gc boehm --tag        
+5.53 shootout_binarytrees 15   --gc boehm --tag --tag  
+1.31 shootout_binarytrees 15   --select btd    
+1.29 shootout_binarytrees 15   --tag --select btd      
+1.31 shootout_binarytrees 15   --tag --select btd --tag        
+5.56 shootout_binarytrees 15   --gc boehm --select btd 
+5.57 shootout_binarytrees 15   --gc boehm --tag --select btd   
+5.52 shootout_binarytrees 15   --gc boehm --tag --select btd --tag     
+3.73 bench_random_n_sort 700           
+3.02 bench_random_n_sort 700   --boost 
+2.04 bench_random_n_sort 700   --tag   
+2.04 bench_random_n_sort 700   --tag --tag     
+4.52 bench_random_n_sort 700   --gc boehm      
+2.04 bench_random_n_sort 700   --gc boehm --tag        
+2.06 bench_random_n_sort 700   --gc boehm --tag --tag  
+3.75 bench_random_n_sort 700   --select btd    
+2.02 bench_random_n_sort 700   --tag --select btd      
+2.04 bench_random_n_sort 700   --tag --select btd --tag        
+4.62 bench_random_n_sort 700   --gc boehm --select btd 
+2.04 bench_random_n_sort 700   --gc boehm --tag --select btd   
+2.06 bench_random_n_sort 700   --gc boehm --tag --select btd --tag     
diff --git a/tests/bench_tak.nit b/tests/bench_tak.nit
new file mode 100644 (file)
index 0000000..5266e93
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+meth tak(x: Int, y: Int, z: Int): Int
+do
+       if not y < x then
+               return z
+        else
+               return tak(
+                       tak(x-1, y, z),
+                       tak(y-1, z, x),
+                       tak(z-1, x, y))
+       end
+end
+
+printn(tak(37,12,6))
diff --git a/tests/bench_tak.sav b/tests/bench_tak.sav
new file mode 100644 (file)
index 0000000..3cacc0b
--- /dev/null
@@ -0,0 +1 @@
+12
\ No newline at end of file
diff --git a/tests/error_array_ambig.nit b/tests/error_array_ambig.nit
new file mode 100644 (file)
index 0000000..8ef8529
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i = [4, '4']
diff --git a/tests/error_array_ambig.sav b/tests/error_array_ambig.sav
new file mode 100644 (file)
index 0000000..759d9f3
--- /dev/null
@@ -0,0 +1 @@
+./error_array_ambig.nit:17,10--15: Type error: expected Int, got Char
diff --git a/tests/error_attr_2def.nit b/tests/error_attr_2def.nit
new file mode 100644 (file)
index 0000000..75efb44
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       attr _toto: Int
+       attr _toto: Object
+end
diff --git a/tests/error_attr_2def.sav b/tests/error_attr_2def.sav
new file mode 100644 (file)
index 0000000..fb20f9a
--- /dev/null
@@ -0,0 +1 @@
+./error_attr_2def.nit:19,2--19: Error: A property _toto is already defined in class A at line 18.
diff --git a/tests/error_attr_assign.nit b/tests/error_attr_assign.nit
new file mode 100644 (file)
index 0000000..64afb68
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       attr _toto: Int
+       meth m
+       do
+               _toto = 't'
+       end
+end
diff --git a/tests/error_attr_assign.sav b/tests/error_attr_assign.sav
new file mode 100644 (file)
index 0000000..169cb2a
--- /dev/null
@@ -0,0 +1 @@
+./error_attr_assign.nit:21,3--13: Type error: expected Int, got Char
diff --git a/tests/error_attr_unk.nit b/tests/error_attr_unk.nit
new file mode 100644 (file)
index 0000000..d16eec6
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+printn(_toto)
diff --git a/tests/error_attr_unk.sav b/tests/error_attr_unk.sav
new file mode 100644 (file)
index 0000000..e561745
--- /dev/null
@@ -0,0 +1 @@
+./error_attr_unk.nit:17,8--12: Error: Attribute _toto doesn't exists in Sys.
diff --git a/tests/error_class_glob.nit b/tests/error_class_glob.nit
new file mode 100644 (file)
index 0000000..0ce89d7
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_1
+import bench_send
diff --git a/tests/error_cons_arity.nit b/tests/error_cons_arity.nit
new file mode 100644 (file)
index 0000000..6c6ee71
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class C[E]
+end
+class C[E: Object, F: Object]
+end
diff --git a/tests/error_cons_arity.sav b/tests/error_cons_arity.sav
new file mode 100644 (file)
index 0000000..4bea07f
--- /dev/null
@@ -0,0 +1 @@
+./error_cons_arity.nit:19,1--28: Error: A class C is already defined at line 17.
diff --git a/tests/error_cons_arity2.nit b/tests/error_cons_arity2.nit
new file mode 100644 (file)
index 0000000..b1f4c5d
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A[E, F]
+end
+
+class A[E: Object]
+end
diff --git a/tests/error_cons_arity2.sav b/tests/error_cons_arity2.sav
new file mode 100644 (file)
index 0000000..f8c2f57
--- /dev/null
@@ -0,0 +1 @@
+./error_cons_arity2.nit:20,1--17: Error: A class A is already defined at line 17.
diff --git a/tests/error_constraint.nit b/tests/error_constraint.nit
new file mode 100644 (file)
index 0000000..8ed9abf
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class A
+end
+class A[E: Object]
+end
diff --git a/tests/error_constraint.sav b/tests/error_constraint.sav
new file mode 100644 (file)
index 0000000..12d43e8
--- /dev/null
@@ -0,0 +1 @@
+./error_constraint.nit:20,1--17: Error: A class A is already defined at line 18.
diff --git a/tests/error_constraint_raf.nit.broken b/tests/error_constraint_raf.nit.broken
new file mode 100644 (file)
index 0000000..30782b4
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class Object[E: Object]
+end
diff --git a/tests/error_decl_type_var.nit b/tests/error_decl_type_var.nit
new file mode 100644 (file)
index 0000000..89d8bfe
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i: Int = '4'
diff --git a/tests/error_decl_type_var.sav b/tests/error_decl_type_var.sav
new file mode 100644 (file)
index 0000000..1819b4d
--- /dev/null
@@ -0,0 +1 @@
+./error_decl_type_var.nit:17,1--16: Type error: expected Int, got Char
diff --git a/tests/error_defs.nit b/tests/error_defs.nit
new file mode 100644 (file)
index 0000000..b210098
--- /dev/null
@@ -0,0 +1,53 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+#alt1#class Object
+redef class Object #!alt1#
+       meth bar: Int do return 10 + baz
+end
+
+class A
+       meth foo: Int do return 100 + bar
+#alt2# meth foo(c: Char) do (200 + bar).output
+       redef meth bar: Int do return 20 + baz #!alt3#
+#alt3# meth bar: Int do return 30 + baz
+#alt4# meth baz(c: Char) do 2.output
+#alt5# redef meth baz(c: Char) do 2.output
+
+       init do end
+end
+
+#alt6#class A
+#alt6# meth foo: Int do return 300 + bar
+#alt6#end
+#alt7#redef class A
+#alt7# meth foo: Int do return 300 + bar
+#alt7#end
+#alt8#redef class A
+#alt8# redef meth foo: Int do return 300 + bar
+#alt8#end
+
+
+meth baz: Int do return 1
+
+baz.output
+bar.output
+(new A).foo.output
+#alt2#(new A).foo('x')
+#alt4#(new A).baz('y')
+#alt5#(new A).baz('y')
diff --git a/tests/error_defs.sav b/tests/error_defs.sav
new file mode 100644 (file)
index 0000000..aac710d
--- /dev/null
@@ -0,0 +1,3 @@
+1
+11
+121
diff --git a/tests/error_defs_alt1.sav b/tests/error_defs_alt1.sav
new file mode 100644 (file)
index 0000000..b40ecce
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt1.nit:19,1--20:33: Redef error: Object is an imported class. Add the redef keyword to refine it.
diff --git a/tests/error_defs_alt2.sav b/tests/error_defs_alt2.sav
new file mode 100644 (file)
index 0000000..4ddb00c
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt2.nit:26,2--40: Error: A property foo is already defined in class A at line 25.
diff --git a/tests/error_defs_alt3.sav b/tests/error_defs_alt3.sav
new file mode 100644 (file)
index 0000000..43cddb1
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt3.nit:26,1--27:33: Redef error: A::bar is an inherited property. To redefine it, add the redef keyword.
diff --git a/tests/error_defs_alt4.sav b/tests/error_defs_alt4.sav
new file mode 100644 (file)
index 0000000..175ce2e
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt4.nit:28,1--29:30: Redef error: A::baz is an inherited property. To redefine it, add the redef keyword.
diff --git a/tests/error_defs_alt5.sav b/tests/error_defs_alt5.sav
new file mode 100644 (file)
index 0000000..7ffb08b
--- /dev/null
@@ -0,0 +1,2 @@
+alt/error_defs_alt5.nit:28,1--30:36: Redef error: A::baz redefines Object::baz with 0 parameter(s).
+alt/error_defs_alt5.nit:28,1--30:36: Redef error: The procedure A::baz redefines the function Object::baz.
diff --git a/tests/error_defs_alt6.sav b/tests/error_defs_alt6.sav
new file mode 100644 (file)
index 0000000..164869d
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt6.nit:35,1--36:34: Error: A class A is already defined at line 24.
diff --git a/tests/error_defs_alt7.sav b/tests/error_defs_alt7.sav
new file mode 100644 (file)
index 0000000..86ba9e9
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt7.nit:35,1--39:34: Error: A class A is already defined at line 24.
diff --git a/tests/error_defs_alt8.sav b/tests/error_defs_alt8.sav
new file mode 100644 (file)
index 0000000..8d39807
--- /dev/null
@@ -0,0 +1 @@
+alt/error_defs_alt8.nit:35,1--42:40: Error: A class A is already defined at line 24.
diff --git a/tests/error_file_access.sav b/tests/error_file_access.sav
new file mode 100644 (file)
index 0000000..dcacc20
--- /dev/null
@@ -0,0 +1 @@
+FILE_ACCESS
diff --git a/tests/error_for_coll.nit b/tests/error_for_coll.nit
new file mode 100644 (file)
index 0000000..42380aa
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+for i in 5 do
+end
diff --git a/tests/error_for_coll.sav b/tests/error_for_coll.sav
new file mode 100644 (file)
index 0000000..4bba358
--- /dev/null
@@ -0,0 +1 @@
+./error_for_coll.nit:17,1--10: Type error: expected Collection[E], got Int
diff --git a/tests/error_formal.nit b/tests/error_formal.nit
new file mode 100644 (file)
index 0000000..ca262f2
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A[T]
+       attr _k: T[Int]
+end
diff --git a/tests/error_formal.sav b/tests/error_formal.sav
new file mode 100644 (file)
index 0000000..0cc465f
--- /dev/null
@@ -0,0 +1 @@
+./error_formal.nit:18,11--15: Type error: formal type T cannot have formal parameters.
diff --git a/tests/error_fun_ret.nit b/tests/error_fun_ret.nit
new file mode 100644 (file)
index 0000000..959efb9
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+end
diff --git a/tests/error_fun_ret.sav b/tests/error_fun_ret.sav
new file mode 100644 (file)
index 0000000..1dd9cc6
--- /dev/null
@@ -0,0 +1 @@
+./error_fun_ret.nit:17,1--14: Control error: Reached end of function.
diff --git a/tests/error_fun_ret2.nit b/tests/error_fun_ret2.nit
new file mode 100644 (file)
index 0000000..02e6c43
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       if true then
+               return 0
+       end
+end
diff --git a/tests/error_fun_ret2.sav b/tests/error_fun_ret2.sav
new file mode 100644 (file)
index 0000000..d205076
--- /dev/null
@@ -0,0 +1 @@
+./error_fun_ret2.nit:17,1--20:10: Control error: Reached end of function.
diff --git a/tests/error_fun_ret3.nit b/tests/error_fun_ret3.nit
new file mode 100644 (file)
index 0000000..4db8276
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       if false then
+       else
+               return 1
+       end
+end
diff --git a/tests/error_fun_ret3.sav b/tests/error_fun_ret3.sav
new file mode 100644 (file)
index 0000000..59a2e19
--- /dev/null
@@ -0,0 +1 @@
+./error_fun_ret3.nit:17,1--21:10: Control error: Reached end of function.
diff --git a/tests/error_fun_ret4.nit b/tests/error_fun_ret4.nit
new file mode 100644 (file)
index 0000000..d562c57
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       while true
+       do
+               return 1
+       end
+end
diff --git a/tests/error_fun_ret4.sav b/tests/error_fun_ret4.sav
new file mode 100644 (file)
index 0000000..8159505
--- /dev/null
@@ -0,0 +1 @@
+./error_fun_ret4.nit:17,1--21:10: Control error: Reached end of function.
diff --git a/tests/error_fun_ret5.nit b/tests/error_fun_ret5.nit
new file mode 100644 (file)
index 0000000..d5d1ec0
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       for i in new Array[Int] do
+               return 1
+       end
+end
diff --git a/tests/error_fun_ret5.sav b/tests/error_fun_ret5.sav
new file mode 100644 (file)
index 0000000..c8064bd
--- /dev/null
@@ -0,0 +1 @@
+./error_fun_ret5.nit:17,1--20:10: Control error: Reached end of function.
diff --git a/tests/error_gen_f_inh_clash.nit b/tests/error_gen_f_inh_clash.nit
new file mode 100644 (file)
index 0000000..aae0c6b
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_gen_f
+
+class G3
+special G1
+special G2
+end
diff --git a/tests/error_gen_f_inh_clash.sav b/tests/error_gen_f_inh_clash.sav
new file mode 100644 (file)
index 0000000..f89a25c
--- /dev/null
@@ -0,0 +1 @@
+Fatal error: Incompatibles ancestors for G3: G[G1], G[G2]
diff --git a/tests/error_if_bool.nit b/tests/error_if_bool.nit
new file mode 100644 (file)
index 0000000..17b0bf8
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if 5 then
+end
diff --git a/tests/error_if_bool.sav b/tests/error_if_bool.sav
new file mode 100644 (file)
index 0000000..fdf1a5b
--- /dev/null
@@ -0,0 +1 @@
+./error_if_bool.nit:17,1--4: Type error: expected Bool, got Int
diff --git a/tests/error_inh_clash.nit b/tests/error_inh_clash.nit
new file mode 100644 (file)
index 0000000..b0eafbb
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+special Array[Int]
+special Array[Char]
+end
diff --git a/tests/error_inh_clash.sav b/tests/error_inh_clash.sav
new file mode 100644 (file)
index 0000000..634ff34
--- /dev/null
@@ -0,0 +1 @@
+Fatal error: Incompatibles ancestors for A: Array[Int], Array[Char]
diff --git a/tests/error_inh_loop.nit b/tests/error_inh_loop.nit
new file mode 100644 (file)
index 0000000..8c9cf1b
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class Object
+end
+
+class A
+special B
+end
+
+class B
+special C
+end
+
+class C
+special A
+end
diff --git a/tests/error_inh_loop.sav b/tests/error_inh_loop.sav
new file mode 100644 (file)
index 0000000..a178925
--- /dev/null
@@ -0,0 +1 @@
+Fatal error: Inheritance loop for class A
diff --git a/tests/error_kern_attr_any.nit b/tests/error_kern_attr_any.nit
new file mode 100644 (file)
index 0000000..54e3b7b
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+redef class Object
+       attr _toto: Bool
+end
diff --git a/tests/error_kern_attr_any.sav b/tests/error_kern_attr_any.sav
new file mode 100644 (file)
index 0000000..d042266
--- /dev/null
@@ -0,0 +1 @@
+./error_kern_attr_any.nit:18,2--17: Error: Attempt to define attribute _toto in the interface Object.
diff --git a/tests/error_kern_attr_int.nit b/tests/error_kern_attr_int.nit
new file mode 100644 (file)
index 0000000..18ef45e
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+redef class Int
+       attr _toto: Object
+end
diff --git a/tests/error_kern_attr_int.sav b/tests/error_kern_attr_int.sav
new file mode 100644 (file)
index 0000000..c74f6c6
--- /dev/null
@@ -0,0 +1 @@
+./error_kern_attr_int.nit:18,2--19: Error: Attempt to define attribute _toto in the universal class Int.
diff --git a/tests/error_left_bool.nit b/tests/error_left_bool.nit
new file mode 100644 (file)
index 0000000..0a2690a
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if 5 and true then
+end
diff --git a/tests/error_left_bool.sav b/tests/error_left_bool.sav
new file mode 100644 (file)
index 0000000..eca5a55
--- /dev/null
@@ -0,0 +1 @@
+./error_left_bool.nit:17,4--13: Type error: expected Bool, got Int
diff --git a/tests/error_loop_bool_until.sav b/tests/error_loop_bool_until.sav
new file mode 100644 (file)
index 0000000..89856f1
--- /dev/null
@@ -0,0 +1 @@
+./error_loop_bool_until.nit:2,1--7: Error: Method or variable 'until' unknown in Sys.
diff --git a/tests/error_loop_bool_while.nit b/tests/error_loop_bool_while.nit
new file mode 100644 (file)
index 0000000..d53eb60
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+while 5 do
+end
diff --git a/tests/error_loop_bool_while.sav b/tests/error_loop_bool_while.sav
new file mode 100644 (file)
index 0000000..c3c8020
--- /dev/null
@@ -0,0 +1 @@
+./error_loop_bool_while.nit:17,1--10: Type error: expected Bool, got Int
diff --git a/tests/error_meth_2def.nit b/tests/error_meth_2def.nit
new file mode 100644 (file)
index 0000000..ebd5eeb
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth toto(a: Int) do end
+       meth toto(a: Char) do end
+end
diff --git a/tests/error_meth_2def.sav b/tests/error_meth_2def.sav
new file mode 100644 (file)
index 0000000..5b390cc
--- /dev/null
@@ -0,0 +1 @@
+./error_meth_2def.nit:19,2--18: Error: A property toto is already defined in class A at line 18.
diff --git a/tests/error_meth_2def2.nit b/tests/error_meth_2def2.nit
new file mode 100644 (file)
index 0000000..5765371
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth toto(a: Int) do end
+       meth toto(a: Int): Int do return 0 end
+end
diff --git a/tests/error_meth_2def2.sav b/tests/error_meth_2def2.sav
new file mode 100644 (file)
index 0000000..7a3dff4
--- /dev/null
@@ -0,0 +1 @@
+./error_meth_2def2.nit:19,2--35: Error: A property toto is already defined in class A at line 18.
diff --git a/tests/error_meth_create.nit b/tests/error_meth_create.nit
new file mode 100644 (file)
index 0000000..1b65e0b
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth foo do end
+end
+var b = new A.foo
diff --git a/tests/error_meth_create.sav b/tests/error_meth_create.sav
new file mode 100644 (file)
index 0000000..84906c9
--- /dev/null
@@ -0,0 +1 @@
+./error_meth_create.nit:20,9--17: Error: foo is not a constructor.
diff --git a/tests/error_meth_unk1.nit b/tests/error_meth_unk1.nit
new file mode 100644 (file)
index 0000000..fdfe910
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+blub
diff --git a/tests/error_meth_unk1.sav b/tests/error_meth_unk1.sav
new file mode 100644 (file)
index 0000000..cbce7d9
--- /dev/null
@@ -0,0 +1 @@
+./error_meth_unk1.nit:17,1--4: Error: Method or variable 'blub' unknown in Sys.
diff --git a/tests/error_meth_unk2.nit b/tests/error_meth_unk2.nit
new file mode 100644 (file)
index 0000000..e9320c7
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+tabul = 5
diff --git a/tests/error_meth_unk2.sav b/tests/error_meth_unk2.sav
new file mode 100644 (file)
index 0000000..e9df6af
--- /dev/null
@@ -0,0 +1 @@
+./error_meth_unk2.nit:17,1--9: Error: Method or variable 'tabul=' unknown in Sys.
diff --git a/tests/error_mod_unk.nit b/tests/error_mod_unk.nit
new file mode 100644 (file)
index 0000000..618d6c4
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import dfgd
diff --git a/tests/error_mod_unk.sav b/tests/error_mod_unk.sav
new file mode 100644 (file)
index 0000000..dade57f
--- /dev/null
@@ -0,0 +1 @@
+Error: No ressource found for module dfgd.
diff --git a/tests/error_prop_glob.nit b/tests/error_prop_glob.nit
new file mode 100644 (file)
index 0000000..2065003
--- /dev/null
@@ -0,0 +1,31 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+end
+
+class A
+       meth toto do end
+end
+class B
+       meth toto do end
+end
+class C
+special A
+special B
+end
diff --git a/tests/error_prop_loc.nit b/tests/error_prop_loc.nit
new file mode 100644 (file)
index 0000000..e0407ad
--- /dev/null
@@ -0,0 +1,35 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+class Object
+end
+
+class A
+       meth toto do end
+end
+class B
+special A
+       redef meth toto do end
+end
+class C
+special A
+       redef meth toto do end
+end
+class D
+special B
+special C
+end
diff --git a/tests/error_prop_loc.sav b/tests/error_prop_loc.sav
new file mode 100644 (file)
index 0000000..c63d0ac
--- /dev/null
@@ -0,0 +1 @@
+Fatal error: inherit_local_property error
diff --git a/tests/error_ref_attr.nit b/tests/error_ref_attr.nit
new file mode 100644 (file)
index 0000000..5d5b0ff
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_simple
+
+redef class C
+       redef attr _a: Int
+end
diff --git a/tests/error_ref_attr.sav b/tests/error_ref_attr.sav
new file mode 100644 (file)
index 0000000..ef85836
--- /dev/null
@@ -0,0 +1 @@
+./error_ref_attr.nit:20,2--19: Redef error: Expected B (as in C::_a), got Int in C::_a.
diff --git a/tests/error_ref_fun.nit b/tests/error_ref_fun.nit
new file mode 100644 (file)
index 0000000..21481dc
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_simple
+
+redef class C
+       redef meth s do end
+end
diff --git a/tests/error_ref_fun.sav b/tests/error_ref_fun.sav
new file mode 100644 (file)
index 0000000..f389fb0
--- /dev/null
@@ -0,0 +1 @@
+./error_ref_fun.nit:20,2--13: Control error: Reached end of function.
diff --git a/tests/error_ref_param.nit b/tests/error_ref_param.nit
new file mode 100644 (file)
index 0000000..b38b67b
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_simple
+
+redef class C
+       redef meth r(x: C) do end
+end
diff --git a/tests/error_ref_proc.nit b/tests/error_ref_proc.nit
new file mode 100644 (file)
index 0000000..3b8ec9d
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_simple
+
+redef class C
+       redef meth r(x: B): B do return self end
+end
diff --git a/tests/error_ref_proc.sav b/tests/error_ref_proc.sav
new file mode 100644 (file)
index 0000000..671b7f1
--- /dev/null
@@ -0,0 +1 @@
+./error_ref_proc.nit:20,2--37: Redef error: The function C::r redefines the procedure C::r.
diff --git a/tests/error_ref_ret.nit b/tests/error_ref_ret.nit
new file mode 100644 (file)
index 0000000..40123e8
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_simple
+
+redef class C
+       redef meth s: Int do return 1 end
+end
diff --git a/tests/error_ref_ret.sav b/tests/error_ref_ret.sav
new file mode 100644 (file)
index 0000000..71f111f
--- /dev/null
@@ -0,0 +1 @@
+./error_ref_ret.nit:20,2--30: Redef error: Expected B (as in C::s), got Int in C::s.
diff --git a/tests/error_req_loop1.nit b/tests/error_req_loop1.nit
new file mode 100644 (file)
index 0000000..46b186e
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import error_req_loop2
diff --git a/tests/error_req_loop1.sav b/tests/error_req_loop1.sav
new file mode 100644 (file)
index 0000000..4917ee2
--- /dev/null
@@ -0,0 +1 @@
+Error: Dependency loop for module ./error_req_loop1
diff --git a/tests/error_req_loop2.nit b/tests/error_req_loop2.nit
new file mode 100644 (file)
index 0000000..e4e8d10
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import error_req_loop1
diff --git a/tests/error_req_loop2.sav b/tests/error_req_loop2.sav
new file mode 100644 (file)
index 0000000..96b92d0
--- /dev/null
@@ -0,0 +1 @@
+Error: Dependency loop for module ./error_req_loop2
diff --git a/tests/error_ret_fun.nit b/tests/error_ret_fun.nit
new file mode 100644 (file)
index 0000000..c5cf4fa
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       return
+end
diff --git a/tests/error_ret_fun.sav b/tests/error_ret_fun.sav
new file mode 100644 (file)
index 0000000..1726f10
--- /dev/null
@@ -0,0 +1 @@
+./error_ret_fun.nit:19,2--7: Error: Return without value in a function.
diff --git a/tests/error_ret_proc.nit b/tests/error_ret_proc.nit
new file mode 100644 (file)
index 0000000..ecc429e
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto
+do
+       return 5
+end
diff --git a/tests/error_ret_proc.sav b/tests/error_ret_proc.sav
new file mode 100644 (file)
index 0000000..b21afcf
--- /dev/null
@@ -0,0 +1 @@
+./error_ret_proc.nit:19,2--9: Error: Return with value in a procedure.
diff --git a/tests/error_ret_type.nit b/tests/error_ret_type.nit
new file mode 100644 (file)
index 0000000..562b740
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto: Int
+do
+       return '4'
+end
diff --git a/tests/error_ret_type.sav b/tests/error_ret_type.sav
new file mode 100644 (file)
index 0000000..9e68a80
--- /dev/null
@@ -0,0 +1 @@
+./error_ret_type.nit:19,2--11: Type error: expected Int, got Char
diff --git a/tests/error_right_bool.nit b/tests/error_right_bool.nit
new file mode 100644 (file)
index 0000000..188448b
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if true or 6 then
+end
diff --git a/tests/error_right_bool.sav b/tests/error_right_bool.sav
new file mode 100644 (file)
index 0000000..99122d5
--- /dev/null
@@ -0,0 +1 @@
+./error_right_bool.nit:17,4--12: Type error: expected Bool, got Int
diff --git a/tests/error_spe_attr.nit b/tests/error_spe_attr.nit
new file mode 100644 (file)
index 0000000..7c4610c
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       attr _a: Int
+end
+class B
+special A
+       redef attr _a: Object
+end
diff --git a/tests/error_spe_attr.sav b/tests/error_spe_attr.sav
new file mode 100644 (file)
index 0000000..324631b
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_attr.nit:22,2--22: Redef error: Expected Int (as in A::_a), got Object in B::_a.
diff --git a/tests/error_spe_fun.nit b/tests/error_spe_fun.nit
new file mode 100644 (file)
index 0000000..79ab213
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+meth toto: Int do return 1 end
+end
+
+class B
+special A
+redef meth toto do end
+end
diff --git a/tests/error_spe_fun.sav b/tests/error_spe_fun.sav
new file mode 100644 (file)
index 0000000..85fda12
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_fun.nit:23,1--15: Control error: Reached end of function.
diff --git a/tests/error_spe_param.nit b/tests/error_spe_param.nit
new file mode 100644 (file)
index 0000000..8bcd2f3
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class A
+meth toto(i: Int) do end
+end
+
+class B
+special A
+redef meth toto(c: Object) do end
+end
diff --git a/tests/error_spe_param.sav b/tests/error_spe_param.sav
new file mode 100644 (file)
index 0000000..a6ca6d5
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_param.nit:24,1--25: Redef error: Expected Int (as in A::toto), got Object in B::toto.
diff --git a/tests/error_spe_param2.nit b/tests/error_spe_param2.nit
new file mode 100644 (file)
index 0000000..8f55b3d
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class A
+meth toto(i: Int) do end
+end
+
+class B
+special A
+redef meth toto(c: Char) do end
+end
diff --git a/tests/error_spe_param2.sav b/tests/error_spe_param2.sav
new file mode 100644 (file)
index 0000000..71cc328
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_param2.nit:24,1--23: Redef error: Expected Int (as in A::toto), got Char in B::toto.
diff --git a/tests/error_spe_proc.nit b/tests/error_spe_proc.nit
new file mode 100644 (file)
index 0000000..d946e44
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+meth toto do end
+end
+
+class B
+special A
+redef meth toto: Int do return 2end
+end
diff --git a/tests/error_spe_proc.sav b/tests/error_spe_proc.sav
new file mode 100644 (file)
index 0000000..00f021b
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_proc.nit:23,1--32: Redef error: The function B::toto redefines the procedure A::toto.
diff --git a/tests/error_spe_ret.nit b/tests/error_spe_ret.nit
new file mode 100644 (file)
index 0000000..46375ff
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+meth toto: Int do return 1 end
+end
+
+class B
+special A
+redef meth toto: Char do return 'a' end
+end
diff --git a/tests/error_spe_ret.sav b/tests/error_spe_ret.sav
new file mode 100644 (file)
index 0000000..fd18496
--- /dev/null
@@ -0,0 +1 @@
+./error_spe_ret.nit:23,1--35: Redef error: Expected Int (as in A::toto), got Char in B::toto.
diff --git a/tests/error_star_type.nit b/tests/error_star_type.nit
new file mode 100644 (file)
index 0000000..44eae7a
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth toto(a: Int...) do end
+toto(4,'5')
diff --git a/tests/error_star_type.sav b/tests/error_star_type.sav
new file mode 100644 (file)
index 0000000..d517812
--- /dev/null
@@ -0,0 +1 @@
+./error_star_type.nit:18,1--10: Type error: expected Int, got Char
diff --git a/tests/error_super_many.nit b/tests/error_super_many.nit
new file mode 100644 (file)
index 0000000..8308cf9
--- /dev/null
@@ -0,0 +1,49 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo
+       do
+               0.output
+       end
+end
+
+class B
+special A
+       redef meth foo
+       do
+               1.output
+       end
+end
+
+class C
+special A
+       redef meth foo
+       do
+               2.output
+       end
+end
+
+class D
+special B
+special C
+       redef meth foo
+       do
+               super
+       end
+end
diff --git a/tests/error_super_none.nit b/tests/error_super_none.nit
new file mode 100644 (file)
index 0000000..bcadc86
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class A
+       meth foo
+       do
+               super
+       end
+end
diff --git a/tests/error_super_none.sav b/tests/error_super_none.sav
new file mode 100644 (file)
index 0000000..e332ad5
--- /dev/null
@@ -0,0 +1 @@
+./error_super_none.nit:21,3--7: Error: No super method to call for foo.
diff --git a/tests/error_unk_class.nit b/tests/error_unk_class.nit
new file mode 100644 (file)
index 0000000..8620254
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i = new Canard
diff --git a/tests/error_unk_class.sav b/tests/error_unk_class.sav
new file mode 100644 (file)
index 0000000..90bd026
--- /dev/null
@@ -0,0 +1 @@
+./error_unk_class.nit:17,13: Type error: class Canard not found in module error_unk_class.
diff --git a/tests/error_var_args.nit b/tests/error_var_args.nit
new file mode 100644 (file)
index 0000000..81b3d0e
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var t: Int
+t(5)
diff --git a/tests/error_var_args.sav b/tests/error_var_args.sav
new file mode 100644 (file)
index 0000000..5b3ed5e
--- /dev/null
@@ -0,0 +1 @@
+./error_var_args.nit:18,1--3: Error: t is variable, not a function.
diff --git a/tests/error_var_args2.nit b/tests/error_var_args2.nit
new file mode 100644 (file)
index 0000000..187de06
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var t: Int
+t(5) = 12
diff --git a/tests/error_var_args2.sav b/tests/error_var_args2.sav
new file mode 100644 (file)
index 0000000..554d9fd
--- /dev/null
@@ -0,0 +1 @@
+./error_var_args2.nit:18,1--9: Error: t is variable, not a function.
diff --git a/tests/error_var_assign.nit b/tests/error_var_assign.nit
new file mode 100644 (file)
index 0000000..2b9ef0c
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var t: Int
+t = 'e'
diff --git a/tests/error_var_assign.sav b/tests/error_var_assign.sav
new file mode 100644 (file)
index 0000000..0918510
--- /dev/null
@@ -0,0 +1 @@
+./error_var_assign.nit:18,1--7: Type error: expected Int, got Char
diff --git a/tests/example_421.inputs b/tests/example_421.inputs
new file mode 100644 (file)
index 0000000..51d7b8d
--- /dev/null
@@ -0,0 +1,2 @@
+5
+
diff --git a/tests/example_421.nit b/tests/example_421.nit
new file mode 100644 (file)
index 0000000..158c8fa
--- /dev/null
@@ -0,0 +1,31 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 421 sequence
+
+printn("Please enter a number greater than 1 >")
+var steps = 0
+var x = stdin.read_line.to_i # $ denotes global variables
+while x > 1 do
+       if x % 2 == 0 then
+               x = x / 2
+       else
+               x = 3 * x + 1
+       end
+       steps = steps + 1
+end
+
+printn(steps, " steps required to return to 1\n")
diff --git a/tests/example_421.sav b/tests/example_421.sav
new file mode 100644 (file)
index 0000000..29d5bd1
--- /dev/null
@@ -0,0 +1 @@
+Please enter a number greater than 1 >5 steps required to return to 1
diff --git a/tests/example_beer.nit b/tests/example_beer.nit
new file mode 100644 (file)
index 0000000..17eefbb
--- /dev/null
@@ -0,0 +1,92 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 99 bottles of beer
+# Just for fun
+
+class Bottle
+       meth sing is abstract
+private
+       meth sing_start
+       do
+               printn(self, " of beer on the wall.\n")
+               printn(self, " of beer.\n")
+               printn("Take it down, pass it around.\n")
+       end
+end
+
+class OneBottle
+special Bottle
+       redef meth sing
+       do
+               sing_start
+               printn("No more bottles of appear on the wall!\n\n")
+       end
+
+       redef meth to_s: String
+       do
+               return "One bottle"
+       end
+
+       init do end
+end
+
+class TwoBottles
+special Bottle
+       redef meth sing
+       do
+               sing_start
+               printn("One bottle appears on the wall\n\n")
+       end
+
+       redef meth to_s: String
+       do
+               return "2 bottles"
+       end
+
+       init do end
+end
+
+class Bottles
+special Bottle
+
+       redef meth sing
+       do
+               sing_start
+               printn(_quantity - 1," bottles appear on the wall!\n\n")
+       end
+
+       redef meth to_s: String
+       do
+               return _quantity.to_s + " bottles"
+       end
+
+       init(i: Int)
+       do
+               _quantity = i
+       end
+
+       attr _quantity: Int
+end
+
+var i = 99
+while i > 2 do
+       (new Bottles(i)).sing
+       i = i - 1
+end
+(new TwoBottles).sing
+(new OneBottle).sing
+
diff --git a/tests/example_beer.sav b/tests/example_beer.sav
new file mode 100644 (file)
index 0000000..d00cf58
--- /dev/null
@@ -0,0 +1,495 @@
+99 bottles of beer on the wall.
+99 bottles of beer.
+Take it down, pass it around.
+98 bottles appear on the wall!
+
+98 bottles of beer on the wall.
+98 bottles of beer.
+Take it down, pass it around.
+97 bottles appear on the wall!
+
+97 bottles of beer on the wall.
+97 bottles of beer.
+Take it down, pass it around.
+96 bottles appear on the wall!
+
+96 bottles of beer on the wall.
+96 bottles of beer.
+Take it down, pass it around.
+95 bottles appear on the wall!
+
+95 bottles of beer on the wall.
+95 bottles of beer.
+Take it down, pass it around.
+94 bottles appear on the wall!
+
+94 bottles of beer on the wall.
+94 bottles of beer.
+Take it down, pass it around.
+93 bottles appear on the wall!
+
+93 bottles of beer on the wall.
+93 bottles of beer.
+Take it down, pass it around.
+92 bottles appear on the wall!
+
+92 bottles of beer on the wall.
+92 bottles of beer.
+Take it down, pass it around.
+91 bottles appear on the wall!
+
+91 bottles of beer on the wall.
+91 bottles of beer.
+Take it down, pass it around.
+90 bottles appear on the wall!
+
+90 bottles of beer on the wall.
+90 bottles of beer.
+Take it down, pass it around.
+89 bottles appear on the wall!
+
+89 bottles of beer on the wall.
+89 bottles of beer.
+Take it down, pass it around.
+88 bottles appear on the wall!
+
+88 bottles of beer on the wall.
+88 bottles of beer.
+Take it down, pass it around.
+87 bottles appear on the wall!
+
+87 bottles of beer on the wall.
+87 bottles of beer.
+Take it down, pass it around.
+86 bottles appear on the wall!
+
+86 bottles of beer on the wall.
+86 bottles of beer.
+Take it down, pass it around.
+85 bottles appear on the wall!
+
+85 bottles of beer on the wall.
+85 bottles of beer.
+Take it down, pass it around.
+84 bottles appear on the wall!
+
+84 bottles of beer on the wall.
+84 bottles of beer.
+Take it down, pass it around.
+83 bottles appear on the wall!
+
+83 bottles of beer on the wall.
+83 bottles of beer.
+Take it down, pass it around.
+82 bottles appear on the wall!
+
+82 bottles of beer on the wall.
+82 bottles of beer.
+Take it down, pass it around.
+81 bottles appear on the wall!
+
+81 bottles of beer on the wall.
+81 bottles of beer.
+Take it down, pass it around.
+80 bottles appear on the wall!
+
+80 bottles of beer on the wall.
+80 bottles of beer.
+Take it down, pass it around.
+79 bottles appear on the wall!
+
+79 bottles of beer on the wall.
+79 bottles of beer.
+Take it down, pass it around.
+78 bottles appear on the wall!
+
+78 bottles of beer on the wall.
+78 bottles of beer.
+Take it down, pass it around.
+77 bottles appear on the wall!
+
+77 bottles of beer on the wall.
+77 bottles of beer.
+Take it down, pass it around.
+76 bottles appear on the wall!
+
+76 bottles of beer on the wall.
+76 bottles of beer.
+Take it down, pass it around.
+75 bottles appear on the wall!
+
+75 bottles of beer on the wall.
+75 bottles of beer.
+Take it down, pass it around.
+74 bottles appear on the wall!
+
+74 bottles of beer on the wall.
+74 bottles of beer.
+Take it down, pass it around.
+73 bottles appear on the wall!
+
+73 bottles of beer on the wall.
+73 bottles of beer.
+Take it down, pass it around.
+72 bottles appear on the wall!
+
+72 bottles of beer on the wall.
+72 bottles of beer.
+Take it down, pass it around.
+71 bottles appear on the wall!
+
+71 bottles of beer on the wall.
+71 bottles of beer.
+Take it down, pass it around.
+70 bottles appear on the wall!
+
+70 bottles of beer on the wall.
+70 bottles of beer.
+Take it down, pass it around.
+69 bottles appear on the wall!
+
+69 bottles of beer on the wall.
+69 bottles of beer.
+Take it down, pass it around.
+68 bottles appear on the wall!
+
+68 bottles of beer on the wall.
+68 bottles of beer.
+Take it down, pass it around.
+67 bottles appear on the wall!
+
+67 bottles of beer on the wall.
+67 bottles of beer.
+Take it down, pass it around.
+66 bottles appear on the wall!
+
+66 bottles of beer on the wall.
+66 bottles of beer.
+Take it down, pass it around.
+65 bottles appear on the wall!
+
+65 bottles of beer on the wall.
+65 bottles of beer.
+Take it down, pass it around.
+64 bottles appear on the wall!
+
+64 bottles of beer on the wall.
+64 bottles of beer.
+Take it down, pass it around.
+63 bottles appear on the wall!
+
+63 bottles of beer on the wall.
+63 bottles of beer.
+Take it down, pass it around.
+62 bottles appear on the wall!
+
+62 bottles of beer on the wall.
+62 bottles of beer.
+Take it down, pass it around.
+61 bottles appear on the wall!
+
+61 bottles of beer on the wall.
+61 bottles of beer.
+Take it down, pass it around.
+60 bottles appear on the wall!
+
+60 bottles of beer on the wall.
+60 bottles of beer.
+Take it down, pass it around.
+59 bottles appear on the wall!
+
+59 bottles of beer on the wall.
+59 bottles of beer.
+Take it down, pass it around.
+58 bottles appear on the wall!
+
+58 bottles of beer on the wall.
+58 bottles of beer.
+Take it down, pass it around.
+57 bottles appear on the wall!
+
+57 bottles of beer on the wall.
+57 bottles of beer.
+Take it down, pass it around.
+56 bottles appear on the wall!
+
+56 bottles of beer on the wall.
+56 bottles of beer.
+Take it down, pass it around.
+55 bottles appear on the wall!
+
+55 bottles of beer on the wall.
+55 bottles of beer.
+Take it down, pass it around.
+54 bottles appear on the wall!
+
+54 bottles of beer on the wall.
+54 bottles of beer.
+Take it down, pass it around.
+53 bottles appear on the wall!
+
+53 bottles of beer on the wall.
+53 bottles of beer.
+Take it down, pass it around.
+52 bottles appear on the wall!
+
+52 bottles of beer on the wall.
+52 bottles of beer.
+Take it down, pass it around.
+51 bottles appear on the wall!
+
+51 bottles of beer on the wall.
+51 bottles of beer.
+Take it down, pass it around.
+50 bottles appear on the wall!
+
+50 bottles of beer on the wall.
+50 bottles of beer.
+Take it down, pass it around.
+49 bottles appear on the wall!
+
+49 bottles of beer on the wall.
+49 bottles of beer.
+Take it down, pass it around.
+48 bottles appear on the wall!
+
+48 bottles of beer on the wall.
+48 bottles of beer.
+Take it down, pass it around.
+47 bottles appear on the wall!
+
+47 bottles of beer on the wall.
+47 bottles of beer.
+Take it down, pass it around.
+46 bottles appear on the wall!
+
+46 bottles of beer on the wall.
+46 bottles of beer.
+Take it down, pass it around.
+45 bottles appear on the wall!
+
+45 bottles of beer on the wall.
+45 bottles of beer.
+Take it down, pass it around.
+44 bottles appear on the wall!
+
+44 bottles of beer on the wall.
+44 bottles of beer.
+Take it down, pass it around.
+43 bottles appear on the wall!
+
+43 bottles of beer on the wall.
+43 bottles of beer.
+Take it down, pass it around.
+42 bottles appear on the wall!
+
+42 bottles of beer on the wall.
+42 bottles of beer.
+Take it down, pass it around.
+41 bottles appear on the wall!
+
+41 bottles of beer on the wall.
+41 bottles of beer.
+Take it down, pass it around.
+40 bottles appear on the wall!
+
+40 bottles of beer on the wall.
+40 bottles of beer.
+Take it down, pass it around.
+39 bottles appear on the wall!
+
+39 bottles of beer on the wall.
+39 bottles of beer.
+Take it down, pass it around.
+38 bottles appear on the wall!
+
+38 bottles of beer on the wall.
+38 bottles of beer.
+Take it down, pass it around.
+37 bottles appear on the wall!
+
+37 bottles of beer on the wall.
+37 bottles of beer.
+Take it down, pass it around.
+36 bottles appear on the wall!
+
+36 bottles of beer on the wall.
+36 bottles of beer.
+Take it down, pass it around.
+35 bottles appear on the wall!
+
+35 bottles of beer on the wall.
+35 bottles of beer.
+Take it down, pass it around.
+34 bottles appear on the wall!
+
+34 bottles of beer on the wall.
+34 bottles of beer.
+Take it down, pass it around.
+33 bottles appear on the wall!
+
+33 bottles of beer on the wall.
+33 bottles of beer.
+Take it down, pass it around.
+32 bottles appear on the wall!
+
+32 bottles of beer on the wall.
+32 bottles of beer.
+Take it down, pass it around.
+31 bottles appear on the wall!
+
+31 bottles of beer on the wall.
+31 bottles of beer.
+Take it down, pass it around.
+30 bottles appear on the wall!
+
+30 bottles of beer on the wall.
+30 bottles of beer.
+Take it down, pass it around.
+29 bottles appear on the wall!
+
+29 bottles of beer on the wall.
+29 bottles of beer.
+Take it down, pass it around.
+28 bottles appear on the wall!
+
+28 bottles of beer on the wall.
+28 bottles of beer.
+Take it down, pass it around.
+27 bottles appear on the wall!
+
+27 bottles of beer on the wall.
+27 bottles of beer.
+Take it down, pass it around.
+26 bottles appear on the wall!
+
+26 bottles of beer on the wall.
+26 bottles of beer.
+Take it down, pass it around.
+25 bottles appear on the wall!
+
+25 bottles of beer on the wall.
+25 bottles of beer.
+Take it down, pass it around.
+24 bottles appear on the wall!
+
+24 bottles of beer on the wall.
+24 bottles of beer.
+Take it down, pass it around.
+23 bottles appear on the wall!
+
+23 bottles of beer on the wall.
+23 bottles of beer.
+Take it down, pass it around.
+22 bottles appear on the wall!
+
+22 bottles of beer on the wall.
+22 bottles of beer.
+Take it down, pass it around.
+21 bottles appear on the wall!
+
+21 bottles of beer on the wall.
+21 bottles of beer.
+Take it down, pass it around.
+20 bottles appear on the wall!
+
+20 bottles of beer on the wall.
+20 bottles of beer.
+Take it down, pass it around.
+19 bottles appear on the wall!
+
+19 bottles of beer on the wall.
+19 bottles of beer.
+Take it down, pass it around.
+18 bottles appear on the wall!
+
+18 bottles of beer on the wall.
+18 bottles of beer.
+Take it down, pass it around.
+17 bottles appear on the wall!
+
+17 bottles of beer on the wall.
+17 bottles of beer.
+Take it down, pass it around.
+16 bottles appear on the wall!
+
+16 bottles of beer on the wall.
+16 bottles of beer.
+Take it down, pass it around.
+15 bottles appear on the wall!
+
+15 bottles of beer on the wall.
+15 bottles of beer.
+Take it down, pass it around.
+14 bottles appear on the wall!
+
+14 bottles of beer on the wall.
+14 bottles of beer.
+Take it down, pass it around.
+13 bottles appear on the wall!
+
+13 bottles of beer on the wall.
+13 bottles of beer.
+Take it down, pass it around.
+12 bottles appear on the wall!
+
+12 bottles of beer on the wall.
+12 bottles of beer.
+Take it down, pass it around.
+11 bottles appear on the wall!
+
+11 bottles of beer on the wall.
+11 bottles of beer.
+Take it down, pass it around.
+10 bottles appear on the wall!
+
+10 bottles of beer on the wall.
+10 bottles of beer.
+Take it down, pass it around.
+9 bottles appear on the wall!
+
+9 bottles of beer on the wall.
+9 bottles of beer.
+Take it down, pass it around.
+8 bottles appear on the wall!
+
+8 bottles of beer on the wall.
+8 bottles of beer.
+Take it down, pass it around.
+7 bottles appear on the wall!
+
+7 bottles of beer on the wall.
+7 bottles of beer.
+Take it down, pass it around.
+6 bottles appear on the wall!
+
+6 bottles of beer on the wall.
+6 bottles of beer.
+Take it down, pass it around.
+5 bottles appear on the wall!
+
+5 bottles of beer on the wall.
+5 bottles of beer.
+Take it down, pass it around.
+4 bottles appear on the wall!
+
+4 bottles of beer on the wall.
+4 bottles of beer.
+Take it down, pass it around.
+3 bottles appear on the wall!
+
+3 bottles of beer on the wall.
+3 bottles of beer.
+Take it down, pass it around.
+2 bottles appear on the wall!
+
+2 bottles of beer on the wall.
+2 bottles of beer.
+Take it down, pass it around.
+One bottle appears on the wall
+
+One bottle of beer on the wall.
+One bottle of beer.
+Take it down, pass it around.
+No more bottles of appear on the wall!
+
diff --git a/tests/example_exec_ls.nit b/tests/example_exec_ls.nit
new file mode 100644 (file)
index 0000000..3cc480b
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard
+
+var p = new Process.init_("ls")
+p.wait
+print(p.status)
diff --git a/tests/example_hanoi.nit b/tests/example_hanoi.nit
new file mode 100644 (file)
index 0000000..d99994e
--- /dev/null
@@ -0,0 +1,128 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A simple exemple 
+
+class Tower
+       # A tower is a stack of discus.
+       meth top: Int
+       # Diameter of the last discus.
+       do
+               return _t.last
+       end
+
+       meth height: Int
+       # Number of discus.
+       do
+               return _t.length
+       end
+
+       meth push(i: Int)
+       # Put an discus of diameter `i'.
+       do
+               _t.push(i)
+       end
+
+       meth pop: Int
+       # Remove the last discus and get its diameter.
+       do
+               assert not_empty: not _t.is_empty
+               return _t.pop
+       end
+
+       redef meth to_s: String
+       # Display the tower
+       do
+               if _t.is_empty then
+                       return "-"
+               else
+                       return "({_t.join(":")})"
+               end
+       end
+
+       attr _t: Array[Int] # The stack of discus (only the diameter is stored).
+
+       init full(n: Int)
+       # Build a new tower with `n' discus.
+       do
+               assert positive: n >= 0
+               _t = new Array[Int].with_capacity(n)
+               for i in [0..n[ do
+                       push(n-i)
+               end
+       end
+
+       init empty
+       # Build a empty tower.
+       do
+               _t = new Array[Int]
+       end
+end
+
+class Hanoi
+       # Hanoi is a city with 3 towers.
+       meth run
+       do
+               move(_tower1.height, _tower1, _tower2, _tower3)
+       end
+
+       private meth move(nb: Int, source: Tower, intermediate: Tower, destination: Tower)
+       do
+               if nb <= 0 then
+                       return
+               end
+               move(nb-1, source, destination, intermediate)
+               destination.push(source.pop)
+               print(self)
+               move(nb-1, intermediate, source, destination)
+       end
+
+       redef meth to_s: String
+       do
+               return "{_tower1} {_tower2} {_tower3}"
+       end
+
+       attr _tower1: Tower
+       attr _tower2: Tower
+       attr _tower3: Tower
+
+       init(nb: Int)
+       do
+               _tower1 = new Tower.full(nb)
+               _tower2 = new Tower.empty
+               _tower3 = new Tower.empty
+       end
+end
+
+meth usage
+do
+       print("Usage: hanoi <number of discus>")
+       exit(0)
+end
+
+#
+
+if args.length != 1 then
+       usage
+end
+
+var nb = args.first.to_i
+if nb < 1 then
+       usage
+end
+var h = new Hanoi(nb)
+print(h)
+h.run
diff --git a/tests/example_hanoi.sav b/tests/example_hanoi.sav
new file mode 100644 (file)
index 0000000..7ecf201
--- /dev/null
@@ -0,0 +1 @@
+Usage: hanoi <number of discus>
diff --git a/tests/example_objet.nit b/tests/example_objet.nit
new file mode 100644 (file)
index 0000000..c4f4dd1
--- /dev/null
@@ -0,0 +1,391 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exemple commenté d'un programme en NIT
+# Cet exemple est tiré du dernier TP C++ de l'année des IUP1
+
+# Attention, NIT est un langage enrichi en sucre (syntaxique) et en déclaration 
+# implicite. Cet exemple en introduit petit Ã  petit. Et chaque utilisation est 
+# abondamment commentée. D'ailleurs, a propos de commentaires, il est peut-être
+# trop tard pour dire que ceux-ci commencent par un dièse (#)
+
+# Les points suivants sont couverts par cet exemple :
+# - définition des modules
+# - définition des classes
+# - définition des propriétés (attributs, procédures, fonctions)
+# - structures de contrôles (blocs, boucles, conditions)
+# - variables locales
+# - accesseurs universels
+# - constructeurs et constructions d'instances
+# - chaînes de caractères
+
+# Les points suivants sont aperçus :
+# - classes génériques
+# - protection (visibilité des propriétés)
+# - collections
+# - héritage et redéfinition
+
+# Les points suivants ne sont pas abordés :
+# - accesseurs implicites
+# - (re)définition des opérateurs
+# - paramètres implicites
+# - méthodes Ã  arité variable
+# - méthodes retardées (virtuelles pures)
+# - constructeurs universels
+# - appel Ã  super
+# - héritage multiple
+# - covariance des types
+# - raffinement de classes
+
+# Un fichier = un module. Les classes d'un module sont définies dans le fichier.
+# Au début des fichiers, les modules Ã  importer doivent Ãªtre déclarés (via le
+# mot clé "import"). Implicitement, tout module importe le module nommé
+# "standard" qui définit les classes usuelles.
+
+# On va Ã©tudier une représentation d'un entrepôt de produits variés.
+class Entrepot
+private
+# Dans un bloc "private", les propriétés déclarées sont seulement accessibles au
+# receveur ("self")
+
+# Les attributs sont déclarés par le mot clé "meth" et commencent par un "@"
+       attr _nom_: String              # Un entrepôt a un nom (de type chaîne).
+       attr _rayons: Array[Rayon]      # Il est composé d'un ensemble de rayon.
+       # "Array" est une classe paramétrée, les crochets en sont la marque.
+       # La classe "Rayon" est définie plus loin
+
+
+# Les propriétés déclarées dans un bloc "public" sont accessibles Ã  tout le
+# monde.
+
+# Les méthodes (fonctions et procédures) sont déclarées par le mot clé "meth"
+       # nom est une fonction qui retourne une chaîne
+       meth nom: String
+       do
+               # "return" sort de la fonction
+               return _nom_
+               # En fait, les attributs et les méthodes sont dans deux espaces
+               # de noms distincts.
+               # Le @ peut se prononcer "at" ce qui rappelle le mot attribut
+       end
+       
+       # set_nom est une procédure qui prend une chaîne en paramètre
+       meth set_nom(n: String)
+       do
+               _nom_ = n               # "=" désigne l'affectation
+               # Les affectations sont des instructions et ne sont pas
+               # chaînées
+       end
+
+       meth add_rayon(r: Rayon)
+       do
+               _rayons.add(r)          # "add" ajoute un Ã©lément
+       end
+
+       # to_s est la méthode implicitement appelée par "print" et "println"
+       # Il s'agit de la représentation "humaine" d'un objet
+       redef meth to_s: String
+       do
+               # Les variables sont déclarées par "var", leur portée va de leur
+               # déclaration jusqu'au "end" correspondant
+               var s: String           # Là où on calcule le résultat
+               # Les chaînes littérales sont déclarées avec des guillemets
+               s = "*** Entrepôt "     # On initialise "s"
+               # puis on concatène des chaînes Ã  "s"
+               s.append(_nom_)         # la méthode "append" concatène
+               s.append(" ***\n")
+               # Les conditions sont de la forme "if then else if else end"
+               if _rayons.is_empty then
+                       s.append("L'entrepôt est vide\n")
+               else
+                       var i: Iterator[Rayon]  
+                       # Les itérateurs permettent de traverser les collections
+                       i = _rayons.iterator # "iterator" retourne un nouvel itérateur 
+                       # La forme des boucles est "while do end"       
+                       while i.is_ok do        # on pointe un Ã©lément valide ? 
+                               # "item" retourne l'élément pointé par
+                               # un iterateur
+                               s.append(i.item.to_s)
+                               i.next  # passe Ã  l'élément suivant
+                       end
+                       s.add('\n')     # "add" ajoute un caractère Ã  la fin.
+                       # Comme en C, les caractères sont entre simples cotes.
+               end
+               return s
+       end
+
+
+# Dans un bloc "constructor", les méthodes déclarées sont celles utilisées pour
+# créer des instances
+
+       # init sans paramètre est le constructeur implicite
+       init
+       do
+               _nom_ = "sans nom"
+               # "new" permet d'instancier une classe. 
+               _rayons = new Array[Rayon]
+               # Un nouveau tableau est implicitement vide
+               # On aurait pu prévoir une capacité en utilisant un autre
+               # constructeur et en Ã©crivant :
+               #       _rayons = new Array[Rayon].with_capacity(50)
+       end
+       
+       # Plusieurs constructeurs peuvent Ãªtre définis
+       init with_nom(n: String)
+       do
+               _nom_ = n
+               _rayons = new Array[Rayon]
+       end
+
+# Une classe qui ne possède pas de méthode définie dans un bloc "constructor"
+# est une classe abstraite : elle ne peut Ãªtre instanciée.
+end
+
+class Produit
+private
+       attr _nom_: String              # Désignation du produit
+       attr _qte_: Int                         # Quantité en stock
+
+
+
+       # Comme nous l'avons vu, les accesseurs en lecture sont
+       # généralement homonymes aux attributs (au @ près).
+       meth nom: String
+       do
+               return _nom_
+       end
+
+       meth qte: Int
+       do
+               return _qte_
+       end
+
+       # Toutefois, pour les accesseurs en Ã©criture, il est d'usage en NIT 
+       # d'utiliser un type de méthode particulier appelé "accesseur universel"
+       # son nom se caractérise par un "=" final
+       meth qte=(i: Int)
+       do
+               _qte_ = i
+       end
+       # La méthode s'utilise alors de façon Ã©légante :
+       # pour p de type statique Produit, l'expression
+       #       p.qte
+       # correspond Ã  un envoi de message vers la fonction "qte" et retourne
+       # la quantité d'un produit. Tandis que l'instruction
+       #       p.qte = 16
+       # correspond Ã  un envoi de message vers la méthode "qte=" et affecte
+       # la quantité d'un produit.
+
+
+       redef meth to_s: String
+       do
+               # On peut aussi utiliser "+" pour concaténer les chaînes
+               return _nom_ + ":" + _qte_.to_s
+               # Mais ce n'est pas très efficace car cela crée des objets
+               # intermédiaires.
+       end
+
+
+       init(nom: String, qte: Int)
+       do
+               _nom_ = nom
+               _qte_ = qte
+       end
+end
+
+class Rayon
+private
+       attr _stock: Array[Produit]     # Des produits en stock
+       attr _rubrique: String          # La catégorie des produits stockés
+
+       # Cette fonction est utilisé par to_s pour afficher un petit titre
+       meth to_s_head: String
+       do
+               # Les déclarations de type sont optionnelles dans un bloc "var".
+               # Si une expression est passée comme valeur initiale d'une
+               # variable, le type statique de la variable est implicitement
+               # celui de l'expression.
+               var s = "* Rayon : "
+               # Ici, le type statique de s est implicitement String
+
+               s.append(_rubrique)
+               s.add('\n')
+               return s
+       end
+
+       meth cherche_produit(n: String): Produit
+       do
+               var i = _stock.iterator
+               while i.is_ok do
+                       var p = i.item
+                       # "=" est l'opérateur Ã©galité de valeur.
+                       if p.nom == n then
+                               return p
+                       end
+                       i.next
+               end
+               # "null" correspond Ã  l'objet vide
+               return null
+       end
+
+
+       redef meth to_s: String
+       do
+               var s = to_s_head
+               # Les boucles en NIT sont des structures puissantes, toutefois
+               # la manipulation des itérateurs peut Ãªtre facilité par la
+               # structure "for in"
+               for p in _stock do
+               # L'expression de droite doit Ãªtre sous-type de Collection
+               # (ce qui est le cas pour Array[Produit]).
+               # La variable p est automatiquement déclarée, son type 
+               # automatiquement déduit (ici Produit) et la collection est 
+               # automatiquement parcourue
+               # En réalité, la structure "for in" n'est que du sucre
+               # syntaxique pour une boucle sur une collection via des
+               # itérateur comme celle Ã©crite dans la fonction
+               # "cherche_produit" précédente
+                       s.append(p.to_s)
+                       s.add('\n')
+               end
+               return s
+       end
+
+
+       # Cette fonction permet de retourner la quantité d'un produit donné
+       # Ce service est très simple Ã  implémenter si on utilise cherche_produit
+       meth quantite(n: String): Int
+       do
+               var p = cherche_produit(n)
+               # "==" est l'opérateur d'égalité d'identité
+               if p == null then
+                       return 0
+               else
+                       return p.qte
+               end
+       end
+
+       # Le service dual consiste Ã  définir la quantité d'un produit
+       # En NIT, il est d'usage de définir ce genre de service par un accesseur
+       # universel :
+       meth quantite=(n: String, i: Int)
+       do
+               var p = cherche_produit(n)
+               if p == null then
+                       # On Construit un nouveau produit que l'on ajoute
+                       _stock.add(new Produit(n, i))
+               else
+                       # On change la quantité du produit trouvé 
+                       p.qte = i
+               end
+       end
+       # Les accesseurs universels s'utilise de façon toujours aussi Ã©légante.
+       # Pour r de type Rayon, on Ã©crira donc :
+       #       r.quantite("clous")
+       # pour obtenir la quantité de clous dans le rayon, et :
+       #       r.quantite("clous") = 15
+       # pour mettre le nombre de clous Ã  15
+end
+
+class RayonNormal
+special Rayon
+
+       init(r: String)
+       do
+               _rubrique = r
+               _stock = new Array[Produit]
+       end
+end
+
+class RayonFroid
+# Les super-classes sont déclarés avec le mot clé "special".
+# Implicitement, c'est "Object", la classe de tous les objets.
+special Rayon
+
+# Tant qu'on parle d'implicite, en l'absence de bloc de propriétés,
+# celles-ci sont déclarées en tant que "public"
+       meth temp_max: Int
+       do
+               return _temp_max_       # Attribut défini juste en dessous
+       end
+
+       attr _temp_max_: Int            # Une température maximale
+       # Les autres attributs sont bien sûr hérités !
+
+       redef meth to_s_head: String            # On redéfinit cette méthode
+       do
+       # nous avons vu le "append" et le "+" sur les chaînes, mais la
+       # méthode la plus simple reste la construction "{}" qui
+       # permet l'inclusion automatique d'expressions. C'est aussi la méthode
+       # la plus efficace.
+       return "* Rayon Réfrigéré : {_rubrique} - t° max : {_temp_max_}\n"
+       end
+
+
+       init(r: String, t: Int)
+       do
+               _temp_max_ = t
+               _rubrique = r
+               _stock = new Array[Produit]
+       end
+end
+
+
+
+# Le main (point d'entrée du programme) peut Ãªtre déclaré directement Ã  la fin
+# des définitions de classes
+
+# Constructeur implicite ("init")
+var e = new Entrepot
+# "println" affiche un truc et ajoute un \n Ã  la fin
+print(e.nom)                   # affiche "sans nom"
+# "print" affiche un truc mais sans le \n Ã  la fin                     
+printn('\n')                   # va Ã  la de ligne
+
+e.set_nom("Montpellier")
+printn(e.nom, "\n\n")                  
+# Affiche "Montpellier" et saute une ligne.
+# Contrairement Ã  "println", "print" peut prendre plusieurs paramètres
+
+# Constructeur explicite ("with_nom")
+e = new Entrepot.with_nom("Lunel")     # on perd l'ancien entrepôt
+printn(e, '\n')
+# affiche "*** Entrepot Lunel *** L'entrepôt est vide"
+
+var p = new Produit("Carotte", 15)
+print(p)                               # affiche Carotte:15
+p.qte = 20
+print(p)                               # affiche Carotte:20
+printn('\n')
+
+var r = new RayonNormal("Légumes")
+printn(r, '\n')
+
+r.quantite("Carotte") = 15
+r.quantite("Navet") = 10
+r.quantite("Chou") = 3
+printn(r)
+r.quantite("Chou") = 13
+r.quantite("Courge") = 1
+printn(r, '\n')
+
+e.add_rayon(r)
+
+var r2 = new RayonFroid("Surgelés", -5)
+e.add_rayon(r2)
+r2.quantite("Pizza") =  12
+r2.quantite("Poisson pané") = 4
+printn(e)
diff --git a/tests/example_objet.sav b/tests/example_objet.sav
new file mode 100644 (file)
index 0000000..4154b82
--- /dev/null
@@ -0,0 +1,32 @@
+sans nom
+
+Montpellier
+
+*** Entrepôt Lunel ***
+L'entrepôt est vide
+
+Carotte:15
+Carotte:20
+
+* Rayon : Légumes
+
+* Rayon : Légumes
+Carotte:15
+Navet:10
+Chou:3
+* Rayon : Légumes
+Carotte:15
+Navet:10
+Chou:13
+Courge:1
+
+*** Entrepôt Lunel ***
+* Rayon : Légumes
+Carotte:15
+Navet:10
+Chou:13
+Courge:1
+* Rayon Réfrigéré : Surgelés - t° max : -5
+Pizza:12
+Poisson pané:4
+
diff --git a/tests/example_point.nit b/tests/example_point.nit
new file mode 100644 (file)
index 0000000..1481487
--- /dev/null
@@ -0,0 +1,83 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class Point
+private
+       attr _x: Int    # Abscisse
+       attr _y: Int    # Ordonnée
+
+
+       meth x: Int
+       do
+               return _x
+       end
+       meth x=(i: Int)
+       do
+               _x = i
+       end
+
+       meth y: Int
+       do
+               return _y
+       end
+       meth y=(i: Int)
+       do
+               _y = i
+       end
+
+       # Change la position d'un point
+       meth moveto(x: Int, y: Int)
+       do
+               _x = x
+               _y = y
+       end
+
+       redef meth to_s: String
+       do
+               var s = "("
+               s.append(_x.to_s)
+               s.add(':')
+               s.append(_y.to_s)
+               s.add(')')
+               return s
+       end
+
+       redef meth ==(p)
+       do
+               return not p is null and p isa Point and _x == p.x and _y == p.y
+       end
+
+
+       init
+       do
+       end
+
+       init at(x: Int, y: Int)
+       do
+               moveto(x, y)
+       end
+
+end
+
+
+var p1 = new Point
+var p2 = new Point.at(5, 8)
+print(p1)              # (0,0)
+print(p2)              # (5,8)
+print(p1 == p2)        # false
+p1.moveto(5,12)
+p2.y = 12
+print(p1 == p2)        # true
diff --git a/tests/example_point.sav b/tests/example_point.sav
new file mode 100644 (file)
index 0000000..33a1888
--- /dev/null
@@ -0,0 +1,4 @@
+(0:0)
+(5:8)
+false
+true
diff --git a/tests/example_procedural_string.nit b/tests/example_procedural_string.nit
new file mode 100644 (file)
index 0000000..126fb85
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A procedural program (without explicit class).
+
+meth first_word(s: String): String
+do
+       var result = new String
+       var i = 0
+       while i < s.length and s[i] != ' ' do
+               result.add(s[i])
+               i = i + 1
+       end
+       return result
+end
+
+print(first_word("Hello world!"))
diff --git a/tests/example_procedural_string.sav b/tests/example_procedural_string.sav
new file mode 100644 (file)
index 0000000..e965047
--- /dev/null
@@ -0,0 +1 @@
+Hello
diff --git a/tests/example_simple.nit b/tests/example_simple.nit
new file mode 100644 (file)
index 0000000..0feea6d
--- /dev/null
@@ -0,0 +1,28 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This program is a simple program without explicit class definition
+
+meth say_goodnight(name: String): String
+do
+       var gn = "Goodnight"
+       return gn + ", " + name
+end
+
+# Time for bed...
+print(say_goodnight("John-Boy"))
+print(say_goodnight("Mary-Ellen"))
+
diff --git a/tests/example_simple.sav b/tests/example_simple.sav
new file mode 100644 (file)
index 0000000..aeaf92a
--- /dev/null
@@ -0,0 +1,2 @@
+Goodnight, John-Boy
+Goodnight, Mary-Ellen
diff --git a/tests/example_sorter.nit b/tests/example_sorter.nit
new file mode 100644 (file)
index 0000000..e82282c
--- /dev/null
@@ -0,0 +1,61 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class BackIntSorter
+special AbstractSorter[Int]
+       redef meth compare(a: Int, b: Int): Int
+       do
+               return b <=> a
+       end
+
+       init do end
+end
+
+class DecimalSorter
+special AbstractSorter[Int]
+       redef meth compare(a: Int, b: Int): Int
+       do
+               return (a%10) <=> (b%10)
+       end
+
+       init do end
+end
+
+meth get_an_array(nb: Int): Array[Int]
+do
+       var res = new Array[Int].with_capacity(nb)
+       var j = 64
+       while res.length < nb do
+               j = (j * 3451 + 234) % 56557
+               var k = j % 90 + 10
+               res.add(k)
+       end
+       return res
+end
+
+#
+
+var q = get_an_array(50)
+print(q.join(" "))
+(new ComparableSorter[Int]).sort(q)
+print(q.join(" "))
+(new DecimalSorter).sort(q)
+print(q.join(" "))
+(new BackIntSorter).sort(q)
+print(q.join(" "))
+(new DecimalSorter).sort(q)
+print(q.join(" "))
diff --git a/tests/example_sorter.sav b/tests/example_sorter.sav
new file mode 100644 (file)
index 0000000..2d41645
--- /dev/null
@@ -0,0 +1,5 @@
+47 72 94 80 23 35 64 68 88 34 47 25 99 32 22 89 52 38 37 43 45 79 40 70 13 97 35 38 18 76 35 49 78 28 50 88 38 41 27 68 58 38 80 34 59 31 96 60 45 93
+13 18 22 23 25 27 28 31 32 34 34 35 35 35 37 38 38 38 38 40 41 43 45 45 47 47 49 50 52 58 59 60 64 68 68 70 72 76 78 79 80 80 88 88 89 93 94 96 97 99
+80 40 50 80 70 60 41 31 32 72 52 22 23 13 93 43 94 34 34 64 35 35 45 45 25 35 76 96 47 47 37 97 27 68 68 28 58 78 38 38 18 88 88 38 38 79 89 49 99 59
+99 97 96 94 93 89 88 88 80 80 79 78 76 72 70 68 68 64 60 59 58 52 50 49 47 47 45 45 43 41 40 38 38 38 38 37 35 35 35 34 34 32 31 28 27 25 23 22 18 13
+60 80 70 40 50 80 41 31 32 52 22 72 93 13 23 43 64 94 34 34 25 35 35 35 45 45 76 96 47 47 27 37 97 38 38 38 38 88 58 18 78 88 28 68 68 59 79 49 89 99
diff --git a/tests/example_sorts.nit b/tests/example_sorts.nit
new file mode 100644 (file)
index 0000000..fcbf956
--- /dev/null
@@ -0,0 +1,98 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+meth quicksort(a: Array[Comparable])
+do
+       sub_quicksort(a, 0, a.length-1)
+end
+
+meth sub_quicksort(a: Array[Comparable], g: Int, d: Int)
+do
+       if g >= d then
+               return
+       end
+       var pivot = a[d]
+       var i = g
+       var j = d - 1
+       while j > i do
+               while a[i] < pivot do
+                       i = i + 1
+               end
+               while j >= g and a[j] >= pivot do
+                       j = j - 1
+               end
+               if j > i then
+                       var t = a[i]
+                       a[i] = a[j]
+                       a[j] = t
+               end
+       end
+       a[d] = a[i]
+       a[i] = pivot
+       sub_quicksort(a, g, i-1)
+       sub_quicksort(a, i+1, d)
+end
+
+meth heapsort(a: Array[Comparable])
+do
+       var i = a.length / 2 - 1 
+       while i >= 0 do
+               sift_down(a, i, a.length - 1)
+               i = i - 1
+       end
+
+       i = a.length - 1
+       while i >= 1 do
+               var t = a[0]
+               a[0] = a[i]
+               a[i] = t
+               sift_down(a, 0, i-1)
+               i = i - 1
+       end
+end
+
+meth sift_down(a: Array[Comparable], root: Int, bottom: Int)
+do
+       var done = false
+       while not done do
+               var maxchild = root * 2 + 1
+               if maxchild > bottom then
+                       return
+               else if maxchild < bottom and a[maxchild] < a[root * 2 + 2] then
+                       maxchild = root * 2 + 2
+               end
+
+               var r = a[root]
+               var c = a[maxchild] 
+               if r < c then
+                       a[root] = c
+                       a[maxchild] = r
+                       root = maxchild
+               else
+                       done = true 
+               end
+       end
+end
+
+var q = [6, 7, 3, 9, 1, 4, 2, 8, 5]
+var h = [6, 7, 3, 9, 1, 4, 2, 8, 5]
+print(q)
+quicksort(q)
+print(q)
+print(h)
+heapsort(h)
+print(h)
diff --git a/tests/example_sorts.sav b/tests/example_sorts.sav
new file mode 100644 (file)
index 0000000..9467e93
--- /dev/null
@@ -0,0 +1,4 @@
+673914285
+124356789
+673914285
+123456789
diff --git a/tests/example_string.nit b/tests/example_string.nit
new file mode 100644 (file)
index 0000000..5371270
--- /dev/null
@@ -0,0 +1,48 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A procedural program (without explicit class).
+# It displays the value of a local variable.
+# It exhibs ways to concatenate strings.
+
+var a = 10
+# First way: Multiple parameters.
+# Pro: Simple.
+# Con: Only for multi parameters methods.
+printn("The value of a is: ", a, ".\n")
+
+# Second way: Build a string and display it.
+# Pro: Eiffel way (rigourous).
+# Con: Eiffel way (heavy).
+var s = "The value of a is: "
+s.append(a.to_s)
+s.append(".\n")
+printn(s)
+
+# Third way: Use a intern string evaluation.
+# Pro: Script way (easy).
+# Con: Script way (unreadeable on complexes cases).
+printn("The value of a is: {a}.\n")
+
+# Fourth way: String concatenation
+# Pro: Easy.
+# Con: Unefficient (slow and consumes memory).
+printn("The value of a is: " + a.to_s + ".\n")
+
+# Fiveth way: Join arrays.
+# Pro: Sometime efficient on complex concatenation.
+# Con: Crazy.
+printn(["The value of a is: ", a.to_s, ".\n"].join(""))
diff --git a/tests/example_string.sav b/tests/example_string.sav
new file mode 100644 (file)
index 0000000..02444a6
--- /dev/null
@@ -0,0 +1,5 @@
+The value of a is: 10.
+The value of a is: 10.
+The value of a is: 10.
+The value of a is: 10.
+The value of a is: 10.
diff --git a/tests/example_time.nit b/tests/example_time.nit
new file mode 100644 (file)
index 0000000..f8825b0
--- /dev/null
@@ -0,0 +1,67 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This module show an example of universal accessors
+# Remark: implicit accessors are not used here
+
+# The Time class represents a quantity of time
+class Time
+       # Internally, the quantity of time is stored in minutes
+       readable writable attr _min: Int
+
+       # The quantity ot time (in hours)
+       meth hour: Int
+       do
+               # Need to transform minutes in hours
+               return _min / 60
+       end
+
+       # Set the quantity of time (in hour)
+       meth hour=(i: Int)
+       do
+               # Need to transform hours in minutes
+               _min = i * 60
+       end
+
+       # The quantity of tyme in human readable form (h:m)
+       redef meth to_s: String
+       do
+               var s = hour.to_s               # Get the h
+               s.add(':')
+               s.append((_min % 60).to_s)      # Append the m
+               return s
+       end
+
+
+       # A null quantity of time
+       init
+       do 
+       end
+end # class Time
+
+
+# Main part
+
+var t = new Time
+# Everything is 0
+printn("time: ", t, " - min: ", t.min, " - hour: ", t.hour, "\n")
+
+# Syntaxic sugar is good
+t.min = 1600
+printn("time: ", t, " - min: ", t.min, " - hour: ", t.hour, "\n")
+
+t.hour = 50
+printn("time: ", t, " - min: ", t.min, " - hour: ", t.hour, "\n")
diff --git a/tests/example_time.sav b/tests/example_time.sav
new file mode 100644 (file)
index 0000000..a5253d1
--- /dev/null
@@ -0,0 +1,3 @@
+time: 0:0 - min: 0 - hour: 0
+time: 26:40 - min: 1600 - hour: 26
+time: 50:0 - min: 3000 - hour: 50
diff --git a/tests/example_variable.nit b/tests/example_variable.nit
new file mode 100644 (file)
index 0000000..3a2bbdb
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Declare, assign and read local variables.
+var a: Int     # `a' is a local variable.
+a = 10         # Assignement.
+print(a)       # print 10
+do
+       var b = 20 # `b' is a local variable.
+       print(b)        # print 20
+       a = b + 10      # a = 30
+end
+# `b' no more exists.
+print(a)       # print 30
diff --git a/tests/example_variable.sav b/tests/example_variable.sav
new file mode 100644 (file)
index 0000000..300ed6f
--- /dev/null
@@ -0,0 +1,3 @@
+10
+20
+30
diff --git a/tests/example_wc.inputs b/tests/example_wc.inputs
new file mode 100644 (file)
index 0000000..34af8fb
--- /dev/null
@@ -0,0 +1,4 @@
+hello world
+... a second ligne
+
+a last one!
diff --git a/tests/example_wc.nit b/tests/example_wc.nit
new file mode 100644 (file)
index 0000000..0bd73fd
--- /dev/null
@@ -0,0 +1,43 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Count characters, words and lines of the standard input
+
+var c = 0
+var w = 0
+var l = 0
+
+var inw = false
+while not stdin.eof do
+       var i = stdin.read_char
+       if i >= 0 then
+               var x = i.ascii
+               c = c + 1
+               if x > ' ' then
+                       if not inw then
+                               inw = true
+                               w = w + 1
+                       end
+               else
+                       inw = false
+                       if x == '\n' then
+                               l = l + 1
+                       end
+               end
+       end
+end
+
+print("{l} {w} {c}")
diff --git a/tests/example_wc.sav b/tests/example_wc.sav
new file mode 100644 (file)
index 0000000..c30f342
--- /dev/null
@@ -0,0 +1 @@
+4 9 44
diff --git a/tests/fibonacci.inputs b/tests/fibonacci.inputs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/fibonacci.sav b/tests/fibonacci.sav
new file mode 100644 (file)
index 0000000..4c8e46a
--- /dev/null
@@ -0,0 +1 @@
+Usage: fibonnaci <integer>
diff --git a/tests/galerie.nit b/tests/galerie.nit
new file mode 100644 (file)
index 0000000..108b75e
--- /dev/null
@@ -0,0 +1,41 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Ce programme contient les exemples utilisés dans la thèse
+
+import kernel
+
+class Client
+       attr _credit: Int
+       
+       meth regarde(t: Tableau)
+       do
+               if t.joli and _credit >= t.etiquette.prix then
+                       achete(t)
+               end
+       end
+       
+       meth achete(t: Tableau) is abstract
+end
+
+class Tableau
+       meth joli: Bool is abstract
+       meth etiquette: Etiquette is abstract
+end
+
+class Etiquette
+       meth prix: Int is abstract
+end
diff --git a/tests/galerie.sav b/tests/galerie.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/gccbug_attribute_access.nit b/tests/gccbug_attribute_access.nit
new file mode 100644 (file)
index 0000000..1005b39
--- /dev/null
@@ -0,0 +1,47 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# By flop
+
+# If your platfor is subject to a gcc bug, some solutions :
+# * try global compilation (-g)
+# * try to change the optimization flags
+# * try to update your gcc version
+class Foo
+       attr _count: Int
+       meth run: Int
+       do
+               # Under some case gcc produce bad code here and make the if
+               # evaluate the old _count value
+               _count = _count + 1
+               if _count >= 5 then
+                       _count = 0
+               end
+               return _count
+       end
+
+       init
+       do
+       end
+end
+
+var f = new Foo
+var i = 1
+while i <= 12 do
+       print("{i}: {f.run}")
+       i = i + 1
+end
+
diff --git a/tests/gccbug_attribute_access.sav b/tests/gccbug_attribute_access.sav
new file mode 100644 (file)
index 0000000..5ea718c
--- /dev/null
@@ -0,0 +1,12 @@
+1: 1
+2: 2
+3: 3
+4: 4
+5: 0
+6: 1
+7: 2
+8: 3
+9: 4
+10: 0
+11: 1
+12: 2
diff --git a/tests/hello_world.sav b/tests/hello_world.sav
new file mode 100644 (file)
index 0000000..3b18e51
--- /dev/null
@@ -0,0 +1 @@
+hello world
diff --git a/tests/module_0.nit b/tests/module_0.nit
new file mode 100644 (file)
index 0000000..0c5832c
--- /dev/null
@@ -0,0 +1,39 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+class Object
+       meth output 
+       do
+               0.output
+       end
+
+       meth print(a: Object)
+       do
+               a.output
+       end
+end
+
+class Int
+       redef meth output is intern
+end
+
+class Sys
+       meth main
+       do
+       end
+end
diff --git a/tests/module_0.sav b/tests/module_0.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/module_1.nit b/tests/module_1.nit
new file mode 100644 (file)
index 0000000..8f15e91
--- /dev/null
@@ -0,0 +1,70 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_0
+
+class A # class 1
+   meth a1 
+   do 
+          print(1)
+          print(1)
+   end
+   meth a12 
+   do
+          print(12)
+          print(1)
+   end
+   meth a13
+   do
+          print(13) 
+          print(1)
+   end
+   meth a123 
+   do
+          print(123)
+          print(1)
+   end
+end
+
+class B # class 2
+special A
+   redef meth a12 
+   do
+          print(12)
+          print(2)
+   end
+   redef meth a123
+   do
+          print(123)
+          print(2)
+   end
+   meth all2
+   do
+          a1
+          a12
+          a13
+          a123
+   end
+   meth all25
+   do
+          print(250)
+          print(2)
+          a1
+          a12
+          a13
+          a123
+   end
+end
diff --git a/tests/module_1.sav b/tests/module_1.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/module_2.nit b/tests/module_2.nit
new file mode 100644 (file)
index 0000000..5c42c49
--- /dev/null
@@ -0,0 +1,65 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_1
+
+redef class A # class 3
+   redef meth a13
+   do
+          print(13)
+          print(3)
+   end
+   redef meth a123
+   do
+          print(123)
+          print(3)
+   end   
+
+   init do end
+end
+
+# B is class 4
+
+class C # class 5
+special B
+   redef meth all25
+   do
+          print(250)
+          print(5)
+          a1
+          a12
+          a13
+          a123
+   end
+
+   init do end
+end
+
+var a = new A
+var c = new C
+a.a1
+a.a12
+a.a13
+a.a123
+print(0) 
+c.a1
+c.a12
+c.a13
+c.a123
+print(0)
+c.all2
+print(0)
+c.all25
diff --git a/tests/module_simple.nit b/tests/module_simple.nit
new file mode 100644 (file)
index 0000000..14b2f75
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth p(x: A, y: Int, z: Array[A]): A do return self end
+       meth q(x: A): A do return self end
+end
+
+class B
+special A
+       redef meth q(x: A): B do return self end
+end
+
+class C
+special B
+       meth r(x: B) do end
+       meth s: B do return self end
+       attr _a: B
+end
diff --git a/tests/module_simple.sav b/tests/module_simple.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/print_arguments.sav b/tests/print_arguments.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/procedural_array.sav b/tests/procedural_array.sav
new file mode 100644 (file)
index 0000000..fc40ae5
--- /dev/null
@@ -0,0 +1,2 @@
+32
+32
diff --git a/tests/rterror_check.nit b/tests/rterror_check.nit
new file mode 100644 (file)
index 0000000..0f12e16
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+assert ok1: true
+assert ok2: 1 == 1
+assert fail: false
diff --git a/tests/rterror_cov_param.nit b/tests/rterror_cov_param.nit
new file mode 100644 (file)
index 0000000..8f319cb
--- /dev/null
@@ -0,0 +1,62 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+class A
+       meth bar(a: Object)
+       do
+               a.output
+       end
+       redef meth output
+       do
+               'A'.output
+       end
+
+       meth ret_test
+       # see rterror_cov_ret
+       do
+               ret.output
+       end
+       meth ret: A
+       do
+               return self
+       end
+
+       init do end
+end
+
+class B
+special A
+       redef meth bar(a: B)
+       do
+               a.output
+       end
+       redef meth output
+       do
+               'B'.output
+       end
+       redef meth ret: B
+       do
+               return self
+       end
+
+       init do end
+end
+
+var a = new A
+var b = a
+b = new B
+b.bar(5)
diff --git a/tests/rterror_cov_ret.nit b/tests/rterror_cov_ret.nit
new file mode 100644 (file)
index 0000000..df78433
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import rterror_cov_param
+redef class A
+       redef meth ret: Object
+       do
+               return 5
+       end
+end
+
+var a = new A
+#a = new B
+a.ret_test
diff --git a/tests/rterror_deep.nit b/tests/rterror_deep.nit
new file mode 100644 (file)
index 0000000..bb9e93e
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo(i: Int)
+       do
+               i.output
+               if i == 1 then
+                       return
+               end
+               if i % 2 == 0 then
+                       bar(i)
+               else
+                       baz(self, i)
+               end
+       end
+
+       meth bar(i: Int)
+       do
+               foo(i/2)
+       end
+
+       init do end
+end
+
+class B
+special A
+       redef meth foo(i: Int)
+       do
+               if i == 1 then
+                       var a: A
+                       a.foo(i) # Nil call
+               end
+               super
+       end
+
+       init do end
+end
+
+meth baz(a: A, i: Int)
+do
+       a.foo(i+3)
+end
+
+var a = new A
+a.foo(5)
+a = new B
+a.foo(5)
diff --git a/tests/rterror_nilcall_attr.nit b/tests/rterror_nilcall_attr.nit
new file mode 100644 (file)
index 0000000..dee06c7
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class Foo
+       attr _attr: Object
+
+       init do 
+               _attr = 0
+       end
+end
+
+var f = new Foo
+f._attr = 1
+f._attr.output
+f = null
+f._attr = 2
+f._attr.output
diff --git a/tests/rterror_nilcall_mono.nit b/tests/rterror_nilcall_mono.nit
new file mode 100644 (file)
index 0000000..0fee817
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class Foo
+       meth bar
+       do
+               baz.output
+       end
+
+       meth baz: Int
+       do
+               return 5
+       end
+
+       init do end
+end
+
+var f = new Foo
+f.bar
+f = null
+f.bar
diff --git a/tests/rterror_nilcall_poly.nit b/tests/rterror_nilcall_poly.nit
new file mode 100644 (file)
index 0000000..03d9f02
--- /dev/null
@@ -0,0 +1,63 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+redef class Object
+       meth foo
+       do
+               0.output
+       end
+end
+
+redef class Int
+       redef meth foo
+       do
+               output
+       end
+end
+
+redef class Char
+       redef meth foo
+       do
+               ascii.foo
+       end
+end
+
+class Foo
+       redef meth foo
+       do
+               5.output
+       end
+
+       init do end
+end
+
+class Bar
+       redef meth foo
+       do
+               6.output
+       end
+
+       init do end
+end
+
+var a: Object
+a = new Foo
+a = new Bar
+a.foo
+a = null
+a.foo
diff --git a/tests/rterror_nilcall_undead.nit b/tests/rterror_nilcall_undead.nit
new file mode 100644 (file)
index 0000000..41acebd
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo
+       do
+               1.output
+       end
+       meth bar: Int
+       do
+               return 2
+       end
+end
+
+var a: A
+a.bar.output
+a.foo
diff --git a/tests/shootout_ackermann.args b/tests/shootout_ackermann.args
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/tests/shootout_ackermann.nit b/tests/shootout_ackermann.nit
new file mode 100644 (file)
index 0000000..ade7f93
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Comptuer Language Shootout Benchmarks
+# http://shootout.alioth.debian.org
+#
+# contributed by Jean Privat
+
+meth ack(m: Int, n: Int): Int
+    do
+       if m == 0 then
+           return n + 1
+       else if n == 0 then
+           return ack(m - 1, 1)
+       else
+           return ack(m - 1, ack(m, n - 1))
+       end
+    end
+
+var num = 1
+if args.length == 1 then
+    num = args.first.to_i
+end
+
+print("Ack(3,{num}): {ack(3, num)}")
diff --git a/tests/shootout_ackermann.sav b/tests/shootout_ackermann.sav
new file mode 100644 (file)
index 0000000..6d42236
--- /dev/null
@@ -0,0 +1 @@
+Ack(3,4): 125
diff --git a/tests/shootout_binarytrees.args b/tests/shootout_binarytrees.args
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
@@ -0,0 +1 @@
+10
diff --git a/tests/shootout_binarytrees.nit b/tests/shootout_binarytrees.nit
new file mode 100644 (file)
index 0000000..e86a5ff
--- /dev/null
@@ -0,0 +1,94 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Comptuer Language Shootout Benchmarks
+# http://shootout.alioth.debian.org
+#
+# contributed by Jean Privat
+
+class TreeNode
+    attr _left: TreeNode
+    attr _right: TreeNode
+    attr _item: Int
+
+
+    init(left: TreeNode, right: TreeNode, item: Int)
+       do
+           _left = left
+           _right = right
+           _item = item
+       end
+
+
+    meth item_check: Int
+       do
+           if _left == null then
+               return _item
+           else
+               return _item + _left.item_check - _right.item_check
+           end
+       end
+end
+
+meth bottom_up_tree(item: Int, depth: Int): TreeNode
+    do
+       if depth > 0 then
+           var item_item = 2 * item
+           depth = depth - 1
+           return new TreeNode(bottom_up_tree(item_item - 1, depth), bottom_up_tree(item_item, depth), item)
+       else
+           return new TreeNode(null, null, item)
+       end
+end
+
+var max_depth = 4
+if not args.is_empty then
+       max_depth = args.first.to_i
+end
+var min_depth = 4
+
+if min_depth + 2 > max_depth then
+       max_depth = min_depth + 2
+end
+
+var stretch_depth = max_depth + 1
+var stretch_tree = bottom_up_tree(0, stretch_depth)
+
+print("stretch tree of depth {stretch_depth}\t check: {stretch_tree.item_check}")
+
+stretch_tree = null
+
+var long_lived_tree = bottom_up_tree(0, max_depth)
+
+var depth = min_depth
+while depth <= max_depth do
+    var iterations = 1.lshift(max_depth - depth + min_depth)
+    var check_res = 0
+
+    for i in [1..(iterations+1)[ do
+       var temp_tree = bottom_up_tree(i, depth)
+       check_res = check_res + temp_tree.item_check
+
+       temp_tree = bottom_up_tree(-i, depth)
+       check_res = check_res + temp_tree.item_check
+    end
+    
+    print("{iterations * 2}\t trees of depth {depth}\t check: {check_res}")
+    
+    depth = depth + 2
+end
+
+print("long lived tree of depth {max_depth}\t check: {long_lived_tree.item_check}")
diff --git a/tests/shootout_binarytrees.sav b/tests/shootout_binarytrees.sav
new file mode 100644 (file)
index 0000000..c8f333d
--- /dev/null
@@ -0,0 +1,6 @@
+stretch tree of depth 11        check: -1
+2048    trees of depth 4        check: -2048
+512     trees of depth 6        check: -512
+128     trees of depth 8        check: -128
+32      trees of depth 10       check: -32
+long lived tree of depth 10     check: -1
diff --git a/tests/shootout_mandelbrot.args b/tests/shootout_mandelbrot.args
new file mode 100644 (file)
index 0000000..08839f6
--- /dev/null
@@ -0,0 +1 @@
+200
diff --git a/tests/shootout_mandelbrot.nit b/tests/shootout_mandelbrot.nit
new file mode 100644 (file)
index 0000000..fb6b5dd
--- /dev/null
@@ -0,0 +1,75 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Comptuer Language Shootout Benchmarks
+# http://shootout.alioth.debian.org
+#
+# contributed by Jean Privat
+
+# Incorrect since Floats are floats instead of doubles
+
+var iter = 20
+var limit = 2.0
+
+if args.length != 1 then
+    printn("Usage: shootout_mandelbrot <size>\n")
+    return
+end
+
+var w = args.first.to_i
+var h = w
+
+var byte_acc = 0
+var bit_num = 0
+
+printn("P4\n{w} {h}\n")
+
+for y in [0..h[ do
+    for x in [0..w[ do
+       var zr = 0.0
+       var zi = 0.0
+       var cr = 2.0 * x.to_f / w.to_f - 1.5
+       var ci = 2.0 * y.to_f / h.to_f - 1.0
+
+       var i = 0
+       while i < iter and zr*zr+zi*zi <= limit*limit do
+           var tr = zr*zr - zi*zi + cr
+           var ti = 2.0*zr*zi + ci
+           zr = tr
+           zi = ti
+           i = i + 1
+       end
+
+       if zr*zr+zi*zi > limit*limit then
+           byte_acc = (byte_acc.lshift(1))
+       else
+           byte_acc = (byte_acc.lshift(1)) + 1
+       end
+
+       bit_num = bit_num + 1
+
+       if bit_num == 8 then
+           printn(byte_acc.ascii)
+           byte_acc = 0
+           bit_num = 0     
+       else if x == w - 1 then
+           byte_acc = byte_acc.lshift(8-w%8)
+           printn(byte_acc.ascii)
+           byte_acc = 0
+           bit_num = 0     
+       end
+    end
+end
diff --git a/tests/shootout_mandelbrot.sav b/tests/shootout_mandelbrot.sav
new file mode 100644 (file)
index 0000000..2c6ff6b
Binary files /dev/null and b/tests/shootout_mandelbrot.sav differ
diff --git a/tests/shootout_nsieve.nit b/tests/shootout_nsieve.nit
new file mode 100644 (file)
index 0000000..a9a3923
--- /dev/null
@@ -0,0 +1,54 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth nsieve(n: Int): Int
+do
+       var count = 0
+       var array = new String.with_capacity(n)
+       for i in [0..n[ do
+               array[i] = 'o'
+       end
+       for i in [2..n[ do
+               if array[i] == 'o' then
+                       var j = i * 2
+                       while j < n do
+                               array[j] = 'x'
+                               j = j + i
+                       end
+                       count = count + 1
+               end
+       end
+       return count
+end
+
+meth test(n: Int)
+do
+       var m = 10000.lshift(n)
+       print("Primes up to {m} {nsieve(m)}")
+end
+
+var n = 2
+if args.length == 1 then
+       n = args.first.to_i
+end
+
+test(n)
+if n >= 1 then
+       test(n-1)
+end
+if n >= 2 then
+       test(n-2)
+end
diff --git a/tests/shootout_nsieve.sav b/tests/shootout_nsieve.sav
new file mode 100644 (file)
index 0000000..d9e91fa
--- /dev/null
@@ -0,0 +1,3 @@
+Primes up to 40000 4203
+Primes up to 20000 2262
+Primes up to 10000 1229
diff --git a/tests/shootout_pidigits.args b/tests/shootout_pidigits.args
new file mode 100644 (file)
index 0000000..83b33d2
--- /dev/null
@@ -0,0 +1 @@
+1000
diff --git a/tests/shootout_pidigits.nit b/tests/shootout_pidigits.nit
new file mode 100644 (file)
index 0000000..05b2e4a
--- /dev/null
@@ -0,0 +1,157 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Comptuer Language Shootout Benchmarks
+# http://shootout.alioth.debian.org
+#
+# contributed by Jean Privat
+
+# Incorrect without bignums
+
+class PiDigitSpigot
+    attr _z: Transformation
+    attr _x: Transformation
+    attr _inverse: Transformation
+    
+
+    init
+       do
+           _z = new Transformation(1,0,0,1)
+           _x = new Transformation(0,0,0,0)
+           _inverse = new Transformation(0,0,0,0)
+       end
+
+
+    meth next: Int
+       do
+           var y = digit
+           if is_safe(y) then
+               _z = produce(y)
+               return y
+           else
+               _z = consume(_x.next)
+               return next
+           end
+       end
+       
+    meth next_: Int
+       do
+           var y = digit
+           while not is_safe(y) do
+               _z = consume(_x.next)
+               y = digit
+           end
+           _z = produce(y)
+           return y
+       end
+
+    meth digit: Int
+       do
+           return _z.extract(3)
+       end
+
+    meth is_safe(digit: Int): Bool
+       do
+           return digit == _z.extract(4)
+       end
+
+    meth produce(i: Int): Transformation
+       do
+           return _inverse.qrst(10,-10*i,0,1).compose(_z)
+       end
+
+    meth consume(a: Transformation): Transformation
+       do
+           return _z.compose(a)
+       end
+end
+
+
+class Transformation
+    attr _q: Int
+    attr _r: Int
+    attr _s: Int
+    attr _t: Int
+    attr _k: Int
+
+
+    init(q: Int, r: Int, s: Int, t: Int)
+       do
+           _q = q
+           _r = r
+           _s = s
+           _t = t
+           _k = 0
+       end
+
+
+    meth next: Transformation
+       do
+           _k = _k + 1
+           _q = _k
+           _r = 4 * _k + 2
+           _s = 0
+           _t = 2 * _k + 1
+           return self
+       end
+
+    meth extract(j: Int): Int
+       do
+           return (_q * j + _r) / (_s * j + _t)
+       end
+
+    meth compose(a: Transformation): Transformation
+       do
+           return new Transformation(
+               _q * a._q,
+               _q * a._r + _r * a._t,
+               _s * a._q + _t * a._s,
+               _s * a._r + _t * a._t
+               )
+       end
+
+    meth qrst(q: Int, r: Int, s: Int, t: Int): Transformation
+       do
+           init(q, r, s, t)
+           return self
+       end
+end
+
+
+var witdh = 10
+var n = args.first.to_i
+var j = 0
+
+var digits = new PiDigitSpigot
+
+while n > 0 do
+    if n >= witdh then
+       for i in [0..witdh[ do
+           printn(digits.next)
+       end
+       j = j + witdh
+    else
+       for i in [0..n[ do
+           printn(digits.next)
+       end
+       for i in [n..witdh[ do
+           printn(" ")
+       end
+       j = j + n
+    end
+    print("\t:{j}")
+    n = n - witdh
+end
diff --git a/tests/shootout_startup.nit b/tests/shootout_startup.nit
new file mode 100644 (file)
index 0000000..3d1922c
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The Comptuer Language Shootout Benchmarks
+# http://shootout.alioth.debian.org
+#
+# contributed by Jean Privat
+
+print("hello world")
diff --git a/tests/shootout_startup.sav b/tests/shootout_startup.sav
new file mode 100644 (file)
index 0000000..3b18e51
--- /dev/null
@@ -0,0 +1 @@
+hello world
diff --git a/tests/simple.nit b/tests/simple.nit
new file mode 100644 (file)
index 0000000..ec6d99c
--- /dev/null
@@ -0,0 +1,34 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import module_0
+
+redef class Sys
+   attr _a: Object
+   attr _b: Int
+   meth printn(i: Object)
+      do
+         i.output
+      end
+   redef meth main
+      do
+         _a = 53
+         _b = 53
+         printn(_a)
+         printn(_b)
+      end   
+end
+
diff --git a/tests/simple.sav b/tests/simple.sav
new file mode 100644 (file)
index 0000000..f80b714
--- /dev/null
@@ -0,0 +1,2 @@
+53
+53
diff --git a/tests/sol.nit b/tests/sol.nit
new file mode 100644 (file)
index 0000000..8ecc063
--- /dev/null
@@ -0,0 +1,519 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import game
+
+class Playing
+special SDL_EventListener
+       redef meth on_mouse_button(evt: SDL_MouseButtonEvent)
+       do
+               if evt.is_pressed then
+                       if evt.button == 1 then
+                               print(_fps)
+                       else if evt.button == 4 then
+                               load_level(_level + 1)
+                       else if evt.button == 5 then
+                               load_level(_level - 1)
+                       else if evt.button == 3 then
+                               _quit_requested = true
+                       end     
+               end
+       end
+
+       redef meth on_mouse_motion(evt: SDL_MouseMotionEvent)
+       do
+               _mouse_x = evt.x
+               _mouse_y = evt.y
+       end
+
+       redef meth on_quit
+       do
+               _quit_requested = true
+       end
+
+       readable attr _quit_requested: Bool 
+
+       attr _last_t: Int
+       meth update
+       do
+               var t = sdl_get_ticks   # Current time (ms)
+               var quantum = 10        # Quantum of time (ms) for one step
+
+               var frames = 0
+               while _last_t < t do
+                       update_one_step
+                       _last_t = _last_t + quantum
+                       frames = frames + 1
+               end
+
+               _fps.update_with(t)
+
+               #if _fps.update(t) then
+               #       printn("FPS: ")
+               #       _fps.count.output
+               #end
+
+               update_draw(frames)
+
+               draw
+       end
+
+private
+       meth update_one_step
+       do
+               var mx = _mouse_x
+               var my = _mouse_y
+               _player.update_one_step(mx, my)
+
+               var i = 0
+               while i < _boxes.length do
+                       var b = _boxes[i]
+                       if b.gettable and b.collide(_player) then
+                               _boxes[i] = _boxes.last
+                               _boxes.pop
+                               
+                               var bx = b.x
+                               var by = b.y
+                               var boxnumber = 50
+                               if _boxes.is_empty then
+                                       boxnumber = 500
+                                       load_level(_level + 1)
+                               end
+                               for j in [0..boxnumber[ do
+                                       var angle = (2.0*pi).rand
+                                       var force = 2.0.rand
+                                       _others.add(new Particle(bx, by, angle.cos * force, angle.sin * force, 10 + 100.rand))
+                               end
+                       else
+                               b.update_one_step
+                               i = i + 1
+                       end
+               end
+
+               i = 0
+               while i < _others.length do
+                       var s = _others[i]
+                       if s.update_one_step then
+                               _others[i] = _others.last
+                               _others.pop
+                       else
+                               i = i + 1
+                       end
+               end
+       end
+
+       meth update_draw(frames: Int)
+       do
+               _player.update_draw(frames)
+       end
+
+       meth draw
+       do
+               _screen.clear
+               for b in _boxes do
+                       b.blit_on(_screen)
+               end
+               _player.blit_on(_screen)
+               for b in _others do
+                       b.blit_on(_screen)
+               end
+               _screen.flip
+       end
+
+       private meth load_level(l: Int)
+       do
+               _level = l
+               _boxes.clear
+
+               var levels = once load_levels("data/levels.txt")
+               if _level > levels.length then
+                       print("You win")
+                       _level = 1
+               end
+       
+               var lev = levels[_level - 1]
+               print("Level {lev.number}: {lev.name}")
+               init_level(lev.data)
+       end
+
+       private meth init_level(s: String)
+       do
+               var height = 1
+               var width = 0
+               var w = 0
+               for i in [0..s.length[ do
+                       var c = s[i]
+                       if c == '\n' then
+                               w = 0
+                               height = height + 1
+                       else if c == ' ' then
+                               w = w + 1
+                       else
+                               w = w + 1
+                               if w > width then
+                                       width = w
+                               end
+                       end
+               end
+               var dx = _screen.width / width
+               var dy = _screen.height / height
+       
+               w = 0
+               var h = 0
+               for i in [0..s.length[ do
+                       var c = s[i]
+                       if c == '\n' then
+                               h = h + 1
+                               w = -1
+                       else if c == '#' then
+                               _boxes.add(new Box(dx/2 + dx * w, dy/2 + dy * h))
+                       else if c == '*' then
+                               _boxes.add(new Box(dx/2 + dx * w, dy/2 + dy * h))
+                       end
+                       w = w + 1
+               end
+       end
+
+private
+       attr _screen: SDL_Screen
+
+       attr _mouse_x: Int
+       attr _mouse_y: Int
+
+       attr _fps: TickCounter
+       attr _player: Player
+       attr _boxes: Array[Box]
+       attr _others: Array[Particle]
+
+       attr _level: Int
+       
+
+
+       init(s: SDL_Screen)
+       do
+               _screen = s
+
+               _player = new Player(320, 240)
+
+               _boxes = new Array[Box]
+               _others = new Array[Particle]
+               _fps = new TickCounter
+               
+               _last_t = sdl_get_ticks
+
+               load_level(1)
+               
+       end
+end
+
+redef class Sprite
+       private meth load_images(name: String, number: Int): Array[SDL_Surface]
+       do
+               print("load images '{name}' ({number})")
+               var res = new Array[SDL_Surface].with_capacity(number)
+               var ten = 10
+               if number < 10 then
+                       ten = number
+               end
+               for i in [0..ten[ do
+                       res.add(sdl_load_bmp("data/{name}-0{i}.png"))
+               end
+               for i in [10..number[ do
+                       res.add(sdl_load_bmp("data/{name}-{i}.png"))
+               end
+               return res
+       end
+end
+
+class MovingSprite
+special Sprite
+       attr _rx: Float # Real X axis (sub-pixel)
+       attr _ry: Float # Real Y axix (sub-pixel)
+       readable attr _vx: Float # X velocity (speed)
+       readable attr _vy: Float # Y velovity (speed)
+       
+       redef meth x=(x: Int)
+       do
+               _x = x
+               _rx = x.to_f
+       end
+       redef meth y=(y: Int)
+       do
+               _y = y
+               _ry = y.to_f
+       end
+end
+
+class Player
+special MovingSprite
+
+       meth update_one_step(mx: Int, my: Int)
+       do
+               var vx = _vx
+               var vy = _vy
+
+               # Calculate objective distance
+               var dbmx = mx - _x
+               var dbmy = my - _y
+               var dbm2 = dbmx * dbmx + dbmy * dbmy
+
+               # Calculate acceleration and update speed
+               if dbm2 > 10 then
+                       var dbm = dbm2.to_f.sqrt
+
+                       var force = 0.200 # maximal force
+                       if dbm < 50.0 then
+                               # Less force if near the objective
+                               _boost = false
+                               force = force * dbm / 100.0
+                       else if not _boost and dbm > 60.0 then
+                               _boost = true
+                       end
+                       
+                       var ax = dbmx.to_f / dbm * force
+                       var ay = dbmy.to_f / dbm * force
+                       
+                       vx = vx + ax
+                       vy = vy + ay
+               end
+
+               # Speed modifier (min/max)
+               var dv2 = vx*vx + vy*vy # Absolute speed
+               if dv2 > 5.0 then
+                       # Hard brake
+                       vx = vx / dv2 * 5.0
+                       vy = vy / dv2 * 5.0
+               else if dv2 < 1.0 then
+                       # Accel
+                       vx = vx / dv2
+                       vy = vy / dv2
+               end
+
+               # Update position
+               var rx = _rx + vx
+               var ry = _ry + vy
+
+               _vx = vx
+               _vy = vy
+               _rx = rx
+               _ry = ry
+               _x = rx.to_i
+               _y = ry.to_i
+       end
+
+       meth update_draw(frames: Int)
+       do
+               var a = - atan2(_vx, _vy)
+               var x = ((a / 2.0 / pi + 0.5) * 16.0 + 0.5).to_i % 16
+               if _boost then
+                       x = x * 2 + 1
+               else
+                       x = x * 2
+               end
+               var imgs = _images[x]
+               
+               var inum = _image_number + frames
+               if inum >= imgs.length * 8 then
+                       inum = inum % (imgs.length * 8)
+               end
+               _image = imgs[inum / 8]
+               _image_number = inum
+       end
+
+       attr _boost: Bool 
+       attr _images: Array[Array[SDL_Surface]]
+       attr _image_number: Int
+       
+
+       init(x: Int, y: Int)
+       do
+               set_xy(x, y)
+               _vx = 0.0
+               _vy = 0.0
+               _images = once load_ship_images
+               _image_number = 0
+               set_centered_image(_images.first.first)
+               #set_centered_image(once sdl_load_bmp("data/ship-up.png"))
+       end
+       meth load_ship_images: Array[Array[SDL_Surface]]
+       do
+               var res = new Array[Array[SDL_Surface]]
+               for i in ["up", "22", "45", "68", "90", "112", "135", "158", "180", "202", "225", "248", "270", "292", "315", "338"] do
+                       res.add(load_images("ship-{i}", 4))
+                       res.add(load_images("ship2-{i}", 4))
+               end
+               return res
+       end
+end
+
+class Box
+special Sprite
+       attr _images: Array[SDL_Surface]
+       attr _image_number: Int
+       attr _image_delay: Int
+       attr _back_rotate: Bool
+
+       meth update_one_step
+       do
+               _image_delay = _image_delay + 1
+               if _image_delay > 0 and _image_delay % 8 == 0 then
+                       var n = _image_number + 1
+                       if n >= _images.length then
+                               n = 0
+                       end
+                       if _back_rotate then
+                               _image = _images[n]
+                       else
+                               _image = _images[_images.length - n - 1]
+                       end
+                       _image_number = n
+               end
+       end
+
+       redef meth blit_on(s: SDL_Surface)
+       do
+               if _image_delay > 0 then
+                       _image.blit_on_xy(s, _x - _x_image, _y - _y_image)
+               end
+       end
+
+       meth gettable: Bool
+       do
+               return _image_delay > 0
+       end
+
+
+       init(x: Int, y: Int)
+       do
+
+               set_xy(x, y)
+               _images = once load_images("box", 15)
+               _image_delay = - (30 + 20.rand)
+               _image_number = _images.length.rand
+               _back_rotate = 2.rand == 1
+               set_centered_image(_images.first)
+       end
+
+end
+
+class Particle
+special MovingSprite
+       meth update_one_step: Bool
+       do
+               _ttl = _ttl - 1
+               if _ttl < 0 then
+                       return true
+               end
+
+               _rx = _rx + _vx
+               _ry = _ry + _vy
+               _x = _rx.to_i
+               _y = _ry.to_i
+
+               if _ttl % 4 == 0 then
+                       var n = (_ttl / 4) % _images.length
+                       _image = _images[n]
+               end
+
+               return false
+       end
+
+       attr _ttl: Int
+       attr _images: Array[SDL_Surface]
+
+
+       init(x: Int, y: Int, vx: Float, vy: Float, ttl: Int)
+       do
+               set_xy(x, y)
+               _vx = vx
+               _vy = vy
+               _ttl = ttl
+               _images = once load_images("debris4", 8)
+               _image = _images.first
+       end
+end
+
+class Level
+       readable attr _number: Int 
+       readable attr _name: String 
+       readable attr _data: String 
+
+       redef meth to_s: String
+       do
+               return "level {_number}"
+       end
+
+
+       init(n: Int, name: String, d: String)
+       do
+               _number = n
+               _name = name
+               _data = d
+       end
+end
+
+meth load_levels(filename: String): Array[Level]
+do
+       var levels = new Array[Level]
+       var f = new IFStream.open(filename)
+       var name = ""
+       var data = ""
+       while not f.eof do
+               var l = f.read_line
+               if l[0] == ';' then
+                       # comment
+               else if l[0] == '>' then
+                       # Level name
+                       name = l.substring_from(1)
+               else if l[0] == '<' then
+                       # Second name
+               else if l[0] == '!' then
+                       # End of level
+                       levels.add(new Level(levels.length + 1, name, data))
+                       name = ""
+                       data = ""
+               else
+                       # Level data
+                       if data.length > 0 then
+                               data.add('\n')
+                       end
+                       data.append(l)
+               end
+       end
+       f.close
+       return levels
+end
+
+srand
+sdl_init
+
+sdl_show_cursor = true
+
+#var screen = sdl_set_video_mode(800, 600, 32)
+var screen = sdl_set_fullscreen_video_mode(800, 600, 32)
+
+var evt_proc = new SDL_EventProcessor
+var evt_list = new Playing(screen)
+
+evt_proc.add_listener(evt_list)
+
+while not evt_list.quit_requested do
+       evt_proc.process_all_events
+       evt_list.update
+       sdl_delay(1)
+end
+
diff --git a/tests/store_save.sh b/tests/store_save.sh
new file mode 100755 (executable)
index 0000000..58a8eda
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This shell script convert .res into .sav
+
+[ $# = 0 ] && exit 0;
+
+f=`echo $1 | cut -f1 -d.`
+shift
+
+echo -n "=> $f: "
+
+if [ -r $f.res ]; then
+       # Result        
+       if [ -r $f.sav ]; then
+               diff -q $f.res $f.sav > /dev/null;
+               if [ $? == 0 ]; then
+                       echo "[ok] $f"
+               else
+                       echo "======== [update] $f.sav ========="
+                       cp $f.res $f.sav
+               fi
+       else
+               echo "======== [new] $f.sav ========="
+               cp $f.res $f.sav
+       fi
+else
+       if [ -r $f.sav ]; then
+               echo "[no res] $f"
+       else
+               echo "[not yet] $f"
+       fi
+fi
+
+exec $0 "$@"
diff --git a/tests/test_accessor.nit b/tests/test_accessor.nit
new file mode 100644 (file)
index 0000000..c470c66
--- /dev/null
@@ -0,0 +1,34 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+   meth p=(i: Int)
+   do
+      printn("p: ", i)
+   end
+   meth q=(i: Int, j: Int)
+   do
+      printn("q: ", i, j)
+   end
+
+   init
+   do
+   end
+end
+
+var a = new A
+a.p = 5
+a.q(6) = 7
diff --git a/tests/test_accessor.sav b/tests/test_accessor.sav
new file mode 100644 (file)
index 0000000..ea889b9
--- /dev/null
@@ -0,0 +1 @@
+p: 5q: 67
\ No newline at end of file
diff --git a/tests/test_args.args b/tests/test_args.args
new file mode 100644 (file)
index 0000000..45f9997
--- /dev/null
@@ -0,0 +1 @@
+first second
diff --git a/tests/test_args.nit b/tests/test_args.nit
new file mode 100644 (file)
index 0000000..c66f9e1
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+print("nb args: {args.length}")
+print("args:")
+for a in args do
+   print("\t{a}")
+end
diff --git a/tests/test_args.sav b/tests/test_args.sav
new file mode 100644 (file)
index 0000000..b40d0b8
--- /dev/null
@@ -0,0 +1,4 @@
+nb args: 2
+args:
+       first
+       second
diff --git a/tests/test_array.nit b/tests/test_array.nit
new file mode 100644 (file)
index 0000000..c64f692
--- /dev/null
@@ -0,0 +1,35 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class Ant
+       redef meth to_s: String
+       do
+               return "*"
+       end
+
+       init do end
+end
+
+var t = [new Ant, new Ant]
+printn(t.length)
+printn(t)
+var i = 0
+while i < t.length do
+       printn(i)
+       printn(t[i])
+       i = i + 1
+end
diff --git a/tests/test_array.sav b/tests/test_array.sav
new file mode 100644 (file)
index 0000000..2bfea71
--- /dev/null
@@ -0,0 +1 @@
+2**0*1*
\ No newline at end of file
diff --git a/tests/test_array_int.nit b/tests/test_array_int.nit
new file mode 100644 (file)
index 0000000..0719bbb
--- /dev/null
@@ -0,0 +1,26 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+      var t = [5,3]
+         printn(t.length)
+         printn(t)
+         var i = 0
+         while i < t.length do
+            printn(i)
+            printn(t[i])
+            i = i + 1
+         end
diff --git a/tests/test_array_int.sav b/tests/test_array_int.sav
new file mode 100644 (file)
index 0000000..1a4284d
--- /dev/null
@@ -0,0 +1 @@
+2530513
\ No newline at end of file
diff --git a/tests/test_atoi.nit b/tests/test_atoi.nit
new file mode 100644 (file)
index 0000000..50f5bbd
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+print("10".to_i + 5 == 15)
diff --git a/tests/test_atoi.sav b/tests/test_atoi.sav
new file mode 100644 (file)
index 0000000..27ba77d
--- /dev/null
@@ -0,0 +1 @@
+true
diff --git a/tests/test_attr.nit b/tests/test_attr.nit
new file mode 100644 (file)
index 0000000..cd76791
--- /dev/null
@@ -0,0 +1,31 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+redef class Sys
+       attr _i: Int
+       attr _j: Int
+       redef meth main
+       do
+               printn(5)
+               _i = 5
+               printn(_i)
+               _i = 12
+               printn(_i)
+               _j = 50
+               printn(_j)
+               printn(_i)
+       end
+end
diff --git a/tests/test_attr.sav b/tests/test_attr.sav
new file mode 100644 (file)
index 0000000..8dfe4ff
--- /dev/null
@@ -0,0 +1 @@
+55125012
\ No newline at end of file
diff --git a/tests/test_attr_long.nit b/tests/test_attr_long.nit
new file mode 100644 (file)
index 0000000..40bfe46
--- /dev/null
@@ -0,0 +1,44 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+
+       attr _a_: Int
+
+       meth a: Int
+       do
+               return _a_ * 10
+       end
+
+       meth a=(a: Int)
+       do
+               _a_ = a / 10
+       end
+
+
+
+       init
+       do
+       end
+end
+
+
+var a = new A
+printn(a.a, a._a_)
+a.a = 10
+printn(a.a, a._a_)
+a._a_ = 10
+printn(a.a, a._a_)
diff --git a/tests/test_attr_long.sav b/tests/test_attr_long.sav
new file mode 100644 (file)
index 0000000..efb4310
--- /dev/null
@@ -0,0 +1 @@
+0010110010
\ No newline at end of file
diff --git a/tests/test_blocks.nit b/tests/test_blocks.nit
new file mode 100644 (file)
index 0000000..ce22835
--- /dev/null
@@ -0,0 +1,41 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+         do
+           printn(0)
+        end
+         var a = 1
+        do
+           printn(a)
+        end
+        var b = 2
+        while b < 3 do
+           printn(b)
+           b = b + 1
+        end
+        var c = 3
+        while c < 4 do
+           printn(c)
+           c = c + 1
+        end
+        var d = 4 
+        var e = 2
+        while e > 0 do
+           printn(d)
+           d = d + 1 
+           e = e - 1
+        end
diff --git a/tests/test_blocks.sav b/tests/test_blocks.sav
new file mode 100644 (file)
index 0000000..f54df58
--- /dev/null
@@ -0,0 +1 @@
+012345
\ No newline at end of file
diff --git a/tests/test_boxing.nit b/tests/test_boxing.nit
new file mode 100644 (file)
index 0000000..6501016
--- /dev/null
@@ -0,0 +1,42 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# By Flop
+
+class Gene[T]
+       readable attr _a_ : T 
+       meth a: T
+       do
+               return _a_
+       end
+
+       init do end
+
+end
+class GeneBool special Gene[Bool]
+       meth a=(b: Bool)
+       do
+               _a_ = b
+       end
+
+       init do end
+end
+
+var x = new Gene[Bool]
+var g = new GeneBool
+g.a = true
+print(g.a)
diff --git a/tests/test_boxing.sav b/tests/test_boxing.sav
new file mode 100644 (file)
index 0000000..27ba77d
--- /dev/null
@@ -0,0 +1 @@
+true
diff --git a/tests/test_break.nit b/tests/test_break.nit
new file mode 100644 (file)
index 0000000..986b6af
--- /dev/null
@@ -0,0 +1,48 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+for i in [0..10[ do
+       if i == 3 then
+               continue
+       else if i == 7 then
+               break
+       end
+       print(i)
+end
+
+var i = 0
+while i < 10 do
+       if i == 3 then
+               i = i + 2
+               continue
+       else if i == 7 then
+               break
+       end
+       print(i)
+       i = i + 1
+end
+
+for i in [0..10[ do
+       for j in [0..10[ do
+               if j < i then
+                       continue
+               else if j > i then
+                       break
+               else
+                       print("{i}-{j}")
+               end
+       end
+end
diff --git a/tests/test_break.sav b/tests/test_break.sav
new file mode 100644 (file)
index 0000000..0cd64de
--- /dev/null
@@ -0,0 +1,21 @@
+0
+1
+2
+4
+5
+6
+0
+1
+2
+5
+6
+0-0
+1-1
+2-2
+3-3
+4-4
+5-5
+6-6
+7-7
+8-8
+9-9
diff --git a/tests/test_calls.nit b/tests/test_calls.nit
new file mode 100644 (file)
index 0000000..6e097be
--- /dev/null
@@ -0,0 +1,55 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth foo
+       do
+               1.output
+       end
+       meth bar
+       do
+               foo
+       end
+
+       init do end
+end
+
+class B
+special A
+       redef meth foo
+       do
+               2.output
+       end
+
+       init do end
+end
+
+class C
+special B
+       meth baz
+       do
+               bar
+       end
+
+       init do end
+end
+
+var a = new A
+var b = new B
+var c = new C
+a.foo
+b.bar
+c.baz
diff --git a/tests/test_calls.sav b/tests/test_calls.sav
new file mode 100644 (file)
index 0000000..2ca3cd5
--- /dev/null
@@ -0,0 +1,3 @@
+1
+2
+2
diff --git a/tests/test_coll.nit b/tests/test_coll.nit
new file mode 100644 (file)
index 0000000..606e1ef
--- /dev/null
@@ -0,0 +1,34 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth test_coll(c: IndexedCollection[Object], e: Object...)
+    do
+       print("c: {c.to_s.is_empty}")
+       print("empty: {c.is_empty}")
+       print("length: {c.length == 0}")
+       var e0 = e.pop
+       print("count: {c.count(e0)==0}")
+       c.add(e0)
+       print("add...")
+       print("count: {c.count(e0)==1}")
+       print("c[0]: {c[0]==e0}")
+       print("empty: {not c.is_empty}")
+       print("length: {c.length==1}")
+       c.remove(e0)
+       print("remove...")
+       print("empty: {c.is_empty}")
+       print("count: {c.count(e0)==0}")
+    end
diff --git a/tests/test_coll.sav b/tests/test_coll.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/test_coll_array.nit b/tests/test_coll_array.nit
new file mode 100644 (file)
index 0000000..612e07c
--- /dev/null
@@ -0,0 +1,20 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_coll
+
+var a = new Array[Int]
+test_coll(a, 0, 1, 2, 3)
diff --git a/tests/test_coll_array.sav b/tests/test_coll_array.sav
new file mode 100644 (file)
index 0000000..4272049
--- /dev/null
@@ -0,0 +1,12 @@
+c: true
+empty: true
+length: true
+count: true
+add...
+count: true
+c[0]: true
+empty: true
+length: true
+remove...
+empty: true
+count: true
diff --git a/tests/test_combined_assignment.nit b/tests/test_combined_assignment.nit
new file mode 100644 (file)
index 0000000..9c2408b
--- /dev/null
@@ -0,0 +1,56 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       readable writable attr _a: Int #!alt1#
+       #alt1#readable writable attr _a: Object
+       init do end
+       meth foo
+       do
+               _a += 2
+       end
+
+       meth next: Int
+       do
+               _a += 1
+               return a
+       end
+
+       meth [](a: Int): Int do return a
+       meth []=(a: Int, b: Int) do print "{a} {b}"
+end
+
+redef class Int
+       meth sum(o: Int): Int do 
+               print "{self} + {o} = {self + o}?"
+               return self + o
+       end
+       meth sum=(o: Int, r: Int) do print "{self} + {o} = {r}!"
+end
+
+var a = new A
+a.a = 1
+print a.a
+a.foo
+print a.a
+a.a += 3
+print a.a
+
+a[1] += 2
+
+a.next.sum(a.next) += 0 # Test ugly side effects
+
+print a.a
diff --git a/tests/test_combined_assignment.sav b/tests/test_combined_assignment.sav
new file mode 100644 (file)
index 0000000..4cfb0a3
--- /dev/null
@@ -0,0 +1,7 @@
+1
+3
+6
+1 3
+7 + 8 = 15?
+7 + 8 = 15!
+8
diff --git a/tests/test_combined_assignment_alt1.sav b/tests/test_combined_assignment_alt1.sav
new file mode 100644 (file)
index 0000000..be52fbf
--- /dev/null
@@ -0,0 +1,4 @@
+alt/test_combined_assignment_alt1.nit:22,3--9: Error: Method '+' doesn't exists in Object.
+alt/test_combined_assignment_alt1.nit:27,3--9: Error: Method '+' doesn't exists in Object.
+alt/test_combined_assignment_alt1.nit:28,3--10: Type error: expected Int, got Object
+alt/test_combined_assignment_alt1.nit:48,1--8: Error: Method '+' doesn't exists in Object.
diff --git a/tests/test_cond.nit b/tests/test_cond.nit
new file mode 100644 (file)
index 0000000..3246b45
--- /dev/null
@@ -0,0 +1,58 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var a = true
+var b = false
+
+if true then
+       printn(1)
+else if false then
+       printn(0)
+else if true then
+       printn(0)
+else
+       printn(0)
+end
+
+if false then
+       printn(0)
+else if false then
+       printn(0)
+else if true then
+       printn(1)
+else
+       printn(0)
+end 
+
+if false then
+       printn(0)
+else if false then
+       printn(0)
+else
+       printn(1)
+end
+
+if a then
+       printn(1)
+else
+       printn(0)
+end
+
+if b then
+       printn(0)
+else
+       printn(1)
+end
diff --git a/tests/test_cond.sav b/tests/test_cond.sav
new file mode 100644 (file)
index 0000000..56b6510
--- /dev/null
@@ -0,0 +1 @@
+11111
\ No newline at end of file
diff --git a/tests/test_create.nit b/tests/test_create.nit
new file mode 100644 (file)
index 0000000..0ccd49b
--- /dev/null
@@ -0,0 +1,81 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+redef class Object
+       meth printn(a: Object)
+       do
+               a.output
+       end
+end
+
+class Toto
+       attr _a: Int
+       redef meth output
+       do
+               printn(_a)
+       end
+
+       init
+       do end
+
+       init foo
+       do
+               _a = 10
+       end
+
+       init bar(i: Int)
+       do
+               _a = i
+       end
+end
+
+class Test
+       attr _t: Toto
+
+       init
+       do
+               var t: Toto
+               t = new Toto
+               printn(t)
+               t = new Toto.foo
+               printn(t)
+               t = new Toto.bar(5)
+               printn(t)
+               t = new Toto
+               printn(t)
+               t = new Toto.foo
+               printn(t)
+               t = new Toto.bar(15)
+               printn(t)
+
+               _t = new Toto
+               printn(_t)
+               _t = new Toto.foo
+               printn(_t)
+               _t = new Toto.bar(50)
+               printn(_t)
+               _t = new Toto
+               printn(_t)
+               _t = new Toto.foo
+               printn(_t)
+               _t = new Toto.bar(150)
+               printn(_t)
+       end
+end
+
+var t = new Test
diff --git a/tests/test_create.sav b/tests/test_create.sav
new file mode 100644 (file)
index 0000000..efbc004
--- /dev/null
@@ -0,0 +1,12 @@
+0
+10
+5
+0
+10
+15
+0
+10
+50
+0
+10
+150
diff --git a/tests/test_create_more.nit b/tests/test_create_more.nit
new file mode 100644 (file)
index 0000000..1b0fd1c
--- /dev/null
@@ -0,0 +1,84 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       attr _attribute: A
+       attr _num: Char
+
+       meth foo=(a: A)
+       do
+               _attribute = a
+       end
+
+       meth foo: A
+       do
+               return _attribute
+       end
+
+       meth bar=(c: Char, a: A)   
+       do
+               _num = c
+               _attribute = a
+       end
+
+       meth bar(c: Char): A
+       do
+               if c == _num then
+                       return _attribute
+               else
+                       return null
+               end
+       end
+
+       redef meth to_s: String
+       do
+               var s = _num.to_s
+               if _attribute == null then
+                       s.add('\n')
+               else
+                       s.append(_attribute.to_s)
+               end
+               return s
+       end
+
+
+
+       init
+       do
+               _num = '*'
+       end
+
+       init init2(c: Char, a: A)
+       do
+               _num = c
+               _attribute = a
+       end
+end
+
+var a: Array[A]
+a = new Array[A]
+a = new Array[A].with_capacity(6)
+a[0] = new A
+a[1] = new A
+a[1].foo = new A
+a[0] =  new A
+a[1].foo._attribute = new A.init2('0',a[0])
+a[2] = new A.init2('1', a[1])
+a[3] = new A.init2('3', a[2].bar('1'))
+a[2].bar('2') = new A
+a[4] = new A.init2('4', a[2].bar('1'))
+a[5] = new A.init2('5', a[2].bar('2'))
+printn(a)
diff --git a/tests/test_create_more.sav b/tests/test_create_more.sav
new file mode 100644 (file)
index 0000000..b7b516e
--- /dev/null
@@ -0,0 +1,6 @@
+*
+**0*
+2*
+3**0*
+4
+5*
diff --git a/tests/test_eq.nit b/tests/test_eq.nit
new file mode 100644 (file)
index 0000000..585f652
--- /dev/null
@@ -0,0 +1,80 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i = 1
+var j = 1
+var k = 2
+var s = "Maison"
+var t = "Maison"
+var a: Object
+var b: Object
+
+print("* literal int")
+print(1 is 1)
+print(1 is 1)
+print(not 1 is 2)
+print(not 1 is 2)
+print("* int variable")
+print(i is j)
+print(j is i)
+print(not i is k)
+print(i is 1)
+print(not i is 2)
+
+print("* same type object")
+print(s is s)
+a = s
+print(s is a)
+a = s
+print(not s is t)
+b = t
+print(not s is b)
+print(not s is b)
+
+print("* different type object")
+a = s.iterator
+print(not s is a)
+a = 5
+print(not s is a)
+print(not s is 5)
+
+print("* boxed native")
+a = i
+b = i
+print(i is a)
+print(b is i)
+print(b is a)
+a = 5
+b = 5.ascii
+print(not 5 is 5.ascii)
+print(not a is 5.ascii)
+print(not 5 is b)
+print(not a is b)
+
+print("* null")
+a = null
+b = null
+print(not null is s)
+print(not s is null)
+print(not a is s)
+print(not s is a)
+print(null is null)
+print(b is null)
+print(b is a)
+print(not i is null)
+print(not i is a)
+print(not null is i)
+print(not a is i)
diff --git a/tests/test_eq.sav b/tests/test_eq.sav
new file mode 100644 (file)
index 0000000..cf4e79f
--- /dev/null
@@ -0,0 +1,41 @@
+* literal int
+true
+true
+true
+true
+* int variable
+true
+true
+true
+true
+true
+* same type object
+true
+true
+true
+true
+true
+* different type object
+true
+true
+true
+* boxed native
+true
+true
+true
+true
+true
+true
+true
+* null
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
diff --git a/tests/test_eq2.nit b/tests/test_eq2.nit
new file mode 100644 (file)
index 0000000..0af50af
--- /dev/null
@@ -0,0 +1,65 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i = 1
+var j = 1
+var k = 2
+var s = "Maison"
+var t = "Maison"
+var u = "Arbre"
+var a: Object
+var b: Object
+print("* literal int")
+print(1 == 1)
+print(not 1 != 1)
+print(not 1 == 2)
+print(1 != 2)
+print("* int variable")
+print(i == j)
+print(j == i)
+print(i != k)
+print(i == 1)
+print(i != 2)
+
+print("* same type object")
+print(s == s)
+a = s
+print(a == s)
+a = s
+print(s == t)
+b = t
+print(b == s)
+print(not s == u)
+b = u
+print(not b == s)
+
+print("* different type object")
+a = s.iterator
+print(not a == s)
+a = 5
+print(not a == s)
+
+print("* boxed native")
+a = i
+b = i
+print(a == i)
+print(b == i)
+print(b == a)
+a = 5
+b = 5.ascii
+print(not a == 5.ascii)
+print(not b == 5)
+print(not a == b)
diff --git a/tests/test_eq2.sav b/tests/test_eq2.sav
new file mode 100644 (file)
index 0000000..b5986f6
--- /dev/null
@@ -0,0 +1,28 @@
+* literal int
+true
+true
+true
+true
+* int variable
+true
+true
+true
+true
+true
+* same type object
+true
+true
+true
+true
+true
+true
+* different type object
+true
+true
+* boxed native
+true
+true
+true
+true
+true
+true
diff --git a/tests/test_equal.nit b/tests/test_equal.nit
new file mode 100644 (file)
index 0000000..9a7f067
--- /dev/null
@@ -0,0 +1,48 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+var i: Int
+var j: Int
+var a: Object
+var b: Object
+if 1 == 1 then printn("ok") else printn("fail")
+if not 1 == 2 then printn("ok") else printn("fail")
+if 1 is 1 then printn("ok") else printn("fail")
+if not 1 is 2 then printn("ok") else printn("fail")
+i = 1
+if i == 1 then printn("ok") else printn("fail")
+if not i == 2 then printn("ok") else printn("fail")
+if i is 1 then printn("ok") else printn("fail")
+if not i is 2 then printn("ok") else printn("fail")
+j = 1
+if i == j then printn("ok") else printn("fail")
+if i is j then printn("ok") else printn("fail")
+a = 1
+if a == i then printn("ok") else printn("fail")
+if a is i then printn("ok") else printn("fail")
+a = i
+if a == i then printn("ok") else printn("fail")
+if a is i then printn("ok") else printn("fail")
+b = a
+if a == b then printn("ok") else printn("fail")
+if a is b then printn("ok") else printn("fail")
+b = i
+if a == b then printn("ok") else printn("fail")
+if a is b then printn("ok") else printn("fail")
+b = 1
+if a == b then printn("ok") else printn("fail")
+if a is b then printn("ok") else printn("fail")
diff --git a/tests/test_equal.sav b/tests/test_equal.sav
new file mode 100644 (file)
index 0000000..0be6ecd
--- /dev/null
@@ -0,0 +1 @@
+okokokokokokokokokokokokokokokokokokokok
\ No newline at end of file
diff --git a/tests/test_equal_nil.nit b/tests/test_equal_nil.nit
new file mode 100644 (file)
index 0000000..f94446a
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class A
+       init do end
+end
+
+var a = new A
+var b : A
+if a == null then printn(0) else printn(1)
+if a is null then printn(0) else printn(1)
+#if b == null then printn(1) else printn(0)
+if b is null then printn(1) else printn(0)
+if a == a then printn(1) else printn(0)
+if a is a then printn(1) else printn(0)
+#if b == b then printn(1) else printn(0)
+if b is b then printn(1) else printn(0)
+if a == b then printn(0) else printn(1)
+if a is b then printn(0) else printn(1)
+#if b == a then printn(0) else printn(1)
+if b is a then printn(0) else printn(1)
+
diff --git a/tests/test_equal_nil.sav b/tests/test_equal_nil.sav
new file mode 100644 (file)
index 0000000..4d7eaaf
--- /dev/null
@@ -0,0 +1 @@
+111111111
\ No newline at end of file
diff --git a/tests/test_exec.nit b/tests/test_exec.nit
new file mode 100644 (file)
index 0000000..117bb57
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import exec
+
+var hw = new Process("echo", "A", "hello", "world!")
+hw.wait
+
+var ip = new IProcess("echo", "B hello world!")
+ip.read_line.output
+ip.wait
+
+var op = new OProcess.init_("cat")
+op.write("C hello world!\n")
+op.close
+op.wait
+
+var iop = new IOProcess.init_("cat")
+iop.write("D hello world!\n")
+iop.read_line.output
+iop.close
+iop.wait
+
diff --git a/tests/test_exec.sav b/tests/test_exec.sav
new file mode 100644 (file)
index 0000000..2529d3a
--- /dev/null
@@ -0,0 +1,4 @@
+A hello world!
+C hello world!
+B hello world!
+D hello world!
diff --git a/tests/test_extern.extern b/tests/test_extern.extern
new file mode 100644 (file)
index 0000000..c341c6b
--- /dev/null
@@ -0,0 +1,2 @@
+cheader=test_extern.h
+cbody=test_extern.c
diff --git a/tests/test_extern.nit b/tests/test_extern.nit
new file mode 100644 (file)
index 0000000..f3fd6f0
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth foo: Int is extern "foo"
+meth bar(i: Int): Int is extern "bar"
+meth baz(a: Object): Object is extern "baz"
+
+print(foo)
+print(bar(1))
+print(baz("hello world"))
diff --git a/tests/test_extern.sav b/tests/test_extern.sav
new file mode 100644 (file)
index 0000000..d9464d3
--- /dev/null
@@ -0,0 +1,3 @@
+10
+2
+hello world
diff --git a/tests/test_extern_nit.c b/tests/test_extern_nit.c
new file mode 100644 (file)
index 0000000..9468565
--- /dev/null
@@ -0,0 +1,3 @@
+int foo(int s) { return 10; }
+int bar(int s, int i) { return i*2; }
+int baz(int s, int a) { return a; }
diff --git a/tests/test_extern_nit.h b/tests/test_extern_nit.h
new file mode 100644 (file)
index 0000000..9ac52f1
--- /dev/null
@@ -0,0 +1,3 @@
+int foo(int);
+int bar(int, int);
+int baz(int, int);
diff --git a/tests/test_fdstream.inputs b/tests/test_fdstream.inputs
new file mode 100644 (file)
index 0000000..c790eda
--- /dev/null
@@ -0,0 +1,2 @@
+Hello!
+
diff --git a/tests/test_fdstream.nit b/tests/test_fdstream.nit
new file mode 100644 (file)
index 0000000..c1e3e84
--- /dev/null
@@ -0,0 +1,28 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import stream
+
+var fd_in = new FDIStream(0)
+var fd_out = new FDOStream(1)
+var fd_err = new FDOStream(2)
+
+fd_out.write("Hello\n")
+
+var s = fd_in.read_line
+fd_out.write(s)
+
+fd_err.write("World\n")
diff --git a/tests/test_fdstream.sav b/tests/test_fdstream.sav
new file mode 100644 (file)
index 0000000..cfbf383
--- /dev/null
@@ -0,0 +1,3 @@
+Hello
+Hello!
+World
diff --git a/tests/test_file_read.nit b/tests/test_file_read.nit
new file mode 100644 (file)
index 0000000..453a844
--- /dev/null
@@ -0,0 +1,29 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new IFStream.open("test_file_read.nit")
+var s: String
+while not f.eof do
+    s = f.read_line
+    printn(s)
+    printn("\n")
+end
+f.close
+
+f.reopen
+printn(f.read(10))
+printn("|")
+printn(f.read_all)
diff --git a/tests/test_file_read.sav b/tests/test_file_read.sav
new file mode 100644 (file)
index 0000000..a5790cb
--- /dev/null
@@ -0,0 +1,59 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new IFStream.open("test_file_read.nit")
+var s: String
+while not f.eof do
+    s = f.read_line
+    printn(s)
+    printn("\n")
+end
+f.close
+
+f.reopen
+printn(f.read(10))
+printn("|")
+printn(f.read_all)
+
+# This fil|e is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new IFStream.open("test_file_read.nit")
+var s: String
+while not f.eof do
+    s = f.read_line
+    printn(s)
+    printn("\n")
+end
+f.close
+
+f.reopen
+printn(f.read(10))
+printn("|")
+printn(f.read_all)
diff --git a/tests/test_file_write.nit b/tests/test_file_write.nit
new file mode 100644 (file)
index 0000000..c4f8f33
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = new OFStream.open("test_file_write.write")
+   f.write("Quatre vingt et un : {421}\n")
+   f.write("Une autre ligne\nencore un")
+   f.write(['e', '\n'].to_s)
+   f.close
diff --git a/tests/test_file_write.sav b/tests/test_file_write.sav
new file mode 100644 (file)
index 0000000..09e8087
--- /dev/null
@@ -0,0 +1,3 @@
+Quatre vingt et un : 421
+Une autre ligne
+encore une
diff --git a/tests/test_float.nit b/tests/test_float.nit
new file mode 100644 (file)
index 0000000..387c312
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var f = 5.5 
+f.output
+(f/10.0).output
+f = 12.34567891011
+print(f)
+print(f.to_s)
+print(f.to_precision(3))
+print(f.to_precision(1))
+print(f.to_precision(0))
diff --git a/tests/test_float.sav b/tests/test_float.sav
new file mode 100644 (file)
index 0000000..b039e4e
--- /dev/null
@@ -0,0 +1,7 @@
+5.500000
+0.550000
+12.345679
+12.345679
+12.345
+12.3
+12
diff --git a/tests/test_for.nit b/tests/test_for.nit
new file mode 100644 (file)
index 0000000..efbf4c7
--- /dev/null
@@ -0,0 +1,28 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+for i in [1, 2, 3] do
+   print(i)
+end
+
+var j = [4, 5, 6]
+for k in j do
+   print(k)
+end
+
+for l in [7, 8, 9] do
+   print(l)
+end
diff --git a/tests/test_for.sav b/tests/test_for.sav
new file mode 100644 (file)
index 0000000..0719398
--- /dev/null
@@ -0,0 +1,9 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
diff --git a/tests/test_gen.nit b/tests/test_gen.nit
new file mode 100644 (file)
index 0000000..ed4697a
--- /dev/null
@@ -0,0 +1,81 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class Toto[E]
+   attr _item: E
+   meth set(e: E)
+      do _item = e end
+   meth get: E
+      do return _item end
+   redef meth to_s: String
+      do return _item.to_s end
+
+   init do end
+end
+
+class TestNative
+special ArrayCapable[Int]
+
+init
+do
+       var a: Array[Int]
+       var b: NativeArray[Int]
+       var u: Object
+       a = [10, 20, 30]
+       a[1] = 2
+       print(a[0])
+       print(a[1])
+       b = calloc_array(5)
+       b[0]=200
+       b[1]=300
+       print(b[0])
+       print(b[1])
+end
+end
+
+
+
+meth test_toto
+do
+       var t = new Toto[Int]
+       t.set(5)
+       print(t)
+end
+
+meth test_array
+do
+       var a = new Array[Int].with_capacity(3)
+       a.add(1)
+       a.add(2)
+       a.add(3)
+       a.add(4)
+       a.add(5)
+       print(a[0])
+       print(a)
+       var i = a.iterator
+       while i.is_ok do
+               print(i.index)
+               print(i.item)
+               i.next
+       end
+end
+
+test_toto
+print("-")
+var n = new TestNative
+print("-")
+test_array
diff --git a/tests/test_gen.sav b/tests/test_gen.sav
new file mode 100644 (file)
index 0000000..8ef74a2
--- /dev/null
@@ -0,0 +1,19 @@
+5
+-
+10
+2
+200
+300
+-
+1
+12345
+0
+1
+1
+2
+2
+3
+3
+4
+4
+5
diff --git a/tests/test_gen_inh.nit b/tests/test_gen_inh.nit
new file mode 100644 (file)
index 0000000..d658002
--- /dev/null
@@ -0,0 +1,68 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class Gen1[E, F]
+special Object
+   readable writable attr _e: E
+   attr _f_: F
+   meth f: F do return _f_ end 
+   meth f=(x: F) do _f_ = x end
+
+   init do end
+end
+
+class Gen2[G: Int]
+special Gen1[G, Char]
+
+   init do end
+end
+
+class Gen3[H: Int]
+special Gen1[H, Char]
+   redef readable redef writable redef attr _e: H
+   redef attr _f_: Char
+   redef meth f: Char do return _f_ end 
+   redef meth f=(x: Char) do _f_ = x end
+
+   init do end
+end
+
+var g1 = new Gen1[Int, Char]
+var g2 = new Gen2[Int]
+var g3 = new Gen3[Int]
+g1.e = 1
+g1.f = '1'
+g2.e = 2
+g2.f = '2'
+g3.e = 3
+g3.f = '3'
+
+g1.f.output
+g1.e.output
+g2.f.output
+g2.e.output
+g3.f.output
+g3.e.output
+
+g1 = g2
+g1.f.output
+g1.e.output
+
+g1 = g3
+g1.f.output
+g1.e.output
diff --git a/tests/test_gen_inh.sav b/tests/test_gen_inh.sav
new file mode 100644 (file)
index 0000000..b48ebc3
--- /dev/null
@@ -0,0 +1,5 @@
+11
+22
+33
+22
+33
diff --git a/tests/test_genplus.nit b/tests/test_genplus.nit
new file mode 100644 (file)
index 0000000..4050703
--- /dev/null
@@ -0,0 +1,35 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class T
+end
+
+class U
+special T
+end
+
+class A[E: T]
+end
+
+class B
+special A[T]
+end
+
+#class A[F: U]
+#end
+
diff --git a/tests/test_genplus.sav b/tests/test_genplus.sav
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/test_gets.inputs b/tests/test_gets.inputs
new file mode 100644 (file)
index 0000000..34669d2
--- /dev/null
@@ -0,0 +1,3 @@
+bonjour
+ndjui
+
diff --git a/tests/test_gets.nit b/tests/test_gets.nit
new file mode 100644 (file)
index 0000000..a7efb38
--- /dev/null
@@ -0,0 +1,18 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+printn(gets)
+printn(gets)
diff --git a/tests/test_gets.sav b/tests/test_gets.sav
new file mode 100644 (file)
index 0000000..5d25dd1
--- /dev/null
@@ -0,0 +1 @@
+bonjourndjui
\ No newline at end of file
diff --git a/tests/test_hash.nit b/tests/test_hash.nit
new file mode 100644 (file)
index 0000000..81bde24
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import test_map
+
+print("hello".hash == "hello".hash)
+test1(new HashMap[Int, Int])
+test2(new HashMap[Int, Int])
+test3(new HashMap[String, String])
diff --git a/tests/test_hash.sav b/tests/test_hash.sav
new file mode 100644 (file)
index 0000000..dc72c30
--- /dev/null
@@ -0,0 +1,48 @@
+true
+* test 1 *
+2 - 4
+20 - 4
+true
+true
+true
+true
+true
+true
+2
+0
+* test 2 *
+1000
+334
+* test 3 *
+* start:
+true
+true
+true
+true
+true
+true
+true
+true
+true
+* add some:
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+bleu, rouge, rose, jaune, orange, noir, gris, gris, blanc
+* remove:
+true
+true
+true
+true
+true
+true
+true
+rouge, jaune, orange, noir, blanc
+true
diff --git a/tests/test_id.nit b/tests/test_id.nit
new file mode 100644 (file)
index 0000000..5207fc1
--- /dev/null
@@ -0,0 +1,61 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class C
+
+       init do end
+end
+
+var an: Object
+var c = new C
+var i = 5
+var a = [c]
+var s = "Bonjour"
+var id1: Int
+var id2: Int
+var id3: Int
+var id4: Int
+
+id1 = c.object_id
+print(c.object_id == id1)
+an = c
+print(an.object_id == id1)
+print((new C).object_id != id1)
+printn('\n')
+
+id2 = i.object_id
+print(id1 != id2)
+print(i.object_id == id2)
+an = i
+print(an.object_id == id2)
+print(5.object_id == id2)
+printn('\n')
+
+id3 = a.object_id
+print(id1 != id3 and id2 != id3)
+print(a.object_id == id3)
+an = a
+print(an.object_id == id3)
+print([c].object_id != id3)
+printn('\n')
+
+id4 = s.object_id
+print(id1 != id4 and id2 != id4 and id3 != id4)
+print(s.object_id == id4)
+an = s
+print(an.object_id == id4)
+print("Bonjour".object_id != id4)
diff --git a/tests/test_id.sav b/tests/test_id.sav
new file mode 100644 (file)
index 0000000..843c7f0
--- /dev/null
@@ -0,0 +1,18 @@
+true
+true
+true
+
+true
+true
+false
+true
+
+true
+true
+true
+true
+
+true
+true
+true
+true
diff --git a/tests/test_inh.nit b/tests/test_inh.nit
new file mode 100644 (file)
index 0000000..7be7f1a
--- /dev/null
@@ -0,0 +1,84 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+# Base Classes
+
+class Object
+end
+
+class Hashable
+special Object
+end
+# Ancestor:    "Object" on "Hashable"
+
+class Comparable
+special Object
+end
+
+class Int
+special Hashable
+special Comparable
+end
+
+# Complex Classes
+
+class Pair[E]
+special Object
+end
+class Pair[F: Hashable]
+special Hashable
+end
+# Ancestor:    "ANY": "Object" on "Pair[E: Object]"
+#              "HASHABLE": "Hashable" on "Pair[F: Hashable]"
+
+class PairCmp[G: Comparable]
+special Pair[G]
+special Comparable
+end
+# Ancestor:    "PAIR": "Pair[G]" on "PairCmp[G: Comparable]"
+#      =>      "ANY": "Object" on "PairCmp[G: Comparable]"
+#      =>      "HASHABLE": "Hashable" on "PairCmp[G: Comparable+Hahsable]"
+# Ancestor:    "COMPARABLE": "Comparable" on "PairCmp[G: Comparable]"
+
+class Complex
+special PairCmp[Int]
+end
+# Ancestor:    "PAIRCMP": "PairCmp[Int]" on "Complex"
+#      =>      "PAIR": "Pair[Int]" on "Complex"
+#      =>      "ANY": "Object" on "Complex"
+#      =>      "HASHABLE": "Hashable" on "Complex"
+
+# Un ancètre d'une classe c est un couple de types (ancetre, héritier) où héritier est dérivé de c
+# les ancètres indirects de c par la filiation (a, h) sont
+# pour chaque ancètres (aa, ha) de la classe de a
+# 
+
+# un type a un contexte. 
+# Les ancetres d'une classes c sont un tas de types dont le contexte est dérivé de la classe c
+
+
+# application: type1 x type2 x type3 -> type4 (ex "A[U]" x "A[E: T]" x "B[E,C]" -> "B[U,C]")
+#   * map: type1 x type2 -> hash (ex "A[U] x A[E: T]" -> {E->U})
+#   * betared: hash x type3 -> type4 (ex {E->U} x "B[E,C]" -> "B[U,C]"
+#   * application(x,y,z) = betared(map(x,y), z)
+# remarques : 
+#   * type2 est la liste des parametres formels
+#   * type1 peut contenir des paramètres formels
+# ... l'application est plus compliquée
+
+# application("Pair[Comparable]", "Pair[E: Comparable]", )
diff --git a/tests/test_inheritance.nit b/tests/test_inheritance.nit
new file mode 100644 (file)
index 0000000..d08173f
--- /dev/null
@@ -0,0 +1,69 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       meth f do print(1) end
+       meth g do print(1) end
+       meth h do print(1) end
+       meth i do print(1) end
+
+       init do end
+end
+
+class B
+special A
+       redef meth g do print(2) end
+       redef meth i do print(2) end
+
+       init do end
+end
+
+class C
+special A
+       redef meth h do print(3) end
+       redef meth i do print(3) end
+
+       init do end
+end
+
+class D
+special B
+special C
+       redef meth i do print(4) end
+
+       init do end
+end
+
+var a = new A
+var b = new B
+var c = new C
+var d = new D
+a.f
+a.g
+a.h
+a.i
+b.f
+b.g
+b.h
+b.i
+c.f
+c.g
+c.h
+c.i
+d.f
+d.g
+d.h
+d.i
diff --git a/tests/test_inheritance.sav b/tests/test_inheritance.sav
new file mode 100644 (file)
index 0000000..5f07ce3
--- /dev/null
@@ -0,0 +1,16 @@
+1
+1
+1
+1
+1
+2
+1
+2
+1
+1
+3
+3
+1
+2
+3
+4
diff --git a/tests/test_inheritance_raf.nit b/tests/test_inheritance_raf.nit
new file mode 100644 (file)
index 0000000..f12543f
--- /dev/null
@@ -0,0 +1,47 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_inheritance
+
+redef class A
+       redef meth h do print(5) end
+       redef meth i do print(5) end
+end
+
+redef class C
+       redef meth i do print(7) end
+end
+
+var a = new A
+var b = new B
+var c = new C
+var d = new D
+a.f
+a.g
+a.h
+a.i
+b.f
+b.g
+b.h
+b.i
+c.f
+c.g
+c.h
+c.i
+d.f
+d.g
+d.h
+d.i
diff --git a/tests/test_int_to_s.nit b/tests/test_int_to_s.nit
new file mode 100644 (file)
index 0000000..4c32cb1
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+printn(5.to_s, "\n")
+printn(50.to_s, "\n")
+printn(1.to_s, "\n")
+printn(9.to_s, "\n")
+printn(999.to_s, "\n")
+printn(1000.to_s, "\n")
+printn((-55).to_s, "\n")
+printn((-0).to_s, "\n")
+printn(0.to_s, "\n")
diff --git a/tests/test_int_to_s.sav b/tests/test_int_to_s.sav
new file mode 100644 (file)
index 0000000..7590f34
--- /dev/null
@@ -0,0 +1,9 @@
+5
+50
+1
+9
+999
+1000
+-55
+0
+0
diff --git a/tests/test_io.inputs b/tests/test_io.inputs
new file mode 100644 (file)
index 0000000..c430faf
--- /dev/null
@@ -0,0 +1,2 @@
+Jean
+
diff --git a/tests/test_io.nit b/tests/test_io.nit
new file mode 100644 (file)
index 0000000..d665fcb
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var s1: String
+printn("Hello world\n")
+printn("What is your name ? ")
+s1 = gets
+printn("Hello ", s1, ".\n")
diff --git a/tests/test_io.sav b/tests/test_io.sav
new file mode 100644 (file)
index 0000000..0edb3c1
--- /dev/null
@@ -0,0 +1,2 @@
+Hello world
+What is your name ? Hello Jean.
diff --git a/tests/test_isa.nit b/tests/test_isa.nit
new file mode 100644 (file)
index 0000000..5b5ff3b
--- /dev/null
@@ -0,0 +1,43 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var a : Object
+print("int:")
+a = 5
+print(a isa Int)
+print(not a isa String)
+print(not a isa AbstractArray[Char])
+print(not a isa Iterator[Int])
+print(a isa Discrete)
+print(a isa Object)
+
+print("string:")
+a = "Bonjour"
+print(not a isa Int)
+print(a isa String)
+print(a isa AbstractArray[Char])
+print(not a isa Iterator[Int])
+print(not a isa Discrete)
+print(a isa Object)
+
+print("null:")
+a = null
+print(a isa Int)
+print(a isa String)
+print(a isa AbstractArray[Char])
+print(a isa Iterator[Int])
+print(a isa Discrete)
+print(a isa Object)
diff --git a/tests/test_isa.sav b/tests/test_isa.sav
new file mode 100644 (file)
index 0000000..588e256
--- /dev/null
@@ -0,0 +1,21 @@
+int:
+true
+true
+true
+true
+true
+true
+string:
+true
+true
+true
+true
+true
+true
+null:
+true
+true
+true
+true
+true
+true
diff --git a/tests/test_kernel.nit b/tests/test_kernel.nit
new file mode 100644 (file)
index 0000000..7dde9d5
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class Foo
+       redef meth output
+       do
+               10.output
+       end
+
+       redef meth ==(o: Object): Bool
+       do
+               return true
+       end
+
+       init do end
+end
+
+var a: Object
+a = new Foo
+a.output
+(a == 5).output
diff --git a/tests/test_kernel.sav b/tests/test_kernel.sav
new file mode 100644 (file)
index 0000000..ebe1a9c
--- /dev/null
@@ -0,0 +1,2 @@
+10
+true
diff --git a/tests/test_let.nit b/tests/test_let.nit
new file mode 100644 (file)
index 0000000..868e548
--- /dev/null
@@ -0,0 +1,39 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var i: Int
+var j: Object = i
+var k: Object
+
+i = 5
+k = 'a'
+print(i)
+print(j)
+print(k)
+
+do
+       var i = i + 1
+       var j = k
+       var k = j
+
+       print(i)
+       print(j)
+       print(k)
+end
+
+print(i)
+print(j)
+print(k)
diff --git a/tests/test_let.sav b/tests/test_let.sav
new file mode 100644 (file)
index 0000000..c79bf12
--- /dev/null
@@ -0,0 +1,9 @@
+5
+0
+a
+6
+a
+a
+5
+0
+a
diff --git a/tests/test_list.nit b/tests/test_list.nit
new file mode 100644 (file)
index 0000000..fe5e79b
--- /dev/null
@@ -0,0 +1,68 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+do
+    var l = new List[Int]
+    l.push(1)
+    printn(l.shift)
+    l.push(2)
+    l.push(3)
+    printn(l.shift)
+    printn(l.shift)
+    l.push(4)
+    printn(l.shift)
+
+    l = new List[Int].from([1,2,3,4])
+
+    var i = l.iterator
+    while i.is_ok do
+       printn(i.item)
+       i.next
+    end
+
+    l.unshift(0)
+    l.unshift(-1)
+    printn(l.shift)
+    printn(l.first)
+    printn(l.last)
+    printn(l.shift)
+    printn(l.pop)
+    printn(l.shift)
+    printn(l.pop)
+    printn(l.shift)
+end
+
+print("\npart2")
+
+do
+    var l = new List[Int].from([1,2,3,4,5,6])
+    print(l)
+    print(l.has(3))
+    print(not l.has(9))
+    print(l.has_key(3))
+    print(not l.has_key(-3))
+    print(not l.has_key(30))
+    print(l[1] == 2)
+    print(l.first == 1)
+    print(l.last == 6)
+    print(l.length == 6)
+    l[2] = -3
+    l.first = -1
+    l.last = -6
+    l.remove(4)
+    print(l)
+end
+
diff --git a/tests/test_list.sav b/tests/test_list.sav
new file mode 100644 (file)
index 0000000..ae897a3
--- /dev/null
@@ -0,0 +1,13 @@
+12341234-10404132
+part2
+123456
+true
+true
+true
+true
+true
+true
+true
+true
+true
+-12-35-6
diff --git a/tests/test_map.nit b/tests/test_map.nit
new file mode 100644 (file)
index 0000000..ffa3755
--- /dev/null
@@ -0,0 +1,141 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+meth test1(h: Map[Int, Int])
+do
+       print("* test 1 *")
+       h[1] = 2
+       h[2] = 4
+       printn(h[1], " - ", h[2], "\n")
+       h[1] = 20
+       printn(h[1], " - ", h[2], "\n")
+       print(h.has_key(1))
+       print(h.has_key(2))
+       print(not h.has_key(3))
+       print(not h.has(2))
+       print(h.has(4))
+       print(h.has(20))
+       print(h.length)
+       var s = 24
+       for x in h do
+               s = s - x
+       end
+       print(s)
+end
+
+meth test2(h: Map[Int, Int])
+do
+       print("* test 2 *")
+       var nb = 999
+       
+       var i = 0
+       while i <= nb do
+               h[i*31+13] = i * 2
+               i = i + 1
+       end
+
+       print(h.length)
+
+       i = nb
+       while i >= 0 do
+               if (h[i*31+13] != i * 2) then
+                       print("{i}: {i*31+13} != {h[i]}")
+               end
+               i = i - 1
+       end
+
+       i = nb * 2
+       while i >= 0 do
+               if (i % 3 != 0) then
+                       h.remove(i)
+               end
+               i = i - 1
+       end
+       
+       print(h.length)
+
+       i = nb
+       while i >= 0 do
+               var j = i * 31 + 13
+               if (i * 2) % 3 != 0 then
+                       if h.has_key(j) then
+                               print("{i}: {j} should be removed")
+                       end
+               else if (h[j] != i * 2) then
+                       print("{i}: {j} != {h[i]}")
+               end
+               i = i - 1
+       end
+end
+
+
+meth test3(m: Map[String, String])
+do
+       print("* test 3 *")
+       print("* start:")
+       print(m.is_empty)
+       print(m.length == 0)
+       print(m.has_only("vert"))
+       print(m.count("vert") == 0)
+       m["blue"] = "vert"
+       print(not m.is_empty)
+       print(m.has_only("vert"))
+       print(m.count("vert") == 1)
+       m["red"] = "rouge"
+       print(not m.has_only("vert"))
+       m["blue"] = "bleu"
+       print(m.length == 2)
+
+       print("* add some:")
+       m["pink"] = "rose"
+       m["yellow"] = "jaune"
+       m["orange"] = "orange"
+       m["black"] = "noir"
+       m["gray"] = "gris"
+       m["grey"] = "gris"
+       m["white"] = "blanc"
+       print(m.length == 9)
+       print(m.count("vert") == 0)
+       print(m.count("gris") == 2)
+       print(m["blue"] == "bleu")
+       print(not m.has("vert"))
+       print(m.has("bleu"))
+       print(not m.has("blue"))
+       print(m.has_key("blue"))
+       print(not m.has_key("green"))
+       print(not m.has_key("vert"))
+       print(m.join(", "))
+
+       print("* remove:")
+       print(m.count("rose") == 1)
+       m.remove("rose")
+       print(m.length == 8)
+       print(m.count("rose") == 0)
+       m.remove_all("gris")
+       print(m.length == 6)
+       print(m.count("gris") == 0)
+       m.remove_at("blue")
+       print(m.length == 5)
+       print(m.count("bleu") == 0)
+       print(m.join(", "))
+       m.clear
+       print(m.is_empty)
+end
+
+test1(new ArrayMap[Int, Int])
+test2(new ArrayMap[Int, Int])
+test3(new ArrayMap[String, String])
diff --git a/tests/test_map.sav b/tests/test_map.sav
new file mode 100644 (file)
index 0000000..dabb78b
--- /dev/null
@@ -0,0 +1,47 @@
+* test 1 *
+2 - 4
+20 - 4
+true
+true
+true
+true
+true
+true
+2
+0
+* test 2 *
+1000
+334
+* test 3 *
+* start:
+true
+true
+true
+true
+true
+true
+true
+true
+true
+* add some:
+true
+true
+true
+true
+true
+true
+true
+true
+true
+true
+bleu, rouge, rose, jaune, orange, noir, gris, gris, blanc
+* remove:
+true
+true
+true
+true
+true
+true
+true
+noir, rouge, blanc, jaune, orange
+true
diff --git a/tests/test_math.nit b/tests/test_math.nit
new file mode 100644 (file)
index 0000000..3f5dac0
--- /dev/null
@@ -0,0 +1,40 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2005-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+srand_from(5)
+
+print(pi)
+print(pi.cos)
+print(pi.sin)
+print(pi.tan)
+print(1.0.atan)
+print(1.0.acos)
+print(1.0.asin)
+
+print(25.0.sqrt)
+print(0.0.exp)
+print(1.0.log)
+print(4.0.pow(3.0))
+
+print(0.1.cos.acos.cos.acos)
+print(0.1.sin.asin.sin.asin)
+print(0.1.tan.atan.tan.atan)
+print(0.1.exp.log.exp.log)
+
+for i in [0..10] do
+       printn(i.rand, ", ", i.to_f.rand, ", ")
+end
+
diff --git a/tests/test_math.sav b/tests/test_math.sav
new file mode 100644 (file)
index 0000000..6c34cda
--- /dev/null
@@ -0,0 +1,16 @@
+3.141592
+-1.0
+0.0
+0.0
+0.785398
+0.0
+1.570796
+5.0
+1.0
+0.0
+64.0
+0.99999
+0.100000
+0.100000
+0.100000
+0, 0.0, 0, 0.80030, 0, 0.159289, 0, 1.345366, 1, 3.576007, 0, 1.373251, 5, 1.327668, 2, 1.792959, 2, 2.174776, 3, 2.306186, 3, 4.612696, 
\ No newline at end of file
diff --git a/tests/test_mem.nit b/tests/test_mem.nit
new file mode 100644 (file)
index 0000000..f1e95f8
--- /dev/null
@@ -0,0 +1,30 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth foo(n: Int): List[Int]
+    do
+       var a: List[Int]
+       if n > 0 then
+           a = foo(n - 1)
+           a = foo(n - 1)
+           a.push(n)
+       else
+           a = new List[Int]
+       end
+       return a
+    end
+
+print(foo(23))
diff --git a/tests/test_mem.sav b/tests/test_mem.sav
new file mode 100644 (file)
index 0000000..a9be79e
--- /dev/null
@@ -0,0 +1 @@
+1234567891011121314151617181920212223
diff --git a/tests/test_meta.nit b/tests/test_meta.nit
new file mode 100644 (file)
index 0000000..dd31e5c
--- /dev/null
@@ -0,0 +1,87 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class A
+   meth foo
+      do
+          printn("A")
+      end
+   meth blup(a: Int)
+      do
+         blup2(a, 1)
+      end
+   meth blup2(a: Int, b : Int)
+      do
+         printn(a+b)
+      end
+   meth blop(a: Int, b: Int...)
+      do
+         var i = b.iterator
+         while i.is_ok do
+            printn(a+i.item)
+            i.next
+         end
+      end
+end
+
+class B
+special A
+   redef meth foo
+      do
+          printn("B")
+      end
+end
+
+class C
+special A
+   meth foo2
+      do
+          printn("C")
+      end
+end
+
+class D
+special B
+special C
+   redef meth foo
+      do
+          printn("D")
+      end
+
+   init do end
+end
+
+meth test1
+do
+       var b: B
+       b = new D
+       b.foo
+       b.blup2(1,2)
+       b.blup(3)
+end
+
+meth test2
+do
+       var b = new D
+       var a = [1,2,3]
+       var u: Object
+       printn("=",5)
+       b.blop(5,2,3)
+end
+
+test1
+test2
diff --git a/tests/test_meta.sav b/tests/test_meta.sav
new file mode 100644 (file)
index 0000000..67b0910
--- /dev/null
@@ -0,0 +1 @@
+D34=578
\ No newline at end of file
diff --git a/tests/test_multiconstraint.nit b/tests/test_multiconstraint.nit
new file mode 100644 (file)
index 0000000..bad27ae
--- /dev/null
@@ -0,0 +1,90 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+   meth foo
+   do
+      11.output
+   end
+
+   init do end
+end
+
+class B
+special A
+   redef  meth foo
+   do
+      21.output
+   end
+   meth bar
+   do
+      22.output
+   end
+
+   init do end
+end
+
+class C
+special B
+   redef meth foo
+   do
+      31.output
+   end
+   redef meth bar
+   do
+      32.output
+   end
+
+   init do end
+end
+
+class G[E]
+   meth out0
+   do
+      0.output
+   end
+
+   init do end
+end
+class G[E: A]
+   meth out1(e: E)
+   do
+      e.foo
+   end
+end
+class G[E: B]
+   meth out2(e: E)
+   do
+      e.foo
+      e.bar
+   end
+end
+
+var a = new A
+var b = new B
+var c = new C
+var ga = new G[A]
+var gb = new G[B]
+var gc = new G[C]
+ga.out0
+ga.out1(a)
+#ga.out2(a)
+gb.out1(b)
+gb.out2(b)
+gc.out1(c)
+gc.out2(c)
diff --git a/tests/test_multiconstraint.sav b/tests/test_multiconstraint.sav
new file mode 100644 (file)
index 0000000..61b6afb
--- /dev/null
@@ -0,0 +1,2 @@
+./test_multiconstraint.nit:64,1--67:11: Error: A class G is already defined at line 56.
+./test_multiconstraint.nit:70,1--74:11: Error: A class G is already defined at line 56.
diff --git a/tests/test_multiconstraint_inh.nit b/tests/test_multiconstraint_inh.nit
new file mode 100644 (file)
index 0000000..d924a05
--- /dev/null
@@ -0,0 +1,46 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+end
+
+class I[F]
+   meth foo do 1.output end
+end
+
+class J
+special I[A]
+   meth bar do 2.output end
+
+       init do end
+end
+
+class G[E]
+   meth baz(e: I[E]) do e.foo end
+end
+
+class H[F]
+special G[A]
+   redef meth baz(e: J) do e.bar end
+
+   init do end
+end
+
+var ha = new H[A]
+var j =  new J
+ha.baz(j)
diff --git a/tests/test_multiconstraint_inh.sav b/tests/test_multiconstraint_inh.sav
new file mode 100644 (file)
index 0000000..fff3a83
--- /dev/null
@@ -0,0 +1 @@
+./test_multiconstraint_inh.nit:39,4--32: Redef error: Expected I[A] (as in G::baz), got J in H::baz.
diff --git a/tests/test_multiconstraint_ref.nit b/tests/test_multiconstraint_ref.nit
new file mode 100644 (file)
index 0000000..37a7c11
--- /dev/null
@@ -0,0 +1,17 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_multiconstraint
diff --git a/tests/test_multiconstraint_ref.sav b/tests/test_multiconstraint_ref.sav
new file mode 100644 (file)
index 0000000..61b6afb
--- /dev/null
@@ -0,0 +1,2 @@
+./test_multiconstraint.nit:64,1--67:11: Error: A class G is already defined at line 56.
+./test_multiconstraint.nit:70,1--74:11: Error: A class G is already defined at line 56.
diff --git a/tests/test_multiconstraint_ref2.nit b/tests/test_multiconstraint_ref2.nit
new file mode 100644 (file)
index 0000000..1f8e095
--- /dev/null
@@ -0,0 +1,31 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_multiconstraint
+
+var a = new A
+var b = new B
+var c = new C
+var ga = new G[A]
+var gb = new G[B]
+var gc = new G[C]
+ga.out0
+ga.out1(a)
+#ga.out2(a)
+gb.out1(b)
+gb.out2(b)
+gc.out1(c)
+gc.out2(c)
diff --git a/tests/test_multiconstraint_ref2.sav b/tests/test_multiconstraint_ref2.sav
new file mode 100644 (file)
index 0000000..61b6afb
--- /dev/null
@@ -0,0 +1,2 @@
+./test_multiconstraint.nit:64,1--67:11: Error: A class G is already defined at line 56.
+./test_multiconstraint.nit:70,1--74:11: Error: A class G is already defined at line 56.
diff --git a/tests/test_nil.nit b/tests/test_nil.nit
new file mode 100644 (file)
index 0000000..81b4ac3
--- /dev/null
@@ -0,0 +1,29 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+var a: Object
+var b: Object
+var c= a
+var d= "coucou"
+d = null
+printn(0)
+printn(null)
+printn(a)
+printn(b)
+printn(c)
+printn(d)
+printn(1)
diff --git a/tests/test_nil.sav b/tests/test_nil.sav
new file mode 100644 (file)
index 0000000..a616ad4
--- /dev/null
@@ -0,0 +1 @@
+01
\ No newline at end of file
diff --git a/tests/test_obj.nit b/tests/test_obj.nit
new file mode 100644 (file)
index 0000000..757e2fd
--- /dev/null
@@ -0,0 +1,71 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class O
+   meth foo
+   do
+      printn(10)
+   end
+   
+   meth bar
+   do
+      printn(20)
+   end
+
+   init do end
+end
+
+class A
+special O
+   redef meth foo
+   do
+      printn(11)
+   end
+   
+   redef meth bar
+   do
+      printn(21)
+   end
+
+   init do end
+end
+
+class B
+special A
+   redef meth foo
+   do
+      printn(12)
+   end
+   
+   meth baz
+   do
+      printn(32)
+   end
+
+   init do end
+end
+
+var a = new A
+var ab: A = new B
+var b = new B
+a.foo
+a.bar
+ab.foo
+ab.bar
+b.foo
+b.bar
+b.baz
diff --git a/tests/test_obj.sav b/tests/test_obj.sav
new file mode 100644 (file)
index 0000000..6527f27
--- /dev/null
@@ -0,0 +1 @@
+11211221122132
\ No newline at end of file
diff --git a/tests/test_operator_brackets.nit b/tests/test_operator_brackets.nit
new file mode 100644 (file)
index 0000000..4b1a479
--- /dev/null
@@ -0,0 +1,71 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This module tests multivalue brackets
+
+class Matrice
+       # A matrice of integers
+
+       meth [](x: Int, y: Int): Int
+       # The integer at (x,y)
+       do
+               return _tab[x][y]
+       end
+
+       meth []=(x: Int, y: Int, v: Int)
+       # Put v in (x, y)
+       do
+               # Buld more arrays if needed
+               if x >= _tab.length then
+                       var i = _tab.length
+                       while i <= x do
+                               _tab[i] = new Array[Int]
+                               i = i + 1
+                       end
+               end
+               # Put the value
+               var row = _tab[x]
+               if y > row.length then
+                       var j = row.length
+                       while j < y do
+                               row[j] = 0
+                               j = j + 1
+                       end
+               end
+               row[y] = v
+       end
+
+private
+       attr _tab: Array[Array[Int]] # An array of array to store items
+
+
+       init
+       # Build an empty matrice
+       do
+               _tab = new Array[Array[Int]]
+       end
+end
+
+
+# Main program
+
+var m = new Matrice
+m[1,1] = 11
+m[2,1] = 21
+m[5,5] = 55
+printn(m[1,1])
+printn(m[2,1])
+printn(m[5,5])
diff --git a/tests/test_operator_brackets.sav b/tests/test_operator_brackets.sav
new file mode 100644 (file)
index 0000000..42b5dfa
--- /dev/null
@@ -0,0 +1 @@
+112155
\ No newline at end of file
diff --git a/tests/test_operators.nit b/tests/test_operators.nit
new file mode 100644 (file)
index 0000000..c0b974d
--- /dev/null
@@ -0,0 +1,89 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+class A
+   meth +(a: A): A
+   do
+          2.output
+          return self
+   end
+   meth -: A
+   do
+          1.output
+          return self
+   end
+   meth -(a: A): A
+   do
+          6.output
+          return self
+   end
+   meth *(a: A): A
+   do
+          3.output
+          return self
+   end
+   meth /(a: A): A
+   do
+          4.output
+          return self
+   end
+   meth %(a: A): A
+   do
+          5.output
+          return self
+   end
+   redef meth ==(a: Object): Bool
+   do
+          7.output
+          return true
+   end
+   meth <(a: A): Bool
+   do
+          9.output
+          return true
+   end
+   meth >(a: A): Bool
+   do
+          10.output
+          return true
+   end
+   meth <=(a: A): Bool
+   do
+          11.output
+          return true
+   end
+   meth >=(a: A): Bool
+   do
+          12.output
+          return true
+   end
+   meth <=>(a: A): Int
+   do
+          13.output
+          return 0
+   end
+
+   init do end
+end
+
+var a = new A
+var a2 = new A
+var b : Bool
+var i: Int
+a = a + -a - a * a / a % a 
+b = a == a2 and a < a and a > a and a <= a and a >= a
+i = a <=> a
diff --git a/tests/test_operators.sav b/tests/test_operators.sav
new file mode 100644 (file)
index 0000000..ef65209
--- /dev/null
@@ -0,0 +1,12 @@
+1
+2
+3
+4
+5
+6
+7
+9
+10
+11
+12
+13
diff --git a/tests/test_paire.nit b/tests/test_paire.nit
new file mode 100644 (file)
index 0000000..391b7a6
--- /dev/null
@@ -0,0 +1,72 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class Pair[F, S]
+       meth first: F
+               do
+                       return _first
+               end
+       meth second: S
+               do
+                       return _second
+               end
+       meth set(f: F, s: S)
+               do
+                       _first = f
+                       _second =  s
+               end
+       redef meth to_s: String
+               do
+                       return "{first}:{_second}"
+               end
+private
+       attr _first: F
+       attr _second: S
+
+       init(f: F, s: S)
+               do
+                       set(f,s)
+               end
+end
+
+class Pair[E: Comparable, E: Comparable]
+
+       meth >(p: Pair[Comparable, Comparable]): Bool
+               do
+                       return _first > p.first or 
+                               first == p.first and second > p._second
+               end
+end
+
+class Pair[E: Int, E: Int]
+
+       meth sum: Int
+               do
+                       return first + _second
+               end
+end
+
+
+var p1 = new Pair[Int, Int](5, 4)
+var p2 = new Pair[Int, Int](1, 44)
+var p3 = new Pair[Int, Int](1, 4)
+print(p1)
+print(p2)
+print(p3)
+print(p1 > p2)
+print(p2 > p3)
+print(p3 > p1)
+print(p3.sum)
diff --git a/tests/test_partial_order.sav b/tests/test_partial_order.sav
new file mode 100644 (file)
index 0000000..4226a7c
--- /dev/null
@@ -0,0 +1,40 @@
+1: rank=0; greats=0(0); smalls=19(8):
+        >2 >3 >4 >5 >6 >7 >8 >9 >10 >11 >12 >13 >14 >15 >16 >17 >18 >19 >20
+2: rank=1; greats=1(1); smalls=9(4):
+        <1 >4 >6 >8 >10 >12 >14 >16 >18 >20
+3: rank=1; greats=1(1); smalls=5(3):
+        <1 >6 >9 >12 >15 >18
+4: rank=2; greats=2(1); smalls=4(3):
+        <1 <2 >8 >12 >16 >20
+5: rank=1; greats=1(1); smalls=3(2):
+        <1 >10 >15 >20
+6: rank=2; greats=3(2); smalls=2(2):
+        <1 <2 <3 >12 >18
+7: rank=1; greats=1(1); smalls=1(1):
+        <1 >14
+8: rank=3; greats=3(1); smalls=1(1):
+        <1 <2 <4 >16
+9: rank=2; greats=2(1); smalls=1(1):
+        <1 <3 >18
+10: rank=2; greats=3(2); smalls=1(1):
+        <1 <2 <5 >20
+11: rank=1; greats=1(1); smalls=0(0):
+        <1
+12: rank=3; greats=5(2); smalls=0(0):
+        <1 <2 <3 <4 <6
+13: rank=1; greats=1(1); smalls=0(0):
+        <1
+14: rank=2; greats=3(2); smalls=0(0):
+        <1 <2 <7
+15: rank=2; greats=3(2); smalls=0(0):
+        <1 <3 <5
+16: rank=4; greats=4(1); smalls=0(0):
+        <1 <2 <4 <8
+17: rank=1; greats=1(1); smalls=0(0):
+        <1
+18: rank=3; greats=5(2); smalls=0(0):
+        <1 <2 <3 <6 <9
+19: rank=1; greats=1(1); smalls=0(0):
+        <1
+20: rank=3; greats=5(2); smalls=0(0):
+        <1 <2 <4 <5 <10
diff --git a/tests/test_print.nit b/tests/test_print.nit
new file mode 100644 (file)
index 0000000..eac89d2
--- /dev/null
@@ -0,0 +1,24 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+print(1)
+print(1.0)
+print('1')
+print("1")
+print(true)
+print(false)
+print(null)
+print(["1"])
diff --git a/tests/test_print.sav b/tests/test_print.sav
new file mode 100644 (file)
index 0000000..cc6da05
--- /dev/null
@@ -0,0 +1,8 @@
+1
+1.0
+1
+1
+true
+false
+
+1
diff --git a/tests/test_range.nit b/tests/test_range.nit
new file mode 100644 (file)
index 0000000..5bcb7b8
--- /dev/null
@@ -0,0 +1,26 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+for i in [0..5[ do
+   print(i)
+end
+for j in ['a'..'i'] do
+   print(j)
+end
+var r = ['J'..'L'[
+for j in r do
+   print(j)
+end
diff --git a/tests/test_range.sav b/tests/test_range.sav
new file mode 100644 (file)
index 0000000..f30b4c5
--- /dev/null
@@ -0,0 +1,16 @@
+0
+1
+2
+3
+4
+a
+b
+c
+d
+e
+f
+g
+h
+i
+J
+K
diff --git a/tests/test_refinement.nit b/tests/test_refinement.nit
new file mode 100644 (file)
index 0000000..4f39f68
--- /dev/null
@@ -0,0 +1,78 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+redef class Int
+    meth fact0: Int
+       do
+           return fact(1)
+       end
+    meth fact(r: Int): Int
+       do
+           if self <= 1 then
+               return r
+           else
+               return (self-1).fact(r*self)
+           end
+           return 1
+       end
+
+    meth fact2: Int
+       do
+           var r = 1
+           var i = self
+           while i > 0 do
+               r = r * i
+               i = i - 1
+           end
+           return r
+       end
+end
+
+redef class Array[F: Object]
+    redef meth add(item: F)
+       do
+           self[length] = item
+           self[length] = item
+       end
+end
+
+redef class Object
+    redef meth printn(a: Object...)
+       do
+            stdout.write("print:")
+           stdout.write(a.to_s)
+       end
+end
+
+printn("4! = ")
+print(4.fact2)
+printn("4! = ")
+print(4.fact0)
+
+var a = [1,2]
+do
+    print(a)
+    a.add(3)
+    print(a)
+end
+
+var b = "ab"
+do
+    print(b)
+    b.add('c')
+    print(b)
+end
diff --git a/tests/test_refinement.sav b/tests/test_refinement.sav
new file mode 100644 (file)
index 0000000..b5b6d19
--- /dev/null
@@ -0,0 +1,6 @@
+print:4! = 4! = 24
+print:4! = 4! = 24
+1122
+112233
+ab
+abc
diff --git a/tests/test_return.nit b/tests/test_return.nit
new file mode 100644 (file)
index 0000000..4b54032
--- /dev/null
@@ -0,0 +1,65 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth a
+do
+       return
+end
+
+meth b: Int
+do
+       return 1
+end
+
+meth c: Int
+do
+       do
+               return 1
+       end
+end
+
+meth d: Int
+do
+       if true then
+       else
+               return 0
+       end
+       return 1
+end
+
+meth e: Int
+do
+       while true do
+               return 1
+       end
+       return 0
+end
+
+meth f: Int
+do
+       if true then
+               return 1
+       else
+               return 2
+       end
+end
+
+a
+print(b)
+print(c)
+print(d)
+print(e)
+print(f)
diff --git a/tests/test_return.sav b/tests/test_return.sav
new file mode 100644 (file)
index 0000000..627e109
--- /dev/null
@@ -0,0 +1,5 @@
+1
+1
+1
+1
+1
diff --git a/tests/test_star.nit b/tests/test_star.nit
new file mode 100644 (file)
index 0000000..8a0ec23
--- /dev/null
@@ -0,0 +1,44 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+meth foo(a: Int...)
+    do
+       print(a)
+    end
+
+meth bar(b: Int, a: Int...)
+    do
+       print("{b}, {a}")
+    end
+
+meth baz(a: Int..., b: Int)
+    do
+       print("{a}, {b}")
+    end
+
+meth foobar(b: Int, a: Int..., c: Int)
+    do
+       print("{c}, {a}, {b}")
+    end
+
+foo(1)
+foo(1,2)
+bar(1,2)
+bar(1,2,3)
+baz(1,2)
+baz(1,2,3)
+foobar(1,2,3)
+foobar(1,2,3,4)
diff --git a/tests/test_star.sav b/tests/test_star.sav
new file mode 100644 (file)
index 0000000..8e1756f
--- /dev/null
@@ -0,0 +1,8 @@
+1
+12
+1, 2
+1, 23
+1, 2
+12, 3
+3, 2, 1
+4, 23, 1
diff --git a/tests/test_stdio.inputs b/tests/test_stdio.inputs
new file mode 100644 (file)
index 0000000..db973f6
--- /dev/null
@@ -0,0 +1 @@
+Jean
diff --git a/tests/test_stdio.nit b/tests/test_stdio.nit
new file mode 100644 (file)
index 0000000..6c30379
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+stdout.write("Bonjour, quel est votre nom ? ")
+var nom = stdin.read_line
+stdout.write("Bonjour, {nom}.\n")
+stdout.write("Erreur, {nom}.\n")
+
diff --git a/tests/test_stdio.sav b/tests/test_stdio.sav
new file mode 100644 (file)
index 0000000..20c00f7
--- /dev/null
@@ -0,0 +1,2 @@
+Bonjour, quel est votre nom ? Bonjour, Jean.
+Erreur, Jean.
diff --git a/tests/test_string.nit b/tests/test_string.nit
new file mode 100644 (file)
index 0000000..c76b0b3
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+printn("abcdefghijklnmopqrstuvwxyz")
+printn("\n#\"\\")
diff --git a/tests/test_string.sav b/tests/test_string.sav
new file mode 100644 (file)
index 0000000..5769d17
--- /dev/null
@@ -0,0 +1,2 @@
+abcdefghijklnmopqrstuvwxyz
+#"\
\ No newline at end of file
diff --git a/tests/test_string_long.nit b/tests/test_string_long.nit
new file mode 100644 (file)
index 0000000..0429f07
--- /dev/null
@@ -0,0 +1,33 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+var s = "Bonjour !\n"
+var r = new String.with_capacity(50)
+var r2 = ""
+
+var i = 0
+while i < 5000 do
+    var j = 0
+    while j < s.length do
+        r.add(s[j])
+        r2.add(s[j])
+        j = j + 1
+    end
+    i = i + 1
+end
+printn(r)
+printn(r2)
diff --git a/tests/test_string_long.sav b/tests/test_string_long.sav
new file mode 100644 (file)
index 0000000..21373ff
--- /dev/null
@@ -0,0 +1,10000 @@
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
+Bonjour !
diff --git a/tests/test_string_search.nit b/tests/test_string_search.nit
new file mode 100644 (file)
index 0000000..f78ad4b
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+meth search_and_split(s: String, p: Pattern)
+    do
+       print("string: \"{s}\" ; pattern: \"{p}\"")
+       print("searches:")
+       for m in s.search_all(p) do
+           print("* [{m.from}, {m.after}[ = \"{m}\"")
+       end
+       print("splits:")
+       for m in p.split_in(s) do
+           print("* [{m.from}, {m.after}[ = \"{m}\"")
+       end
+
+       print("join: {s.split_with(p).join(", ")}")
+    end
+    
+search_and_split("A simple example", ' ')
+search_and_split("A simple example", "ple")
+search_and_split("A simple example", new BM_Pattern("ple"))
+
diff --git a/tests/test_string_search.sav b/tests/test_string_search.sav
new file mode 100644 (file)
index 0000000..c8277d4
--- /dev/null
@@ -0,0 +1,27 @@
+string: "A simple example" ; pattern: " "
+searches:
+* [1, 2[ = " "
+* [8, 9[ = " "
+splits:
+* [0, 1[ = "A"
+* [2, 8[ = "simple"
+* [9, 16[ = "example"
+join: A, simple, example
+string: "A simple example" ; pattern: "ple"
+searches:
+* [5, 8[ = "ple"
+* [13, 16[ = "ple"
+splits:
+* [0, 5[ = "A sim"
+* [8, 13[ = " exam"
+* [16, 16[ = ""
+join: A sim,  exam, 
+string: "A simple example" ; pattern: "ple"
+searches:
+* [5, 8[ = "ple"
+* [13, 16[ = "ple"
+splits:
+* [0, 5[ = "A sim"
+* [8, 13[ = " exam"
+* [16, 16[ = ""
+join: A sim,  exam, 
diff --git a/tests/test_string_unicode.nit b/tests/test_string_unicode.nit
new file mode 100644 (file)
index 0000000..9a576c7
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+var a = "éè"
+print(a.length)
+for i in [0..a.length[ do
+       print("{i} is {a[i]} ({a[i].ascii})")
+end
diff --git a/tests/test_string_unicode.sav b/tests/test_string_unicode.sav
new file mode 100644 (file)
index 0000000..11e90bd
--- /dev/null
@@ -0,0 +1,5 @@
+4
+0 is Ãƒ (195)
+1 is Â© (169)
+2 is Ãƒ (195)
+3 is Â¨ (168)
diff --git a/tests/test_substring.nit b/tests/test_substring.nit
new file mode 100644 (file)
index 0000000..ba8fdeb
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006 Floréal Morandat <morandat@lirmm.fr>
+# Copyright 2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# By Flop
+
+var s = "totototo.nit"
+var p = "toto"
+var e = ".nit"
+
+print("substring: {s.substring(-1,5)}")
+print("substring_from: {s.substring_from(4)}")
+print("has_substring: {s.has_substring(p,4)}")
+print("has_substring: {s.has_substring(p,0)}")
+print("has_substring: {s.has_substring(p,1)}")
+print("has_prefix: {s.has_prefix(p)}")
+print("has_prefix: {s.has_prefix(e)}")
+print("has_suffix: {s.has_suffix(e)}")
+print("has_suffix: {s.has_suffix(p)}")
diff --git a/tests/test_substring.sav b/tests/test_substring.sav
new file mode 100644 (file)
index 0000000..580b7ed
--- /dev/null
@@ -0,0 +1,9 @@
+substring: toto
+substring_from: toto.nit
+has_substring: true
+has_substring: true
+has_substring: false
+has_prefix: true
+has_prefix: false
+has_suffix: true
+has_suffix: false
diff --git a/tests/test_super.nit b/tests/test_super.nit
new file mode 100644 (file)
index 0000000..ea2d8ee
--- /dev/null
@@ -0,0 +1,39 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo
+       do
+               0.output
+       end
+end
+
+class B
+special A
+       redef meth foo
+       do
+               1.output
+               super
+               2.output
+       end
+
+       init do end
+end
+
+var b = new B
+b.foo
diff --git a/tests/test_super.sav b/tests/test_super.sav
new file mode 100644 (file)
index 0000000..56f24a1
--- /dev/null
@@ -0,0 +1,3 @@
+1
+0
+2
diff --git a/tests/test_super_explicit.nit b/tests/test_super_explicit.nit
new file mode 100644 (file)
index 0000000..b931c40
--- /dev/null
@@ -0,0 +1,39 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_super
+
+redef class A
+       redef meth foo
+       do
+               10.output
+       end
+end
+
+redef class B
+       redef meth foo
+       do
+               11.output
+               test_super::super
+               12.output
+               A::super
+               13.output
+               test_super::B::super
+       end
+end
+
+var b = new B
+b.foo
diff --git a/tests/test_super_gen.nit b/tests/test_super_gen.nit
new file mode 100644 (file)
index 0000000..b1f12c4
--- /dev/null
@@ -0,0 +1,42 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A[E: Object, F: Object]
+       meth foo(e: E, f: F): F
+       do
+               0.output
+               return f
+       end
+end
+
+class B[G: Int]
+special A[Bool,G]
+       redef meth foo(b: Bool, g: G): G
+       do
+               1.output
+               super
+               return g
+       end
+
+       init
+       do
+       end
+end
+
+var b = new B[Int]
+b.foo(true, 5).output
diff --git a/tests/test_super_gen.sav b/tests/test_super_gen.sav
new file mode 100644 (file)
index 0000000..be0358a
--- /dev/null
@@ -0,0 +1,3 @@
+1
+0
+5
diff --git a/tests/test_super_gen_raf.nit b/tests/test_super_gen_raf.nit
new file mode 100644 (file)
index 0000000..e370e96
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_super_gen
+
+class C[H: Int]
+special A[H, Int]
+       redef meth foo(a: H, b: Int): H
+       do
+               return super
+       end
+
+       init
+       do
+       end
+end
+
+var c = new C[Int]
+c.foo(10,20).output
diff --git a/tests/test_super_gen_raf.sav b/tests/test_super_gen_raf.sav
new file mode 100644 (file)
index 0000000..b2f1f1e
--- /dev/null
@@ -0,0 +1,2 @@
+0
+20
diff --git a/tests/test_super_param.nit b/tests/test_super_param.nit
new file mode 100644 (file)
index 0000000..293bbb2
--- /dev/null
@@ -0,0 +1,39 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo(i: Int): Int
+       do
+               return i + 10
+       end
+end
+
+class B
+special A
+       redef meth foo(i: Int): Int
+       do
+               return super + 5
+       end
+
+       init 
+       do
+       end
+end
+
+var b = new B
+b.foo(20).output
diff --git a/tests/test_super_param.sav b/tests/test_super_param.sav
new file mode 100644 (file)
index 0000000..8f92bfd
--- /dev/null
@@ -0,0 +1 @@
+35
diff --git a/tests/test_super_param_raf.nit b/tests/test_super_param_raf.nit
new file mode 100644 (file)
index 0000000..9fc72c4
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_super_param
+
+redef class B
+       redef meth foo(a: Int): Int
+       do
+               return super * 2
+       end
+end
+
+var b = new B
+b.foo(20).output
diff --git a/tests/test_super_param_raf.sav b/tests/test_super_param_raf.sav
new file mode 100644 (file)
index 0000000..2bbd69c
--- /dev/null
@@ -0,0 +1 @@
+70
diff --git a/tests/test_super_param_raf2.nit b/tests/test_super_param_raf2.nit
new file mode 100644 (file)
index 0000000..8b9c3de
--- /dev/null
@@ -0,0 +1,32 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import test_super_param_raf
+
+class C
+special B
+       redef meth foo(a: Int): Int
+       do
+               return super * 2
+       end
+
+       init
+       do
+       end
+end
+
+var c = new C
+c.foo(20).output
diff --git a/tests/test_super_param_raf2.sav b/tests/test_super_param_raf2.sav
new file mode 100644 (file)
index 0000000..dee261d
--- /dev/null
@@ -0,0 +1 @@
+140
diff --git a/tests/test_superstring.nit b/tests/test_superstring.nit
new file mode 100644 (file)
index 0000000..29c0ee0
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+print("bonjour")
+print("bonjour {1} le monde")
+print("bonjour {1+1} le monde")
+print("bonjour {3} le {4} monde")
+print("bonjour { "le" } monde")
+print("bonjour { "l{5}e" } monde")
+print("bonjour { "{6}l{7}e{8}" } monde")
diff --git a/tests/test_superstring.sav b/tests/test_superstring.sav
new file mode 100644 (file)
index 0000000..78dc713
--- /dev/null
@@ -0,0 +1,7 @@
+bonjour
+bonjour 1 le monde
+bonjour 2 le monde
+bonjour 3 le 4 monde
+bonjour le monde
+bonjour l5e monde
+bonjour 6l7e8 monde
diff --git a/tests/test_symbol.nit b/tests/test_symbol.nit
new file mode 100644 (file)
index 0000000..5b152a4
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import symbol
+
+var s1 = "Toto".to_symbol
+var s2 = "Tata".to_symbol
+var s3 = "Toto".to_symbol
+
+0.output
+s1.to_s.output
+s2.to_s.output
+s3.to_s.output
+
+1.output
+(s1.to_s == s2.to_s).output
+(s1.to_s is s2.to_s).output
+(s1.to_s == s3.to_s).output
+(s1.to_s is s3.to_s).output
+
+2.output
+(s1 == s2).output
+(s1 is s2).output
+(s1 == s3).output
+(s1 is s3).output
diff --git a/tests/test_symbol.sav b/tests/test_symbol.sav
new file mode 100644 (file)
index 0000000..5ce0902
--- /dev/null
@@ -0,0 +1,11 @@
+0
+TotoTataToto1
+false
+false
+true
+false
+2
+false
+false
+true
+true
diff --git a/tests/test_undead.nit b/tests/test_undead.nit
new file mode 100644 (file)
index 0000000..6d7950a
--- /dev/null
@@ -0,0 +1,36 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2006-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+       meth foo
+       do
+               1.output
+       end
+       meth bar: Int
+       do
+               return 2
+       end
+end
+
+var a: A
+if a != null then
+       a.foo
+       a.bar.output
+else
+       0.output
+end
diff --git a/tests/test_undead.sav b/tests/test_undead.sav
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/test_variance_attr.nit b/tests/test_variance_attr.nit
new file mode 100644 (file)
index 0000000..f7a25e1
--- /dev/null
@@ -0,0 +1,77 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+    attr _foo: Object
+    attr _bar: A
+    attr _baz: Int
+    redef meth output do 'A'.output end
+
+    init do end
+end
+
+class B
+special A
+    redef attr _foo: Int
+    redef attr _bar: B
+    redef meth output do 'B'.output end
+
+    init do end
+end
+
+var a = new A
+var b = new B
+var ab: A = b
+
+a._foo = a
+a._foo.output
+a._foo = b
+a._foo.output
+a._foo = 1
+a._foo.output
+a._bar = a
+a._bar.output
+a._bar = b
+a._bar.output
+a._baz = 1
+a._baz.output
+
+#ab._foo = a
+#ab._foo.output
+#ab._foo = b
+#ab._foo.output
+ab._foo = 1
+ab._foo.output
+#ab._bar = a 
+#ab._bar.output
+ab._bar = b
+ab._bar.output
+ab._baz = 1
+ab._baz.output
+
+#b._foo = a
+#b._foo.output
+#b._foo = b
+#b._foo.output
+b._foo = 1
+b._foo.output
+#b._bar = a
+#b._bar.output
+b._bar = b
+b._bar.output
+b._baz = 1
+b._baz.output
+
diff --git a/tests/test_variance_attr.sav b/tests/test_variance_attr.sav
new file mode 100644 (file)
index 0000000..e7db980
--- /dev/null
@@ -0,0 +1,6 @@
+AB1
+AB1
+1
+B1
+1
+B1
diff --git a/tests/test_variance_param.nit b/tests/test_variance_param.nit
new file mode 100644 (file)
index 0000000..79ef0f3
--- /dev/null
@@ -0,0 +1,85 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+       type T: A
+       type U: B
+       meth foo(a: T) do a.output
+       meth bar(b: U) do b.output
+       meth baz(i: Int) do i.output
+       redef meth output do 'A'.output
+
+       init do end
+end
+
+class B
+special A
+       redef type T: B
+       redef type U: Int
+       redef meth foo(a: T) do a.output
+       redef meth bar(b: U) do b.output
+       redef meth baz(i: Int) do i.output
+       redef meth output do 'B'.output
+
+       init do end
+end
+
+redef class Int
+special B
+       redef type T: Int
+       redef meth foo(a: T) do a.output
+       redef meth bar(b: U) do b.output
+       redef meth output is intern
+end
+
+var a = new A
+var b = new B
+var ab: A = b
+var i = 5
+var ai: A = i
+var bi: B = i
+
+a.foo(a)
+a.foo(b)
+a.foo(i)
+a.bar(b)
+a.bar(i)
+a.baz(i)
+#alt1#ab.foo(a) # covariant
+ab.foo(b)
+ab.foo(i)
+#alt2#ab.bar(b) # covariant
+ab.bar(i)
+ab.baz(i)
+#alt3#ai.foo(a) # covariant
+#alt4#ai.foo(b) # covariant
+ai.foo(i)
+#alt5#ai.bar(b) # covariant
+ai.bar(i)
+ai.baz(i)
+
+b.foo(b)
+b.foo(i)
+b.bar(i)
+b.baz(i)
+#alt6#bi.foo(b) # covariant
+bi.foo(i)
+bi.bar(i)
+bi.baz(i)
+
+i.foo(i)
+i.bar(i)
+i.baz(i)
diff --git a/tests/test_variance_param.sav b/tests/test_variance_param.sav
new file mode 100644 (file)
index 0000000..16f3869
--- /dev/null
@@ -0,0 +1,18 @@
+AB5
+B5
+5
+B5
+5
+5
+5
+5
+5
+B5
+5
+5
+5
+5
+5
+5
+5
+5
diff --git a/tests/test_variance_ret.nit b/tests/test_variance_ret.nit
new file mode 100644 (file)
index 0000000..44e1043
--- /dev/null
@@ -0,0 +1,105 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+    meth foo: A
+    do 
+           return new A
+    end
+    
+    meth bar: B 
+    do 
+           return new B 
+    end
+    
+    meth baz: Int 
+    do 
+           return 5 
+    end
+    
+    redef meth output 
+    do 
+           'A'.output 
+    end
+
+    init do end
+end
+
+class B
+special A
+    redef meth foo: B 
+    do 
+           return new B 
+    end
+    redef meth bar: Int 
+    do 
+           return 6 
+    end
+    redef meth baz: Int 
+    do 
+           return 7 
+    end
+    redef meth output 
+    do 
+           'B'.output 
+    end
+
+    init do end
+end
+
+redef class Int
+special B
+    redef meth foo: Int 
+    do 
+           return 8 
+    end
+    redef meth bar: Int 
+    do
+           return 9
+    end
+    redef meth output is intern
+end
+
+var a = new A
+var b = new B
+var ab: A = b
+var i = 5
+var ai: A = i
+var bi: B = i
+
+a.foo.output
+a.bar.output
+a.baz.output
+
+ab.foo.output
+ab.bar.output
+ab.baz.output
+
+ai.foo.output
+ai.bar.output
+ai.baz.output
+
+b.foo.output
+b.bar.output
+b.baz.output
+
+bi.foo.output
+bi.bar.output
+bi.baz.output
+
+i.foo.output
+i.bar.output
+i.baz.output
diff --git a/tests/test_variance_ret.sav b/tests/test_variance_ret.sav
new file mode 100644 (file)
index 0000000..296f0c0
--- /dev/null
@@ -0,0 +1,14 @@
+AB5
+B6
+7
+8
+9
+7
+B6
+7
+8
+9
+7
+8
+9
+7
diff --git a/tests/tests.sh b/tests/tests.sh
new file mode 100755 (executable)
index 0000000..436ee2f
--- /dev/null
@@ -0,0 +1,135 @@
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2004-2008 Jean Privat <jean@pryen.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This shell script compile, run and verify NIT program files
+
+# Ruby binary (none if you want to let the program to decide)
+#RUBY=
+[ -z "$NITC" ] && NITC=../bin/nitc
+
+# Options to use with the ruby compiler
+# OPT=
+
+# Mark to distinguish files among tests 
+# MARK=
+
+if [ $# = 0 ]; then
+       echo "usage: $0 file.nit ..."
+fi
+
+if [ -z "$HTM" ]; then
+       HTM=/dev/null
+elif [ ! -f "$HTM" ]; then
+       echo "<html><body><table border=\"1\">" > $HTM
+       echo "<tr><td>Mode</td>" >> $HTM
+       for i in "$@"; do
+               f=`echo $i | cut -f1 -d.`
+               echo -n "<td><a href=\"$f.nit\">$f</a>" >> $HTM
+               if [ -r "$f.sav" ]; then
+                       echo -n " - <a href=\"$f.sav\">sav</a>" >> $HTM
+               fi
+               if [ -f "$f.inputs" ]; then
+                       echo -n " - <a href=\"$f.inputs\">inputs</a>" >> $HTM
+               fi
+               echo "</td>" >> $HTM
+       done
+       echo "<td>ok</td><td>fails</td></tr>" >> $HTM
+fi
+
+ok=""
+nok=""
+echo "<tr><td>$MARK</td>" >> $HTM
+
+for ii in "$@"; do
+    for alt in "" `sed -n 's/.*#\(alt[0-9]*\)#.*/\1/p' "$ii" | sort -u`; do
+       f=`basename "$ii" .nit`
+       d=`dirname "$ii"`
+       ff="$f"
+       i="$ii"
+       if [ "x$alt" != "x" ]; then
+               test -d alt || mkdir -p alt
+               i="alt/${f}_$alt.nit"
+               ff="${ff}_$alt"
+               sed "s/#$alt#//g;/#!$alt#/d" "$ii" > "$i"
+       fi
+       ff="$ff$MARK"
+
+       echo -n "=> $i: "
+       
+       rm "$ff.res" "$ff.err" "$ff.write" 2> /dev/null
+
+       # Compile
+       $NITC $OPT -o "$f.bin" "$i" -I . -I alt -I ../lib/standard 2> "$ff.cmp.err" > "$ff.compile.log"
+       ERR=$?
+        mv "$f.bin" "$ff.bin" 2> /dev/null
+       egrep '^[A-Z0-9_]*$' "$ff.compile.log" > "$ff.res"
+       echo -n "<td><a href=\"$ff.compile.log\">compil " >> $HTM
+       if [ "$ERR" != 0 ]; then
+               echo -n "! "
+               echo -n "fail</a> - " >> $HTM
+               cp "$ff.cmp.err" "$ff.res"
+       else
+               echo -n ". "
+               echo -n "ok</a> - " >> $HTM
+               # Execute
+               if [ -f "$f.args" ]; then
+                       args=`cat "$f.args"`
+               else
+                       args=""
+               fi
+               if [ -f "$f.inputs" ]; then
+                       "./$ff.bin" $args < "$f.inputs" > "$ff.res" 2>"$ff.err"
+               else
+                       "./$ff.bin" $args > "$ff.res" 2>"$ff.err"
+               fi
+               if [ -f "$ff.write" ]; then
+                       cat "$ff.write" >> "$ff.res"
+                       echo -n "<a href=\"$ff.err\">write</a> - " >> $HTM
+               fi
+               if [ -s "$ff.err" ]; then
+                       cat "$ff.err" >> "$ff.res"
+                       echo -n "<a href=\"$ff.err\">err</a> - " >> $HTM
+               fi
+       fi
+
+       # Result        
+       if [ -r "$ff.sav" ]; then
+               diff "$ff.res" "$ff.sav" > "$ff.diff.log"
+               if [ "$?" == 0 ]; then
+                       echo "[ok] $ff.res"
+                       ok="$ok $ff"
+                       echo -n "<a href=\"$ff.res\">res ok</a>" >> $HTM
+               else
+                       echo "[======= fail $ff.res $ff.sav =======]"
+                       nok="$nok $ff"
+                       echo -n "<strong style=\"background-color:red\"><a href=\"$ff.res\">res fail</a> - <a href=\"$ff.diff.log\">diff</a></strong>" >> $HTM
+               fi
+       else
+               echo "[=== no sav ===] $ff.res"
+               echo -n "<a href=\"$ff.res\">res</a>" >> $HTM
+       fi
+       echo "</td>" >> $HTM
+   done
+done
+
+echo "ok: " `echo $ok | wc -w` "/ $#"
+echo "<td>" `echo $ok | wc -w` "</td><td>" `echo $nok | wc -w` "</td></tr>" >> $HTM
+
+if [ -n "$nok" ]; then
+       echo "fail: $nok"
+       echo "There were errors !"
+fi